MicroModem, For Data Transmission Explorations

modemThem kids with those Arduinos don’t know what they’re missing. A serial connection is just too easy, and there’s so much fun to be had with low bandwidth modems. [Mark] made the MicroModem with this in mind. It’s a 1200 baud AFSK modem, capable of APRS, TCP/IP over SLIP, mesh network experimentations, and even long-range radio communication.

As the MicroModem is designed to be an introduction to digital wireless communication, it’s an extremely simple build using only 17 components on a board compatible with the Microduino. The software is built around something called MinimalProtocol1, a protocol that will be received by all other listening stations, features error correction, and automatic data compression. There’s also the ability to send TCP/IP over the link, which allowed [Mark] to load up our retro site at a blistering 1200 bps.

The code is extremely well documented, as seen on the Github for this project, with board files and even breadboard layouts included. [Mark] has three PCBs of his prototype left over, and he’s willing to give those out to other Hackaday readers who would like to give his modem a shot.

24 thoughts on “MicroModem, For Data Transmission Explorations

    1. Because it’s very difficult to get speeds higher than that over narrow and noisy RF channels. You could probably go much higher over an analog phone line, or a direct wire connection, but since I wanted this to work with more or less any kind of radio out there, the low speed was chosen :)

    2. If you ignore FEC for the moment, to keep things simple.
      The sample rate is 9600 samples per second
      1200 baud is just 8 samples per tone!
      The two tones, 1 is at 1200Hz and 0 is at 2200Hz

      1. Exactly, and when the lowest tone is 1200 Hz, we need those 8 samples for the demodulator to accurately discern whether it is reading a 1 or a 0. Or to say it in another way, you can only fit a 1200Hz tone 1200 times in a second, hence the 1200 baud rate. That was a lot of 1200 in one sentence!

  1. Just picking apart the bits he finds fun is the most interesting. Speaker as a probe is interesting. It is more interesting as a logic probe. The use of the heatshrink library is verry intersting to me as I find playing around with un-encrypted ssh at 1200 bps on ax.25 fun, a better compression method makes more fun.

  2. Let’s put lasers on this thing !
    Or use it between graphics calculators through the serial port to communicate in class.
    Nice build.

  3. This project would be a great fit for High altitude balloon projects, or model rocket telemetry. You don’t need gobs of bandwidth for either of those, and cell, NRF chips, or Zigbee dont have the range capability for this kind of stuff. The only other options are costly rf modem modules, and even then, they don’t have that great of range either most of the time. Definitely going on my bucket list of things to try or leverage in the future! My only beef is using BERtos libs to build it, but that could be worked around too I suppose if one wanted to put forth the effort… Great project!

    1. Yeah, I also would like to liberate it entirely from the BertOS libraries, which is definitely within reasonable reach, and is on my todo for this project. When I have another extended break from work, I will probably take a coding-vacation to do that :)

    2. Actually I have put in that effort now, and there’s an early version completely free of BertOS libs available over at the forum on my site :)

  4. I would like to try out one of these boards too. I work with things directly related to this so my coworkers would find this interesting as well.

  5. I would like to try out one of these boards too. I work with things directly related to this so my coworkers would find this interesting as well.

    Edit: Didn’t know it included my name.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s