You’ve probably seen a few of these miniature arcade games online or in big box retailers: for $20 USD or so you get scaled-down version of a classic arcade cabinet, perfect for a desk toy or to throw up on a shelf as part of your gaming collection. Like any good Hackaday reader, you were probably curious about what makes them tick. Thanks to [wrongbaud], we don’t have to wonder anymore.
Over the course of several blog posts, [wrongbaud] walks readers through the hardware and software used in a few of these miniature games. For example, the Rampage cabinet is using a so-called “NES on a Chip” along with a SPI flash chip to hold the ROM, while Mortal Kombat is using a Genesis emulation solution and parallel flash. It wouldn’t be interesting if they didn’t throw you a few curves now and again, right?
But these are more than simple teardowns. Once [wrongbaud] gives an overview of the hardware, the next step is reading the respective flash storage and trying to make sense of the dumped data. These sort of games generally reuse the hardware among a number of titles, so by isolating where the game ROM is and replacing it, they can be made to play other games without hardware modification. Here, this capability is demonstrated by replacing the ROM data for Rampage with Yoshi’s Cookie. Naturally it’s one of those things that’s easier said than done, but it’s an interesting proof of concept.
The Mortal Kombat cabinet is a newer addition to the collection, so [wrongbaud] hasn’t progressed quite as far with that one. The parallel flash chip has been dumped with the help of an ESP32 and a MCP23017 I/O expander, and some Genesis ROM headers are identifiable in the data, but there’s still some sifting to be done before the firmware structure can be fully understood.
Even if you’re not in the market for a diminutive arcade experience, the information that [wrongbaud] has collected here is really phenomenal. From understanding protocols such as I2C and SPI to navigating firmware dumps with a hex editor, these posts are an invaluable resource for anyone looking to get started with reverse engineering.
Love ’em or hate ’em, Nixies and the retro clocks they adorn are here to stay. At least until the world’s stock of surplus Soviet tubes is finally depleted, that is. The glow discharge tubes were last mass manufactured in the 1980s, and while they’re not too hard to get a hold of yet, they will be eventually. And what better way to get ready for that dreaded day than by rolling your own OLED faux Nixie tubes?
Granted, [Derek]’s faux Nixies, appropriately dubbed “Fixies,” require just a touch of willing suspension of disbelief. We’ve never see Nixies with tiny jam jars as envelopes, so that’s probably the first giveaway. But looking past that, the innards of these fake displays do a pretty convincing job of imitating the texture of the real thing.
The numbers themselves are displayed on a 128×64 white OLED display using a Nixie-like True Type font. An orange acrylic filter in front of the display gives it that warm amber Nixie glow, with laser etchings mimicking both the fine hexagonal anode grid and the ghostly cathodes of the non-illuminated numerals. The tubes looked convincing enough that a clock was in order, and after sorting through an I2C bottleneck with the help of a multiplexer, [Derek] had a pretty decent faux-Nixie clock, complete with a solenoid-actuated mechanical gong. The double-digit display for the seconds will no doubt cause some consternation among Nixie purists, but that’s probably part of the fun.
Of course, just because Nixies aren’t being mass-produced today doesn’t mean you can’t get new ones. You just have to be willing to pay for them, and [Dalibor Farný] will gladly set you up with his handmade artisanal Nixies, or even a clock kit using them.
Continue reading “Turning OLEDs And Acrylic Into Faux Nixie Tubes”
While it might be in its twilight years, the venerable VGA video connector conceals a versatile interface that can still provide the experimenter with the opportunity for a variety of hacks. We’ve not seen anything quite like [flok]’s one, in which he uses the VGA interface to insert timing information from which an NTPd instance gets its reference.
If this seems counter-intuitive because a VGA interface is an analogue output rather than a digital input, then you are correct to smell a rat. And he comes clean in his first sentence, as he’s not using the VGA lines themselves but the I2C interface that is a feature of all but the most basic of VGA cards. This is the means by which a plug-and-play operating system can identify a monitor’s capabilities, but there’s little to stop it being used for other purposes. In this case an Arduino fed by a 1-pulse-per-second timing signal from a temperature compensated crystal oscillator provides the I2C peripheral which is polled by NTPd.
This project should be of interest to any tinkerer because of its invaluable information on identifying and using the I2C interface on a VGA socket. So if you’ve used your VGA card as an SDR you might find it interesting, but hurry or you could have missed the boat entirely.
VGA plug image: Swift.Hg [CC BY-SA 3.0]
The promise of USB Power Delivery (USB-PD) is that we’ll eventually be able to power all our gadgets, at least the ones that draw less than 100 watts anyway, with just one adapter. Considering most of us are the proud owners of a box filled with assorted AC/DC adapters in all shapes and sizes, it’s certainly a very appealing prospect. But [Mansour Behabadi] hasn’t exactly been thrilled with the rate at which his sundry electronic devices have been jumping on the USB-PD bandwagon, so he decided to do something about it.
[Mansour] wanted a simple way to charge his laptop (and anything else he could think of) with USB-PD over USB-C, but none of the existing options on the market was quite what he wanted. He looked around and eventually discovered the STUSB4500, a a USB power delivery controller chip that can be configured over I2C.
With a bit of nonvolatile memory onboard, it can retain its settings so he didn’t have to include a microcontroller in his design: just program it once and it can be used stand-alone to negotiate the appropriate voltage and current requirements when its plugged in.
The board that [Mansour] came up with is a handy way of powering your projects via USB-C without having to reinvent the wheel. Using the PC configuration tool and an Arduino to talk to the STUSB4500 over I2C, the board can be configured to deliver from 5 to 20 VDC to whatever device you connect to it. The chip is even capable of storing three seperate Power Delivery Output (PDO) configurations at once, so you can give it multiple voltage and current ranges to try and negotiate for.
In the past we’ve seen a somewhat similar project that used USB-PD to charge lithium polymer batteries. It certainly isn’t happening overnight, but it looks like we’re finally starting to see some real movement towards making USB-C the standard.
You’d be hard pressed to find an IT back office that doesn’t have a few Cisco routers or switches laying around and collecting dust. We’d even bet there are a decent number of people reading this post right now that have a stack of them within arm’s reach. They’re the kind of thing most of us have no practical application for, but we still can’t bear to throw away. But it looks like [Sven Tantau] has found an ideal middle ground: rather than junk his Cisco Catalyst switches, he turned them into automatic bartenders.
Inspired by all those perfect little square openings on the front, [Sven] loaded each switch with a whopping 24 peristaltic pumps, one for each Ethernet port. To fit all his plumbing inside, the switches were naturally gutted to the point of being hollow shells of their former selves, although he does mention that their original power supplies proved useful for keeping two dozen power-hungry motors well fed.
The motors are connected to banks of relays, which in turn are thrown by an ESP32 and an Arduino Nano. [Sven] explains that he wasn’t sure if the ESP32 could fire off the relays with its 3 V output, so he decided to just use an Arduino which he already knew could handle the task. The two microcontrollers work in conjunction, with a web interface on the ESP32 ultimately sending I2C commands to the Arduino when it’s time to get the pumps spinning.
[Sven] mentions his robotic bartenders were a hit at the 2019 Chaos Communication Camp, where we know for a fact the computer-controlled alcohol was flowing freely. Of course, if you don’t intend on carrying your barbot around to hacker camps, you can afford to make it look a bit swankier.
Continue reading “Introducing The First Cisco Certified Mixologist”
Creating capacitive touch-sensitive buttons is easy these days; many microcontrollers have cap-sense hardware built-in. This will work for simple on/off control, but what if you want a linear, position-sensitive input, like you’d find on a computer touchpad or your smartphone screen? Not so easy — at least until now. Trill is a family of capacitive touch sensors you can add to your projects as a linear slider, a square touchpad, or by creating your own touch surface.
Trill was created by the same team that designed Bela, an embedded platform for low-latency interactive applications, especially with audio. The new trio of Trill sensors rely on capacitive sensing to track finger movement, and communicate over I2C with your microcontroller or development board of choice. The Trill I2C library targets Arduino and Bela, but should be easy to port to any I2C host.
The hardware and software are both open-source — or will be as the Kickstarter that launched this morning has already met its goal. The firmware for the Cypress CY8C20636A (PDF) controller that powers these sensors will be released CC-BY-NC-SA. But, starting with the controller itself sounds like a lot of work that Trill has already done for you, so let’s have a look at what we know so far, along with a healthy dose of speculation.
Continue reading “Trill: Easy Positional Touch Sensors For Your Projects”
The 18650 cell has become a ubiquitous standard in the lithium battery world. From power drills to early Tesla vehicles, these compact cells power all manner of portable devices. A particularly common use is in laptop batteries, where they’re often built into a pack using the Smart Battery System. This creates a smart battery that can communicate and report on its own status. PackProbe is a software tool built to communicate with these batteries, and you might just find it comes in handy.
The code runs on the WiFi-enabled Arduino Yún by default, but can be easily modified to suit other Arduino platforms. Communicating over SMBus using the Arduino’s I2C hardware, it’s capable of working with the vast majority of laptop batteries out there which comply with the Smart Battery System. With that standard being minted in 1994, it’s spread far and wide these days.
It’s a great way to harvest not only the specifications and manufacturing details of your laptop battery pack, but also to check on the health of the battery. This can give a clear idea over whether the battery is still usable, as well as whether the cells are worth harvesting for those in the recycling business.
You’re not limited to just the Arduino, though. There’s a similar tool available for the ESP8266, too.