The Game Of Life Moves Pretty Fast, If You Don’t Use Stop Motion You Might Miss It

Munged Ferris Bueller quotes aside, Conway’s Game of Life is the classic cellular automata that we all reach for. The usual approach is to just iterate over every cell in the grid, computing the next state into a new grid buffer. [K155LA3] set out to turn that on its head by implementing Game Of Life in the hardware of an FPGA.

[K155LA3]’s version uses Chisel, a new HDL from the Berkley and RISCV communities. Under the hood, Chisel is Scala with some custom libraries that know how to map Scala concepts onto hardware. In broad strokes, Verilog and VHDL are focused on expressing hardware and then added abstraction on top of that over the year. Chisel and other newer HDL languages focus on expressing high-level general-purpose elements that get mapped onto hardware. FPGAs already map complex circuits and hardware onto LUTs and other slices, so what’s another layer of abstraction?

The FPGA chosen for this project is a Digilent Arty A7 with a VGA Pmod to turn the RGB444 into analog signals to actually display. What’s impressive about [K155LA3]’s implementation is just how fast it is. Even running at 60 frames per second it’s almost as fast as the monitor can handle. Of course, most computers lying around you could simulate a 60 x4 8 grid at 60 fps. Next, instead of connecting the grid logic to the 60 Hz VGA clock, he connects it to the 100 MHz board external oscillator. Now each pixel in each frame displayed contains over a million generations.

Unfortunately, even this small grid of 60×48 takes up 90% of the LUTs on the Artix-7. In the future, we’d love to see an even larger FPGA hardware implementation capable of handling grids that could hold whole computers in them. And naturally, this isn’t the first FPGA version of the Game Of Life here at Hackaday.

the conversion from hynix SRAM to FRAM on a Pokemon Yellow PCB

Pokemon Time Capsule

The precious Pokemon we spent hours capturing in the early nineties remain trapped, not just by pokeballs, but within a cartridge ravaged by time. Generally, Pokemon games before the GameBoy Advance era had SRAM and a small coin cell to save state as NVRAM (Non-volatile random access memory) was more expensive. These coin cells last 10-15 years, and many of the Pokemon games came out 20 years ago. [9943246367] decided to ditch the battery and swap the SRAM for a proper NVRAM on a Pokemon Yellow cartridge, 23 years later.

The magic that makes it work is a FRAM (ferroelectric random access memory) made by Cypress that is pin-compatible with the 256K SRAM (made by SK Hynix) on the original game cartridge PCB. While FRAM data will only last 10 years, it is a write-after-read process so as long as you load your save file every 10 years, you can keep your Pokemon going for decades. For stability, [9943246367] added a 10k pull-up on the inverted CE (chip enable) pin to make sure the FRAM is disabled when not in use. A quick test shows it works beautifully. Overall, a clever and easy to have to preserve your Pokemon properly.

Since you’re replacing the chip, you will lose the data if you haven’t already. Perhaps you can use [Selim’s] Pokemon Transporter to transport your pokemon safely from the SRAM to the FRAM.

Python Ditches The GILs And Comes Ashore

The Python world has been fractured a few times before. The infamous transition from version 2 to version 3 still affects people today, and there could be a new schism in the future. [Sam Gross] proposed a solution to drop the Global Interrupt Interpreter Lock (GIL), which would have enormous implications for many projects that leverage the CPython internals, such as Pandas and NumPy.

The fact that Python is interpreted is a double edge sword. It means there can be different runtimes, such as Pyston, Cinder, MicroPython, PyPy, and others, that might support the whole language, a specific version, or a subset. But if you’re using Python, you’re probably running CPython. And it has something known as global interpreter lock that affects threaded code. In a nutshell, only one thread can run in the interpreter at a time. There are some ways around it, such as moving performance-critical sections to C or having multiple interpreters. However, most existing solutions come with considerable downsides. Continue reading “Python Ditches The GILs And Comes Ashore”

Handwriting Robots Are Sending Snail Mail

As a kid, you might remember taking a whole fistful of markers or crayons, gently lining them all up for maximum contact, mashing them into the paper, and marveling at the colorful multitude of lines. It seemed like an easy way to write many times more things with less effort. While not quite the same idea but in a similar vein, [Aaron Francis] shared an experience of creating handwriting robots to write thousands of letters.

Why did [Aaron] need to write thousands of letters? Direct mailing, of course! If you were sending someone a letter, if it looked handwritten they’re much more likely to open it. What better way to make it look handwritten than to use a pen rather than a printer? They started off with Axidraw, a simple plotter made by EMSL. Old laptops controlled a few plotters and they started to make progress. As with most things, scale became tricky. Adding more plotters just means more paper to replace and machines to restart. An automated system of replacing paper is fiendishly difficult so they went for a batching system. A sheet of plywood that can hold dozens of sheets of paper became the basis of a new mega-plotter. 3D printers and laser cutters helped make adapters and homing teeth. A Raspberry Pi replaced the old laptops and they scaled up to a few machines.

All in all, a pretty impressive build. If you’re looking to dip your toes into the plotting water, this pen plotter is about as simple as you can get.

Joel showing off his webshooter

Spider-Man Swings A Little Closer To Reality

Despite reading Hackaday daily and seeing the incredible things that people do, something comes along that just sort of blows you away every once in a while. Sometimes it’s just technically impressive, but often it is just, “I didn’t think that anyone would try this or even think of this.” [Joel Creates] is one such example with his Spider-Man wrist-mounted web-shooters.

Previously, [Joel] had built a web-slinging system based around a pressurized tank of hot glue worn like a backpack. What it lacked in miniaturization, it made up for in functionality. However, [JT of Build IRL] created a grappling-based Spider-Man system that fired ropes which got [Joel] thinking that perhaps the hot glue and the grappling system could be combined for a smaller overall package.

His solution is quite simple. Old CO2 cartridges filled with glue and a small nozzle drilled in are loaded into a quick-connect fitting. The hot glue is heated via an induction coil on a small tool belt before loading. A thermally insulating layer of paint and micro-vacuum spheres on the canister helps [Joel] place it in the wrist shooter without burning himself. A bike tire inflator with a lever-activated system forms the main assembly of the shooter. Using compressed air, the system fires a glob of hot glue at a surface and a metal web-shaped disk with holes and a rope attached to the blob of hot glue. As the glue rapidly cools, the metal disk provides a lot of surfaces for the adhesive to hang onto. Overall, the results are pretty impressive, but the engineering challenges make for an exciting journey. Everything from failed prototypes to failed power supplies seems to happen on this build.

Combined with some electromagnets, you could really have the whole spider package.

Thanks [Carson B] for sending this one in! Video after the break.

Continue reading “Spider-Man Swings A Little Closer To Reality”

Quint explaining his water turbine

Power Your Home With A Water Battery

I’ve stated it before on Hackaday but one of the most interesting engineering challenges posed to me this year was “how could you store enough energy to power a decent portion of a home for several hours without using batteries, all while staying within the size of a typical suburban plot?” [Quint Builds] attempts something up that alley by using solar power to pump water up onto his roof and later releasing it for power generation. (Video, embedded below.)

Earlier [Quint] had built a water collecting system using his gutters and a bell siphon but wasn’t satisfied with the overall power output. Using the turbine he had created for that system, he put a 55-gallon drum on top of his roof with the help of some supporting structures. We’d like to advise the public to consult a professional before adding a large heavy weight on top of your roof, but [Quint] forges ahead after studying his trusses and determining it to be a risk he is willing to take. A solar panel runs a small pump that pumps water from a reservoir up to the top of the roof when the sun shines with a float switch in the roof barrel stopping the motor once it’s full. A valve at the bottom allows water to spin the turbine and fill back into the bottom reservoir, forming a closed loop. There were a few snags along the way with prototype circuits not being fully contacted and the motor needing water cooling, an issue fixed by a custom CNC’d heat sink. The fixes for the various issues are almost as entertaining to see as the actual system itself.

It’s incredible to see lights come on powered by water alone but also sobering to realize just how much water you’d need to power a typical home. Perhaps if [Quint] upgrades, he can swap out the small motor for a larger 3D printed water pump.

Continue reading “Power Your Home With A Water Battery”

the microGPS pipeline

MicroGPS Sees What You Overlook

GPS is an incredibly powerful tool that allows devices such as your smartphone to know roughly where they are with an accuracy of around a meter in some cases. However, this is largely too inaccurate for many use cases and that accuracy drops considerably when inside such as warehouse robots that rely on barcodes on the floor. In response, researchers [Linguang Zhang, Adam Finkelstein, Szymon Rusinkiewicz] at Princeton have developed a system they refer to as MicroGPS that uses pictures of the ground to determine its location with sub-centimeter accuracy.

The system has a downward-facing monochrome camera with a light shield to control for exposure. Camera output feeds into an Nvidia Jetson TX1 platform for processing. The idea is actually quite similar to that of an optical mouse as they are often little more than a downward-facing low-resolution camera with some clever processing. Rather than trying to capture relative position like a mouse, the researchers are trying to capture absolute position. Imagine picking up your mouse, dropping it on a different spot on your mousepad, and having the cursor snap to a different part of the screen. To our eyes that are quite far away from the surface, asphalt, tarmac, concrete, and carpet look quite uniform. But to a macro camera, there are cracks, fibers, and imperfections that are distinct and recognizable.

They sample the surface ahead of time, creating a globally consistent map of all the images stitched together. Then while moving around, they extract features and implement a voting method to filter out numerous false positives. The system is robust enough to work even a month after the initial dataset was created on an outside road. They put leaves on the ground to try and fool the system but saw remarkably stable navigation.

Their paper, code, and dataset are all available online. We’re looking forward to fusion systems where it can combine GPS, Wifi triangulation, and MicroGPS to provide a robust and accurate position.

Video after the break.

Continue reading “MicroGPS Sees What You Overlook”