Adafruit Playground is a wonderful place to share what you find interesting. Have a cool project you are working on? Have a bit of code that you think others will find useful? Want to show off your electronics workbench? You have come to the right place.
Adafruit Playground is a safe place to share with the wonderful Adafruit community of makers and doers.
-
Pinned by jepler
About Jeff
I’ve been a software developer ever since I first started typing in program listings on an 80s home computer.
I’ve been a contributor to Free and Open Source software for over 20 years. See my github profile for my contributions and original software.
I'm proud to be working with Adafruit, mainly on CircuitPython, and helping enable people learn and create fun projects with whatever environment works best for them.
-
Xerox 820 Gotek Adapter
The Xerox 820 CP/M computer could interface with dual 8" floppy drives (or up to 4 5.25" drives!).
While I did have a working pair of drives, I wanted the ability to run my 820 off of a floppy emulator. I picked a "Gotek" branded floppy emulator with the open source Flash Floppy firmware.
The Xerox has a bespoke 37-pin D-style connector for its floppy drives, so I created a passive adapter PCB.
After configuring Flash Floppy and loading up a CP/M disk image I was able to boot to CP/M without the pair of incredibly loud drives spinning in the background.
The "mod" section was for bodges but it turned out no bodge wires were needed. (it's not a header for a 2nd drive, sadly)
The gotek's default "S1" jumper position is for the CP/M "B" drive and the "S0" position is for the CP/M "A" drive, so most of the time you'll want to move the gotek's selection jumper to the "S0" position.
-
Archiving Old Github Forks with PyGithub
Over the years I've been using github, and especially while I've been working with Adafruit, I have quite the collection of forked repositories on github. Most of them haven't been updated in years. I decided that I wanted to archive all my forks that hadn't been updated in the last 2 years—over 200 repositories. This would take a long time manually on the github website, so I wrote a script to do it instead.
To use the script (included below), you'll need to
- Create an authorization token for your github account. It needs access to all your repositories to perform administration tasks. You can create a "fine grained" token within your user's settings on github.
- Edit the script to set the correct owner_name and token
Next, run the script once in the terminal. It'll print a line for each repository it will archive. If the list looks correct, then uncomment the "repo.edit" line and run the script a second time. This will actually archive the repositories.
-
RunCPM with USB Host Featherwing
The original RunCPM project I did used two feathers with RP2040 microcontrollers: one for DVI output and one for USB input.
Now, with the USB Host Featherwing, there's theoretically no need for the second microcontroller.
-
Unicomp Mini M with CircuitPython
Unicomp Mini M with CircuitPython
Unicomp is the heir to the IBM Buckling Spring legacy. This style of keyboard has a distinctive sound & feel which some people just can't get enough of. I'm one of them, having used a crusty old Model M for at least a decade at work.
Their "Mini M" is an 87-key ("tenkeyless") layout, and in late summer 2023 the controller was replaced with a board that has a Raspberry Pi Pico soldered on to it.
It's too soon for me to have formed a strong opinion about this keyboard, though I will note that the cable seems to be in the category of "incredibly cursed": It is a USB A-A cable, which should not exist. If your computer is USB-C only you're entering dongle city, but, you're probably used to that.
In this mini-guide, you'll learn how to replace the factory firmware with a fully customizable CircuitPython firmware. Of course, once you have the controller in UF2 bootloader mode, you could also use Arduino or Pico-SDK to program it with the software of your choice.
Note that this involves opening up the keyboard enclosure and there is always the possibility that you will damage the keyboard while doing so.