Bringing Achievements To The Nintendo Entertainment System

Microsoft made gaming history when it developed Achievements and released them with the launch of the Xbox 360. They have since become a key component of gaming culture, which similar systems rolling out to the rest of the consoles and even many PC games. [odelot] has the honor of being the one to bring this functionality to an odd home—the original Nintendo Entertainment System!

It’s actually quite functional, and it’s not as far-fetched as it sounds. What [odelot] created is the NES RetroAchievements (RA) Adapter. It contains a Raspberry Pi Pico which sits in between a cartridge and the console and communicates with the NES itself. The cartridge also contains an LCD screen, a buzzer, and an ESP32 which communicates with the Internet.

When a cartridge is loaded, the RA Adapter identifies the game and queries the RetroAchievements platform for relevant achievements for the title. It then monitors the console’s memory to determine if any of those achievements—such as score, progression, etc.—are met. If and when that happens, the TFT screen on the adapter displays the achievement, and a notification is sent to the RetroAchievements platform to record the event for posterity.

It reminds us of other great feats, like the MJPEG entry into the heart of the Sega Saturn.

Continue reading “Bringing Achievements To The Nintendo Entertainment System”

Hybrid Mechanical Clock Shows It Both Ways

After seeing some of the interesting clock builds we’ve featured recently, [shiura] decided to throw their hat in the ring and sent us word about their incredible 3D printed hybrid clock that combines analog and digital styles.

While the multiple rotating rings might look complex from the front, the ingenious design behind the mechanism is powered by a single stepper motor. Its operation is well explained in the video below, but the short version is that each ring has a hook that pushes its neighboring ring over to the next digit once it has completed a full rotation. So the rightmost ring rotates freely through 0 to 9, then flips the 10-minute ring to the next number before starting its journey again. This does mean that the minute hand on the analog display makes a leap forward every 10 minutes rather than move smoothly, but we think its a reasonable compromise.

Beyond the 28BYJ-48 geared stepper motor and its driver board, the only other electronics in the build is a Seeed Studio XIAO ESP32C6 microcontroller. The WiFi-enabled MCU is able to pull the current time down from the Internet, but keep it mind it takes quite awhile for the mechanism to move all the wheels; you can see the process happen at 60x speed in the video.

If you’re looking to recreate this beauty, the trickiest part of this whole build might be the 3D print itself, as the design appears to make considerable use of multi-material printing. While it’s not impossible to build the clock with a traditional printer, you’ll have to accept losing some surface detail on the face and performing some well-timed filament swaps.

[shirua] tells us they were inspired to send their timepiece in after seeing the post about the sliding clock that just went out earlier in the week.

Continue reading “Hybrid Mechanical Clock Shows It Both Ways”

Golang On The PS2

A great many PlayStation 2 games were coded in C++, and there are homebrew SDKs that let you work in C. However, precious little software for the platform was ever created in Golang. [Ricardo] decided this wouldn’t do, and set about making the language work with Sony’s best-selling console of all time. 

Why program a PS2 in Go? Well, it can be easier to work with than some other languages, but also, there’s just value in experimenting in this regard. These days, Go is mostly just used on traditional computery platforms, but [Ricardo] is taking it into new lands with this project.

One of the challenges in getting Go to run on the PS2 is that the language was really built to live under a full operating system, which the PS2 doesn’t really have. However, [Ricardo] got around this by using TinyGo, which is designed for compiling Go on simpler embedded platforms. It basically takes Go code, turns it into an intermediate representation, then compiles binary code suitable for the PS2’s Emotion Engine (which is a MIPS-based CPU).

The specifics of getting it all to work are quite interesting if you fancy challenges like these. [Ricardo] was even able to get to an effective Hello World point and beyond. There’s still lots to do, and no real graphical fun yet, but the project has already passed several key milestones. It recalls us of when we saw Java running on the N64. Meanwhile, if you’re working to get LOLCODE running on the 3DO, don’t hesitate to let us know!

Software Hacks Unlock Cheap Spectrometer

A spectrometer is one of those tools that many of us would love to have, but just can’t justify the price of. Sure there are some DIY options out there, but few of them have the convenience or capability of what’s on the commercial market. [Chris] from Zoid Technology recently found a portable spectrometer complete with Android application for just $150 USD on AliExpress which looked very promising…at least at first.

The problem is that the manufacturer, Torch Bearer, offers more expensive models of this spectrometer. In an effort to push users into those higher-priced models, arbitrary features such as data export are blocked in the software. [Chris] first thought he could get around this by reverse engineering the serial data coming from the device (interestingly, the spectrometer ships with a USB-to-serial adapter), but while he got some promising early results, he found that the actual spectrometer data was obfuscated — a graph of the results looked like stacks of LEGOs.

Continue reading “Software Hacks Unlock Cheap Spectrometer”

A Music Box Commanded By NFC Tags

[Luca Dentella] recently encountered a toy, which was programmed to read different stories aloud based on the figurine placed on top. It inspired him to build an audio device using the same concept, only with music instead of children’s stories.

The NFC Music Player very much does what it says on the tin. Present it with an NFC card, and it will play the relevant music in turn. An ESP32 WROOM-32E lives at the heart of the build, which is hooked up over I2S with a MAX98357A Class D amplifier for audio output. There’s also an SD card slot for storing all the necessary MP3s, and a PN532 NFC reader for reading the flash cards that activate the various songs. Everything is laced up inside a simple 3D-printed enclosure with a 3-watt full range speaker pumping out the tunes.

It’s an easy build, and a fun one at that—there’s something satisfying about tossing a flash card at a box to trigger a song. Files are on Github for the curious. We’ve featured similar projects before, like the Yaydio—a fun NFC music player for kids. Video after the break.

Continue reading “A Music Box Commanded By NFC Tags”

Levitating Lego Generator Runs On Air

[Jamie] decided to build a generator, and Lego is his medium of choice. Thus was created a fancy levitating generator that turns a stream of air into electricity. 

The basic concept is simple enough for a generator—magnets moving past coils to generate electricity. Of course, Lego doesn’t offer high-strength magnetic components or copper coils, so this generator is a hybrid build which includes a lot of [Jamie’s] non-Lego parts. Ultimately though, this is fun because of the weird way it’s built. Lego Technic parts make a very crude turbine, but it does the job. The levitation is a particularly nice touch—the build uses magnets to hover the rotor in mid-air to minimize friction to the point where it can free wheel for minutes once run up to speed. The source of power for this contraption is interesting, too. [Jamie] didn’t just go with an air compressor or a simple homebrew soda bottle tank. Instead, he decided to use a couple of gas duster cans to do the job. The demos are pretty fun, with [Jamie] using lots of LEDs and a radio to demonstrate the output.  The one thing we’d like to see more of is proper current/voltage instrumentation—and some measurement of the RPM of this thing!

While few of us will be rushing out to build Lego generators, the video nonetheless has educational value from a mechanical engineering standpoint. Fluids and gases really do make wonderful bearings, as we’ve discussed before. Video after the break.

Continue reading “Levitating Lego Generator Runs On Air”

Building A Sliding Tile Clock

Hackers like making clocks, and we like reporting on them around these parts. Particularly if they’ve got a creative mechanism that we haven’t seen before. This fine timepiece from [gooikerjh] fits the bill precisely—it’s a sliding tile clock!

The brains of the build is an Arduino Nano ESP32. No, that’s not a typo. It’s basically an ESP32 in a Nano-like form factor. It relies on its in-built WiFi hardware to connect to the internet and synchronize itself with time servers so that it’s always showing accurate time. The ESP32 is set up to control a set of four stepper motors with a ULN2003 IC, and they run the neat time display mechanism.

All the custom parts are 3D printed, and the sliding tile concept is simple enough. There are four digits that show the time. Each digit contains number tiles that slide into place as the digit rotates. To increment the digit by one, it simply needs to be rotated 180 degrees by the relevant stepper motor, and the next number tile will slide into place.

We love a good clock at Hackaday—the more mechanical, the better. If you’re cooking up your own nifty and enigmatic clocks at home, don’t hesitate to drop us a line!