Hyundai Is Doomed: Porting The 1993 Classic To A Hyundai Head Unit

In the natural order of the world, porting DOOM to any newly unlocked computing system is an absolute given. This a rule which [greenluigi1] understands all too well, leading to presumably the first Hyundai to be equipped with this all-time classic on its infotainment system. This follows hot on the trail of re-hacking said infotainment system and a gaggle of basic apps being developed for and run on said head unit (being the part of the infotainment system on the front dashboard). Although it is a Linux-based system, this doesn’t mean that you can just recompile DOOM for it, mostly because of the rather proprietary system environment.

To make life easy, [greenluigi1] picked doomgeneric as the version to port. The main selling point of this project is that it only requires the developer to implement five functions to support a new platform, which then ‘just’ left figuring out how to do this on a head unit. Two of these (DG_SleepMs() and DG_GetTicksMS()) could be copied verbatim from the X11/xlib port, but the remaining three required a bit of sleuthing.

Where things go sideways is with keeping the head unit’s Helix window manager happy, and stick to the limited ways a GUI application can be launched, including the way arguments are passed. For the PoC, it was decided to just hardcode these arguments and only register the game with Helix using an .appconf configuration file. When it came to drawing pretty graphics on the screen, this was decidedly easier since the system uses Qt5 and thus offers the usual ways to draw to a QPixmap, which in this case maps to the framebuffer.

After a few playful sessions with the head unit’s watchdog timer, [greenluigi1] found himself staring at a blank screen, despite everything appearing to work. This turned out to be due to the alpha channel value of 0 that was being set by default, along with the need for an explicit refresh of the QPixmap. Up popped DOOM, which left just the implementation of the controls.

In order to start the game, you have to literally buckle up, and the steering wheel plus media control buttons are your inputs, which makes for a creative way to play, and perhaps wear some bald spots onto your tires if you’re not careful. If you’d like to give it a shot on your own ride, you can get the project files on GitHub.

Continue reading “Hyundai Is Doomed: Porting The 1993 Classic To A Hyundai Head Unit”

What’s Black, White, And Red On 20 Sides?

You won’t need to pack a full set of dice for your next game with this DIY Multifunctional Eink Gadget. [Sasa Karanović] brings us a fun device that combines a few essential aspects of tabletop gaming, D6, D12, and D20 dice rolling and a hero dashboard. While they have grand plans for a BLE networked future application, we admire the restraint to complete a V1 project before allowing scope-creep to run amok. Well played!

For this project, [Sasa] realized it needed to be battery powered and just choosing the right display for a battery powered application can be daunting. Even if you aren’t building this project, the video after the break includes a nice intro to electronic ink and low power microcontrollers for the uninitiated. We even see a graph of the completed board’s power draw from the button wake up, display refresh, and low power sleep. The project has some neat tips for building interaction into case design with the use of the display and a flexible bezel as integrated buttons. Continue reading “What’s Black, White, And Red On 20 Sides?”

Insulin Pump Teardown Shows One Motor Does Many Jobs

Modern insulin pumps are self-contained devices that attach to a user’s skin via an adhesive patch, and are responsible for administering insulin as needed. Curious as to what was inside, [Ido Roseman] tore down an Omnipod Dash and took some pictures showing what was inside.

A single motor handles inserting the cannula into the skin, retracting the insertion needle, and administering insulin.

These devices do quite a few things. In addition to holding a reservoir of insulin, they automatically insert a small cannula (thin tube) through the skin after being attached, communicate wirelessly with a control system, and pump insulin through the cannula as needed. All in a sealed and waterproof device. They are also essentially disposable, so [Ido] was curious about what kind of engineering went into such a thing.

The teardown stops short of identifying exactly how all the mechanisms inside work, but [Ido] was able to learn a few interesting things. For example, all of the mechanical functions — inserting the cannula with the help of a needle (and retracting the needle afterwards) and pumping insulin — are all accomplished by one motor and some clever mechanical engineering.

The electronics consist of a PCB with an NXP EX2105F 32-bit Arm7 microcontroller, a second chip that is likely responsible for the wireless communications, three captive LR44 button cells, and hardly a passive component in sight.

The software and communications side of an insulin pump like this one has had its RF communications reverse-engineered with the help of an SDR, a task that took a lot more work than one might expect. Be sure to follow that link if you’re interested in what it can take to get to the bottom of mystery 433 MHz communications on a device that isn’t interested in sharing.

An orange m5stickc plus strapped to a wrist in the foreground with the persons other hand pressing down on the top of an installed hat, communicating with another m5stickc plus in the background on the table.

M5StickC Turned Wearable Morse Code Trainer

Have you ever felt the options for Morse code communication were too limited? Well, look no further than [marsPRE]’s open source WristMorse communicator that can connect over WiFi, can act as a Bluetooth keyboard or just be used as a Morse Code trainer.

a 'hat' for an m5stickc plus with a single row pin header exposted, a 2.5mm jack and two capacitive touch buttons on the top and bottom of the hat.

[marsPRE] uses the M5StickC Plus as the base device and attaches a custom “hat” consisting of a 2.5 mm plug for a radio connection and two capacitive touch paddles that act as the Morse Code keyer. The add-on is housed in what looks like a custom 3D print and hangs off of the end of the M5StickC Plus, connecting the hat through an eight 0.1 inch pin header.

Using the M5StickC Plus allows [marsPRE] to focus on the software, providing different options for training, communication and even using the device as a Bluetooth keyboard. The two touch sensors allow for a semi automatic keying, with the top sensor used for long dashes and the bottom sensor used for short dashes.

[marsPRE] took inspiration from the Morserino-32 and has made the wrist morse code trainer open source software and available through GitHub for anyone wanting to take a look. Morse code may an old encoding method but it’s one that’s worthy of respect. You never know when you might need to send a message from your dreams or to translate spoken word Morse code.

Continue reading “M5StickC Turned Wearable Morse Code Trainer”

Hackaday Links Column Banner

Hackaday Links: March 19, 2023

We get results! Well, sort of. You may recall that in this space last week we discussed Ford’s plans to exclude AM reception on the infotainment systems of certain of their cars starting in 2024. We decried the decision, not for the loss of the sweet, sweet content that AM stations tend to carry — although we always enjoyed “Traffic on the 8s” back in our dismal days of daily commuting — but rather as a safety concern, because AM radio can reach almost the entire US population with emergency information using just 75 stations. To our way of thinking, this makes AM radio critical infrastructure, and eliminating it from motor vehicles is likely to have unintended consequences. Now it seems like there’s some agreement with that position, as former administrators of FEMA (Federal Emergency Management Administration; and no, not FEDRA) have gotten together to warn about the dangers of deleting AM from cars. Manufacturers seem to be leaning into the excuse that EVs emit a lot of radio frequency interference, rendering static-sensitive AM receivers less useful than other, more profitable less susceptible modes, like digital satellite radio. That seems like a red herring to us, but then again, the most advanced infotainment option in any car we’ve ever owned is a CD player, so it’s hard for us to judge.

Continue reading “Hackaday Links: March 19, 2023”

2022 Cyberdeck Contest: Picking The Best Of The Best

Given how many incredible builds we’ve covered over the last couple of years, we knew that an official Cyberdeck Contest would certainly receive some impressive entries. But never in our wildest dreams could we have predicted that more than 100 decks would end up crossing the finish line, or that of them, the vast majority would be never-before-seen designs. In fact, the response to this contest was so overwhelming that the judging process took far longer than we originally anticipated.

Ultimately, we decided that there were simply too many phenomenal builds entered into the contest to award $150 Digikey spending sprees to just three of them. So as an added bonus, we’ve rustled up some $50 Tindie gift certificates that will go to the four special category honorable mentions.

With that, let’s take a look at the cyberdecks that took top honors as decided by our panel of judges.

Continue reading “2022 Cyberdeck Contest: Picking The Best Of The Best”

A weighing scale with a moving-coil meter as a display

Hackaday Prize 2022: Arduino-Powered Weighing Scale Has A Real Analog Display

Digital displays are useful for quick and accurate readout, but lots of people prefer the physical motion of a needle moving along a dial. For instance, many smartwatch users choose an analog face to show the time, and modern cars with digital dashboards often default to showing an analog speedometer. Following this trend, [Miro Pavleski] built a digital weighing scale with an analog display that not only looks neat, but also serves as a good demonstration of the way that modern scales work.

Inside, the device is built up like a typical electronic scale: the heart of the instrument is a load cell that supports the platform and bends in proportion to the weight applied. This bending motion is sensed by a set of strain gauges wired up in a Wheatstone bridge configuration. An HX711 readout chip measures the resulting voltage and converts it to a digital code that is sent to a microcontroller, in this case an Arduino Nano.

Whereas a typical scale would then simply show the resulting number on an LCD display, [Mirko] decided to use a moving coil meter driven by the Arduino’s analog output. That meter was originally designed to show currents, so [Mirko] printed a new background image using kilograms instead.

Continue reading “Hackaday Prize 2022: Arduino-Powered Weighing Scale Has A Real Analog Display”