Added readme

This commit is contained in:
Mark Qvist 2020-01-26 12:59:40 +01:00
parent 98d2093485
commit c1967d5863
3 changed files with 27 additions and 4 deletions

View File

@ -1,2 +1,23 @@
OpenModem
==========
OpenModem is an open source firmware implementation of a AFSK modem supporting 300, 1200 and 2400 baud operation, suitable for communication over a wide variety of analogue mediums, both radio and wired. The firmware is designed for and compatible with [unsigned.io's OpenModem](https://unsigned.io/openmodem), but can be used on any similar build.
Complete modems are available from [the unsigned.io shop](http://unsigned.io/shop), or can be build from scratch by referring to the schematics and documentation on the [OpenModem page](https://unsigned.io/openmodem)
## A few highlights
- 300, 1200 and 2400 baud operation
- Full KISS TNC compatibility
- Secure in-modem AES-128 encryption
- SD card support
- Packet logging in PCAP format (WireShark compatible)
- Digitally adjustable input and output gain control
- Easy to use graphical config utility
- Supports standard GPS and bluetooth modules
- Supports large packets, 576 byte MTU
- Very large in-modem packet queue
## Usage
Please refer to the manual and instructions posted at the [OpenModem page](https://unsigned.io/openmodem). The default serial connection settings are 115200 baud, 8N1. For configuring the modem, please see the OpenModem Config Utility.

View File

@ -34,7 +34,7 @@
#define CONFIG_BENCHMARK_MODE false
// CSMA Settings
#define CONFIG_FULL_DUPLEX false // TODO: Actually implement fdx
#define CONFIG_FULL_DUPLEX false
#define CONFIG_CSMA_P_DEFAULT 255
#define CONFIG_CSMA_SLOTTIME_DEFAULT 20
@ -42,7 +42,10 @@
#define AX25_MAX_FRAME_LEN 611
#define AX25_MAX_PAYLOAD 576
#define AX25_MIN_PAYLOAD 2
#define AX25_ENCRYPTED_MIN_LENGTH 51 // Padding byte + IV + 1 Block + HMAC + CRC
#define AX25_ENCRYPTED_MIN_LENGTH 51
// The minimum packet length of an AES-128
// encrypted packet is equal to:
// padding byte + IV + 1 Block + HMAC + CRC
// Packet settings
#define CONFIG_PASSALL false

View File

@ -9,7 +9,6 @@
#include "util/FIFO.h"
#include "protocol/HDLC.h"
// TODO: Optimise RAM by moving this to progmem
#define SIN_LEN 512
static const uint8_t sine_table[] =
{
@ -98,7 +97,7 @@ inline static uint8_t sinSample(uint16_t i) {
#define PHASE_BITS 8 // Sub-sample phase counter resolution
#endif
#define PHASE_INC 1 // Nudge by above resolution for each adjustment
#define PHASE_INC 1 // Nudge by above resolution for each adjustment
#define PHASE_MAX (ADC_SAMPLESPERBIT * PHASE_BITS) // Size of our phase counter