I had the pleasure of dealing with a broken bootloader for my unity. Since I got quite a few requests for this and it was not a pleasant issue to fix with non-responsive support I decided to make a guide for it. Always try to go the route of support with this first! After I tried (and failed) this initially Enertion claimed I broke the warranty. This is a BS claim (at least in the EU where I live), but proving that is another headache. There were a few guides out there, but none of them worked with the Unity.
When do I need this?
First make sure it’s the bootloader which is broken, not the firmware. This is not for a broken firmware, always try to flash the firmware again using the Focbox app first! The main symptom of a broken bootloader is that it does not turn on at all. Often a light goes on, and turns off after a few seconds. The Unity comes with the bootloader pre-flashed, so if the Unity just comes out of the box this is also not required (unless it’s broken out of the box ofc).
What do I need?
- An STLINKv2 serial debugger. Get the original (or a really good fake), as fakes are sometimes wired wrong.
- A bunch of female to male jumpers. I used these, as I had some laying around. They were slightly too large (they do fit, but it’s for one-time use), so get one size smaller if you ordering for this.
- A Windows computer.
- The ST-LINKv2 utility.
- The Bootloader binary. It does state that this is the firmware, not the bootloader. This is in fact the bootloader and firmware bundled together. Just flashing the bootloader binary does not really help you, as you cannot connect to flash the firmware.
How do I do this?
- Disconnect the unity from the battery and any other connectors.
- Remove the orange cover.
- This reveals the unity with a separate PCB on top. The separate PCB is the Bluetooth module.
- Remove the Bluetooth module. Take note of the connector the module is plugged into. This is the connector we will be using to flash the bootloader.
- Take the jumpers, and connect them as follows to the ST-LINK (phase wires are oriented at the top). Take a look at your ST-LINK for the corresponding connections.
+-+-+-+-+-+-+-+ |1|2|3|4|5|x|x| +-+-+-+-+-+-+-+ |x|x|x|x|x|x|x| +-+-+-+-+-+-+-+
1: 3.3v 2: SWCLK 3: GND 4: SWDIO 5: RST
You don’t need to plug your unity into your battery. It is powered by the ST-LINK. You could leave out the 3.3v (not the ground!), and plug in the battery, but this makes it more complicated. I don’t have a picture of this connection, and my unity is buried somewhere inside of my board. Sorry about that.
- Connect the ST-LINK to your computer.
- Open the ST-LINK utility.
- Click connect on the top row (Looks like a mains plug with a lightning bolt). This should connect to the unity. It should look somewhat similar to this:
- Click on
Open fileand select the bootloader binary.
- Click on
Program & Verifyon the top row. This should show something like this:
- Check the start address. (Unlike the photo) it should show
- Click start!
- After this is done, disconnect the ST-LINK inside of the Utility. This is the Mains plug with the red cross on it.
- Disconnect the ST-LINK from the computer.
- Unplug the Jumpers from the Unity.
- Put the Bluetooth module back in its position.
- Put the orange cover back.
- Connect the phase wires, remote and battery back into the Unity as normal.
- Try it out!
Now you should be able to use the Unity like normal. I hope this helped! If not, feel free to ask any questions.