Creative Commons images are CC BY 2.0

Satellite Transceiver Breakout - Swarm M138

Looking for a low-cost way to send and receive data messages via satellite? This is it! With a clear view of the sky, the Satellite Transceiver Breakout - Swarm M138 allows you to send and receive short messages. It works anywhere in the world, including the polar regions, far beyond the reach of WiFi and Cellular networks. It is perfect for a variety of low-bandwidth use cases: from connecting people and tracking vehicles, ships, or packages to relaying sensor data for agriculture, energy, and industrial IoT applications. The built-in GNSS receiver makes it perfect for many tracking applications.

At the heart of our product is a Swarm M138 satellite modem. This is a Mini-PCI Express Card containing both the satellite modem and a very capable GNSS receiver, all in one integrated package! It can operate from a wide range of supply voltages: 3.0V Min; 5.0V Max. Its standard 3.3V CMOS serial UART interface and NMEA-style command set makes it easy to integrate into your project. Our board includes both a USB-C interface (for power and/or serial data) and a full set of breakout pins. Want to plug it into your laptop or Raspberry Pi and use it to communicate out in the field? You can absolutely do that! We've written a Python3 PyQt5 GUI to get you started. Full details are available in the hookup guide and in the product repo. Want to connect it to your Arduino microcontroller board? You can absolutely do that too! Our Swarm Arduino Library makes that easy.

Our kit contains everything you need to get started:

  • Swarm M138 Modem
  • SparkFun Satellite Transceiver Breakout
  • VHF Antenna and Ground Plane
  • GNSS Antenna
  • u.FL cables, adapter and screws

See below for our recommended extras.

Want to know more? Click the button below to open our hook-up guide:

Each Swarm modem requires a data plan to send and receive data. However, the cost of this is much lower than other networks. A data plan is an annual contract for USD $60 per year (USD $5 per month). Each plan includes 750 data packets per month. Each packet can be up to 192 Bytes in size. Please see the Registering Your Swarm M138 Modem for full details. Additionally, you can create or login to your Swarm account here.
Swarm provide global coverage over all regions, but there are regulatory restrictions for specific countries.

The current list of approved countries / regions for the M138 Modem is: USA, Antarctica, Australia, Austria, Brazil, Canada, Colombia, Denmark, Georgia, Germany, Greenland, Iceland, Ireland, New Zealand, Netherlands, Spain, Sweden, United Kingdom and International Waters (12 nautical miles offshore).

Swarm continues to grow this list of approved countries as quickly as possible. Customers will receive regular updates on approved regions through the Swarm newsletter.
Experimental Product: SparkX products are rapidly produced to bring you the most cutting edge technology as it becomes available. These products are tested but come with no guarantees. Live technical support is not available for SparkX products. Head on over to our forum for support or to ask a question.

  • Swarm M138 Modem
  • SparkFun Satellite Transceiver Breakout
  • Swarm VHF Antenna
  • u.FL - SMA Adapter
  • SparkFun Antenna Ground Plane (PCB, 8" x 8")
  • Molex adhesive GNSS Antenna (u.FL)
  • 2 x u.FL to u.FL cables
  • 2 x M2.5 Screws
  • PCB Dimensions (with modem attached):
    • 3.5" x 1.4" x 0.37" (89 x 36 x 9.5mm)
  • SMA Connections:
    • Separate, robust connectors for VHF satellite communication and GPS / GNSS positioning
  • Serial Interface:
    • USB-C via a CH340E USB-serial converter
    • 3.3V UART via 0.1" breakout pins
    • Split pads allow the TX and RX breakout pins to be isolated from the CH340E
    • TX and RX LEDs (configurable)
  • Power Supply:
    • 3.0V (Min)
    • 5.0V (Max)
    • Power can be provided by USB-C or via 0.1" breakout pins
    • "Ideal diode" power mux circuit with ~0V voltage drop
  • Current Draw @ 3.3V:
    • Sleep: Modem: 80µA (Peak); Power Mux: ~70µA
    • Receive: 26mA (Typ.); 40mA (Peak)
    • Transmit: 850mA (Typ.); 1000mA (Peak)
  • Current Draw @ 5.0V:
    • Sleep: Modem: 110µA (Peak); Power Mux: ~100µA
    • Receive: 25mA (Typ.); 45mA (Peak)
    • Transmit: 550mA (Typ.); 600mA (Peak)
  • Please note:
    • When powering the board from USB, please use a USB-C or USB 3 port
    • USB 2.0 is not supported

Satellite Transceiver Breakout - Swarm M138 Product Help and Resources

Satellite Transceiver Breakout - Swarm M138 - Hookup Guide

April 22, 2022

A hookup guide for the Satellite Transceiver Breakout - Swarm M138 (SPX-19236)

Core Skill: Programming

If a board needs code or communicates somehow, you're going to need to know how to program or interface with it. The programming skill is all about communication and code.

4 Programming

Skill Level: Experienced - You will require a firm understanding of programming, the programming toolchain, and may have to make decisions on programming software or language. You may need to decipher a proprietary or specialized communication protocol. A logic analyzer might be necessary.
See all skill levels

Core Skill: Electrical Prototyping

If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.

3 Electrical Prototyping

Skill Level: Competent - You will be required to reference a datasheet or schematic to know how to use a component. Your knowledge of a datasheet will only require basic features like power requirements, pinouts, or communications type. Also, you may need a power supply that?s greater than 12V or more than 1A worth of current.
See all skill levels


Looking for answers to technical questions?

We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.

  • plugger.lockett / about 2 years ago / 1

    Hi SparkFun, very interesting product you have here! Could you please confirm what specific uBlox chipset is integrated with this unit? I've checked the manual, pictures, and GitHub and I've not been able to confirm which chipset comes bundled with the board.

    • PaulZC / about 2 years ago / 1

      The u-blox GNSS is built into the modem itself. You only have access to it through the modem's $DT, $GJ, $GN and $GS messages. You can't access the NMEA or UBX data directly... It is almost certainly an M8 IC/module but the manual does not say which one.

  • drazvan / about 2 years ago / 1

    Link to the Swarm Data Plan is dead - redirects to the the homepage. I also can't find a way to order just the data plan by navigating their site. They sell the M138 in multiples of 25 on their site (and I suppose they set you up with a plan for the 25 on purchase) but I'm not sure how I'm supposed to activate a single unit bought from Sparkfun.

  • paultech / about 2 years ago / 1

  • lesto / about 2 years ago / 1

    What satellite constellation are supported? do they have full coverage full time of the world?

    • Member #435105 / about 2 years ago / 1

      They use their own (Swarm) network. Satellites are sun-synchronous so pass over at the same time each day. They come over in about five bands. So you can’t expect instant reception of messages 24 hours a day, but you can guarantee pretty much that a message will get through in a few hours or less. This does depend on how good your antenna is (and if you are building your own board, you must make it a low noise psu).

    • PaulZC / about 2 years ago / 1

      The Hook-Up Guide contains more information about the network and predicting the next satellite pass:

      Swarm Network


      Best wishes, Paul

Customer Reviews

4.9 out of 5

Based on 7 ratings:

Currently viewing all customer reviews.

1 of 1 found this helpful:

Easy integration and shortest path to getting data moving!

The NMEA message format is really easy to use, the checksum requirement took a bit to figure out but once you get the hang of it its easy to integrate in to whatever you are using to send your data over cellular or otherwise. Power draw is low so operation using solar is a reality. This offering is the perfect replacement for cellular and Iridium.

4 of 4 found this helpful:

Exceeded Expectations

I rarely take the time to post any reviews but when the email arrived from SparkFun suggesting a review, I thought my experiences thus far might be helpful since this is a brand new product.

I have a lot of experience with satellite comms, both up & down. I also have done quite a bit with LoRa, both terrestrial & via satellite.

There are two aspects to this product: The performance of the device itself and also the usefulness of the SWARM constellation.

Since SWARM's constellation does not provide anything near 100% sky coverage, I had very low expectations. I was in for a very pleasant surprise... I've posted dozens & dozens of messages in the M138's uplink queue and naturally if there's not a satellite overhead, the message does not arrive immediately. But I was amazed that the vast majority arrive within a few minutes of being queued and in a couple of instances, the SAME minute. Very impressive.

As for the M138 device itself, it's really cool that you can interface with it via USB from a Raspberry Pi (or any computer w/ Python installed) -or- with an Arduino device (provided it has more than one hardware serial interface such as the Arduino 'Due'). For simple interactive 'live' testing, the python GUI is a lot of fun. But to use the M138 to uplink telemetry from sensors, etc., of course the Arduino is the platform of choice. Works great! I have the reading from a simple voltage sensor uplinking via the SWARM constellation once per hour and it's pulled into Node Red using the API syntax that SWARM provides on the web dashboard that you log into to manage your device(s). I'm NOT a programmer, so I was seriously grateful for the excellent support that was provided on SparkFun's Github repository.

One IMPORTANT note - my testing has shown that the antenna MUST be at least a couple of meters above everything around it. My initial install a meter above the low corner of my roof led to VERY poor performance. Thankfully I didn't just toss the device... moving the antenna a few meters above other obstructions made all the difference in the world. Don't repeat my initial mistake!

So, all-in-all, this has gone way beyond my expectations for a fun, experimental platform & overall end-to-end solution. Everyone's experience will vary, of course, depending on their intended use for the product & familiarity with programming the platform (python or Arduino) that they choose to use. Good luck!

1 of 1 found this helpful:

A System which is going to lead the remote data logging in the future

First of all, I take my hat off to Paul's comprehensive work on the Breakout - Swarm M138. Part of my work is using wireless sensor networks for remote environmental data logging for precision irrigation scheduling. I have been a enthusiastic user of Iridium ( Sparkfun RockBlock) and cellular netwroks for years. They have been very reliable remote data logging systems but SWARM's very economical and reliable data plan is very attractive despite the data latency. Getting data to cloud data bases from SWARM is a lot simpler than Iridium system as well, I purchased two Evaluation kits from SWARM and 5 sparkfun Breakout kits. With the help of Paul's excellent Arduino library and SWARM's circuit python libraries I was able to test different examples and get all of them running without issues. As some of the reviewers pointed out the location of the sensor node (antenna) is critical. I also found that very low (RSSI -106) is not necessarily a trouble-free communication. Sometimes I was able to get them working with high RSSI -92 but not able to communicate with -106 RSSI. My advice to users of SWARM is not to get discouraged if you have initial setting up problems due to poor antenna locations. All the best, I do not know how I ended up with 4 star rating it was supposed to be 10 stars :-) Jagath