User Tools

Site Tools


packet:mmdvm-tnc

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
packet:mmdvm-tnc [2023/10/08 12:43] – [Building and flashing from source (hard(ish) mode)] m0ltepacket:mmdvm-tnc [2024/04/14 11:26] (current) – [Testing notes] m0lte
Line 14: Line 14:
 ===== Preparation ===== ===== Preparation =====
  
-Burn Raspberry Pi OS Lite (tested on 32 bit) to a micro SD, boot it+Tested on 32 bit Bullseye Raspi OS
  
-`sudo raspi-config→ interfaces → serial shell disabled, serial port enabled+Verified to NOT work on 64 bit 
 + 
 +Verified to NOT work on Bookworm, only Bullseye, due to /sys/class/gpio/export deprecation 
 + 
 +Burn Raspberry Pi OS Bullseye 32 bit Lite to a micro SD, boot it 
 + 
 +''sudo raspi-config'' → interface options → serial port → serial shell disabled, serial port enabled
  
 Then: Then:
Line 26: Line 32:
  
 # Fetch the flashing tool # Fetch the flashing tool
-curl -OL https://www.bi7jta.org/files/MMDVM_Firmware/repeater_HAT/stm32flashV5+curl -OLs https://www.bi7jta.org/files/MMDVM_Firmware/repeater_HAT/stm32flashV5
 chmod +x stm32flashV5 chmod +x stm32flashV5
-</code> 
  
-===== Flashing from the web ===== +sudo reboot
- +
-Unplug the board from the header +
- +
-Run the following: +
- +
-<code> +
-curl -O https://mmdvm-tnc.s3.eu-west-2.amazonaws.com/mmdvm-f4-simplex.hex +
-while ! sudo ./stm32flashV5 -v -w mmdvm-f4-simplex.hex -R -i 20,-21,21:-20,-21,21 /dev/ttyAMA0; do echo Again; done+
 </code> </code>
  
-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 (hard(ish) mode) =====+
  
 <code> <code>
Line 65: Line 57:
  
 <code> <code>
-wget -q https://www.bi7jta.org/files/MMDVM_Firmware/repeater_HAT/stm32flashV5 +mv ../stm32flashV5 . 
-chmod +x stm32flashV5 +while ! sudo ./stm32flashV5 -v -w bin/mmdvm_f4.hex -R -i 20,-21,21:-20,-21,21 /dev/ttyAMA0; do echo Again; done
-sudo ./stm32flashV5 -v -w bin/mmdvm_f4.hex -R -i 20,-21,21:-20,-21,21 /dev/ttyAMA0+
 </code> </code>
 +
 +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 96: Line 92:
 <code> <code>
 sudo python3 kiss-ax25-ui-batch.py /dev/ttyAMA0 115200 A0AAA B0BBB 100 "Hello world" 100 1 sudo python3 kiss-ax25-ui-batch.py /dev/ttyAMA0 115200 A0AAA B0BBB 100 "Hello world" 100 1
 +</code>
 +
 +This will listen:
 +
 +<code>
 +sudo python3 kiss-listen.py /dev/ttyAMA0 115200
 </code> </code>
  
 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
 +
 +<code>
 +diff --git a/kiss-ax25-ui-batch.py b/kiss-ax25-ui-batch.py
 +index 11b3a75..2ebcbf8 100644
 +--- a/kiss-ax25-ui-batch.py
 ++++ b/kiss-ax25-ui-batch.py
 +@@ -120,6 +120,11 @@ TFESC = int(0xDD).to_bytes(1,'big')
 + TFEND = int(0xDC).to_bytes(1,'big')
 + KISS_PORT = 0
 + KISS_COMMAND = 0
 ++
 ++kiss_output_frame = bytearray(FEND) + bytearray(int(0x02).to_bytes(1,'big')) + bytearray(int(0xFF).to_bytes(1,'big')) + bytearray(FEND)
 ++#print(kiss_output_frame)
 ++port.write(kiss_output_frame)
 ++
 + KISS_TYPE_ID = (KISS_PORT * 16) + KISS_COMMAND
 + KISS_TYPE_ID = KISS_TYPE_ID.to_bytes(1,'big')
 +
 +@@ -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)
 +-       time.sleep(frame_interval)
 ++       time.sleep(frame_interval/10)
 + print('\nDone.')
 + GracefulExit(port, 0)
 +</code>
 ===== Serial debugging ===== ===== Serial debugging =====
  
packet/mmdvm-tnc.1696768986.txt.gz · Last modified: 2023/10/08 12:43 by m0lte