Hej 🦀🔌

This is the personal blog of Gerhard de Clercq. I am a South African living in Sweden and an electronic engineer who loves programming. Here you will find my crazed ramblings about code, electronics and who knows what else :)
Fully Assembled Speaker Box

It's Alive (Merus Speaker Built)

Introduction It has been a very long time since I followed up on my previous speaker post. The truth is that I actually finished this build over two years ago and just have not gotten around to making a post about it until now (my life got very busy right after the build). This means that I have unfortunately forgotten many of details involved by now. Nonetheless, below is a summary of what I can remember. ...

June 2, 2025 Â· 4 min Â· Gerhard de Clercq
Animation of a 3D cube interaction inside an egui window

Integrating VTK into egui (for EM simulations)

Introduction I am currently working on an EM simulator for which I will need 3D visualisation capabilities. As usual I have decided to “overcomplicate” matters by using a very “unique” assortment of programming languages and libraries to do this (both for fun and to learn new things). Naturally, I want to use Rust for this project. This is not only because simulation software needs to extract as much performance from the hardware as possible, but also because I really appreciate Rust’s rich and rigid type system when building large projects as it helps keep things organised. And then there is the rich library ecosystem associated with Rust which usually comes in very handy but turns out to be somewhat limited in this particular case (at the time of writing). If easy library access were my primary factor under consideration, Python would likely be the best choice for this project. ...

June 1, 2025 Â· 6 min Â· Gerhard de Clercq

Systemd LUKS Unlocking via SSH

There are many guides out there that show how you can use dropbear-initramfs to remotely unlock a Linux server with an encrypted drive via SSH. The thing is however that that this only works when you have encrypted your root filesystem. This is usually your best option, but sometimes you are setting up a VM on a platform where that is simply not possible. In such cases, your best option is likely to store your sensitive data inside a file that acts as an encrypted “virtual drive”. Here, dropbear-initramfs fails because the system swiftly boots into its unencrypted root filesystem and then jumps straight into Systemd. Therefore, we will instead need to run Dropbear as a Systemd service to achieve similar functionality. ...

April 29, 2025 Â· 4 min Â· Gerhard de Clercq
Merus Starter V1I1 PCB 3D Rendering

Merus Starter V1I1 built

Introduction As alluded to in my previous post, I am working on a rather long term project that will (probably) be powered by an ESP32-C3. Specifically, I am working on building my own wireless speaker. And here “wireless” refers to the audio source being either Bluetooth or WiFi (i.e. a Spotify client). Unfortunately the power supply will be very much “wired”, at least for now :) Anyway, I am developing this project in smaller pieces that I can test individually and once each one has been confirmed to work, I will squish all the PCBs together into one. So in this post I will present the amplifier board. The design has actually been ready for quite a while, I just did not have time to write it up… So by now I have already built the PCB and powered it up. ...

May 29, 2022 Â· 4 min Â· Gerhard de Clercq
ESP Starter V1I1 PCB 3D Rendering

ESP Starter V1I1 ready

Introduction I am working on a project that will be powered by the ESP32-C3. Unfortunately, I don’t want to provide more details on that project right now… Anyway, in order to get used to this ESP32-C3 and to make sure that I understand how to create a custom board based on it, I decided to create my own custom dev board. My design is of course greatly inspired by the standard dev board, albeit with a few tweaks here and there. ...

March 20, 2022 Â· 3 min Â· Gerhard de Clercq
Two Raspberry Pi Picos wired together

RP2040 Development with WSL

Introduction I recently started working on a project where I want to use the RP2040 on a custom board. FYI, the RP2040 is the “chip” used on the Raspberry Pi Pico development board. Development for this board is actually quite straight forward, or at least if you’re on Linux, because that’s what most of the documentation is written for. You simply clone the SDK, install a few prerequisites and start building. You can then simply plug in your board via USB and drag-and-drop your binary file onto the mass storage devices that it shows up as to get things going. ...

March 7, 2022 Â· 4 min Â· Gerhard de Clercq
Renode Screenshot

Initial bare-metal testing with Renode

Introduction This is a follow up to my blog post on Bare-metal Rust bootstrapped by C. In this post, I want to discuss how I used the Renode emulator to verify that my setup works. I won’t go into too much detail about how to use Renode. I just want to discuss the part that was relevant for my tests. Installation The first step of getting started with Renode is obviously to install it. This is fairly simple, simply go to https://renode.io/#downloads, download the corresponding package for your operating system and install. I won’t bore you with any additional details :) ...

March 6, 2022 Â· 5 min Â· Gerhard de Clercq

Bare-metal Rust bootstrapped by C

Introduction As you might have noticed, Rust is already quite popular in the embedded space. And getting started with embedded Rust, even on a bare-metal level, isn’t all that difficult. However, I’m not a fan of the standard method as it has a bit too much magic for me. When it comes to embedded, I like to know exactly what is going on and that includes knowing the very first code which is run and “kicks off” the main code. As such, I have explored how to do this for the STM32F4-Discovery using C code which then fires up a Rust main function. In this blog post, I will give an overview of the process that I followed. ...

February 19, 2022 Â· 11 min Â· Gerhard de Clercq
Rusty Electrons Logo

Rusty Electrons?

Hello and welcome to my blog! I am an electronic engineer who loves programming. My passion in life is computers and my mission is to understand how they work on every level. This blog is for anyone who wants to follow along on that journey and learn with me; or for those who only briefly pass by as part of a frantic web search :) At the time of writing, my job title is “Embedded Systems Engineer” and I work for a small Swedish company named Terranet where I am tasked with “saving lives”. My day job entails PCB design, mechanical design and firmware writing. I also need to fiddle with lasers and cameras quite a lot. ...

February 18, 2022 Â· 1 min Â· Gerhard de Clercq