While the CH341A Mini Programmer is a very versatile device - not only can it be used as an SPI flash programmer, but also as a UART and possibly even an AVR programmer, it is known to have a design flaw, probably due to a misinterpretation of the fairly vague CH341A datasheet by the people who have designed the Mini Programmer.
3.3 V fix for the black CH341A Mini Programmer without lifting a pin
2020-12-27 11:043d-printable case for the Odroid-H2 SBC
2019-12-29 12:15I have designed a 3D printable case for the Hardkernel
Odroid-H2 single board
computer (SBC) with OpenSCAD.
The H2 is an x86-based board with an Intel Celeron J4105, two DDR4 SO-DIMM slots
and lots of I/O (2x GbE, 2x SATA, M.2 SSD, USB3, DisplayPort, HDMI, ...).
The case is configurable and supports up to one 2.5" disk drive with a height of up to 15 mm. It consists of two parts and is pretty easy to print.
The case is configurable and supports up to one 2.5" disk drive with a height of up to 15 mm. It consists of two parts and is pretty easy to print.

Computer controlled IR remote control for an RGB LED strip
2017-08-08 18:23I've got one of these simple remote controlled RGB LED strips. Using the IR remote control that came with it to select colors is fine, but I wanted to be able to control it through a computer. That way it would be possible to do things like turning it off when playing a movie for instance, or using it to signal any kind of event.

There are different options on how to achieve that. I could have replaced the whole LED controller circuitry with my own, but I didn't want to do that. What I decided to do instead is create a small circuit that emits IR signals that the original controller understands. That way I can still use the original remote control and do not have to modify any of the original LED strip components. The downside to this is that I am stuck with the capabilities of the original controller, which are rather limited.

There are different options on how to achieve that. I could have replaced the whole LED controller circuitry with my own, but I didn't want to do that. What I decided to do instead is create a small circuit that emits IR signals that the original controller understands. That way I can still use the original remote control and do not have to modify any of the original LED strip components. The downside to this is that I am stuck with the capabilities of the original controller, which are rather limited.
Coreboot on the Lenovo Thinkpad X220
2016-12-30 11:00I have finally come around to install Coreboot on my X220 laptop. It is an X220 with a Core i5-2520M and 16 GB of DDR3-1600 RAM.
Coreboot is an open source replacement for the BIOS/UEFI firmware of a variety of laptops and mainboards. Coreboot needs to be combined with a payload component, since Coreboot itself doesn't do a whole lot besides hardware initialization. The payload I am using here is SeaBIOS, which implements the features of a PC BIOS.

It allows you to boot most PC operating systems, including those that rely on the classic PC BIOS features. For UEFI support there is the TianoCore payload. It is also possible to use the GRUB bootloader as a payload or embed a Linux kernel as a payload (if the flash chip is large enough).
Coreboot is an open source replacement for the BIOS/UEFI firmware of a variety of laptops and mainboards. Coreboot needs to be combined with a payload component, since Coreboot itself doesn't do a whole lot besides hardware initialization. The payload I am using here is SeaBIOS, which implements the features of a PC BIOS.

It allows you to boot most PC operating systems, including those that rely on the classic PC BIOS features. For UEFI support there is the TianoCore payload. It is also possible to use the GRUB bootloader as a payload or embed a Linux kernel as a payload (if the flash chip is large enough).
Gmu 0.10.1 released!
2016-09-10 14:33I have just released version 0.10.1 of the Gmu Music Player. It is mostly a bugfix release.
Most notably it fixes some issues with the build process which could occur on some systems. Other than that I have improved some of the decoders. The Opus decoder now supports seeking, while the Ogg Vorbis decoder accepts files with the .oga extension (in addition to the more popular .ogg file extension).
For more information about Gmu 0.10.x please have a look at the Gmu 0.10.0 release post.
Source gmu-0.10.1.tar.gz (487 KB)
md5sum: 98146012ce9b5e8971162796a0be17e3
Most notably it fixes some issues with the build process which could occur on some systems. Other than that I have improved some of the decoders. The Opus decoder now supports seeking, while the Ogg Vorbis decoder accepts files with the .oga extension (in addition to the more popular .ogg file extension).
For more information about Gmu 0.10.x please have a look at the Gmu 0.10.0 release post.
Source gmu-0.10.1.tar.gz (487 KB)
md5sum: 98146012ce9b5e8971162796a0be17e3