mirror of
https://github.com/lucysrausch/hoverboard-firmware-hack.git
synced 2025-08-04 18:14:29 +02:00
added board temperature calibration, warning and poweroff (rene-dev and me); rearranged config.h; fixed backwards beep overflow; removed duplicate battery-adc-code (rene-dev); improved battery voltage measurement precision; put poweroff procedure to a separate function; poweroff button now only work if field weakening is 0 (otherwise everything will explode)
This commit is contained in:
15
README.md
15
README.md
@@ -8,6 +8,8 @@ The firmware you can find here allows you to use your Hoverboard Hardware (like
|
||||
If you want an overview of what you can do with this firmware, here is a ~40min video of a talk about this project:
|
||||
https://media.ccc.de/v/gpn18-95-howto-moving-objects
|
||||
|
||||
There is a bobbycar-optimized firmware based on this one with driving modes, acceleration ramps and some other features: https://github.com/larsmm/hoverboard-firmware-hack-bbcar
|
||||
|
||||
---
|
||||
|
||||
#### Hardware
|
||||
@@ -22,17 +24,26 @@ http://vocke.tv/lib/exe/fetch.php?media=20150722_hoverboard_sch.pdf
|
||||
---
|
||||
|
||||
#### Flashing
|
||||
To build the firmware, just type "make". Make sure you have specified your gcc-arm-none-eabi binary location in the Makefile ("PREFIX = ..."). Right to the STM32, there is a debugging header with GND, 3V3, SWDIO and SWCLK. Connect GND, SWDIO and SWCLK to your SWD programmer, like the ST-Link found on many STM devboards.
|
||||
To build the firmware, just type "make". Make sure you have specified your gcc-arm-none-eabi binary (verion 7 works, there is a version that does not!) location in the Makefile ("PREFIX = ..."). Right to the STM32, there is a debugging header with GND, 3V3, SWDIO and SWCLK. Connect GND, SWDIO and SWCLK to your SWD programmer, like the ST-Link found on many STM devboards.
|
||||
|
||||
Make sure you hold the powerbutton or connect a jumper to the power button pins while flashing the firmware, as the STM might release the power latch and switches itself off during flashing. Battery > 36V have to be connected while flashing.
|
||||
|
||||
To flash the STM32, use the ST-Flash utility (https://github.com/texane/stlink).
|
||||
|
||||
If you never flashed your mainboard before, the STM is probably locked. To unlock the flash, use the following OpenOCD command:
|
||||
|
||||
```
|
||||
openocd -f interface/stlink-v2.cfg -f target/stm32f1x.cfg -c init -c "reset halt" -c "stm32f1x unlock 0"
|
||||
```
|
||||
|
||||
If that does not work:
|
||||
```
|
||||
openocd -f interface/stlink-v2.cfg -f target/stm32f1x.cfg -c init -c "reset halt" -c "mww 0x40022004 0x45670123" -c "mww 0x40022004 0xCDEF89AB" -c "mww 0x40022008 0x45670123" -c "mww 0x40022008 0xCDEF89AB" -c "mww 0x40022010 0x220" -c "mww 0x40022010 0x260" -c "sleep 100" -c "mww 0x40022010 0x230" -c "mwh 0x1ffff800 0x5AA5" -c "sleep 1000" -c "mww 0x40022010 0x2220" -c "sleep 100" -c "mdw 0x40022010" -c "mdw 0x4002201c" -c "mdw 0x1ffff800" -c targets -c "halt" -c "stm32f1x unlock 0"
|
||||
```
|
||||
```
|
||||
openocd -f interface/stlink-v2.cfg -f target/stm32f1x.cfg -c init -c "reset halt" -c "mww 0x40022004 0x45670123" -c "mww 0x40022004 0xCDEF89AB" -c "mww 0x40022008 0x45670123" -c "mww 0x40022008 0xCDEF89AB" -c targets -c "halt" -c "stm32f1x unlock 0"
|
||||
```
|
||||
Or use the Windows ST-Link utility.
|
||||
|
||||
Then you can simply flash the firmware:
|
||||
```
|
||||
st-flash --reset write build/hover.bin 0x8000000
|
||||
|
Reference in New Issue
Block a user