Until recently, most video game systems didn’t need their own operating systems in order to play games. Especially in the cartridge era — the games themselves simply ran directly on the hardware and didn’t require the middleman of an operating system for any of the functionality of the consoles. There were exceptions for computers that doubled as home computers such as the Commodore, but systems like the NES never had their own dedicated OS. At least, until [Inkbox] designed and built the NES-OS.
The operating system does not have any command line, instead going directly for a graphical user interface. There are two programs that make up the operating system. The first is a settings application which allows the user to make various changes to the appearance and behavior of the OS, and the second is a word processor with support for the Japanese “Family Keyboard” accessory. The memory on the NES is limited, and since the OS loads entirely into RAM there’s only enough leftover space for eight total files. Those files themselves are limited to 832 bytes, which is one screen’s worth of text without scrolling.
While it might seem limited to those of us living in the modern era, the OS makes nearly complete use of the available processing power and memory of this 1980s system that was best known for Super Mario Bros. and Duck Hunt. It’s an impressive build for such a small package, and really dives into a lot of the hardware and limitations when building software for these systems. If you need more functionality than that, we’d recommend installing Linux on the NES Classic instead.
A hashquine is a fun way to show off your crypto-tricks — It’s a file that contains its own hash. In some file types it’s trivial, you just pick the hash to hit, and then put random data in a comment or other invisible field till you get a collision. A Python script that prints its own hash would be easy. But not every file type is so easy. Take PNG for instance. these files are split into chunks of data, and each chunk is both CRC-32 and adler32 checksummed. Make one change, and everything changes, in three places at once. Good luck finding that collision. So how exactly did [David Buchanan] generate that beautiful PNG, which does in fact md5sum to the value in the image? Very cleverly.
Thankfully [David] shared some of his tricks, and they’re pretty neat. The technique he details is a meet-in-the-middle hack, where 36 pairs of MD5 collision blocks are found, with the understanding that these 36 blocks will get added to the file. For each block, either A or B of the pair will get plugged in at that location, and the md5sum won’t change. It’s a total of 2^36 possible combinations of these blocks, which is more computation than was practical for this particular hack. The solution is to pre-compute the results of every possible combination of the first 18 blocks, and store the results in a lookup table. The second half of the collisions are run backwards from a target CRC value, and the result checked against the lookup table. Find a hit, and you just found a series of blocks that matches both your target md5sum and CRC32 results.
Thanks to [Julian] for the tip! And as he described it, this hack is one that gets more impressive the more you think about it. Enjoy!
There’s nothing quite like old-school electrical gear, especially the stuff associated with power distribution. There’s something about the chunky, heavy construction, the thick bakelite cases, and the dials you can read from across the room. Double points for something that started life behind the Iron Curtain, as this delightful synchroscope appears to have.
So what exactly is a synchroscope, you ask? As [DiodeGoneWild] explains (in the best accent a human being has ever had), synchroscopes are used to indicate when two AC power sources are in phase with each other. This is important in power generation and distribution, where it just wouldn’t be a good idea to just connect a freshly started generator to a stable power grid. This synchroscope has a wonderfully robust mechanism inside, with four drive coils located 90° apart on a circular stator. Inside that is a moving coil attached to the meter’s needle, which makes this an induction motor that stops turning when the two input currents are in phase with each other.
The meter is chock full of engineering goodies, like the magnetic brake that damps the needle, and the neat inductive coupling method used to provide current to the moving coil. [DiodeGoneWild] does a great job explaining how the meter works, and does a few basic tests that show us the 60-odd years since this thing was made haven’t caused any major damage. We’re eager to see it put to the full test soon.
[Aduecho] had seen those cheap eBay deals of e-paper-based pricing tags, and was wondering if they could be hacked to perform some other tasks. After splitting the case open, the controller chip was discovered to be a SEM9110, with some NFC hardware support but little else. [aduecho] was hoping to build some IoT-connected air quality indicator (AQI) units but the lack of a datasheet for SEM9110 plus no sensors in place meant the only real course of action was to junk the PCB and just keep the E-paper display and the batteries. These units appeared to be ‘new old’ stock, so there was a good chance that both would be fresh and ripe for picking.
The PCB [aduecho] came up with is mechanically the same as the original unit, but now sports a Seeed studio Wio-E5 LoRa module, which uses the STM32WLE5 from ST for the heavy lifting. This has what looks like a Semtech SX126x integrated on-die (we can’t think of a sane way an actual SX126x die could be flip-chip mounted, but you never know). Using this module is a snap, needing only very minimal antenna-matching components and a spot of decoupling to function. On the sensing side of things, a Bosch BME680 gas sensor handling the AQI measurements, and a Bosch BMI270 6-axis IMU, provides a gyro and accelerometer, for all those planned user interaction features. As can be seen from the schematic, interfacing the EPD is pretty straightforward, just a handful of parts are needed to generate the necessary bipolar gate voltages via a simple SMPS circuit. The display controller handles it all internally, programmed via an SPI interface.
One area we’re quite fond of in this project are the neat hand-drawn icons, and variable width font, giving the display a kind of note-like quality when drawn on the low-ish contrast e-paper display.
We love the intersection between art and technology, and a video made by an AI (Stable Diffusion) imagining a journey through time (Nitter) is a lovely example. The project is relatively straightforward, but as with most art projects, there were endless hours of [Xander Steenbrugge] tweaking and playing with different parts of the process until it was just how he liked it. He mentions trying thousands of different prompts and seeds — an example of one of the prompts is “a small tribal village with huts.” In the video, each prompt got 72 frames, slowly increasing in strength and then decreasing as the following prompt came along.
There are other AI videos on YouTube, often putting the lyrics of a song into AI-generated form. But if you’ve worked with AI systems, you’ll notice that the background stays remarkably stable in [Xander]’s video as it goes through dozens of feedback loops. This is difficult to do as you want to change the image’s content without changing the look. So he had to write a decent amount of code to try and maintain visual temporal cohesion over time. Hopefully, we’ll see an open-source version of some of his improvements, as he mentioned on Twitter.
Holy humanitarian hacking, Batman! We asked you to come up with your best climate-forward ideas, and you knocked it out of the ionosphere! Once again, the judges had a hard time narrowing down the field to just ten winners, but they ultimately pulled it off — and here are the prize-winning projects without much further ado.
In the Climate-Resilient Challenge, we asked you to design devices that help build communities’ resilience to severe weather and the increasing frequency of natural disasters due to climate change, and/or devices that collect environmental data that serves as hard evidence in the fight for changes in local infrastructure. While several people focused on air quality, which is something we tend to think of as a human need, plenty others thought of the flora and fauna with which we share this planet.
Quiz time, what was the first commercially available microcomputer? The Altair 8800? Something obscure like the SCELBI? The Mark-8 kit? According to [The Byte Attic], it was actually the Q1, based on the Intel 8008 processor. The first Q1 microcomputer was delivered in December of 1972, making it the first, as far as he can tell. Later revisions used the Z80 processor, which is the model pictured above that [The Byte Attic] has in his possession. It’s a beautiful little machine, with a striking orange plasma display.
The irony is that this machine is almost entirely forgotten about. The original unit may have looked more like a typewriter, pictured here. If you have any first hand knowledge, or especially software, documentation, or surviving hardware bits, make sure to check in to add to the knowledge pool about this amazing little machine.