FPGA NES Looks Sharp On Perfboard

FPGAs are wonderful things, packed with logic cells that can be reconfigured as your heart desires. They excel at signal processing, anything requiring speed, and recreating vintage hardware. In that vein, [Jon Thomasson] decided to bring back the original Nintendo Entertainment System, in perfboard form.

The build uses a Spartan 6 from Xilinx, which [Jon] uses in the form of his own development board design. The NES core is courtesy of code by [Brian Bennett], sourced from Github. Games are loaded from an SD card by a Parallax Propeller, which passes the data to the FPGA over a serial connection. Display is on a sharp 800×480 LCD, with the 4:3 video output of the NES being displayed in a pillarboxed fashion.

The project is assembled on perfboard, with a pleasing handheld formfactor. Control is via tactile pushbuttons in the classic NES layout. Current draw is approximately 400 mA, giving a runtime of around 5 hours when running off four AA batteries.

We’ve seen the venerable NES implemented on FPGA platforms before. As development boards get cheaper and devices get more capable, expect to see ever more complex systems being implemented. Video after the break.

Continue reading “FPGA NES Looks Sharp On Perfboard”

An HDMI Input For A Laptop Screen, Minus Laptop

The lack of HDMI inputs on almost all laptops is a huge drawback for anyone who wants to easily play a video game on the road, for example. As to why no manufacturers offer this piece of convenience when we all have easy access to a working screen of this size, perhaps no one can say. On the other hand, if you want to ditch the rest of the computer, you can make use of the laptop screen for whatever you want.

This project from [Avner] comes to us in a few parts. In the first section, the teardown of the laptop begins and a datasheet for the screen is discovered, which allows [Avner] to prepare an FPGA to drive the screen. The second part involves building an HDMI sink, which is a device which decodes the signal from an HDMI source into its constituent parts so it can be sent to the FPGA. The final section of the project involves actually sending a video to this impressive collection of hardware in order to get a video to appear on the old laptop screen.

This build is worth checking out if you’ve ever dealt with anything involving digital video. It goes into great depth on a lot of the technical details involving HDMI, video devices, and hardware timing issues. This is a great build and, even though we’ve seen similar projects, definitely worth diving into if you have some time on your hands and a spare laptop screen.

Component Video For The Commodore 64

Of all the retro systems, the Commodore 64 had the best video system. The VIC-II chip in the C64 was the best example of why Commodore was the best, but in terms of video output, the C64 was still a consumer device: the only output was S-video, or composite video, or something like it. The professional stuff uses YPbPr, an RGB video signal that separates the red, green, and blue colors. On a modern LCD, the difference between composite and YPbPr is noticeable, and if you’re going to run your C64 on the big screen, it would be very helpful to use a professional video standard.

In an effort to bring the C64 into the future, [c0pperdragon] created an FPGA-based modification for the VIC-II chip. The end result is getting YPbPr signals directly from the computer, and outputting it to a TV in glorious 480p.

Inside the Commodore 64, the VIC-II creates the chrominance signal in a way that is impossible to convert it back to any form of RGB. The solution to get RGB out of this information is to listen in to 22 pins of the VIC-II to determine what signals it intends to generate. This is done with a smallish Altera FPGA connected to the VIC-II through a ribbon cable. On the FPGA, the luminescence and all the color information is generated, then converted into true YPbPr. For the complete mod, the RF modulator is removed, and the original A/V jack is still functional. This is effectively a very in-depth mod that rids the C64 of the TV connector and channel selector (that no one uses anymore) and replaces it with a professional-grade video output.

When it comes to C64 mods, we thought we’ve seen it all. We’ve seen C64s resurrected from the dead, and we’ve seen drop-in replacements for the SID that still don’t have working filters oh my god. This is on another level. This is using FPGAs to drag the C64 into the modern era, and if you don’t care about the rusting RF box, it’s a reversible mod.

FPGA Brings Arduboy To The Game Boy Advance

Hackaday readers are perhaps familiar with the Arduboy, an open source handheld gaming system that aims to combine the ease of Arduino development with the seething nostalgia the Internet has towards the original Nintendo Game Boy. While not quite the same as getting one of your games published for a “real” system, the open source nature of the Arduboy platform allows an individual to develop a game playable on a commercially manufactured device.

While the Arduboy hardware itself is actually quite slick, that hasn’t stopped people from trying to bring its games to other pieces of hardware. Now thanks to the efforts of [uXe], the Game Boy Advance is well on its way to becoming Arduboy compatible, in a way bringing the whole project full circle. Assuming this gadget becomes a commercial device (it sounds like that’s still up in the air), Arduboy developers will be able to proudly play their creations on the final and objectively best entry into the Game Boy line.

Getting to this point has been something of an adventure, as documented in a thread from the Arduboy forums. Members of the community wondered what it would take to get Arduboy games running on a real Game Boy, but pretty quickly it was decided that the original beige brick model wasn’t quite up to the task. Eventually its far more capable successor the Game Boy Advance became the development target, and different approaches were considered for getting existing games running on the platform.

While there were some interesting ideas, such as using the GBA’s link port to “feed” the system games over SPI, in the end [uXe] decided to look into creating an FPGA cartridge that would actually run the Arduboy games. In this scenario, the GBA itself is basically just being used as an interface between the FPGA and the human player. In addition to these low-level hardware considerations, there was considerable discussion about the more practical aspects of bringing the games to the new hardware, such as how to best scale the Arduboy’s 128 x 64 output to the GBA’s 240 × 160 screen.

As demonstrated in the videos after the break, [uXe] now as all the elements for playing Arduboy games on the GBA in place, including the ability to disable full screen scaling by using the shoulder buttons. Now he just needs to shrink the hardware down to the point it will fit inside of a standard GBA cartridge. Beyond that, who knows? Perhaps the appeal of being able to run Arduboy games on a real Game Boy is enough to warrant turning this hack into a new commercial product.

Thanks to a hardware swap we’ve seen Arduboy games played on the Dreamcast VMU, and [uXe] himself previously grafted Arduboy-compatible hardware into an original Game Boy, but being able to play these games on an unmodified Game Boy Advance obviously has its own appeal. At the very least, it will be a bit more ergonomic than using a hacked classroom gadget.

Continue reading “FPGA Brings Arduboy To The Game Boy Advance”

FPGA Makes Digital Analog Computer

When you think of analog computing, it’s possible you don’t typically think of FPGAs. Sure, a few FPGAs will have specialized analog blocks, but usually they are digital devices. [Bruce Land] — a name well-known to Hackaday — has a post about building a digital differential analyzer using an FPGA and it is essentially an analog computer simulated on the digital fabric of an FPGA.

Whereas traditional analog computers use operational amplifiers to do mathematical integration, on the FPGA [Land] uses digital summers The devices simulate a system of differential equations, which can be nonlinear.

Continue reading “FPGA Makes Digital Analog Computer”

Putting An Out Of Work IPod Display To Good Use

[Mike Harrison] produces so much quality content that sometimes excellent material slips through the editorial cracks. This time we noticed that one such lost gem was [Mike]’s reverse engineering of the 6th generation iPod Nano display from 2013, as caught when the also prolific [Greg Davill] used one on a recent board. Despite the march of progress in mobile device displays, small screens which are easy to connect to hobbyist style devices are still typically fairly low quality. It’s easy to find fancier displays as salvage but interfacing with them electrically can be brutal, never mind the reverse engineering required to figure out what signal goes where. Suffice to say you probably won’t find a manufacturer data sheet, and it won’t conveniently speak SPI or I2C.

After a few generations of strange form factor exploration Apple has all but abandoned the stand-alone portable media player market; witness the sole surviving member of that once mighty species, the woefully outdated iPod Touch. Luckily thanks to vibrant sales, replacement parts for the little square sixth generation Nano are still inexpensive and easily available. If only there was a convenient interface this would be a great source of comparatively very high quality displays. Enter [Mike].

Outer edge of FPGA and circuit

This particular display speaks a protocol called DSI over a low voltage differential MIPI interface, which is a common combination which is still used to drive big, rich, modern displays. The specifications are somewhat available…if you’re an employee of a company who is a member of the working group that standardizes them — there are membership discounts for companies with yearly revenue below $250 million, and dues are thousands of dollars a quarter.

Fortunately for us, after some experiments [Mike] figured out enough of the command set and signaling to generate easily reproduced schematics and references for the data packets, checksums, etc. The project page has a smattering of information, but the circuit includes some unusual provisions to adjust signal levels and other goodies so try watching the videos for a great explanation of what’s going on and why. At the time [Mike] was using an FPGA to drive the display and that’s certainly only gotten cheaper and easier, but we suspect that his suggestion about using a fast micro and clever tricks would work well too.

It turns out we made incidental mention of this display when covering [Mike]’s tiny thermal imager but it hasn’t turned up much since them. As always, thanks for the accidental tip [Greg]! We’re waiting to see the final result of your experiments with this.

Two Joysticks Talk To FPGA Arcade Game Over A VGA Cable

We really love when hacks of previous hacks show up in the tip line. It shows how the hardware hacking community can be a feedback loop, where one hack begets the next, and so on until great things are everywhere. This hacked joystick port for an FPGA Pac Man game is a perfect example of that creative churn.

The story starts with Pano Man, a version of the venerable arcade game ported to a Pano Logic FPGA thin client by [Skip]. We covered that story when it first came out, and it caught the attention of [Tom Verbeure], particularly the bit in the GitHub readme file which suggested there might be a better way to handle the joystick connections. So [Tom] took up the challenge of using the Extended Display Identification Data (EDID) circuit in the VGA connector to support an Atari 2600 joystick. The EDID system is an I²C bus, so the job needed the right port expander. [Tom] chose the MCP23017, a 16-bit device that would have enough GPIO for dual joysticks and a few extra buttons. Having never designed a PCB before, [Tom] fell down that rabbit hole for a bit, but quickly came up with a working design, and then a better one, and then the final version. The video below shows it in action with Pano Man.

We think the creative loop between [Skip] and [Tom] was great here, and we can’t wait to see who escalates next. And it’s pretty amazing how much IO can be stuffed over two wires if you have the right tools. Check out this VGA sniffing effort to learn more about EDID and I²C.

Continue reading “Two Joysticks Talk To FPGA Arcade Game Over A VGA Cable”