[Ben Smith] had previously implemented a GameBoy Color emulator but decided to make a new emulator that to play just one game called pokegb. The game is, of course, the popular blue edition of Pokemon. While this emulator could play other GameBoy games, the way it was implemented was to support only the opcodes and features that Pokemon Blue used. What’s perhaps even more amazing is that this full emulator is just 582 lines of C++ (using SDL for graphics and input). There is also an obfuscated version that comes in at just 68 lines and in the shape of three Pokeballs. All the code for pokegb can be found on GitHub.
[Ben] goes through a detailed listing of each opcode of the processor, memory, the graphics unit (PPU), and how it interacts with a modern operating system. We love the idea of implementing each opcode one by one and gradually seeing the emulator make it farther and farther through the ROM. The only feature that’s noticeably absent is sound, which would require a significant amount of code to emulate properly.
Most people think of a keyboard as a flat, vaguely rectangular thing with around 100ish different keys. A mechanical keyboard enthusiast would heartily disagree and point out various tenkeyless, 75%, 60%, or 40% keyboards that strip down the idea of what a keyboard is by taking keys out. [Stavros Korokithakis] takes that notion and turns it on its side by creating the five-button vertical keyboard known as Keyyyyyyyys.
This keyboard, or keystick, is designed to be onehanded and to be eye-contact-free. With just five keys, it makes heavy use of chording to output all the characters needed. It has a maximum of 32 possible states and taking out pressing nothing as a no-op leaves 31 possible key combinations. So [Stavros] had to get creative and laid out the letters according to their frequency in the English language. The brains of Keyyyyyyyys is the ubiquitous ESP32, emulating a Bluetooth keyboard while being wrapped in a simple 3d printed box. The code is hosted on GitLab.
If you don’t know how hard it is to learn a five-key chording keyboard from scratch, definitely check out [Stavros]’ video embedded below. “C’mon h.” We have heard reports that you can learn these things, though.
Once a popular craze, most of the public has sold or stashed away their plastic video game instruments and forgotten the likes of Guitar Hero and Rockband. Having never been quite satisfied with his scores, [Nick O’Hara] set out to create a robot that could play a Guitar Hero controller. It would be easy enough to use transistors to actuate the buttons or even just a Teensy to emulate a controller and have it play the perfect game, but [Nick] wanted to replicate what it was really like to play. So after burning out a fair number of solenoids (driving them over spec) and learning on his feet, [Nick] slowly began to dial in his robot, Jon Bot Jovi.
The brains of the bot are a Raspberry Pi running some OpenCV-based code that identifies blobs of different colors. The video feed comes from a PS2 via an HDMI capture card. Solenoids are driven via an 8 channel driver board, controlled by the Pi. While it missed a few notes here and there, we loved seeing the strumming solenoid whammy rapidly on the strummer. All in all, it’s a great project, and we love the design of the robot. Whether played by a robot, turned into a synthesizer, or recreated from toy pianos and mechanical keyboards, Guitar Hero controllers offer many hacking opportunities.
[Ken] stepped up, and at first glance, it was obvious that most of the chip is unused, and there appeared to be four copies of the same circuit. After identifying resistors and the different transistor types, [Ken] found differential pairs.
Differential pairs form the heart of most op-amps, and by chaining them together, you can get a strong enough signal to treat it as a logic signal. Based on the design and materials, [Ken] estimates the chip is from the 1970s. Given that it appears to be ECL (Emitter-Coupled Logic), it could just be four comparators. But there are still a few things that don’t add up as two comparators have additional inverted outputs. Searching the part number offered few if any clues, so this will remain somewhat a mystery.
The first step was to use some apps on his Android phone to reveal the profiles on the bike, which showed his particular machine used a Nordic Bluetooth UART. This meant the only work would be decoding the stream of bytes coming off the wireless serial port. Using Wireshark and Bluetooth logs on his phone, [Wayne] was able to correspond the various commands to points in the video. There were still a few bytes that he wasn’t able to identify, but [Wayne] had enough to whip up a quick .NET app that can start a workout and log it all to a database. The code for his app is on his GitHub.
While [Wayne] doesn’t specifically name the bike he uses in this project, we tracked down the image he shows on his writeup to the Exerpeutic 900e. It appears to be discontinued but the reverse engineering approach should be usable on a range of Bluetooth-connected machines. This isn’t the first bike we’ve seen liberated by reverse engineering here at Hackaday. And we have a feeling it won’t be the last.
Technical interviews are generally dreaded, just like every other interview. However, technical interviews include many elements that non-technical folks might find mystifying or even pointless, such as whiteboard problem solving, take-home assignments, design sessions, or even just straight brain teasers. [Erik McClure] went a bit off the beaten path and started using the factory builder game Factorio as a technical interview.
Many point to the intent behind the problems and tricky questions inherent in whiteboard coding exercises and assert that the focus is not to complete the problem, but rather to expose how a candidate thinks and problem solves. Factorio is all problem-solving as you work as a team to slowly scale up a humble production line to a massive factory, which makes it a good candidate for assessing these sorts of skills. We doubt that the fine developers who wrote the game ever imagined it being used as an interview.
The project started with a 32″ Visionect e-ink display configured as a thin client. With a battery life measured in months thanks to the low power electronics, most of the work here was focused on the backend. A docker container running on a local NAS server collects newspapers via freedomforum.org, formats them to fit the aspect ratio of the display, and serves them up. [Greg] is really trying to preserve the design and thought that goes into the front page of each of these publications as traditional newspaper layouts are often designed by hand.
We love the simplicity and the “it-just-works” feel of this project as there are no buttons, wires, or anything that you need to fiddle with. [Greg] points out that it could also be used for other purposes, and we’d love to see a large calendar such as this e-ink calendar or perhaps even a 32″ version of this e-ink laptop. The code for this is on his GitHub with a video after the break.