What is it?

OpenModem is a very flexible and open packet radio modem and TNC. It is built on the proven reliability and performance of the MicroModem platform, but updated with all-round better components, a better DAC and ADC, a faster processor, and a much more powerful firmware, capable of many features that were simply not possible in the limited space of the previous iteration. New expansion ports for GPS, Bluetooth and SD cards have also been added.

OpenModem supports both standard 1200-baud operation, but also 300-baud operation for HF packet, and experimental 2400-baud operation.

OpenModem can handle large packets. With its MTU of 576 bytes and very large packet buffer, it can handle practically any packet radio software in existence. It also makes it possible to use the modem as a generic IP network interface in Linux.

OpenModem can be powered directly from wide range of supplies, so now you can operate an OpenModem from 12v lead-acid batteries, LiPo-batteries, USB power, a DC power supply and much more. The case has all connectors available on the back, and includes slots for mounting an SMA connector for external GPS-antennas, and a AUX-port for user I/O.

It's also easier than ever to connect your radio, with the onboard 4-pole standard 3.5mm jack connector (the black connector to the right of the USB connector in the above photo).

An improved PTT circuit lets you select the PTT style of your radio with an onboard jumper switch, and can match virtually any radio - no more fiddling around with cumbersome external PTT circuits, even for handhelds that use in-line PTT switching like some Yaesu handhelds.

And of course, it is still 100% Open Source, both hardware and software. The only one of its kind on the market today, OpenModem lets you inspect, learn from and modify any part of its design and workings, both hardware and software, and everything is well documented.

While OpenModem works out of the box as a powerful modem and KISS-compatible TNC, it is also fully Arduino-compatible. That means you can easily reprogram the modem from the Arduino IDE. Take a look at this page for info on easily adding the unsigned.io boards to your Arduino IDE.

All the features and settings of the modem can be configured through an intuitive and simple graphical desktop application, that works on both Linux, Mac and Windows.

Optionally, OpenModem supports strong AES-128 encryption directly in-modem for private communication links. That's a first for a packet-radio TNC, and it's also the only open-source radio modem in existence that supports strong encryption. It's easy to enable and configure encryption with the configuration program.

OpenModem also adds support for logging packet radio traffic to an SD card in industry-standard PCAP format, so now you can log and inspect AX.25 traffic in WireShark.

In short, OpenModem is an incredibly flexible and well-performing radio modem and TNC. But it's also a platform for building, experimenting and learning about data transmission and packet radio.

It's also a perfect modem for running Reticulum over 1200-baud packet radio.

Can I buy it?

Yes! You can purchase it directly from my shop. I ship worldwide, and you will receive your OpenModem completely assembled, in a neat and practical case, and ready to use.

You will need to supply your own USB-cable and a cable for connecting the modem to your radio or other equipment. If you don't have one already, see the "Connecting to a radio" section of the user manual for instructions.

Need something specific?

OpenModem is a very flexible platform, and I offer programming and system design services to create custom solutions. Just get in touch over email and let me know what you need.

Resources & Downloads


Here's a list of specifications for OpenModem. If you have any other questions regarding specs, just send me an email, or ask in a comment on this page.

  • ATmega1284p @ 20MHz (16KB RAM / 128KB flash)
  • Can be powered from a DC source of 5V to 16V
  • Fully KISS-compatible TNC
  • Adjustable input and output gain
  • User-friendly graphical configuration program
  • Low power consumption: ~31mAΒ at 5V
  • Large MTU of 576 bytes
  • Large packet buffer supports complex packet applications
  • Operating range: -20Β°C to 70Β°C (non-condensing)
  • Great demodulator performance, decodes ~900 packets from the TNC Test CD
  • Arduino compatible (You can program the board from the Arduino IDE, over USB)
  • Packet logging in WireShark-compatible format
  • Optional AES-128 encryption
  • Green / Red / Blue / Orange status LEDs for Status, Com, RX and TX
  • Connectors:
    • USB Mini-B (USB-powered)
    • 3.5mm TRRS jack for
      • Analog input
      • Analog output
      • PTT
      • Ground
    • MicroSD card slot
    • GPS expansion port
    • Bluetooth LE expansion port
    • Voltage input (5-18V)
    • Two ground pins
    • Regulated 5V output
    • SPI
    • Four general-purpose user I/O pins

31 thoughts on “OpenModem

  1. Hey,
    Would it possible to use the modem encrypt audio for secured speech? In may country it is legall to use encryption in walkie talkies.

    1. Not directly, but you could do it with some sort of program running on a computer that could pass the audio as a compressed data-stream over the modem (Have a look at “codec2”). Setting up OpenModem with AES-128 encryption would then encrypt the stream on the fly.

  2. Hi
    Does openmodem also work with VHF
    2 meter radios?
    And how much would the cost be in Euros to the Canadian Dollar and what would the shipping costs be to Canada as well.

    Thank you

    1. Yes, OpenModem works great with VHF radios. You can always try adding the modems you need to your basket on my shop and proceeding to the checkout step to get a total price for everything, including shipping, that way you can see the total cost shipped to Canada, and if you’re not happy with it, you can always just close the page and not complete the order πŸ™‚

      Kind regards,

  3. Hi, I was looking at your modems. I would like to share an internet connection from 1 laptop with internet to another laptop without internet, over radio. Is this possible with your modems, and could you explain how it is done?

    I would be using either 2 windows 10 laptops or 2 ubuntu 14 laptops. Or possibly 1 android device to another android device for low power off grid systems. It is something I have wanted to achieve for a while now so any pointers would be much appreciated even if it would be a slow connection.

    Best, Lewis.

    Sent from Yahoo Mail on Android

    1. Hi Lewis
      Yes, it is possible, but it will be very slow. So it is only practical for very basic stuff, but it works. You will have to use Linux computers as gateways (even a Raspberry Pi would work), but you could share the connection from a Linux computer to a Windows computer no problem. You can use my tncattach program to create a normal network interface on the Linux hosts, and then it’s just a matter of setting up routing through that network interface. I won’t cover the exact steps here, but you can google something like “linux internet sharing configuration” to find plenty of tutorials.

    1. Yes, as is stated in the specifications the modem decodes ~900 packets from the TNC Test CD test track πŸ™‚

  4. OK, how to set the configuration bit when burning the hex file? I have failed all the time. Thank you very much for your help. Thank you!


    Kind regards,


  5. Hi

    I have built your openmodem on the bread board, which can decode the weather station information from space. It’s great. How to send a digital message? What’s the format of the serial port? Thank you.

    Kind regards,

    1. Hi Rong
      Please download the manual in PDF format from this page, it includes all the details on the serial communication format.

      Kind regards,

      1. Thank you for your answer. I want to see a complete command line to send GPS signal. Thank you for your help.

        Kind regards,
        DE BD1LI – Rong

  6. Hi

    Thank you very much for your contribution. According to your help, I also made it successfully, but there is one problem that has not been solved. Each time I turn on the power, only 50% of the initialization is successful. When it is unsuccessful, TX (Orange) and COM (red) light up together and can’t work. I have to unplug the power and power up again, or power up again until the green LED lights up and start up successfully. Is there a solution? thank you!

    Kind regards,


  7. Hi
    I have a problem with the OpenModem that I bought from your store. I can transmit and I see audio levels in the Openmodem Configurations software, but it does not decode packets that I receive on an other transceiver.

    I installed the latest firmware 1.06 but this did not change the outcome. (I used the flash command from the repository for burning the firmware)

    I tried it with Squelch open and closed. I also used my FT-3D in proximity to my transceiver that is connected to the OpenModem. I am stuck which is why I came here for help. Do you have any hints what I can try to get it to decode packets.

    I am not sure if I made a mistake while soldering the cable but as I can transmit and see audiolevels I assume the cable is correct for my FT-2980.

    Best regards

    1. Hi Cristoph

      First the stupid question, just to make sure πŸ˜‰ You did flash the 1200 baud firmware, right?

      If that is the case, I assume you have made a cable that takes the radios audio output from the rear “External Spk.” port on the radio, and feeds audio into the radio via the RJ45 mic jack, on the front, correct?

      What levels are you seeing the audio come in at in the config utility? Is it peaking at full height (and colored red)? Ideally, it should be somewhere around 2/3rds of the way up on the graph.

      Can you download this file, and play it back into the modem from a computer, and let me know if it decodes: https://upload.wikimedia.org/wikipedia/commons/2/27/AFSK_1200_baud.ogg

      If everything fails, and it turns out there is something wrong with the modem, I will of course replace it, but let’s try some troubleshooting first πŸ™‚

      1. Any thoughts on QPSK with FEC for 2400baud? I’ve been kicking an SDR idea around for a while but it always seems to end up being the expendable project in my free time.

        I conceived of QPSK for double the data rate in about the same bandwidth of PSK, with three-byte FEC (Golay [24,12,8]) for some resiliency using that extra bandwidth (necessitates sending 6 bytes for 3 bytes of data). Using some methods learned from an old satellite guy, I conceived of doing an ACK or NAK with packet-level results for a burst, to allow the receiver to reply with what codes did not receive correctly, and allow the transmitter to only resend the previously failed data in a smaller packet (better temporal resilience).

        1. It should be possible, and I have been wanting to add something like that to OpenModem in one form or another for a while. Recently most of my time has been spend working on the RNode transceiver platform and the Reticulum stack, though. There is also a few other essential additions that the openmodem firmware, such as on-device digipeating and message storage, but I will get to it at some point.

          1. I think AX.25 has some of the light retry stuff described above, but I haven’t read up on the full implementation yet, maybe adding some more of the existing protocol(s) in addition to going your own way – I might have some cycles in the next two months to take a look at it if you’d like a a novice coder to mess up your codebase ;-). I am looking also at some of TI’s integrated RF-MCUs (like their CC1312R), and want to take a stab at adapting this TNC-concept to their dime-sized all-up radio solution. They have a dedicated Cortex-M0 for the baseband+MODEM attached to a dual core Cortex-M4+ which can run the TNC, plus the M4+ has accelerators, I2S for external audio CODECs and UART for other baseband radios like LoRa.

        2. Have you considered using either C4FM or CQPSK, since both will give 4 symbols and can fit in the audio bandwidth of a standard FM radio?

  8. Hi Mark, i cant find gerber files on github page, do you have it somewhere i can get it ?

    1. Hi Bosko
      I don’t provide production ready Gerber files for my devices. If you want to build your own, you will have to do your own routing, which is pretty easy from the provided schematics. Or you can prototype it on a breadboard.

  9. Hi again, can this modem generate and detect the audio tones wirectly from the MCU or does it need the extra chips for the tones?

    1. You can take a look at the schematic for the exact setup. OpenModem uses a DAC chip for output and a simple biasing circuit stage before feeding the signal to the built-in ADC of the MCU.

  10. Hi Mark,

    as you can not provide a ready to use device is it possible to buy the circuit board and the housing?

    Thanks for your help,


    1. If you have a way of sourcing the components yourself, I can sell you the bare PCBs and casings, no problem. But I think it will be near impossible. The biggest problem is the ATmega1284p-AU microcontroller IC that the modem uses. Lead time is currently more than a year. It is insane. And scalpers are charging 6x markup for chips you will have no guarantee on whether they are fake or even work. So if you have some secret source of 1284p MCUs, and you can set me up, I am ready to buy πŸ˜‰

  11. Hi Mark,
    I have been following your blog for a long time, I would like to congratulate you for what you do. We all know about the problem with ATmega1284 (price and availability), so I want to ask you why you are not migrating the project to something available on the market … say SAMD21 or something like that.

    1. Thank you for the kind words! That is exactly what I am doing πŸ˜‰ I am currently in the process of redesigning the hardware and firmware to a platform with better chip availability. I will hopefully have some news on that soon.

Leave a Reply

Your email address will not be published. Required fields are marked *