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.
If you want to talk about RISC-V, the Open Source instruction set for CPUs, you’re probably talking about microcontrollers. You can buy small but powerful RISC-V micros on par with an ARM Cortex-M4 right now. Deep in the pipeline are cores for something resembling SoCs, the kind you’d find in desktop NAS solutions, maybe a few routers, and smart TVs. This is great and all, but our idea of a ‘computer’ is still a desktop. When is the Open instruction set desktop coming? Well, it’s here right now. [Andrew Back] built a RISC-V desktop computer. It runs Linux, it comes in a case, it has HDMI and USB, there’s a graphics card in there somewhere, and it works. This is a desktop, running with a RISC-V core.
The core of this build is the HiFive Unleashed, a Linux-capable board from SiFive, makers of the first (production) RISC-V microcontroller. This board uses the Freedom U540 SOC built with a 28nm process, has 8GB of DDR4, and 32MB of Flash. For a board built on an Open archetecuture this is impressive, but it comes at a cost: the HiFive Unleashed ran for $1000 during its crowdfunding campaign.
But a board with an Open CPU does not a desktop make. You need peripheral IO, maybe a few PCIe, and hopefully a SATA interface. This problem has been solved by Microsemi with an Expansion board for the HiFive Unleashed. It includes a big ‘ol FPGA and all the connectors you could use. It also costs $2000.
With most of the parts ready to go, a few buttons, M.2 PCIe and SATA SSD storage, a graphics card, and a nice acrylic case were added. Thanks to Western Digital, building Linux was as easy as building Linux, and you end up with a desktop computer with a RISC-V brain.
Compared to a bog-standard ‘gaming machine’, this is an expensive build. The quick and dirty ballpark for the price is somewhere around $4000 USD for a machine that will let you check your Facebook. There’s a video of the machine running, you can check that out below.
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.
Glowing and blinking things are some of our favourite projects around these parts, and the bigger, the better. [Thomas] wrote to us recently to share the design and construction of a large LED wall at the Oregon Museum of Science, and the results are nothing short of impressive.
The concept involved a large LED wall that would be completely hidden when switched off. The team decided to approach this by hiding high-brightness LED panels using APA102 strings behind milky-white plexiglass panels covered with a woodgrain print. The screen has a total of 90,000 pixels, arranged in a 408×220 resolution display.
A lot of bespoke LED displays have some pre-coded patterns, or perhaps some basic reactive features. In this case, FPGA grunt was brought to bear on the problem and the display accepts standard HDMI input. Four Spartan 6 Mojo FPGA boards split up the task of addressing the panels, each receiving the same HDMI signal, but only crunching the pixels relevant to their area of the display. To make sure clean SPI signals get to each panel, special RS485 driver chips are used to send the signal over a differential pair from the FPGA, before breaking the signal back out to standard SPI at the destination.
Building such a large display takes special techniques, and [Thomas] notes that the help of a local construction company was imperative to making the construction of the final video wall look easy. It’s always interesting to see what goes into these large installations. Sometimes, a major build can even clear out world stocks of important components.
We are somewhat spoiled because electronics today are very reliable compared to even a few decades ago. Most modern electronics obey the bathtub curve. If they don’t fail right away, they won’t fail for a very long time, in all likelihood. However, there are a few cases where that’s not a good enough answer. One is when something really important is at stake — the control systems of an airplane, for example. The other is when you are in an environment that might cause failures. In those cases — near a nuclear reactor or space, for example, you often are actually dealing with both problems. In this installment of Circuit VR, I’ll show you a few common ways to make digital logic circuits more robust with some examples you can run in the Falstad simulator in your browser.
The hackers over at Radiona.org, a Zagreb Makerspace, have been hard at work designing the ULX3S, an open-source development board for LATTICE ECP5 FPGAs. This board might help make 2019 the Year of the Hacker FPGA, whose occurrence has been predicted once again after not quite materializing in 2018. Even a quick look at the board and the open-source development surrounding it hints that this time might be different.
Bottom side of ULX3S PCB
The ULX3S was developed primarily as an educational tool for undergraduate-level digital logic classes. As such, it falls into the “kitchen sink” category of FPGA boards, which include a comprehensive suite of peripherals and devices for development, as opposed to more bare-bones FPGA breakouts. The board includes 32 MB SDRAM, WiFi via an ESP-32 (supporting over-the-air update), a connector for an SPI OLED display, USB, HDMI, a microSD slot, eight channels of 12-bit ADC (1 MS/s), a real-time-clock, 56 GPIO pins, six buttons, 11 LEDs, and an onboard antenna for 433 MHz FM/ASK. This seems like a great set of I/Os for both students and anyone else starting FPGA development.
The ULX3S supports members of the Lattice ECP5 FPGA family, ranging from the 12F (12 k LUTs) to the 85F (84 k LUTs). What can you do with this much FPGA horsepower? Have a look at the long list of examples curated in the ULX3S Links repo. There, you’ll find code from retro-computing to retro-gaming, the usual LED and HDMI demos, and even Linux running on a mor1kx OpenRISC core. Maybe the most interesting links in the repo, however, are those that show how to program the FPGA with a completely open-source toolchain. Proprietary toolchains are the last link keeping some vendor’s FPGAs from wider adoption in the OSHW community, and it’s great to see people chipping away at them.
The board itself is completely open-source. In the GitHub repo, you’ll find the KiCAD 5 design files for the PCB released under an MIT-style license. Even more impressive is the advice in the README, which not only welcomes independent production of the boards, but gives some solid advice on dealing with PCBA vendors during manufacture. Our own advice is to do the right thing and offer the developers a cut if you decide to independently market this board, even though you aren’t required to by the license. If want one, but don’t want to manufacture your own, you can contact the developers using the email or gitter links at the bottom of the ULX3S page: they’re currently doing a small production run.
The Radiona Org folks have created a few videos showcasing example code. Check out how the on-board ESP-32 runs a web server that can load bitstreams into the FPGA (in this case for some retro-gaming), after the break.
If you’ve been reading Hackaday for a while now, you might recall the tale of Pano Logic that we first covered all the way back in 2013. They were a company that put out some very interesting FPGA-based thin clients, but as occasionally happens in situations like this, the market wasn’t ready and the company went belly up. These thin clients, now without official support, invariably got dumped onto the second-hand market. Shame for Pano Logic and their staff, but good news for hackers like [Skip Hansen].
After seeing a few posts about the Pano Logic devices and general FPGA hacking, he decided to grab a few on eBay and dive in. Using open source tools and the wealth of information that’s available [Skip] was able to get a Pac-Man simulator up and running over his holiday break, and he tells us his life may never be the same again. FPGA hacking is a fascinating subject with a lot of activity right now, and since you can get these Pano Logic boxes on eBay for less than $10 USD in some cases, now is as good a time as ever to get your feet wet.
Like many open source projects, [Skip] says his code is built upon the existing work of a number of other programmers, which let him get up and running much faster than if he had to start from scratch. He describes his code as the “glue” that mashes these projects together, but we think he’s being somewhat modest there. It took more than copying and pasting some code into an IDE to get Blinky, Pinky, Inky and Clyde doing their thing on the Pano Logic.
The biggest challenge was the lack of I/O. The Pano Logic thin clients have USB ports, but it seems nobody has quite figured out how to get them working yet. To talk to the outside world, you’ve got to get a little more creative. Eventually [Skip] was able to track down four lines he could effectively use as GPIO: two which are used to drive the LEDs on the device, and two which are used for the VGA port’s Display Data Channel (DDC) pins. Soldering jumpers from the LEDs to the unused pins in the device’s VGA connector meant he was even able to get these four GPIO lines accessible from the outside of the Pano Logic without having to cut any holes in the case.
Anyone with a Pano Logic client that has a VGA port, an Atari 2600 joystick, and who doesn’t mind soldering a couple of wires can now play Pac-Man with the bitstream [Skip] has provided. But where do we go from here? How long until we see DOOM running on it? Perhaps one of you fine readers should pick one up and see what you can do to advance the state of Pano Logic hacking. Just be sure to let us know about it.