It Ain’t Broke, But Should I Fix It?

Five years ago, I wrote a series on getting started with your own MQTT-based home information/automation network. Five years is a long while in Hackaday time. Back then, the ESP8266 was a lot newer, and the 8266 Arduino port wasn’t fully in shape yet, and the easiest software framework to get MQTT up and running was NodeMCU; so that’s what I used for the article series, and as a consequence a handful of devices around my house run minor modifications of that basic “hello world”, but doing useful stuff.

Since then, NodeMCU has changed a bunch of its libraries and the ESP32 has replaced the ESP8266 in my parts drawer. If you tried to run my code, you’d find that it won’t run on an ESP8266 without porting or compiling an old version of NodeMCU for yourself anyway, and it won’t run on an ESP32 at all. When [Chris Lott] tried to follow my guide, he discovered that Micropython is probably a better language choice in 2021. To minimize lines of code, I’d agree, although the Arduino and Espressif’s own native IDF have grown into the job just about as well. In short, anything but NodeMCU.

Built in an hour, survived for five years.

But my home automation system doesn’t care. Those little guys are running 24/7, flipping bits like it was still 2016. Thermometers, light sensors, and power meters haven’t changed much in five years, and although I’ve revamped the databasing, display, and user control a number of times since then, using a fixed communication transport protocol means that they’re still talking the same language. Indeed, even if NodeMCU is dead to me, the MQTT content of my original series is all still valid, and installing a broker on a Raspberry Pi has only become easier in the intervening five years.

So I’ve got a bunch of legacy code running within the walls of my own home, and it makes me nervous. If the devices fail, or maybe when they eventually fail, it’s not going to be “just flash another ESP8266 and replace it”, because even though I have some ancient NodeMCU binaries sitting around, I know when to throw in the towel. But there’s no good reason to pull them down and start reflashing either. Except that it makes me a little bit itchy, just knowing that there’s orphaned, dead-end code running all around me. Surrounding me. Staring deep into my hacker’s heart.

I know better than to tear down a running system, even though I could do it one device at a time, and each module would surely be a simple, independent fix; even though I’d love the excuse to play around with Micropython and its MQTT implementation on the ESP8266, or maybe even swap some of them out for ESP32s; even though these were all temporary quick hacks that have somehow served for five (5!) years. I certainly know better, right? (Right?)

Stochastic Markov Beats

[Attoparsec] has been building intriguing musical projects on his YouTube channel for a while and his latest is no exception. Dubbed simply as “Node Module”, it is a rack-mounted hardware-based Markov chain beat sequencer. Traditionally Markov chains are software state machines that transition between states with given probabilities, often learned from a training corpus. That same principle has been applied to hardware beat sequencing.

Each Node Module has a trigger input, four outputs each with a potentiometer, and a trigger out. [Attoparsec] has a wonderful explanation of all the different parts and theories that make up the module at the start of his video, but the basic operation is that a trigger input comes in and the potentiometers are read to determine the probabilities of each output. One is randomly selected and fired. As you can imagine, there are loops and even dead-end nodes and for some musical pieces there is a certain number of beats expected, so a clever reset signal can be sent to pull the chain back to the initial starting state at a regular interval. The results are interesting to listen to and even better to imagine all the possibilities.

The module itself is an Arduino-based custom PCB that is laid out quite cleanly. The BOM, code, and KiCad files are available on GitHub if you want to make one yourself. This isn’t the first instrument we’ve seen [Attoparsec] make, and we’re confident it won’t be the last.

Continue reading “Stochastic Markov Beats”

Launching An Open Source Keyboard; System76 Has Published Their Design Files

System76, a computer manufacturer known for selling machines which run Linux, recently unveiled the complete sources for their forthcoming Launch mechanical keyboard. Made with familiar tools, mass produced, and backed by a stable company it looks like the Launch will be a compelling entrant into the world of mechanical keyboards.

Back in March of 2020 System76 published a blog post about a new project they were embarking on; a mechanical keyboard with an unusual layout. At the time there was scant information available besides a summer 2021 target and little was heard until last week when they opened up access to the Launch repository. Everything should be recognizable if you’ve ever looked at the sources for a customized mechanical keyboard before, which is what gets our attention. Electrical sources are authored with KiCad and should be easy to tweak or fabricate. And mechanical components are provided in STEP files with mechanical drawings, presumably because they intend to actually manufacture these.

launch-chassis.pngFeature wise all the usual hallmarks of a well designed keyboard are here. The Launch uses hostswap sockets to make it easy to install the usual Cherry MX compatible switch options, and includes per-key RGB backlighting courtesy of SK6805 LEDs. The ATmega32U4 runs the popular and extremely capable QMK firmware instead of something bespoke, so it should be easy to customize to the user’s desire.

System76 touts an unusual key layout, but if you’ve seen a 75% keyboard before it shouldn’t be too threatening (though we do wonder about that shrunken right shift). The most unusual feature is that it features a USB hub capable of full speed 10 gigabit USB 3.1 Gen 2 on two USB-C and two USB-A ports. It’s worth checking out the schematic to appreciate how much more complicated the hub design is than the rest of the keyboard, which is practically vestigial in comparison.

The remaining unknown is how the Launch integrates with Pop!_OS, System76’s awkwardly named remix of Ubuntu. They promise deep, compelling integration and we’re excited to see how that manifests.

Writing Pretty Flux Patterns To Old Floppy Disks

Floppy disks are rapidly aging, and archivists are working hard to preserve what data is left. This has led to the development of advanced floppy controllers capable of capturing the raw flux data from disks. [bzotto] was experimenting with the Applesauce archival hardware, and had some fun with the tools.

The result is a highly esoteric Easter egg. [bzotto]’s Picturedsk tool takes a bitmap image as input, and imprints that image into the magnetic flux of the disk. Thus, when viewing a dump of the disk’s magnetic flux on an archival program, the hidden image will be revealed. As an extra treat, it also writes a 1-bit version of the image to track 0, along with a barebones Apple ][ program to display the image and implore the user to investigate further.

It’s a fun hack that we could imagine being used as part of a game at a retro computing con, when we get to go back to those of course. We’ve seen Applesauce used before, too. If you’ve got your own archival projects on the go, be sure to let us know!

3D Print Your Next Antenna

Building antennas is a time-honored ham radio tradition. Shortwave antennas tend to be bulky but at VHF frequencies the antenna sizes are pretty manageable. [Fjkaan’s] 2 meter quadrifilar helicoidal antenna is a good example and the structure for it can be created with 3D printing combined with electrical conduit.

Many people, including [G4ILO] use PVC pipe for the structure, and that design inspired [Fjkaan]. Despite being a bit less substantial, the conduit seems to work well and it is easy to cut. The helical design is common for satellite work owing to its circular polarization and omnidirectional pattern.

Continue reading “3D Print Your Next Antenna”

Homebrew Doorknob Caps For High-Voltage Fun

Mouser and Digi-Key are great for servicing most needs, and the range of parts they offer is frankly bewildering. But given the breadth of the hardware hacking community’s interests, few companies could afford to be the answer to everyone’s needs.

That’s especially true for the esoteric parts needed when one’s hobby involves high voltages and homemade lasers, like [Les Wright]. He recently came up with a DIY doorknob capacitor design that makes the hard-to-source high-voltage caps much easier to obtain. We’ve seen [Les] use these caps in his transversely excited atmospheric (TEA) lasers, a simple design that uses high-voltage discharge across a long, narrow channel filled with either room air or nitrogen. The big ceramic caps are needed for the HV supply, and while [Les] has a bunch, they’re hard to come by online. He tried a follow-up using plain radial-lead ceramic capacitors, and while the laser worked, he did get some flashover between the capacitor leads.

[Les]’s solution was to dunk the chunky caps in acetone for a week or so to remove their epoxy covering. Once denuded, the leads were bent into a more axial configuration and soldered to brass machine screws. The dielectric slug is then put in a small section of plastic tubing and potted in epoxy resin with the bolts protruding from each end. The result is hard to distinguish from a genuine doorknob cap; the video below shows the build process as well as some testing.

Hats off to [Les] for taking pity on those of us who want to replicate his work but find ourselves without these essentials. It’s nice to know there’s a way to make unobtanium parts when you need them.

Continue reading “Homebrew Doorknob Caps For High-Voltage Fun”

12-Note Polyphony On An Arduino Synth

When synthesizers first hit the scene back in the mid-20th century, many were monophonic instruments, capable of producing just one pitch at a time. This was a major limitation, and over time polyphonic synthesizers began to flood into the scene, greatly expanding performance possibilities. [Kevin] decided to build his own polyphonic synthesizer, but far from taking the easy route, he built it around the Arduino Uno – not a platform particularly well known for its musical abilities! 

[Kevin]’s build manages 12-note polyphony, an impressive feat for the ATmega328 at the heart of the Arduino Uno. It’s done by running an interrupt on a timer at a steady rate, and implementing 12 counters, one per note. When a counter overflows, a digital IO pin is flipped. This outputs a square wave at a certain pitch on the IO pin, producing the given note. The outputs of 12 digital IO pins are mixed together with a simple resistor arrangement, producing a basic square wave synth. Tuning isn’t perfect, but [Kevin] notes a few ways it could be improved down the line.

[Kevin] has added features along the way, expanding the simple synth to work over several octaves via MIDI, while also building a small tactile button keyboard, too. It’s a project that serves as a great gateway into basic synthesis and music electronics, and we’re sure [Kevin] learned a lot along the way. We’ve seen other microcontroller synths before too, like this tiny device that fits inside a MIDI plug. Video after the break.

Continue reading “12-Note Polyphony On An Arduino Synth”