MoreRSS

site iconHackadayModify

Hackaday serves up Fresh Hacks Every Day from around the Internet. Our playful posts are the gold-standard in entertainment for engineers and engineering enthusiasts.
Please copy the RSS to your reader, or quickly subscribe to:

Inoreader Feedly Follow Feedbin Local Reader

Rss preview of Blog of Hackaday

沃尔玛原子钟

2026-02-15 14:00:21

In the realm of first-world problems, your cheap wall clock doesn’t keep time, so you have to keep setting it. The answer? Of course, you connect it to NTP and synchronize the clock with an atomic time source. If you are familiar with how these generic quartz clock movements work, you can probably guess the first step is to gut the movement, leaving only the drive motor.

The motor is somewhat like a stepper motor. The ESP8266 processor can easily control the clock hands by sending pulses to the motor. The rest is simple network access and control. If the network time is ahead, the CPU gooses the clock a little. If it is behind, the CPU stalls the clock until it catches up.

If you’ve ever done a project like this, you know there is one major problem. At some point, the processor needs to know where the hands are now. On initial setup, you can force the issue. However, if the power goes out, it won’t work well. If the power goes out at, say, 8 AM and turns back on at 9 AM, the CPU will be happy to correct the time to agree with the NTP time. The problem is that the processor has no idea that the hands started at 8 AM, so the time will be off.

To combat this problem, the design uses an EERAM chip to store the current time. In the event of a power failure, the CPU knows where its hands are and can adjust accordingly.

While you usually use these movements to keep time, once you can control them, you can do any crazy thing you like. Or, even anything as artistic as you can dream up.

使用ESP32、VL53L5CX传感器和IMU进行实时三维房间测绘

2026-02-15 11:00:54

ST’s VL53L5CX is a very small 8×8 grid ranging sensor that can perform distance measurements at a distance of up to 4 meters. In a recent video,[Henrique Ferrolho] demonstrated that this little sensor can also be used to perform a 3D scan of a room. The sensor data can be combined with an IMU to add orientation information to the scan data. These data streams are then combined by an ESP32 MCU that streams the data as JSON to a connected computer.

Of course, that’s just the heavily abbreviated version, with the video covering the many implementation details that crop up when implementing the system, including noise filtering, orientation tracking using the IMU and a variety of plane fitting algorithms to consider.

Note that ST produces a range of these Time-of-Flight sensors that are more basic, such as the VL53VL0X, which is a simple distance meter limited to 2 meters. The VL53L5CX features the multizone array, 4-meter distance range, and 60 Hz sampling speed features that make it significantly more useful for this 3D scanning purpose.

The Python-based viewer that runs on the PC can be found on GitHub, along with the ESP32 firmware.

使用Ghidra逆向工程一个Dash机器人

2026-02-15 08:00:50

A marketing image of a Dash educational robot is shown. It is made of a triangle pyramid of four plastic spheres. Two of the base spheres house wheels, and the top sphere houses a speaker, lights, and sensors.

One of the joys of browsing secondhand shops is the possibility of finding old, perhaps restorable or hackable, electronics at low prices. Admittedly, they usually seem to be old flat-screen TVs, cheap speakers, and Blu-ray players, but sometimes you find something like the Dash, an educational toy robot. When [Jonathan] came across one of these, he decided to use it as a turtle robot. However, he found the available Python libraries insufficient, and improving on them required some reverse-engineering.

While [Jonathan] was rather impressed with the robot as it was – it had a good set of features, and thought had clearly been put into the design – he wanted a more open way to control it. There was already a quite useful, official Python program to control the robot over a BLE connection, but it only worked with Python 2 on OS X ([Jonathan] theorizes that it might have been written as a development tool, open-sourced, and not diligently supported afterwards). There were also a few third-party libraries ported to Python 3, but they all seemed to be missing some important features.

All the newer libraries were limited because the official library passed commands to an OS X binary, which handled the actual communication, so anyone wanting to do everything in Python would have to reverse-engineer the communications protocol. [Jonathan] therefore used Ghidra to decompile the binary. He first found the JSON structure used for message data, followed by a function that reads command information and sets up packets, and a mapping between Python command names and command IDs. Once he found the section that creates packets from data, he was able to port the program to Python 3. Interestingly, examining the binary revealed some previously unknown commands that appear to be capable of defining autonomous behavior.

We’ve previously seen Ghidra used on devices ranging from a camera to a router; if you’d like to learn more, there’s a HackadayU course on it.

复古加拿大视频硬件成为自制计算机

2026-02-15 05:00:55

Are you in the mood for a retrocomputing deep dive into the Scriptovision Super Micro Script? It was a Canadian-made vintage video titler from the 80s, and [Cameron Kaiser] has written up a journey of repair and reverse-engineering for it. But his work is far more than just a refurbish job; [Cameron] transforms the device into something not unlike 8-bit homebrew computers of the era, able to upload and run custom programs with a limited blister keypad for input, and displaying output on a composite video monitor.

Hardware-wise, the Super Micro Script is almost a home computer, so [Cameron] got it accepting and running custom code.
A video titler like the Super Micro Script gave people the ability to display bitmapped images (like text or simple graphics) onto a video stream electronically. A standalone device, under the hood, it uses a 6502 as CPU and a Motorola 6847 VDG video chip. [Cameron] observes that architecture-wise, it actually had a lot in common with early 8-bit home computers. Sure, it performed only one “job” but that really had more to do with its restrictive firmware than anything else.

[Cameron] obtained a used unit and repaired it, reverse-engineered the scrambled address and data lines (an anti-cloning and anti-tampering measure), and converted it into something for which he could write his own software and run his own programs. As for uploading those programs? A bit-banged serial port on I/O borrowed from the blister keypad, running at a frankly quite respectable 19.2 kbps.

We hope you’re intrigued, because [Cameron] has one more surprise: he created a MAME emulator for the Super Micro Script called SMSBUG. Originally created to make software development easier, its existence also means anyone can join in on the vintage computing fun. The emulator, along with other handy utilities and info, is available on GitHub.

2020款ThinkPad P14s Gen 1笔记本电脑上运行Windows 98

2026-02-15 02:00:14

The lovely thing about the x86 architecture is its decades of backwards compatibility, which makes it possible to run 1990s operating systems on modern-day hardware, with relatively few obstacles in the way. Recently [Yeo Kheng Meng] did just that with Windows 98 SE on a 2020 ThinkPad P12s Gen 1, booting it alongside Windows 11 and Linux from the same NVMe drive.

Naturally, after previously getting MS-DOS 6.22 from 1994 running on a 2020 ThinkPad X13, the step to doing the same with Windows 98 SE wasn’t that large. The main obstacles that you face come in the form of UEFI and hardware driver support.

Both ThinkPad laptops have in common that they support UEFI-CSM mode, also known as ‘classical BIOS’, as UEFI boot wasn’t even a glimmer yet in some drunk engineer’s eye when Win98 was released. After this everything is about getting as many hardware drivers scrounged together as possible.

[Yeo] ended up having to bodge on a USB 2.0 expansion card via a Thunderbolt dock as Win98 doesn’t have xHCI (USB 3.0) support. With that issue successfully bodged around using a veritable tower of adapters, installing Windows 98 was as easy as nuking Secure Boot in the BIOS, enabling UEFI-CSM along with Thunderbolt BIOS assist mode and disable Kernel DMA protection.

Because UEFI-CSM implementations tend to be buggy, the CREGFIX DOS driver was used to smooth things over. Another issue is the same that we chuckled about back in the day, as Windows 98 cannot address more than 512 MB of RAM by default. Fortunately patches by [Rudolph Loew] helped to fix this and some other smaller issues.

Unfortunately neither Intel nor NVIDIA have released Win98 drivers for quite some time, so there’s no graphics acceleration beyond basic VESA support and the SoftGPU driver. Disk access goes via the BIOS too rather than using an NVMe driver, so it’s not as zippy as it could be, but for Win9x it’s quite usable.

Finally ACPI wasn’t recognized by Win98, but it’s only fair to blame that on the complete flaming train wreck that is ACPI rather than anything to do with Windows. This particular issue was worked around by configuring the BIOS to support S3 power state and with that making Win98 happy again.

It’s honestly quite a shame that UEFI-CSM is largely ignored by new systems, as it makes installing even Windows 7 basically impossible, and thus creating probably the largest split within the x86 ecosystem since the arrival of AMD64/x86_64.

尊重你的错误

2026-02-14 23:00:47

Musician Brian Eno’s Oblique Strategies are like a Tarot card deck full of whimsical ideas meant to break up a creative-block situation, particularly in the recording studio. They’re loads of fun to pick one at random and actually try to follow the advice, as intended, but some of them are just plain good advice for creatives.

One that keeps haunting me is “Honor thy error as a hidden intention”, which basically boils down to taking a “mistake” and seeing where it leads you if you had meant to do it. I was just now putting the finishing touches on this week’s Hackaday Podcast, and noticed that we have been honoring a mistake for the past 350-something shows. Here’s how it happened.

When Mike and I recorded the first-ever podcast, I had no idea how to go about doing it. But I grew up in Nashville, and know my way around the inside of a music studio, and I’ve also got more 1990s-era music equipment than I probably need. So rather than do the reasonable thing, like edit the recording on the computer, we recorded to an archaic Roland VS-880 “Digital Studio” which is basically the glorified descendant of those old four-track cassette Portastudios.

If you edit audio in hardware, you can’t really see what you’re doing – you have to listen to it. And so, when I failed to notice that Mike and I were saying “OK, are you ready?” and “Sure, let’s go!”, it got mixed in with the lead-in music before we started the show off for real. But somehow, we said it exactly in time with the music, and it actually sounded good. So we had a short laugh about it and kept it.

And that’s why, eight years later, we toss random snippets of conversations into the intro music to spice it up. It was a mistake that worked. Had we been editing on the computer, we would have noticed the extra audio and erased it with a swift click of the mouse, but because we had to go back and listen to it, we invented a new tradition. Honor thy error indeed.

This article is part of the Hackaday.com newsletter, delivered every seven days for each of the last 200+ weeks. It also includes our favorite articles from the last seven days that you can see on the web version of the newsletter. Want this type of article to hit your inbox every Friday morning? You should sign up!