Running Zork On The Steam Controller

The Steam Controller is a device capable of many interesting feats. It’s intended to act simply as an input device, and yet, it can run games all on its own. As [Owen Feldman] has demonstrated, by having the Steam Controller play Zork.

[Owen] took quite an interesting route to get the there: he wrote a Rust program to emulate the Intel 8080 CPU and CP/M, as one does. This was ported to the Steam Controller, which emulates the CPU and memory on its own internal processor. I/O is streamed over USB, since the Steam Controller lacks a keyboard or screen. The CP/M disk lives in the controller, but the Zork disk data is streamed over USB as well.

If you’re wondering how [Owen] got all this running on the controller, he explains on his personal website. He used what appears to be an undocumented tool included with Steam that allows flashing firmware on the device. Helpfully, Valve also include the original firmware in the same folder, unsigned and only relying on a simple CRC checksum. [Owen] bricked his controller a couple times experimenting with this tool and loading his own firmware, but all came good in the end.

The Steam Controller is probably the oddest device to run CP/M for a while, but hey—it’s a neat party trick. Not much is going to top the auto-docking hack from a few months ago, though.

Continue reading “Running Zork On The Steam Controller”

Homebrew 68K Machine Has A PCI Bus

The Peripheral Component Interconnect (PCI) bus was first introduced all the way back in 1992. It quickly became the standard way to interface add-on cards on the PC platform, supplanting earlier buses like ISA and various other oddball standards. You wouldn’t expect to see a PCI bus on a Motorola-based machine, but [maniek86]’s homebrew rig offers just that. 

That’s a lot of soldering.

This computer is a beautiful piece of homebrew engineering, constructed out of protoboard and loose wires rather than any fancy PCB. At the heart of the build lies a Motorola 68000 running at 10 MHz. It’s got 1 MB of SRAM, 4 KB of ROM, and a MC68681P acting as a UART, timer source, and I/O controller. Where things get special, though, is in the inclusion of a Xilinx Spartan II FPGA (XC2S100), which acts as a PCI bridge. It provides the machine with two 32-bit 5-volt PCI slots which are interrupt capable, albeit with no bus mastering. A XC95144XL CPLD also sits present to act as glue logic to help lace everything together.

[maniek86] does a great job of explaining exactly why the PCI bus was hard to implement, and how it was pulled off in the end. The guide also covers how the system was able to interface various cards, from a PCI serial expansion to a Cirrus VGA adapter. It’s all good stuff.

We’ve featured other work from [maniek86] before, too, like this brilliant 486-based single-board computer. Video after the break.

Continue reading “Homebrew 68K Machine Has A PCI Bus”

Quick Share Implemented On A Kindle

Quick Share is a useful tool for flipping files between Android smart phones in a fuss-free wireless manner. [unrealJune] has now implemented the feature on Kindle devices.

You’ll need a jailbroken Kindle to use this, which is running the Kindle Unified Application Launcher and KOReader as well. You’ll also want SSH access, and a machine that has Go and Docker for you to build the project. [unrealJune] steps through the steps to compile and install the Quick Share plugin to KOReader, as well as explaining how it works. Notably, it’s receive only—so you can spit files onto the Kindle, but you can’t send them from the Kindle to other devices. The Kindle will also automatically accept files, which is worth noting if you’re security conscious. If there’s no network, the Kindle is also able to appear as its own AP if needed.

Think of this as a nifty convenience if you find yourself regularly trying to truck files on to your jailbroken Kindle. It’s also a neat to see a Quick Share implementation from the open source world. Between-device sharing still sucks, as we’ve discussed before, but there are at least attempts being made to make it better. That’s something!

Smarting Up A Doorbell With Zigbee

Once upon a time a doorbell was little more than a button, a transformer, and a bell tucked somewhere around the house. These days, they get a little bit fancier. [Philipp Schweizer] has recently been exploring how to turn existing dumb doorbells into smarter ones.

The build is based around a wired doorbell setup, in particular, a Vistadoor ADV-100. [Philipp] was able to find a simple place to tap in to a signal that went to 5 V when the doorbell was rung. He wanted to hook this into his smart home system as easily as possible. Thus, he grabbed a rather unique part—the ESP32-H2. This is notable in the ESP32 family for having no WiFi connectivity. What it does have, however, is an 802.15.4 radio good for Thread and Zigbee communications.

[Phillip] explains that hooking the ESP32-H2 up to fire a notification to Home Assistant every time the doorbell goes off is easy—and it doesn’t mess with the standard doorbell’s chiming behavior one bit. He also explains how to set up neat automations, such as having a separate smart camera capture an image when the door bell is fired.

If you’re looking to integrate an existing doorbell into your Home Assistant setup, this project could be just what you need. We’ve featured some other neat doorbell builds too, like this touchless design from the dark days of the coronavirus pandemic.

Hackaday Europe 2026: The 1-Bit CPU That Ran Factories

Powered machinery started the industrial revolution, and it was automation that kicked it up another notch in the 20th century. The ability for machines to make things by themselves spurred increased output and in turn boosted economic growth. The concept became widely popular for manufacturers to implement, as any change with serious economic benefit tends to do. Fast forward to today, and advanced robots and fancy machine vision systems running on powerful computers are the norm in modern factories which create the many wonderful products that we all purchase, use, and enjoy.

Once upon a time, though, things weren’t so sophisticated. [Nicola Cimmino] came to Hackaday Europe 2026 to tell us all about a remarkably simple 1-bit CPU that used to run factories.

Continue reading “Hackaday Europe 2026: The 1-Bit CPU That Ran Factories”

Building Custom Backyard Solar Lights

In this modern age, if you want a truly swish garden that makes your friends sad when they visit, you need good lighting. [technocraftStudio] has been working on just such a project, creating custom wedge lights to illuminate garden beds in style.

You might look at the plastic housings involved and assume that they’re 3D printed, like the vast majority of such projects we cover these days. Instead, the enclosures are crafted out of PVC plastic, harvested by flattening sections of pipe with a heat gun. It has the benefit of being highly weather resistant, and cheap to boot. The lights themselves are small LED panels mounted on aluminium plate as a heatsink, and fitted with an acrylic diffuser to spread the light out more evenly. Power for the lights comes from an 18650 lithium-ion cell, charged by a pair of solar panels hooked up to an MPPT charge controller. A TP223 capacitive touch module is also included in the design to allow the lights to be turned on with just the touch of a finger.

The result is a surprisingly stylish bit of garden furniture which provides warm, even light and, ideally, needs a minimum of maintenance and attention since the sun provides the power. We’ve featured some other great solar lamps before, too, like this lovely Pokemon-themed build. If you’re building your own solar projects at home, or doing weird things with PVC, we’d probably love to hear about it on the tipsline!

A Hot End And Material Database For 3D Printing

When it comes to 3D printing in the FDM world, you can go a long way just relying on standard settings that ship with your 3D printer and/or slicer. If you want to push the limits, though, it pays to better understand the hardware and materials you’re working with to know what you can get away with. To that end, [Robert Samples] put together the MeltCalc database to help. 

The purpose of MeltCalc is simple—it collates data on hot ends and materials regarding factors like maximum flow rate, print speeds, and heater requirements. If you’re wondering whether a given hot end can flow a given filament at a given rate, for example, this tool is a great place to start. It features 64 different hot ends and 36 polymers typically used in the 3D printing world, and can spit out maximum flow rates and print speed estimations even accounting for fancy tech like Core Heating Technology (CHT) nozzles. It’s all based on thermodynamic modelling which [Robert] put together based on his experience as a chemist who works with polymers. His aim was to provide a tool with realistic flow rates for hot ends, so that end users don’t have to just rely on often-optimistic marketing numbers.

For those eager to dive deeper into the code and modelling, the project source is available on Github. We’ve featured all kinds of other useful hacks in this space lately, too, like our recent look at how to achieve wave overhangs. If you’ve got your own nifty 3D printing tools in the works, don’t hesitate to notify the tipsline.