Beer Fridge Controller
Update: (20 Feb 2026): the import into KiCad 10.0.0RC1 is complete. I might still need to flesh out the BOM for some of the passives, but you can look up parts by following the datasheet links through to partdb.alfter.us.
When I started this in 2007, I had a refrigerator that I used to control the fermentation temperature of my homebrewed beer. This was controlled by an Apple II running this software with a simple interface board plugged into the 16-pin joystick port. I ended up replacing the Apple II with a Raspberry Pi with this interface board and this software, but along the way I started work on a custom 65C02-based single-board computer to replace the Apple II instead. This is that project.
Back then, I'm not entirely sure KiCad was a thing yet. I had stumbled into another open-source EDA package called gEDA and learned enough about it to knock together a design with a 65C02, 32K ROM, 8K RAM, a character LCD and 16-pin keypad for the user interface, a bit-banged speaker similar to what the Apple II uses, and a 1-Wire interface to talk to the temperature sensor I was already using. It also included a real-time clock, also connected over 1-Wire on the board. I figured that with an architecture distantly related to the Apple II, I could knock the software together fairly quickly. The Apple II software started out as a mix of BASIC and assembly language, but I rewrote the BASIC parts in C, which was compiled with cc65.
I ended up never getting around to building this, so I can't say for certain it would've worked. It's a fairly straightforward exercise, though, with only the firmware needing to be written for it.
In the years since, gEDA has fallen by the wayside. gEDA is no longer being developed; its website and wiki went read-only in 2025. Its schematic capture tool was forked into Lepton in 2016 and its PCB tool was forked into pcb-rnd in 2013; pcb-rnd has since evolved into a component of Ringdove.
KiCad has long since grabbed most of the hobbyist-level mindshare...for good
reason, IMHO. I've found it much easier to use, and it's developed a decent
ecosystem of component data (symbols, footprints, and 3D models) and plugins.
As of version 10 (10.0.0RC1 as I write this in 2026), it can now import gEDA
schematics and PCBs. These imports are definitely rough around the edges...
even more so than the imports from EAGLE that I've done in the past.
I was able to load the gEDA PCB files into Lepton after a bit of a struggle with obtaining symbols from multiple sources. I used Lepton to render the schematics to PDF for future reference, since I hadn't done that previously. I was able to build the original gEDA PCB tool on Artix to load the board layout, but attempts at building the Ringdove PCB tool failed. Given the precarious state of the gEDA ecosystem and the recently-developed ability of KiCad to import gEDA files, I figured it was now time to bring this long-dormant project into 2026. What follows are some notes on what needed doing to make this happen.
gEDA-to-KiCad Importing Notes
Installing gEDA (or Lepton) doesn't bring any symbol libraries with it. The
standard libraries (equivalent to the KiCad libraries hosted on GitLab) are
available from GitHub in the symbols
directory; checking this out is fairly simple.
After writing the above, I checked my Lepton installation and found the symbols under /usr/share/lepton-eda/sym. The preceding might still be useful if you just want to try importing into KiCad and need the default symbol library.
There is another repository of user-contributed symbols, but it can only be checked out via CVS:
sudo pacman -S cvs
mkdir gedasymbols
cd gedasymbols
export CVSROOT=:pserver:anonymous@cvs.gedasymbols.org:/cvs/gedasymbols
cvs login
cvs get .
sudo pacman -Rs cvs
(When cvs login prompts for a password, type in anonymous.)
I also have my own gEDA symbol repository created for this project and some others that has migrated from Subversion to Git to GitLab to Gitea over the years.
This project pulls from all three. I had to add a gafrc file to tell
lepton-schematic to search gschem-sym, which is included as a submodule:
(component-library "./gschem-sym")
I think I could've added additional lines to gafrc to pull in the
relevant directories in the other two repositories, but KiCad doesn't know
about the symbols installed by gEDA or Lepton. For that reason, I copied the
needed libraries into gschem-sym and pushed them back up to Gitea. In its
current state, the original schematics can be loaded by Lepton and rendered to
PDF, or they can be imported into KiCad (already done here; look in the
kicad subdirectory). The PCB layout loads into the gEDA PCB tool,
or the KiCad import process will convert it alongside the schematic.
When KiCad imports a project from EAGLE, it creates libraries with the EAGLE symbols and footprints and uses those. This doesn't appear to be the case with gEDA imports. No libraries are created; the relevant symbols and footprints are copied into the schematic and PCB files. You could right-click each, bring up the editor, and save it into a library, but (as with EAGLE) the better approach is to replace the gEDA symbols and footprints (especially the symbols, which are huge compared to KiCad symbols) with their KiCad equivalents.
In gEDA, the schematic spanned three sheets. It had no concept of hierarchical sheets IIRC, though a netlist for a PCB could be assembled at the command line from multiple sheets. In KiCad, the usual practice would be to pick one top-level sheet and create hierarchical sheets under it as needed.
