How a Bootloader Saved My Christmas Holiday

Posted by Magnus Unemyr on Dec 30, 2016 10:58:41 AM

It is the time of the year when we all spend time with our family and friends. A great time for sure, and a rare opportunity to meet family members who live far away. Working in the software industry, it is quite common that older and less technology-versed family members ask for help with their computers or electronic gadgets during the Christmas break.

This year was no different; two of my retired family members had technology-related problems waiting for me to solve. In one of the cases, the problem was easily solved using a quick Google search. In the other case, I inadvertently transformed a GPS navigator into a useless brick. No matter what I did, it wouldn't come to life. How embarrassing! As it turns out, a bootloader came to my rescue and saved my face. You might need one too!


(note: the GPS navigator model on the photo is not related to the story of this blog post)

So what happened? The GPS navigator was quite old, and needed a map upgrade. No problem, I thought. Just connect the navigator to the laptop using a USB cable, and download the new maps using the software that came with the device.

How wrong I was. The device started by deleting all the old maps. Then it downloaded the new maps, and started to transfer them from my laptop to the navigator. After a few seconds, the transfer stopped with an error message indicating some internal problem in the navigator software. I rebooted both devices and retried many times. No joy. The navigator just showed the "No maps" message, indicating it was completely useless.

The owner of the device started to look increasingly anxious, and didn't really buy the explanation that "there is a software error in the device that makes it impossible to download neither the new maps nor the old maps". He probably though I had broken it, although there clearly was a problem with the software, as it wouldn't reliably accept the map download from the accompanying PC application.

I started to look around at the vendor's website, and did find a software upgrade that could be downloaded. Thanks to the bootloader in the navigator, I could upgrade its software to a newer version, that hopefully would solve the map download problem.

With the new software installed, the device did in fact connect happily to the laptop and did accept a complete map download. And so, the bricked device came to life, and I didn't have to spend the rest of the Christmas weekend feeling ashamed I broke the navigator.

This story clearly shows the benefit of integrating a bootloader in embedded systems, to enable software upgrades in-the-field. I strongly recommend you consider adding a bootloader to your embedded system too.

Read this blog post or this training presentation to learn more on how you can add a bootloader to your ARM Cortex-M embedded project!

Read our ARM development  whitepaper!

Topics: Embedded Software Development