Best way to program VESC via bluetooth

LOL, when i look in the mirror i see a stupid fool.

Tested firmware update with my app and the bluetooth module via PC over TCP connection and it worked. Takes like 5 minutes because of the slow baud rate but it works.

Can’t really believe it myself and don’t recommend it but…

Good think is that i changed the default baudrate in my firmware to 9600 so it works with standard hm-10 modules.

1 Like

Is it really such a bad idea though?

Based on my ‘possibly flawed’ understanding each firmware update packet is written to some other (unused) part of the flash, and it’s only if all packets are successfully written that the bootloader will be told to overwrite the actual firmware. If it was to fail halfway through the upload and you got a timeout error then there’d be no harm done as you’ve just written to an unused part of the flash anyway (that would be overwritten next update attempt). To get a timeout in the first place a single packet must fail 5 times, and this gets reset if a packet gets through. Corrupted data is unlikely to get through due to the crc check performed by the VESC.

The risky part I see is when the bootloader replaces the VESC firmware with what has been uploaded, but that’s all done on the VESC so shouldn’t matter if it’s initiated via USB or BT. If this fails halfway through, then yeah you’re going to have to break out the st-link.

It takes a lot longer than 5 minutes to get my enclosure off and on again!

1 Like

I see you understood it. But for many others there are a lot of questions and misunderstandings. Like updating the slave over CAN and saving the data in a xml when parameters changed as well. And then when the modules have another baudrate. For example vedders BLE modules wouldn’t work with my firmware after the update because i use 9600. It would be easy to have 115200 as well but then people need to be able to change the baudrate on the modules themself. And that is too much for the most. But maybe i can add the baudrate change in the ACKMANIAC-Tool for common modules.

Inside each STM32 there is internal system memory with bootloader which gets triggered using BOOT pins so you can use: USB, UART, CAN, I2C, SPI or some other protocols to program STM32

I found this tool which implements ST protocol for UART and I2C

I wish i knew about before buying my HM-10 modules. I definitely go route next time.

I deleted my post of the countdown to Metr Pro release. You can now find all the information about it here: You will see there that you can update your VESC firmware with Metr Pro directly with the Metr App over the air. Its also possible to use the VESC Tool desktop or mobile app for updating with the mentioned module.

I brought 2 Trampa for my 4.1 Vesc. My Android vesc tool can find the BT but then i get Error " Cant read firmware". Can someone help me ?

Got it. I had adc mode only.i have to activate ppt and uart First to pair .then i can change to adc und uart .

Sorry to bring up an old thread!! I am having issues i can’t connect to my vesc through usb so am trying to update it through blue tooth tcp. This is because is says firmware to old when i connect through tcp!! I have flashed it with the st-link but can only flash the old firmware from the files in bldc tool. When I flash the new firmware with the st-link it says corelock up in the bottem right corner and only get a blue light? Could someone please help a bother out!! This is on a vesc 4.12

Ps my pc wont pick up the usb when plugged in ive tryed everything to fix this