Openmodem User Manual: Device Overview
Openmodem User Manual: Device Overview
Thank you very much for buying this product! If you have any questions,
suggestions, criticisms or good ideas, I’d love to hear from you! This guide
provides a few pointers on getting started with OpenModem, how to connect
a radio or other device to the modem, and how to configure it.
Device Overview
Please have a look at the following chart of the internals of OpenModem and
familiarise yourself with the different ports, connectors and indicators.
Multi-purpose
LEDs
5V and Ground
SPI Port
External Reset UART0
UART1
External Power
User I/O 1-4
USB Connector
(Mini-B)
Specifications
• AFSK modem supporting 300, 1200 or 2400 baud operation.
• 16 kilobytes of RAM
• Mini-USB connector
• Fully programmable
• Arduino compatible
By default, the serial settings are 115200 baud, 8N1. No UART flow control
is used. The serial settings can be changed with the configuration program.
Configuring OpenModem
The device is useable out of the box, but can be further configured to your
needs by using the OpenModem Configuration Utility. Please visit the
OpenModem page at https://unsigned.io/openmodem to download the
latest version of the configuration program for Mac, Linux or Windows.
Multi-purpose LEDs
The modem is equipped with four multi-purpose LEDs at the front of the
device. The LEDs are used to signify a variety of device states and events.
Pattern Description
After powering the device:
Device is ready and all health checks and
Green LED is constantly lit device verification succeeded.
All LEDs flash in sequence 2 times Encryption key loaded, and AES-128
encryption is now enabled.
Green and red LEDs blink slowly in Warning indicator, modem operation halted.
an alternating pattern Check error codes sent over serial connection.
Connecting a Radio
To connect the modem to your radio, or other transmission device, use the
4-pole 3.5mm TRRS jack connector on the back of the modem. Any 4-pole
3.5mm jack with a normal cable will do. The pinout of the port is as follows:
Ring 1 PTT
Or alternatively, use the pin connectors broken out directly on the modem
board, right next to the jack connector. The board pin connectors are labeled
G, AI, P and AO for Ground, Analog Input, PTT and Analog Output.
If your radio does not have a dedicated DATA , TNC or MODEM connector, you
can often get away with connecting the modem directly to the radio’s
microphone input, speaker output, and PTT line.
The input and output gain levels of OpenModem are set to sensible defaults,
but radios vary a lot, so you might need to change the levels using the
configuration program. When the configuration program is connected to the
modem, go to the Audio part of the program, and tune your radio to a
frequency with AFSK packet activity. You should be able to see the incoming
packets as peaks on the rolling audio meter. A blue bar means that an
incoming packet was successfully decoded. Red means the audio is
clipping. Tune the audio levels until you get satisfactory results.
If you want to make your own firmware for OpenModem, it can be a good
idea to use the default firmware as a starting point, since a lot of the setup
required to use OpenModem, and all the hardware drivers, are already
written for you. The source code for the firmware is available under GPL-3.0
and can be found at https://github.com/markqvist/OpenModem.
If you want to interface directly with the modem from your own programs or
a serial console, please refer to the protocol reference specified later in this
manual.
Getting Help
If you have any questions regarding OpenModem, please do not hesitate to
send me an email at [email protected]. You can also register for the forums
at unsigned.io where other users might offer pointers and advice.
USB and Serial Protocol
Communications to and from the device uses KISS framing with the default
KISS command set, plus some extra commands to control things that were
not in the original KISS command set.
OpenModem also does not use HDLC ports in the command byte, and as
such uses the full 8 bits of the command byte is available for command
specification. Please see table below for supported commands.
CSMA Slot Time 0x03 Get or set the CSMA Slot Time parameter
Insert the card into your computer, and run the OpenModem Configuration
program. Select the Cryptography tab, and select the SD-card from the
drop-down box. Press the Generate button in the Private Key section to
generate a new AES-128 key and install it onto the card.
If the key is successfully installed, the AES-128 Encryption toggle will switch
on, and the Private Key section will show AES-128 Key Installed.
You can now insert the SD card into the modem. If the modem can read the
SD card, it will immediately load the key and start encrypting all outgoing
traffic, and automatically decrypt all incoming traffic. To signal that
encryption is enabled, the modem will flash all LEDs sequentially two times.
This will happen every time the modem is started, to verify encryption is on.
When encryption has been enabled, an encryption lock will be set in the
EEPROM of the modem. If the modem is not able to load the encryption key
from the SD card at startup, or if the SD card is removed during operation,
the modem will stop operating, and flash an error signal.
To disable encryption, you must insert the SD card into a computer, run the
configuration program and manually disable the encryption checkbox. You
can then insert the SD card back into the modem, which will unlock and
disable encryption.
Sincere thanks to
You, for supporting OpenModem,
and through that all of my
open-source work