Building Secure OTA Updates for ESP32 Over BLE with Rust

Earlier I wrote about BikeSafe Watchman, I have been busy building firmware that has to survive the real world (gloves on, cold hands, spotty RF, and a phone that is trying its best), I kept learning the same lesson: your protocol is part of your product. For BikeSafe Watchman (an ESP32-C3 BLE device), I wanted a protocol that is: cheap to parse (no JSON, no allocations, no decoding adventures) easy to extend without breaking older apps compact on the wire boring enough to debug at 11pm I kept landing on the same pattern: TLV (Tag, Length, Value). ...

December 11, 2025 · 12 min · Harry Gill  |    

My quest to make motorcycle riding that tad bit safer

It began with a spark—a dormant passion reignited after many years away from motorcycling. Life had steered me in different directions, away from the saddle, but something deep inside pulled me back to the thrill and freedom that only riding offers. Returning to motorcycling after such an extended hiatus was daunting yet exhilarating. I vividly recall my first CBT session: the nerves, the good-natured laughter at my clumsy mistakes, and the sheer joy when everything finally clicked into place. It was during this session that a critical moment of inspiration occurred. My instructor casually suggested lightly applying the brakes during engine braking to alert drivers behind that I was slowing down. Given motorcycles’ inherent lightweight design and strong engine braking, the risk of being rear-ended was significant. ...

April 30, 2025 · 5 min · Harry Gill  |    

Building a sailing starter board with Rust (RTIC)

Since I wrote last here my interest in microprocessors and embedded in general has been constantly growing. I have dabbed into designing my own PCBs getting them fabricated and soldering SMD components on them. The Story I live on a small island in north of Scotland, and I fell in love with sailing from the first week we moved here in 2017. Our local sailing club is more than a hundred years old. We sail traditional Westray Skiff (made only on the Island) pictured below (I promise my friend is not grumpy because of me). If you are interested see more photos and island life visit The hall of Einar blog. ...

May 11, 2022 · 22 min · Harry Gill  |    

Programming PIC32 Microcontroller with Rust

For a while I wanted to get back into making some projects with microcontrollers. Last time I touched any microcontroller code was a few years back when I tried to make a heating regulator for a friend with Arduino Nano . My friend was interested in programming, he would come over at night and we hacked on this little thing for some time. We bumped into some problems with the power supply as it would not behave properly when we used a random old DC adapter. Life happened and we lost interest before it could actually be tested. Maybe we were just debugging too late at night, there was some whiskey involved, so who knows.. ...

October 9, 2021 · 10 min · Harry Gill  |    

Reverse engineering a USB device with Rust

A few weeks ago, I built a new workstation with somewhat beefy AMD Ryzen 3950x CPU and got a bit over-excited with tuning it and getting the max (trying to reduce rust compile times) out of it 😅. One thing led to another and I ended up with a Corsair H150i RGB PRO XT AIO to keep this thing cool enough. Everything worked well until I found out that Corsair does not provide any support for Linux 🙄. It was usable, as this device holds its config on board and does not need support from OS/Software to run, but one can only adjust any settings or view any status in Windows. ...

July 26, 2020 · 14 min · Harry Gill  |    

Auth Web Microservice with rust using Actix-Web 4.0 - Complete Tutorial

Updated (March, 2022) Updated to actix-web-4.0 Updated (October, 2020) Updated to actix-web-3.1 Updated (September, 2020) Updated to async/await actix-web-2.0 What? We are going to create a web-server in rust that only deals with user registration and authentication. I will be explaining the steps in each file as we go. The complete project code is here repo . Please take all this with a pinch of salt as I’m a still a noob to rust 😉. ...

June 9, 2019 · 21 min · Harry Gill  |