Firmware for the Mobilinkd TNC3. STM32L433-based Bluetooth/LE KISS TNC.
 
 
 
Go to file
Mobilinkd LLC 7575473ba8
Merge pull request #14 from rriggs/patch-1
The yellow and blue buttons are on the other left.
2023-04-17 20:32:10 -05:00
.settings Update C++ language settings for new compiler. 2020-12-09 19:19:46 -06:00
Drivers Fix USB connection/battery charging issue. 2019-01-13 13:17:54 -06:00
Inc Use a ping-pong buffer for USB RX. Simplify code and improve flow control. 2020-07-04 14:45:20 -05:00
Middlewares Update STM32L4 HAL library to version 1.13.0. 2018-10-28 20:15:55 -05:00
Src Use a ping-pong buffer for USB RX. Simplify code and improve flow control. 2020-07-04 14:45:20 -05:00
TNC Fix some timeout issues in the serial code. Make it easier to share code between TNC3 and NucleoTNC. 2021-01-03 15:37:51 -06:00
newlib Commit bulk of code for new project. Still some cleanup to do to make it work with new PCB. 2018-08-26 22:28:24 -05:00
startup Commit bulk of code for new project. Still some cleanup to do to make it work with new PCB. 2018-08-26 22:28:24 -05:00
.cproject Update C++ language settings for new compiler. 2020-12-09 19:19:46 -06:00
.gitignore Read MAC address from BT module and send it as part of GET_ALL_VALUES. Fixes #2. 2019-01-05 22:50:08 -06:00
.mxproject Minor project updates. 2018-10-28 21:37:12 -05:00
.project Update eclipse settings. 2018-11-17 13:58:39 -06:00
LICENSE Initial commit 2018-06-24 09:48:50 -05:00
README.md Update README.md 2019-01-21 15:11:39 -06:00
STM32L433CCUx_FLASH.ld Trivial change to linker script. 2018-09-19 22:23:15 -05:00
WindowsFirmwareUpdate.md The yellow and blue buttons are on the other left. 2023-04-17 20:30:08 -05:00
bm78_eeprom Revert "Force BM78 to use channel 1 for RFCOMM. Update to 1.1.4rc2." 2019-08-11 16:54:13 -05:00
firmware.ioc Update STMCubeMX IOC file to nable HSI clock and drive I2C and UART from HSI so communication is not interrupted on clock change. 2020-02-22 19:11:03 -06:00
make_bm78_eeprom_c.py Add missing header when building BM78 eeprom source file. 2019-10-20 15:31:07 -05:00
stlink-tnc3.cfg Add StdDev/SNR calc for debug. 2020-04-14 21:02:15 -05:00
stm32l4x.cfg Add BM78 support. Add a README file to start documenting build/debug stuff. Add ARM fir filter code. Add ST/LINK config files. 2018-09-19 22:17:37 -05:00

README.md

This is the firmware for the TNC3 version 2.1.1 hardware.

Building

Use Eclipse with CDT and the GNU MCU Eclipse plugins.

Debugging

Logging is enabled in debug builds and is output via ITM (SWO). The firmware is distributed with an openocd stlink config file that enables ITM output to a named pipe -- swv. You must create this pipe in the top level directory.

To read from this pipe, open a terminal and run:

while true; do tr -d '\01' < swv; done

If you change the MCU's core clock, you need to adjust the timing in the stlink-tnc3.cfg config file.

Installing firmware

Firmware can be installed via the on-board ST/LINK port or via USB DFU.

USB DFU

  1. Download the STM32CubeProgrammer. https://s3.amazonaws.com/mobilinkd/en.stm32cubeprog-1.4.0.zip This programmer will work on Linux, OS X, and Windows.

  2. Download the ELF file from the release (or that you have built from source).

  3. Plug the TNC into a USB port and turn the TNC on. You should see a USB serial port enumerated.

  4. Put the TNC into DFU mode by pressing the DFU button on the side. The TNC will only enter DFU mode when plugged into a USB port.

TNC3 Diagram

There is no visible indication on the TNC that it is in DFU mode

  1. You should see the serial port device go away and a new DFU device appear.

  2. Run the STM32CubeProgrammer from the command-line. (Replace "firmware.elf" with the appropriate firmware filename.)

    ./STM32_Programmer_CLI -c port=USB1 -d firmware.elf -v -g 0x8000000

  3. When that is complete, the DFU device will disappear and the serial port device will re-appear.