Previously, I wrote a FleaFPGA Introduction. This board was about the size of an Arduino Uno with some GPIO pins, a VGA, USB, SD Card, PS2 Style Port, and a USB Host connector. At the time, the Lattice Mach XO2 provided the base logic. It found some success in the emulation community (*cough* x86 *cough*.) Unlike software emulators, the FPGA emulates the actual digital logic of classic computer ICs. Also known as ASICs.
Fast forward to today, well, this week. Valentin Angelovski is at it again, but this time, with a new and improved board the size of a Raspberry Pi Zero. He’s launched an Indiegogo Campaign for the FleaFPGA Ohm. For $45 (plus a bit for shipping) you can reserve your spot for when these start shipping early next year.
As you might have noticed, I don’t often promote or comment on crowdfunded projects. My experience with crowdfunded projects has not been positive. So what makes the FleaFPGA Ohm different? Well first, I know Valentin well. Granted distance has kept us from meeting face-to-face, we talk at least once a week on IRC. I’ve been eagerly watching his progress with the FleaFPGA Ohm. Second, this isn’t his first hardware project. He’s already sold many of the original FleaFPGA boards. While there is always a risk with crowdfunded campaigns, I think the risk here is minimal–and worthwhile.
If you’re interested in advancing your hardware hacking game, FPGAs are the next step. And I think the FleaFPGA Ohm is a serious option to consider. Since you might be new to FPGAs or Valetin’s projects, I sat down to interview him for this project. (Okay, it was Google Docs, but these questions and answers are real!)
Before continuing, in disclosure, I have backed this project. However, no other endorsement or paid promotion has happened. Below here are actual answers from Valentin to questions I asked (and had.)
What is an FPGA? How is it different from a Microcontroller?
Main differences between an FPGA and Microcontroller are in how they’re wired internally and also how you program them. In a Microcontroller, you have no control over what CPU and peripherals you’re given. This is called hardwired logic. In an FPGA however, you have almost total control over what CPU and peripherals you’re going to be using for an application. This is known as ‘Programmable logic’. Hardwired logic basically means all of the logic gates embedded in your microcontroller chip are not user re-routable, meaning they are dedicated to performing a single function. In contrast, FPGA chips have user re-routable logic elements that can be effectively re-wired for the application at hand.
Is this a “hat” to go on top of a Pie?
While it can function as an FPGA coprocessor hat for a Pi, it doesn’t necessarily have to. FleaFPGA Ohm can also function as a baseboard for FPGA-oriented projects.
What are 2 or 3 examples of what someone could make with the FleaFPGA Ohm they couldn’t make with a Pi Zero?
When functioning as a baseboard, FleaFPGA Ohm could potentially do the following:
- Enables custom ultra-high-speed expansion hats due to considerably higher bus bandwidth (up to ~1GByte/sec. peak) over GPIO than the RPi0.
- Can directly drive multiple LVDS-based LCD (ie Laptop) panels (up to four!).
- Arguably better, zero-latency retro-computer emulation (If done properly).
- On-board ADC inputs (when pushed) may be fast enough to capture NTSC video.
- Plus more! 🙂
Do I need any additional hardware (like an external programmer) to start using the FleaFPGA Ohm?
No. All you need is a USB cable and JTAG utility that runs on your PC or Laptop to configure FleaFPGA Ohm with pre-synthesised examples already ported or created for the board. You don’t even have to use Lattice Diamond (which is a free download anyway after registering over at the Lattice website) if you don’t want to!
For more serious work, an external JTAG debugger/programmer (for real-time debug of FPGA internals, if needed) is recommended but not essential.
Will the FleaFPGA Ohm come with any kind of “program” already loaded?
Yes. Too early to say but likely to be a video test pattern generator with LED blinking ‘SOS’ in morse code.. 🙂
If someone doesn’t know anything about FPGAs, how hard is it to use the FleaFPGA Ohm?
You do not necessarily have to know anything about FPGAs to use FleaFPGA Ohm! You could simply download one of the pre-compiled examples of interest to you and then configure (program) your FleaFPGA Ohm board using the JTAG utility and USB cable from a PC. I am currently working on getting these examples (as well as a user guide) in place to help with that.
How risky is backing your campaign? In terms of production, how does the the FleaFPGA compare to your older FleaFPGA boards?
FleaFPGA Ohm represents a major leap over my previous MachXO2-based offerings, using an FPGA (ECP5 series) that has nearly four times the logic capacity and Block RAM. FleaFPGA Ohm was previously meant to launch at the beginning of 2017, but availability problems with the (then-brand-new) ECP5 variant led to a major board redesign. Nothing is risk-free, of course, but I believe we can deliver a potentially fun and useful board!
Is there anything like the Arduino IDE for programming the FleaFPGA Ohm?
For previous FleaFPGA ‘Classic’ and ‘Uno’ boards, we used the F32C (32-bit MIPS/RISCV compatible) softcore with the Arduino IDE. I imagine it might be possible to extend that support to FleaFPGA Ohm as well.
Why did you pick the Lattice ECP5?
I particularly like the ECP5 because of it’s low power and good capabilities as well as low cost.
I appreciate Valentin taking time to answer these questions. He just kicked off his campaign and is still finishing up things like documentation. So I know he is a very busy guy. If you have questions, ask them here or the Indiegogo campaign page. I think either place he’d be very happy to help. If you don’t have a question, let me know what you might try to build with this board.