packet:mmdvm-tnc
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| packet:mmdvm-tnc [2023/10/08 09:57] – [Flashing from the web] m0lte | packet:mmdvm-tnc [2024/04/14 11:26] (current) – [Testing notes] m0lte | ||
|---|---|---|---|
| Line 14: | Line 14: | ||
| ===== Preparation ===== | ===== Preparation ===== | ||
| - | Burn Raspberry Pi OS Lite (tested | + | Tested |
| - | `sudo raspi-config` → interfaces | + | Verified to NOT work on 64 bit |
| + | |||
| + | Verified to NOT work on Bookworm, only Bullseye, due to / | ||
| + | |||
| + | Burn Raspberry Pi OS Bullseye 32 bit Lite to a micro SD, boot it | ||
| + | |||
| + | '' | ||
| Then: | Then: | ||
| Line 26: | Line 32: | ||
| # Fetch the flashing tool | # Fetch the flashing tool | ||
| - | curl -OL https:// | + | curl -OLs https:// |
| chmod +x stm32flashV5 | chmod +x stm32flashV5 | ||
| - | </ | ||
| - | ===== Flashing from the web ===== | + | sudo reboot |
| - | + | ||
| - | Unplug the board from the header | + | |
| - | + | ||
| - | Run the following: | + | |
| - | + | ||
| - | < | + | |
| - | curl -O https:// | + | |
| - | while ! sudo ./ | + | |
| </ | </ | ||
| - | Carefully but swiftly (!) plug the board into the header | + | ===== Building and flashing from source ===== |
| - | + | ||
| - | This is required because of some capacitor in the wrong charge state and there may be some workaround coming. | + | |
| - | + | ||
| - | + | ||
| - | ===== Building and flashing from source | + | |
| < | < | ||
| Line 56: | Line 48: | ||
| </ | </ | ||
| - | Make Config.h look like this: | + | Run: |
| - | + | ||
| - | < | + | |
| - | #define CONFIG_H | + | |
| - | #define EXTERNAL_OSC 12000000 | + | |
| - | #define STM32F4_NUCLEO_MORPHO_HEADER | + | |
| - | #define SERIAL_SPEED | + | |
| - | + | ||
| - | // Select the initial packet mode | + | |
| - | // 1 = 1200 bps AFSK AX.25 | + | |
| - | // 2 = 9600 bps C4FSK IL2P | + | |
| - | #define INITIAL_MODE | + | |
| - | + | ||
| - | // TX Delay in milliseconds | + | |
| - | #define TX_DELAY | + | |
| - | + | ||
| - | // P-Persistence in x/255 | + | |
| - | #define P_PERSISTENCE | + | |
| - | + | ||
| - | // Slot Time in milliseconds | + | |
| - | #define SLOT_TIME | + | |
| - | + | ||
| - | // Set Duplex, 1 for full duplex, 0 for simplex | + | |
| - | #define DUPLEX | + | |
| - | + | ||
| - | // Select use of serial debugging | + | |
| - | #define SERIAL_DEBUGGING | + | |
| - | + | ||
| - | // Baud rate for serial debugging. | + | |
| - | #define DEBUGGING_SPEED 38400 | + | |
| - | + | ||
| - | // Set the receive level (out of 255) | + | |
| - | #define RX_LEVEL | + | |
| - | + | ||
| - | // Set the mode 1 transmit level (out of 255) | + | |
| - | #define MODE1_TX_LEVEL | + | |
| - | + | ||
| - | // Set the mode 2 transmit level (out of 255) | + | |
| - | #define MODE2_TX_LEVEL | + | |
| - | + | ||
| - | // Use pins to output the current mode via LEDs | + | |
| - | #define MODE_LEDS | + | |
| - | </ | + | |
| - | + | ||
| - | then run: | + | |
| < | < | ||
| Line 109: | Line 57: | ||
| < | < | ||
| - | wget -q https://www.bi7jta.org/ | + | mv ../ |
| - | chmod +x stm32flashV5 | + | while ! sudo ./ |
| - | sudo ./ | + | |
| </ | </ | ||
| + | |||
| + | Carefully but swiftly (!) plug the board into the header. If it fails, unplug the board for a while and leave it before trying again later. A minute or two should be fine. | ||
| + | |||
| + | This is required because of some capacitor in the wrong charge state and there may be some workaround coming. | ||
| + | |||
| ===== Testing notes ===== | ===== Testing notes ===== | ||
| Line 140: | Line 92: | ||
| < | < | ||
| sudo python3 kiss-ax25-ui-batch.py / | sudo python3 kiss-ax25-ui-batch.py / | ||
| + | </ | ||
| + | |||
| + | This will listen: | ||
| + | |||
| + | < | ||
| + | sudo python3 kiss-listen.py / | ||
| </ | </ | ||
| sudo required for this unless your user is in the dialout group. | sudo required for this unless your user is in the dialout group. | ||
| + | |||
| + | This diff hacks kiss-ax25-ui-batch.py to: | ||
| + | - set persist=255 | ||
| + | - divide supplied time interval by 10 | ||
| + | |||
| + | < | ||
| + | diff --git a/ | ||
| + | index 11b3a75..2ebcbf8 100644 | ||
| + | --- a/ | ||
| + | +++ b/ | ||
| + | @@ -120,6 +120,11 @@ TFESC = int(0xDD).to_bytes(1,' | ||
| + | TFEND = int(0xDC).to_bytes(1,' | ||
| + | | ||
| + | | ||
| + | + | ||
| + | +kiss_output_frame = bytearray(FEND) + bytearray(int(0x02).to_bytes(1,' | ||
| + | +# | ||
| + | +port.write(kiss_output_frame) | ||
| + | + | ||
| + | | ||
| + | | ||
| + | |||
| + | @@ -191,6 +196,6 @@ for i in range(0, frame_count): | ||
| + | # print(kiss_output_frame) | ||
| + | frame_time = len(kiss_output_frame) * 10 / int(sys.argv[2]) | ||
| + | port.write(kiss_output_frame) | ||
| + | - | ||
| + | + | ||
| + | | ||
| + | | ||
| + | </ | ||
| ===== Serial debugging ===== | ===== Serial debugging ===== | ||
packet/mmdvm-tnc.1696759077.txt.gz · Last modified: by m0lte
