Francis Stokes
francis.codes
Francis Stokes
@francis.codes
Exploring the Low Level on YouTube as Low Byte Productions

Firmware Engineer

Father x2

(he/him) 🇬🇧🇳🇱
I've been experimenting with tenting, but I'm not sure if I'm all in. For long extended typing I think I prefer flat, but for regular coding work where it's not constant, the tenting feels really good
October 4, 2025 at 7:45 AM
This is my 3rd mechanical keyboard design. I went for a full split this time. It's 3D printed, including the low profile key caps. The switches are gazzew silent black. The halves are wired direct, with 10 pin IDC connectors carrying the rows and columns. No PCB either, the matrix is hand-wired.
October 4, 2025 at 7:41 AM
I've fallen down the rabbit hole of building keyboards lately. This is my take on a planck, with a pseudo-split.
Hand-wired with 48 keys, 4 RGB LEDs, runs QMK + Vial on a raspberry pi pico.
It only took me about a day to get used to it, which was a surprise considering it's my first ortholinear!
July 31, 2025 at 1:56 PM
March 7, 2025 at 10:03 PM
March 7, 2025 at 9:56 PM
I've got some exciting news to share soon!
February 2, 2025 at 8:11 AM
If all goes well, I'll be streaming tomorrow afternoon (approximately 1400 UTC+1), reverse engineering the signalling on this remote control, and trying to turn it into a real USB keyboard
December 27, 2024 at 11:25 AM
A small but impactful hack for my setup at work:

A switch that maps my keyboard to either my Linux or Windows machine.

It's literally just a SP4T switch, a couple of sliced up USB cables, and a cap across the power supply.

The cap keeps remap settings when switching between computers.
December 20, 2024 at 8:16 AM
Tip for using a (non-cryptographic) pseudorandom number generator in an embedded context:

Define a .noinit section in RAM in the linkerscript with (NOLOAD), and then define an uninitialised array of u32s. Sum these up and use them to seed the RNG at boot time, when RAM will contain garbage.
December 12, 2024 at 7:29 PM
I'm sorry, what!?!
December 10, 2024 at 7:27 AM
I've seen copilot generate some unhinged code, but it just went comically off the rails here
December 4, 2024 at 1:20 PM
I got an IP address

My second post about building a networking stack on a microcontoller just dropped.

It covers the packet flow architecture in the firmware, the DHCP process, and a little debugging for flavour

github.com/francisrstok...
November 27, 2024 at 7:13 AM
Wrote about a project I've been working on: github.com/francisrstok...
November 9, 2024 at 9:03 PM
November 1, 2024 at 6:37 AM
It stuck me just how comical it is to have so many different types of connections between the same two devices
November 1, 2024 at 6:13 AM