Uploaded March 2010 | Updated September 2026, 1 hour ago
During 26c3, bushing gave me a twlfpga v1, which is a custom FPGA board meant to sniff the Nintendo DSi system RAM. But since I don't actually *have* a DSi, I had to find another use for it!
The board has high-speed USB 2.0, a Xilinx FPGA, and a ton of free IO pins (over 80). A piano has 88 keys... and you can guess the rest. This is the first test of the concept, using a single octave piano etched onto a printed circuit board. The only circuitry is a single large resistor (100k or so) per pin pulling it up to a common strobe line. I'm abusing the digital pins as analog capacitance sensors (by measuring the time the pin takes to switch to a new value). When you touch one of the pads, the capacitance increases and so does the measured value. A little PC program then turns the capacitance data stream (at over 6000 samples per second) into a series of MIDI events that gent sent off to my Yamaha keyboard (which I'm using as a synth here).
The second song is a badly mutilated version of Peaceful Days from Chrono Trigger. There's only so much you can do with one octave ;). I'll be making more as soon as I can get some new blank boards.
During 26c3, bushing gave me a twlfpga v1, which is a custom FPGA board meant to sniff the Nintendo DSi system RAM. But since I don't actually *have* a DSi, I had to find another use for it!
The board has high-speed USB 2.0, a Xilinx FPGA, and a ton of free IO pins (over 80). A piano has 88 keys... and you can guess the rest. This is the first test of the concept, using a single octave piano etched onto a printed circuit board. The only circuitry is a single large resistor (100k or so) per pin pulling it up to a common strobe line. I'm abusing the digital pins as analog capacitance sensors (by measuring the time the pin takes to switch to a new value). When you touch one of the pads, the capacitance increases and so does the measured value. A little PC program then turns the capacitance data stream (at over 6000 samples per second) into a series of MIDI events that gent sent off to my Yamaha keyboard (which I'm using as a synth here).
The second song is a badly mutilated version of Peaceful Days from Chrono Trigger. There's only so much you can do with one octave ;). I'll be making more as soon as I can get some new blank boards.


![Work stream: m1n1 bring-up [2021-01-14]
The time has come. We can boot our own kernels on Apple Silicon. I will be bringing up my bootloader, m1n1.
Website: https://asahilinux.org
Patreon: https://patreon.com/marcan
GitHub Sponsors: https://github.com/sponsors/marcan
In these streams I show how I work. I may or may not talk, and I may or may not read the chat. If you need to catch my attention, its probably best to ping me on IRC, check out asahilinux.org for details!
There is currently no set schedule for these streams, so subscribe and click the bell if you want to be notified when they happen.
I do not broadcast background music, for copyright reasons and because my music tastes may not match yours. I highly recommend bringing along your own music! Work stream: m1n1 bring-up [2021-01-14]](https://i.ytimg.com/vi/d5s9fYfvzmY/mqdefault.jpg)







![Work stream: Tooling [2021-01-07]
Working on tools to make bring-up easier.
Website: https://asahilinux.org
Patreon: https://patreon.com/marcan
GitHub Sponsors: https://github.com/sponsors/marcan
In these streams I show how I work. I may or may not talk, and I may or may not read the chat. If you need to catch my attention, its probably best to ping me on IRC, check out asahilinux.org for details!
There is currently no set schedule for these streams, so subscribe and click the bell if you want to be notified when they happen.
I do not broadcast background music, for copyright reasons and because my music tastes may not match yours. I highly recommend bringing along your own music! Work stream: Tooling [2021-01-07]](https://i.ytimg.com/vi/hBxm2K6z98U/mqdefault.jpg)