Patching Pulse Oximeter Firmware
Recently, I came across relatively cheap medical devices: consumer-grade pulse oximeters. These devices clip onto your finger and shine a light through it. By analyzing the light...
Hardware, Linux, Embedded Systems
Recently, I came across relatively cheap medical devices: consumer-grade pulse oximeters. These devices clip onto your finger and shine a light through it. By analyzing the light...
In this project, I started to reverse engineer payment card terminals because they seemed to be an interesting target for security research, given the high stakes involved. Although I initially...
What is ACME? ACME (Automatic Certificate Management Environment) is a protocol specified by RFC 8555 that is widely used for obtaining Let’s Encrypt and other TLS certificates automatically. A user...
As part of my Bachelor’s thesis, I designed a novel DDR5 fault injection system used for Rowhammer research consisting of a custom interposer PCB, a microcontroller board and a control...
In this project, I analyzed and reverse engineered the firmware, file formats and custom cryptography of a business IP phone. As it turns out, many of the phone’s software components...
In this project, I use an nRF52 development board and a cheap 3.5" TFT module to experiment with graphical displays on Zephyr RTOS. The display module is hard-wired to use...
I stumpled upon schematics and an assembly drawing of my laptop (Thinkpad P14s, Gen 1) on a computer repair forum. While studying the schematics is interesting in itself, it also...
I own a 1994 IBM Thinkpad 755C I take out of storage once in a while to experience that authentic retro computer feeling with a system that predates my existence...
As part of a university course, I worked on porting a machine learning algorithm to an STM32 Cortex-M4 microcontroller for simple speech recognition. It can detect simple spoken keywords such...
While a chip vendor’s IDE (like STM32CubeIDE) offers many great features and is usually the easiest and quickest way to get the first program on a microcontroller, it is a...
As part of an operating systems class at university, we built our own, customized version of the Barrelfish microkernel/multikernel operating system running on an i.MX8X processor. In a group effort,...
As part of a semester project I worked on integrating a firmware-based trusted platform module (fTPM) on a Arm-based SoC. In the following article I’d like to share my experience...
What do you do if you have a lot of work ahead of you and suddenly your servers are offline? Exactly, you procrastinate by spending the whole day making a...
As my first FreeRTOS project I set up this simple demo on a TI MSP430FR4133 LaunchPad. I chose this microcontroller mainly because I already own the development board for it...
For an upcoming project I wanted to use my MSP430 Launchpad development board. I haven’t worked with TI’s MSP430 series for a long time, so I needed to set up...
This is a breakout board I designed for the ultralow noise AD8331 variable-gain amplifier with internal low-noise preamplifier. It is meant to be used as a current probe with an...
To get familiar with the tools and concepts of the Yocto project, I wanted to do a project using an SPI OLED display I bought recently. Those tiny displays are...
This was a quick-and-dirty one day project. I got my hands on some old RS485 LED signs (like those found in hospital hallways) and I wanted to do something with...
Previously I have experimented with Linux single-board computers using pre-built Debian images and my own “static” images I built using buildroot. While this was fun, I aimed to run more...
It’s late at night, and you’re racing against the clock to print that last-minute document for tomorrow’s big presentation. You enter the print command, but your printer refuses to do...
On my Gentoo machine I use QEMU, libvirt and virt-manager to host virtual guest systems. The default network setup of libvirt relies on firewalld and iptables, neither of which are...
I’d like to know what firmware is running on my Thinkpad. Not only out of curiosity, but wouldn't it be nice to change the boot logo, patch features, or explore...
Through a university course I got in contact with iCEBreaker FPGA development boards. These boards contain a tiny Lattice FPGA, are relatively cheap to get (especially considering the price of...
I wanted some insight why my laptop’s battery was draining so fast. For this, I needed an objective measure when and how much the battery is discharged. For this, I...
I created two LaTeX templates for reports or assignments. One is a “one-pager” meant for short reports and miscellaneous documents. The “long template” has a title page and a table...
I designed this industrial control unit while working as a freelancer. It is used as an autonomous controller that performs various measurement and control tasks. It also continuously logs to...
I needed an ASCII table in a LaTeX document. I wasn’t sure how large it should be or how many columns it should have, so it should be easily customizable....
As a programming exercise I made a tool that automatically generates “focus” tests. The task is simple: Just mark all dice that have a particular number of dots as fast...
What is a Mandelbrot set? The Mandelbrot set is the set of complex numbers c ∈ C for which the sequence z_{n+1}=z_n^2+c stays bounded when n → ∞. The initial...
I have always been fascinated by how networking devices work. No matter how complicated the network or how many devices are present on that network, you can just take any...
Because I was experimenting with a neural network I thought it would be cool to have an even larger test- and training set. So I quickly hacked together this Python...
Finally I got some time to read this book by Tariq Rashid. I have never done anything machine learning-related before, so this book seemed like a good entry point. What...
The controller drives dual-color (warm and cold white) LED strips. It has a real-time clock for night/day mode, motion sensor inputs, does PWM fading, is controllable by a normal light...
This was a two-person school project in 2017/18. We designed a 3D-printed platform that can be tilted around two axes by servo motors. We designed custom control electronics that would...