Added readme
This commit is contained in:
parent
98d2093485
commit
c1967d5863
21
README.md
21
README.md
|
@ -1,2 +1,23 @@
|
||||||
OpenModem
|
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.
|
7
device.h
7
device.h
|
@ -34,7 +34,7 @@
|
||||||
#define CONFIG_BENCHMARK_MODE false
|
#define CONFIG_BENCHMARK_MODE false
|
||||||
|
|
||||||
// CSMA Settings
|
// 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_P_DEFAULT 255
|
||||||
#define CONFIG_CSMA_SLOTTIME_DEFAULT 20
|
#define CONFIG_CSMA_SLOTTIME_DEFAULT 20
|
||||||
|
|
||||||
|
@ -42,7 +42,10 @@
|
||||||
#define AX25_MAX_FRAME_LEN 611
|
#define AX25_MAX_FRAME_LEN 611
|
||||||
#define AX25_MAX_PAYLOAD 576
|
#define AX25_MAX_PAYLOAD 576
|
||||||
#define AX25_MIN_PAYLOAD 2
|
#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
|
// Packet settings
|
||||||
#define CONFIG_PASSALL false
|
#define CONFIG_PASSALL false
|
||||||
|
|
|
@ -9,7 +9,6 @@
|
||||||
#include "util/FIFO.h"
|
#include "util/FIFO.h"
|
||||||
#include "protocol/HDLC.h"
|
#include "protocol/HDLC.h"
|
||||||
|
|
||||||
// TODO: Optimise RAM by moving this to progmem
|
|
||||||
#define SIN_LEN 512
|
#define SIN_LEN 512
|
||||||
static const uint8_t sine_table[] =
|
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
|
#define PHASE_BITS 8 // Sub-sample phase counter resolution
|
||||||
#endif
|
#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
|
#define PHASE_MAX (ADC_SAMPLESPERBIT * PHASE_BITS) // Size of our phase counter
|
||||||
|
|
Loading…
Reference in New Issue