Rahix's Blog
2021-12-15 5 min read

I have recently(!) released port-expander, a small crate to make access to I²C port-expanders as easy as possible.



Pavu Mixer
2021-09-07 11 min read

I often open pavucontrol to adjust the volumes of different applications relative to each other. Sometimes music is too loud, sometimes Jitsi sessions are too silent. However, it is annoying to switch context ever so often just to open the mixer, change volume, close again. As I am always looking to challenge myself with some useful projects reaching beyond just writing software, this felt like a great opportunity: I built myself a small mixing desk to control PulseAudio streams with hardware faders.

Pavu Mixer is what this resulted in. The project is fully free and open-source, including the hardware. It can all be found on GitHub: https://github.com/rahix/pavu-mixer

Picture of Pavu Mixer

In this blog entry, I'm going to detail parts of the journey and the architecture of the project.

2021-03-06 4 min read

ravedude is a tool I created to seamlessly run Rust code on AVR microcontrollers with nothing more than the usual cargo run. This is very much inspired by the great cargo-embed tool!



2021-02-28 15 min read


git-tricks - A collection of tricks/tips for using git efficiently


git push . origin/master:master, git commit --fixup, and many more!


This is a random list of nice git features/tricks that I have found to be very useful but which a lot people don't seem to know about.

Many people who have written C code for Arduino have at least heard of the millis() function at some point. It returns the number of milliseconds since the program started running.

In avr-hal (a Rust library for AVR microcontrollers) there currently is no equivalent for it. Instead of waiting on someone to add that, let's see what it takes to build our own!

2018-10-10 10 min read

This is a blog post accompanying the release of shared-bus. shared-bus is a small crate to allow sharing a bus between multiple devices. The current implementation is limited to i2c but extension to other bus protocols is easily possible.



Original Issue

First Post
2018-09-03 3 min read

Hello there! This is my blog. This post serves the purpose to demonstrate the markdown/markup abilities:


There is support for emph, bold and monospace.


This is a note.

Procedural Road Networks
2016-07-10 3 min read

The following post is a short description of an algorithm to generate a semirealistic city road network:

SVG Paths
2015-07-16 5 min read

In modern HTML you can embed SVGs directly into your DOM. This allows for pretty visuals, using the powers of both css and svg. One use that I have had on multiple occasions is path animations.

Procedural Spaceships
2015-07-11 20 min read

This is an old post of mine about procedurally generating spaceships: