New hardware

I’ve been hard at work during the last while making a new version of MicroModem. Particularly I wasn’t too fond with the consistency in quality of the Microduinos I used as the processing board for the modems, and also very tired of Microduino occasionally using fake FTDI chips, which causes all kinds of headaches. So I set out to create a new version of MicroModem, with everything integrated on one board. This allows me to source all the components, including the ATmega328p and the FTDI USB chips myself, thus ensuring that the quality of the modems are top notch every time. Sourcing the Microduinos was also a bit of a problem because of the very long and irregular lead times when ordering from them, which made it more or less impossible to manage stock, when I only do as small production runs as I do. Don’t get me wrong, I really like Microduinos, but they’re just not the best for this application :)

mmprotos-h

Today I’m happy to present a sneak preview of the next version of MicoModem! Please note that these boards are prototypes, and do not represent the quality of the final product. The final modems will come on a really nice black PCB with gold plated pads :) Functionally, the hardware is almost the same as before, featuring an ATmega328p, USB serial connection, the modem circuitry and adjustable output level. The biggest change is that the demodulator ADC is now referenced from a regulated 3.3v supply instead of the 5V (rather noisy) bus. This gives much better receive sensitivity and performance, especially in noisy conditions. I should also mention that they are fully Arduino compatible, so you can reprogram them straight from the Arduino IDE over a USB connection! More on why this is awesome in the next section…

Here’s a photo of the MicroModem prototype compared to an USB thumb drive. The dimensions of the board are 29 x 49 mm, so it’s pretty compact! It’s actually only 66% of the total footprint of the Microduino-based version.

mmproto-thumb

New software

The other big update is that I am in the process of a very big re-write of the entire MicroModem and MicroAPRS firmwares. I want to move away from the BertOS foundation of the project, to better be able to optimise resource usage, and make the software more platform-independent. BertOS is awesome, but it is stupidly difficult to make it target multiple different processors. In the future, a firmware like MicroAPRS should be able to easily support many different processors. which brings us to the next point…

Arduino compatibility! I’m really excited about this! Concurrently with the release of the new modems I will release an Arduino library, that will make it very easy to create your own MicroModem firmware straight in the Arduino IDE. Want to make your own APRS tracker? How about something like this:

#import <MicroAPRS.h>
#import <GPS.h>

APRS myAprs;
GPS myGPS(Serial);

void setup() {
 APRS_init(myAPRS);
 GPS.begin(9600);
 
myAprs.setCallsign("OZ7TMD");
 myAprs.setSSID(1);
}

// Transmit a simple beacon every 30 seconds
void loop() {
 GPS.parse(GPS.lastNMEA());
 myAprs.setLat(GPS.lat);
 myAprs.setLon(GPS.lon);
 myAprs.transmitLocation("MicroAPRS Tracker")
 delay(30000);
}

// This function gets called by the APRS
// library whenever a packet is received
void aprsCallback(APRSPacket *packet) {
 Serial.print(packet.data);
}

Plug your MicroModem into your computer, hit upload in the Arduino IDE, and you’re good to go! The MicroAPRS functions will run “in the background” of your sketch taking care of the heavy lifting, leaving you to implement the stuff you care about very easily! I think this will be a really great thing, both for people who buy a modem from me, but also for people who want to make their own. It will be possible for someone with only minimal experience to build and program their own AFSK / AX.25 / APRS modem! And if you buy the modem from me, you get a professional quality modem, that is totally open source and the most flexible and customisable one currently on the market :)

Backward-compatibility

The new firmwares and Arduino libraries will of course be backward-compatible with the previous MicroModem versions! There will be a hardware detect feature in the library and firmwares that checks for hardware version and adjusts some configurations accordingly.

11 thoughts on “Prototype Preview

  1. Looks to be an interesting step forward from the current modem.

    Do you plan to break out other pins from the 328P for use as well – for example – to control say a Dorji DRA818V radio Module, and also a GPS – giving the possibility of a very small, all-in one APRS tracker ?

    What about a lower-voltage version – something that could run off a single Lipo…

    I await with interest the release of this board!

    1. Hi Bob!
      On the current board revision, there is a number of pins broken out. They are the UART, SPI and I2C interface pins (RX, TX, MOSI, MISO, SCLK and SDA, SCL), corresponding to Arduino pins D0, D1, D11, D12, D13 and A4, A5. The PTT trigger pin is also broken out directly on the radio connector, so you get both the MOSFET PTT trigger, and the “raw” logic pin, which corresponds to Arduino pin D3.

      Boards will be ready very soon, just couldn’t stop doing small revisions to the design you know… One can keep on doing this for ever ;)

  2. HI, I am also interested in these cards. and as Bob says make it into a tracker would be really good.

    Looking forward to seeing when you release it and price..

    Happy Holidays!!

  3. Hi Mark,
    Can I use Micromodem for APRS Digi? And where are you from, because if is work for APRS Digi I want to buy , and can you shipping to Serbia?
    Thanks

    1. Hi Den!
      I might make a tutorial at some point on how to connect a GPS, but right now I’m working on other things regarding to MicroAPRS. You should be able to figure it out though :) Basically you just need to get the data from the GPS over the serial port and set the correct values via the LibAPRS library functions. There’s some examples in the library of how to do this. You can also ask in the forum if you get stuck!

Leave a Reply

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

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>