Firmware for the Mobilinkd TNC3. STM32L433-based Bluetooth/LE KISS TNC.
 
 
 
Go to file
Rob Riggs 9e699d07e4 Set the MAC address on startup. Support 'reset to defaults' by holding down power button while pressing reset. 2019-01-19 17:41:56 -06:00
.settings Update eclipse settings. Update firmware version to 0.8.14. 2019-01-05 21:00:24 -06:00
Drivers Fix USB connection/battery charging issue. 2019-01-13 13:17:54 -06:00
Inc Set the MAC address on startup. Support 'reset to defaults' by holding down power button while pressing reset. 2019-01-19 17:41:56 -06:00
Middlewares Update STM32L4 HAL library to version 1.13.0. 2018-10-28 20:15:55 -05:00
Src Set the MAC address on startup. Support 'reset to defaults' by holding down power button while pressing reset. 2019-01-19 17:41:56 -06:00
TNC Set the MAC address on startup. Support 'reset to defaults' by holding down power button while pressing reset. 2019-01-19 17:41:56 -06:00
newlib
startup
.cproject Update eclipse settings. Update firmware version to 0.8.14. 2019-01-05 21:00:24 -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
README.md Update README.md 2019-01-12 14:54:09 -06:00
STM32L433CCUx_FLASH.ld Trivial change to linker script. 2018-09-19 22:23:15 -05:00
bm78_eeprom Update BM78 EEPROM loading/configuration process. BT security is disabled because that was the only way to get both EDR and LE to work on both Linux and Android at the same time. 2018-10-28 20:18:21 -05:00
firmware.ioc Enable pulldown on USB_POWER pin (PH0). 2018-11-17 13:42:25 -06:00
make_bm78_eeprom_c.py Update BM78 EEPROM loading/configuration process. BT security is disabled because that was the only way to get both EDR and LE to work on both Linux and Android at the same time. 2018-10-28 20:18:21 -05:00
stlink-tnc3.cfg
stm32l4x.cfg

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

Download the STM32CubeProgrammer from STMicroelectronics.

https://www.st.com/en/development-tools/stm32cubeprog.html

This programmer will work on Linux, OS X, and Windows.

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

Plug the TNC into a USB port. You should see a USB serial port enumerated.

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.

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

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

Run the STM32CubeProgrammer from the command-line.

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

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