Hey! Take a look at this quickstart guide if you want to build MicroModem!
You can also use MicroModem for APRS, but the master branch doesn’t use the AX.25 protocol,
so check out the AX25 branch on GitHub for an example of AX.25/APRS! There’s now a much more functional APRS-dedicated fork! Yay!
MicroModem is an educational and open-source implementation of a 1200-baud AFSK modem on the popular ATmega328p microprocessor. This makes it compatible with all Arduino boards and spinoffs using the 328p (for example the Uno, and the Microduino). Apart from a 328pBased board, you will also need to assemble 17 common electronic components to build the modem. When done, it can be used for things like ham radio APRS, TCP/IP over SLIP, experimentation with mesh-networks, long-range wireless communication with sensors (Or friends! Or strangers!).
The included “tinkering-oriented” protocol (dubbed MinimalProtocol1) let’s you send (broadcast) data that will be received by all other listening stations. MP1 also features forward error correction (12,8-hamming code), 12-byte interleaving, and automatic data compression (although not available in TCP/IP mode, due to lack of memory). It should be easy to expand the protocol to support addressing and routing, encryption, or whatever you find useful. If you have a cool idea but aren’t sure how to go about it, let me know and I will try and help!
Don’t expect live video-streaming and rocking out to DI.fm over this though. This is only 1.2 kilobits per second. Loading Hackaday Retro took around 15 minutes when I tried. If you’re not using TCP/IP you will have better throughput than that though. But TCP/IP works fine for very simple synchroneous-style connections (like: connect to server -> send request -> wait for response -> send another request -> receive another response -> disconnect).
I designed MicroModem to be as simple an introduction to digital wireless communication as possible, while still being very flexible and functional. Micromodem will let you learn the basics in how to build digital wireless systems from scratch, and also offer an interesting platform to build further projects on. I hope you will find it educational and useful!
The source code for the modem firmware is very heavily commented, and should be easy to understand. In fact there is more comments than actual code most places. Some of the concepts can be a little daunting just from looking at the code, but it is actually all quite simple, when taken one step at a time. If you have any questions, drop me a comment here and I will try to help out.
All the code, schematics, PCB layout and STL/OpenSCAD files for 3D-printing a case is available on my GitHub page. If you want to build it, please read this quickstart guide. If you have any questions feel free to comment here or email me!