Wheel Of Fortune Gets Infinite Puzzles On NES

Wheel of Fortune is a television game show, born in the distant year of 1975. Like many popular television properties of the era, it spawned a series of videogames on various platforms. Like many a hacker, [Chris] had been loading up the retro NES title on his Raspberry Pi when he realized that, due to the limitations of the cartridge format, he was playing the same puzzles over and over again. There was nothing for it, but to load a hex editor and get to work.

[Chris’s] initial investigation involved loading up the ROM in a hex editor and simply searching for ASCII strings of common puzzles in the game. Initial results were positive, turning up several scraps of plaintext. Eventually, it became apparent that the puzzles were stored in ASCII, but with certain most-significant-bits changed in order to mark the line breaks and ends of puzzles. [Chris] termed the format wheelscii, and developed an encoder that could turn new puzzles into the same format.

After some preliminary experimentation involving corrupting the puzzles and testing various edge cases, [Chris] decided to implement a complete fix. Puzzles were sourced from the Wheel of Fortune Puzzle Compendium, which should have plenty of fresh content for all but the most addicted viewers. A script was then created that would stuff 1000 fresh puzzles into the ROM at load time to minimize the chances of seeing duplicate puzzles.

ROM hacks are always fun, and this is a particularly good example of how simple tools can be used to make entertaining modifications to 30-year-old software. For another take, check out this hack that lets the Mario Bros. play together.

Arcade1up Cabinet Mod Raspberry Pi 3

Arcade1up Cabinet Solderless Upgrade With A Side Of Raspberry Pi

Upon announcement of the Arcade1up replica arcade cabinets earlier this year, many laid in waiting for the day they could see a teardown. A four foot tall cab with an LCD outputting the proper 4:3 aspect ratio and the simple construction of IKEA furniture certainly seemed appealing. In theory, it wouldn’t take long to customize such a piece of hardware provided the internals lent themselves to that sort of thing. Now that the cabinets are on store shelves, [ETA Prime] made a tutorial video on his method for upgrading the Arcade1up cabinet with a Raspberry Pi calling the shots.

The entirety of the mod is solder-free and uses plenty of readily available parts from your favorite online reseller. The brains of the operation is a Raspberry Pi 3 Model B+ running Emulation Station. The Arcade1up Street Fighter 2 cabinet’s less than stellar audio receives an upgrade in a 2x20W car audio amp, while the middling joysticks are swapped out for some more robust Sanwa-clone ball tops.

Since there is no “select/coin” button natively, [ETA Prime] added some and in the process replaced them all with beefier LED-lit 30mm buttons. The replacement joysticks and buttons were all part of a kit, so they plug-in conveniently to a plug and play USB encoder. To adapt the 17″ LCD’s output over LVDS, [ETA Prime] elected to go with an LCD controller board that outputs DVI, VGA, or HDMI. Luckily the Arcade1up cabinet’s 12V power supply could be reused to power the LCD controller board and in the process bring down the overall cost of the upgrade.

While this Arcade1up cabinet mod won’t solve the whole “bats versus ball tops” argument, it does provide a template to build on. The tutorial video is below and the list of parts used can be found in the YouTube description.

Continue reading “Arcade1up Cabinet Solderless Upgrade With A Side Of Raspberry Pi”

Extreme Pi Overclocking With Mineral Oil

Liquid cooling is a popular way to get a bit of extra performance out of your computer. Usually this is done in desktops, where a special heat sink with copper tubing is glued to the CPU, and the copper tubes are plumbed to a radiator. If you want dive deeper into the world of liquid cooling, you can alternatively submerge your entire computer in a bath of mineral oil like [Timm] has done.

The computer in question here is a Raspberry Pi, and it’s being housed in a purpose-built laser cut acrylic case full of mineral oil. As a SoC, it’s easier to submerge the entire computer than it is to get a tiny liquid-cooled heat sink for the processor. While we’ve seen other builds like this before, [Timm] has taken a different approach to accessing the GPIO, USB, and other connectors through the oil bath. The ports are desoldered from the board and a purpose-built header is soldered on. From there, the wires can be routed out of the liquid and sealed off.

One other detail used here that  we haven’t seen in builds like this before was the practice of “rounding” the flat ribbon cable typically used for GPIO. Back in the days of IDE cables, it was common to cut the individual wires apart and re-bundle them into a cylindrical shape. Now that SATA is more popular this practice has been largely forgotten, but in this build [Timm] uses it to improve the mineral oil circulation and make the build easier to manage.

Continue reading “Extreme Pi Overclocking With Mineral Oil”

Set Up A Headless Raspberry Pi, All From Another Computer’s Command Line

There are differences between setting up a Raspberry Pi and installing an OS on any other computer, but one thing in common is that if you do enough of them, you seek to automate the process any way you can. That is the situation [Peter Lorenzen] found himself in, and his solution is a shell script to install and configure the Raspberry Pi for headless operation, with no need to connect either a keyboard or monitor in the process.

[Peter]’s tool is a script called rpido, and with it the process for setting up a new Raspberry Pi for headless operation is super streamlined. To set up a new Pi, all [Peter] needs to do is:

  1. Plug an SD card into his laptop (which happens to be running Ubuntu.)
  2. Run: rpido -w -h myhostname -s which downloads and installs the newest version of Raspbian lite, does some basic setup (such as setting the hostname), configures for headless operation, and launches a root shell.
  3. Use the root shell to do any further tweaks or checks (like launching raspi-config for additional changes.)
  4. Exit the shell, remove the SD card from his laptop, and install the card into the Raspberry Pi.

There are clear benefits to [Peter]’s script compared to stepping through a checklist of OS install and setup tasks, not to mention the advantage of not needing to plug in a keyboard and monitor. Part of the magic is that [Peter] is mounting the SD card’s filesystem in a chroot environment. Given the right tools, the ARM binaries intended for the Pi run on his (Intel) Ubuntu laptop. It’s far more convenient to make changes to the contents of the SD card in this way, before it goes to its new home in a Pi.

Not everything has to revolve around an SD card, however. [Jonathan Bennet] showed that it’s possible to run a Raspberry Pi without an SD card by using the PXE boot feature, allowing it to boot and load its file system from a server on the same network, instead of a memory card.

The Best Laptop Gets Even Better

The ThinkPad is the greatest laptop ever created. It doesn’t come in rose gold, it comes in black. It doesn’t have a weird screen instead of an escape key. For less than half the price of a MacBook, you can have a capable laptop that will somehow fit three drives inside. It’s madness, but it’s still not the perfect tool for hacking. To get there, you’re going to need to load that thing up with an independent Linux system, and maybe a solderless breadboard. That’s what [ollie242] is doing with his ThinkPad, and the results are the perfect addition to the perfect laptop.

This build is really just a 3D printed drive caddy for the Thinkpad UltraBay, the modular standard that allows you to add a CD drive, SATA drive, or even a serial and parallel port to your laptop. [ollie242] is modeling this off the CD drive taken from a ThinkPad T420, so we’re looking at a ‘Serial Ultrabay Enhanced’ version of this standard, which is compatible with a T430, which is still the best laptop you can possibly buy.

Inside this 3D printed drive caddy is a Raspberry Pi Zero W, powered by the ThinkPad through the internal SATA connector. The Pi Zero has right-angle headers attached, giving access to the GPIO pins from the outside. Just to add a little flair, [ollie242] added an OLED display to show the IP address, the CPU load, and the memory availability of the Pi.

This is a great project, if only because no one has any use for a CD drive anymore. Since these UltraBay drives are huge, it would be a simple matter to add a much more powerful computer to the drive like the recently announced Raspberry Pi 3 Model A+. There are — or at least there should be — some interesting internal connections on that UltraBay port, and it’s not inconceivable this Raspberry Pi UltraBay could be used as a coprocessor of sorts for its host laptop.

This Bitcoin Price Tracking Traffic Light Isn’t Just A Red LED

Quick, what’s the price of Bitcoin? Is it lower today than yesterday? Are you overdrafting your Lamborghini account? What if you had an easy way to tell at a glance how much you could have made if you sold in December of last year? That’s what this Bitcoin price tracking traffic light is all about, and it’s a great use of existing electronics.

The hardware for this build is a traffic light table lamp available on Amazon for twenty bucks. Inside this traffic light, you get a PCB with three LEDs and a small microcontroller to control the LEDs. The microcontroller isn’t used in this case, instead the microcontroller is removed and a few wires are soldered up to the base of the transistors used to drive the LEDs. The other ends of these wires are attached to a trio of pins on a Raspberry Pi Zero W, giving this traffic light table lamp Linux and a connection to the Internet.

On the software side of things, we’re looking at a Docker container running a Python script that fetches the latest Bitcoin price from Coindesk and calculates the change from the previous fetch of the price of Bitcoin. This data is shuffled off to another Python script that actually changes the LEDs on the lamp.

Sure, these days a ‘bitcoin price tracking traffic light’ is as simple as connecting a red LED to a battery, and if you’re feeling extra fancy you can add a 220 Ω resistor. But this is a project that’s so well executed that we’ve got to give it a tip ‘o our hat.

Creating Black Holes: Division By Zero In Practice

Dividing by zero — the fundamental no-can-do of arithmetic. It is somewhat surrounded by mystery, and is a constant source for internet humor, whether it involves exploding microcontrollers, the collapse of the universe, or crashing your own world by having Siri tell you that you have no friends.

It’s also one of the few things gcc will warn you about by default, which caused a rather vivid discussion with interesting insights when I recently wrote about compiler warnings. And if you’re running a modern operating system, it might even send you a signal that something’s gone wrong and let you handle it in your code. Dividing by zero is more than theoretical, and serves as a great introduction to signals, so let’s have a closer look at it.

Chances are, the first time you heard about division itself back in elementary school, it was taught that dividing by zero is strictly forbidden — and obviously you didn’t want your teacher call the cops on you, so you obeyed and refrained from it. But as with many other things in life, the older you get, the less restrictive they become, and dividing by zero eventually turned from forbidden into simply being impossible and yielding an undefined result.

And indeed, if a = b/0, it would mean in reverse that a×0 = b. If b itself was zero, the equation would be true for every single number there is, making it impossible to define a concrete value for a. And if b was any other value, no single value multiplied by zero could result in anything non-zero. Once we move into the realms of calculus, we will learn that infinity appears to be the answer, but that’s in the end just replacing one abstract, mind-boggling concept with another one. And it won’t answer one question: how does all this play out in a processor? Continue reading “Creating Black Holes: Division By Zero In Practice”