Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

sigfox_comm is a small command-line utility for Linux and embedded Linux that sends a hexadecimal payload to Sigfox Cloud through a Sigfox modem connected to a UART device. Build it with GCC and make, then provide the UART path and payload as the two positional arguments.

What sigfox_comm does

sigfox_comm is a transmit-side tool. It opens a serial/UART device, passes the payload to an attached Sigfox modem, and relies on the modem and Sigfox network to deliver the message to the Sigfox backend. It is not an SDR receiver, packet sniffer, or general-purpose Sigfox API client.

The documented example uses a WSSFM11R2D Sigfox modem connected to a Linux board’s UART. Other modem models may work only if they expose a compatible serial interface and command behavior; the available documentation does not provide a complete compatibility list.

Requirements

  • A Linux or embedded-Linux system with a UART device exposed as a path such as /dev/ttyUSB0 or /dev/ttyO4.
  • A connected Sigfox modem. The tutorial’s worked hardware example is the WSSFM11R2D.
  • GCC and the standard C libraries. No additional software dependencies are stated.
  • Access permissions for the UART device.
  • A registered and network-enabled Sigfox device and backend account if you need to view the resulting message in Sigfox Cloud.

Build and install

The project tutorial places the source in a source_code directory and builds it with the standard Make workflow.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  1. Clone or otherwise obtain the sigfox_comm repository.
  2. Change into the source directory: cd source_code
  3. Build the executable: make
  4. Run the resulting executable from the build directory, or copy it to a location on your executable path if that suits your deployment.

The documented build does not describe a package-manager installation, release number, prebuilt binary, or extra library requirement.

Command syntax and payload format

sigfox_comm takes exactly two positional arguments:

  1. The UART device path.
  2. The payload as a hexadecimal string.

Example:

sudo ./sigfox_comm /dev/ttyO4 010203040506070809101112

The payload uses two hexadecimal characters per byte. For example, 01 is one byte and 0102 is two bytes. The documented maximum is 12 bytes, which equals 24 hexadecimal characters. The Hackster.io tutorial, published in 2020, states that Sigfox limits data sent to 12 bytes maximum and notes that longer input is truncated.

Payload text Bytes represented Result
01 1 One-byte payload
0102030405 5 Five-byte payload
010203040506070809101112 12 Maximum documented payload
More than 24 hexadecimal characters More than 12 requested bytes Input is truncated according to the tutorial

Use hexadecimal characters only and keep the string length even. The documentation does not define a separate escaping, text-encoding, or checksum option.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Choosing the correct UART path

Use the device node that represents the UART physically connected to the modem. Common examples include /dev/ttyUSB0 for a USB-to-serial adapter and /dev/ttyO4 on some embedded boards. The names are board- and kernel-dependent, so do not copy /dev/ttyO4 unless that is actually the modem’s port.

Practical checks

  • Connect the modem before checking available device nodes.
  • Compare the device list before and after connecting a USB serial adapter to identify a newly appearing /dev/ttyUSB* or similar node.
  • Confirm the board’s UART is enabled in its hardware configuration and is not already reserved by a console or another service.
  • Verify wiring, voltage levels, and common ground before transmitting. The available project material does not specify electrical levels or a universal pinout, so follow the modem and board documentation for those details.

Permissions: why the example uses sudo

The tutorial recommends running the command as superuser because opening, sending, or receiving through the UART can fail when the current account lacks device permissions. That is operational guidance for the example, not a requirement imposed by sigfox_comm on every Linux installation.

A safer long-term setup is to grant the service account access through the distribution’s serial-device group or a narrowly scoped udev rule, then run without sudo. The exact group name varies by distribution. Check the device’s ownership and permissions with your system’s standard tools, add the account to the appropriate group if applicable, and start a new login session before retrying.

What happens after transmission

sigfox_comm hands the message to the attached modem. The modem performs the radio transmission; the resulting message is then made available in the Sigfox backend. Sigfox’s official documentation separates public API information from authenticated API v2 JSON and YAML endpoints, so backend retrieval and device-management tasks belong to Sigfox Cloud services rather than this small UART command.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Sigfox’s technical quickstart describes development kits as an out-of-the-box way to send initial messages and uses Sigfox Cloud as the route to backend data. A development kit can therefore be useful when you need a known-good hardware starting point, while sigfox_comm is useful when you already have a Linux board and compatible modem.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Troubleshooting

“Permission denied” or the port cannot be opened

  • Check that the UART path exists and is the one connected to the modem.
  • Inspect device ownership and group permissions.
  • As a diagnostic only, rerun the documented command with sudo. If that works, replace the elevated invocation with an appropriate group or udev configuration.
  • Stop services that may already hold the port, including a serial console or another modem process.

No message appears in the backend

  • Confirm the modem is powered, connected, and registered for the relevant Sigfox network.
  • Check that the payload contains valid hexadecimal characters and no accidental spaces.
  • Verify that the UART wiring and selected device node match the hardware.
  • Allow for the modem and network transmission process before deciding that the command failed; sigfox_comm itself is only the local handoff utility.

Payload is shorter than expected

Count hexadecimal characters, not visible groups or separators. Every two characters represent one byte, and the documented ceiling is 24 hexadecimal characters (12 bytes). Input beyond that length is truncated by the documented implementation.

sigfox_comm compared with related tooling

Tooling approach Primary purpose Hardware path Best fit
sigfox_comm Send a short payload Linux UART connected to a Sigfox modem Embedded applications and command-line tests
Sigfox development kit Get a first message running with packaged hardware Vendor development hardware and Sigfox Cloud Initial prototyping and onboarding
Sigfox SDR-dongle project Radio analysis and network-emulation workflows Software-defined radio RF experimentation, capture, and analysis rather than ordinary modem transmission

The separate SDR project documents configurable operation across 865–870 MHz and 902–928 MHz ranges. It is related analysis tooling, not a stated dependency of sigfox_comm. Select hardware and regional operation according to the modem, network, and radio regulations applicable to your deployment.

Quick Recap

Operational limits and evidence

  • The 12-byte maximum is the figure stated in the 2020 Hackster.io tutorial and should be treated as the documented limit for this implementation and Sigfox payload model.
  • No benchmark, release number, maintenance schedule, or production-readiness claim is established by the available project material.
  • Compatibility beyond the named WSSFM11R2D example is not documented as a complete matrix; test a different modem against its serial protocol and hardware requirements before deployment.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.