'Flea Ohm' FPGA Project

My attempt at making an FPGA experimenters board in a popular form factor :)

Similar projects worth following
FleaFPGA Ohm/Ohm+ are my own attempts at making a powerful FPGA-based development board in a raspi zero form-factor. This time however, I use the new ECP5 FPGA from Lattice Semiconductor! ;-)

Read more »

  • Personal challenges... and the long road back

    Valentin Angelovski01/28/2019 at 10:53 2 comments

    Hello Everyone!

    Well, it has been over a year since my last project update. My humble apologies for the very long hiatus between updates...

    In summary, here is where my FleaFPGA 'Ohm' project is currently at: 

    - First run of production boards delivered successfully, albeit at a higher than expected unit cost and more difficult than anticipated production test cycle :-(

    - Newest project I managed to successfully get working on FleaFPGA Ohm (and release on github): project Oberon to FleaFPGA Ohm 

    - I have (rather obviously) stopped all work on this hobby project until recently, mainly due to non-hobby matters. I am still waiting for my energy levels to return to normal so that I can devote more time to my hobbies wherever possible :-(

    - I have received a ton of feedback (good and bad - thanks for both!) about my FleaFPGA Ohm. I have since used this information to design a new lineup of FPGA  development boards starting with Ohm Mk2 pictured below - watch this space! :-)

    - I've not yet decided on doing a second production run of Ohm boards (by me personally). However, I have received (and I'm receptive to) several submitted offers from interested parties to manufacture Ohm, so I am considering these offers going forward. In the event that all falls through, there is the option of putting the related Gerber PCB files up on Github for others to make more Ohm boards as they wish ;-)

    Anyways, that's it for now. Thanks, as always, for reading about my slice of homebrew madness!

    Regards Valentin

  • Production run - Part 2:

    Valentin Angelovski12/27/2017 at 07:46 0 comments

    Seasons Greetings Everyone! :)

    Just thought I'd post a quick update around my FleaFPGA Ohm production run...

    Short summary: Indiegogo boards have been assembled and functionally tested! Furtner details (and pictures) may be found on my Indiegogo campaign page:

    Well, that's all for now. More to follow soon...

    Happy Holidays! :)

  • Production run - Part 1:

    Valentin Angelovski11/27/2017 at 06:29 1 comment

    Hello Everyone! 

    Please forgive the delay in my latest Project log - life always getting in the way of the fun etc. etc...

    I wish to start off this blog by extending my sincere thanks to those who backed my FleaFPGA Ohm project on Indiegogo! Without your support this project would quite likely have stayed a personal endeavor. 

    Now that the campaign is over, it's time to look forward to the production run. Parts have been ordered and should all arrive next week. PCBs have been fabricated and are already on-hand. Test and assembly plans devised and awaiting final review...

    Assuming no major hold-ups, I expect to see the first assembled Flea Ohm boards roll off the assembly line in around two weeks time. Watch this space!! :-D

    Cheers, Valentin

  • FleaFPGA 'Ohm' now launched on Indiegogo! :-D

    Valentin Angelovski09/28/2017 at 16:08 22 comments

    Hello Everyone!

    First off, I want to give a huge thanks to everyone who liked or have been following my Ohm project with interest to date! I also want to thank those of you waiting on production news for your patience.. 

    Now for the good news: I am pleased to announce the launch of my FleaFPGA 'Ohm' board as an Indiegogo campaign!  Exciting times! :-)

    Please do check it out (including the embedded video). Those of you who are interested in obtaining an 'Ohm' board, now is your opportunity to register your interest in my own take on an FPGA-based platform through the above link. Thank you!

    Kindly stay tuned for further updates. Should you have any questions regarding the production run, kindly post those either here or over at Indiegogo. Thanks again!


    Valentin Angelovski

  • First production-level 'Ohm' boards.

    Valentin Angelovski08/29/2017 at 14:13 13 comments

    Hello again,

    In last month's project update, I wrote about the redesign and testing of my 'Ohm' FPGA platform. This month, I am pleased to present some pictures of my first newly-assembled and tested (of what I now consider production-level) Ohm boards:

    Here are a few close-ups of my Ohm in the rather slick-looking (in my humble opinion) transparent Adafruit case :)

    So, this effectively concludes the (re)design and prototype test phase of my Ohm project (yay!). Things left to consider are:

    1.) How many boards to make initially (which will in part help determine the final unit price)

    2.) Finish off my User Guide for the Ohm platform (already begun, but not yet completed)

    3.) Uploading of a new Youtube video of my re-designed Ohm board in action! :-D

    Kindly keep an eye out for answers to the above in my next project update. Glad to finally get things to this point as it has been a long time coming. Thanks again for reading. :-)


    PS: Also last month, I hinted at the possibility of a releasing a second board based on my larger Ethernet-based variant. I have decided to create a separate .io project page for it in due course (time permitting)

  • Rise (again) of the 'Flea zero' board!

    Valentin Angelovski07/19/2017 at 14:36 6 comments

    Hello again :-)

    Apologies for my late reply. Winter can be a challenging season for those with inept immune systems.. :-(

    While I overcame my health hurdles, in my last blog update you may recall I was to make attempt at building Ohm pre-production boards? Well, turns out the PCBs that I had received were indeed of an inferior quality :-( So I am now in the process of moving my Ohm board design to another PCB house..

    Now, while that was all going on, another major thing happened.. I basically had another crack at building a pi zero sized FPGA devboard again. Here's the result - (re)introducing my 'Flea Ohm' board! :-)

    .. and here it is running a test configuration in the shape of the Minimig core:

    So.. now it looks as though I now have two possible designs to explore further (ie. Ohm and as-yet-unnamed Ethernet variant :-) Time permitting, I hope to do a small run of one or both boards (depending on interest) in the near future.

    Thanks for reading! More to follow..


  • Pre-production 'fun' and more..

    Valentin Angelovski07/01/2017 at 12:29 2 comments

    Hello again,

    A fair lot has happened since our last blog post. Unfortunately that included getting a chest infection put me out for at least a fortnight - but I am feeling much better now :)

    First attempt at assembly of pre-production Ohm PCBs:

    So I received my Pre-production Ohm boards and had some fun assembling them. I say 'fun' because it seems I may need to tweak my soldering process for these pre-production ready PCBs. Following is a picture of a slightly overdone pre-production Ohm board (notice the slight charring along the top of the PCB near the main GPIO header):

    Luckily for me, this board wasn't a total writeoff (only one DRAM failed during functional testing), which is great because I've got a 45KLUT FPGA installed on it.. :) Illness forced me to 'take a break' from any further project work before I could attempt to make any more -

    Hopefully I will be more successful in my 2nd attempt tomorrow :)

    My first Ohm 'hat' (yay! :-)

    Also, I managed to assemble my retro game 'hat' for Flea Ohm! Not 100% tested yet, but at least the PS/2 and Game ports worked fine with the overcooked Ohm board in the previous pic ;) There are even more interesting hats to create (and even the retro gaming hat can of course be improved on..) but hey everything has to start somewhere heh :-D

    I did not have any ESP-12E modules on hand, so I slapped on a plain old ESP-12 instead. I will need the 12E variant if I want SDIO, but I may instead move on to an ESP-32 version as I previously wanted to - time permitting of course.

    Re-rise of the pi zero variant??

    Another thing that happened before I got sick: Now all of you may remember this project of mine started out as a pi zero sized board? Well I have definitely not forgotten about it! About a month ago I had decided I was going to have another go at making a zero-sized fpga board - this time using the physically larger FPGA package as used in my current Ohm:

    (To be continued.. :-)

  • Pre-production Part 3:

    Valentin Angelovski06/05/2017 at 04:24 2 comments

    Hello again! :)

    While I eagerly await on (what I hope to be) the final revision of my Ohm board, thought I'd drop one more update here..

    1.) OV7670 module testing went well :)

    2.) Fixed a few more minor errors with the PCB, as well as tweaked the following specs:

    • Stepped up the user GPIO breakout to 62 pins total..
    • Added a user push button (really needed one for things like system reset etc.. so I bit the bullet :-).
    • Added some additional circuit protection bits that were missing on the original Ohm zero..
    • To get the maximum possible use out of my board (ie: implementing multiple video inputs), I may need to offer the 45k variant ECP5 for the FPGA.. For many things however, the 24.5k variant seems to be acceptable. It can (for example) accept the minimig core, albeit at ~80% slices and 100% PLL blocks usage..

    3.) Started work on my very first (and relatively simple) 'hat' for the Ohm board - a 'retro ports breakout' hat containing:

    • 2 x C64 style game ports (for joystick and game paddle support).
    • 1 x PS/2 combo port (for keyboard and mouse support via a Y-splitter cable).
    • 1 x Audio output jack.
    • ESP8266 (was ESP32, see update below) module provision (several possibilities here, needs more work ;)

    Looking forward to seeing the final boards when they arrive (hopefully) by next week's end (I hope I've covered everything..) More to follow!

    **** EDIT 09/06/2017: For reasons mainly relating to time, I have decided to use the ESP-12E module (ie. ESP8266) for Revision 'A' the retro breakout hat (and possibly move to ESP32 for later versions when I am in a better position to support it). I have the following interfaces wired up from the ESP to the FPGA:

    1. SDIO and UART interface pins wired up.
    2. Control signals required for ESP module control and/or firmware update (ie. RST, EN, GPIO0, GPIO15, etc.) are upported.

    Both expansion hats and pre-production Ohm boards are almost ready to be shipped back to me. Next week will be an eventful one.. ;-) ****

    1. Pre-production Part 2:

      Valentin Angelovski05/11/2017 at 06:30 1 comment

      Hello again! :-)

      Well a few things have happened since my last update. Since that time, I ended up having two second-round prototypes built: one with 10/100 Ethernet and another with Gigabit Ethernet. Pictured below is the Gigabit Ethernet version (with and without user accessory modules plugged in):

      Ethernet tests: This one was a pleasant surprise - wasn't expecting my Gigabit variant to work (was still happy to release the 10/100 variant if it did not work..), but work it did! :-D Gonna do some more testing on it, but I have decided to upgrade the spec. to include it in the final board..

      CSI port testing: Didn't go so well.. After finally getting around to diving into this in a major way, I discovered my solution to be unsatisfactory due to problems with shared i/o pins for csi and parallel camera support :-/ Therefore, I decided to delete the CSI port and instead focus on parallel CMOS camera module functionality (but with the possibility for CSI support via 'SLVS' configuration of suitable GPIO pins)..

      Deleting the CSI header did free up more user GPIO pins (which are always welcome.. :-), so I added an extra single-row header strip above GPIO-B to access the extra GPIO (see below):

      This now leaves parallel CMOS camera and some GPIO-related tests to carry out. To be continued.. thanks for reading! :-)

    2. Pre-production Part 1:

      Valentin Angelovski04/11/2017 at 08:26 5 comments

      Hello again! :-)

      Quick update on my Ohm project: Prototype testing is now almost complete. Only thing not tested to date was the CSI header, thanks to a silly error that slipped under the radar..

      Based on these tests (among other things) I've updated my PCB design to include all fixes and/or tweaks arising from it:

      One of the things that really bothered me was the lack of user GPIO breakout. So I increased the GPIO count to 55 user pins total, thanks to the inclusion of a 20-pin 'GPIO-B' header, as well as increasing the pin-count of the 'GPIO-C' header :-D

      There were also other changes and tweaks as well - I will write a more comprehensive list of the changes when I have more free time.

      Next step: Review the above as soon as possible and see if I can knock one up quickly.. ;-) Thanks for reading!

    View all 21 project logs

    Enjoy this project?



    pewnosc wrote 06/15/2020 at 17:19 point

    tell me. Is posible integrate this to Pine Book Pro?

    I would use normal keyboard, screen etc. And run program on FPGA and in ARM. For example emulator  in window

    PineBook have some free space inside

      Are you sure? yes | no

    AlanH wrote 05/30/2020 at 06:21 point

    Where do you get your PCBs made with tolerance that can handle an ECP5 .8mm escape?  I assume since you mentioned tooling costs, it's not a budget supplier.  Also how do you mount your BGAs for prototyping?

      Are you sure? yes | no

    Kolbjørn Barmen wrote 02/13/2020 at 08:55 point

    Was there ever some IO-pcb for the FleaFPGA Ohm, for use with the minimig core, for connecting keybord, mouse and joysticks?

      Are you sure? yes | no

    Tachyon wrote 05/31/2019 at 00:53 point

    I hope whatever issues you were dealing with are behind you and better times are rolling in.

    Meanwhile, I'm really excited to see the MK2 teased above come to fruition. Looking forward to following this project and hopefully getting hold of a MK2 (or even a MK 1).

      Are you sure? yes | no

    Valentin Angelovski wrote 06/06/2019 at 16:30 point

    Hello. Thanks for your question and apologies for the late reply. I am alive and still working on my homebrew projects whenever I can. However, ongoing life matters continue to place severe time constraints on my hobby-related activities. Latest Ohm Mk2 boards seem to work (mostly) as expected, but progress around testing has been very slow. 

    Cheers, Valentin

      Are you sure? yes | no

    fabian wrote 07/19/2018 at 15:06 point

    is possible to create second version with ethernet or wifi?

    and meybe a more memory (512MiB)

    look this why not add screen some keys and buzzzer. many people would like to buy this.

      Are you sure? yes | no

    James Hall wrote 07/16/2018 at 15:38 point

    Anything new lately?

      Are you sure? yes | no

    Renaud Schweingruber wrote 02/21/2018 at 10:12 point

    Will there be another batch in the future ?

      Are you sure? yes | no

    Valentin Angelovski wrote 02/22/2018 at 12:56 point

    Hello Renaud,

    Thanks for your question. I may find an opportunity to look into that, once the dust finally settles on the first round (hasn't quite done so yet). Currently focusing on bringing more HDL examples to FleaFPGA Ohm among other things.  Cheers, Valentin.

      Are you sure? yes | no

    Renaud Schweingruber wrote 02/18/2020 at 08:37 point

    Hi Valentin, has dust settled ? :)

      Are you sure? yes | no

    James Hall wrote 01/23/2018 at 14:03 point

    Do you know if the ao486 core will fit?

      Are you sure? yes | no

    Valentin Angelovski wrote 01/26/2018 at 11:39 point

    Hello James,
    Thanks for your question. ao486 is too big to fit inside the ECP5 of my Ohm board AFAICT. From what I've read it is not an optimal x86 solution, but it is the first open and complete 32-bit x86 core for FPGA use.

    I feel an fast, optimized 386 class PC system could be made to fit on the Ohm, but any 386-based SoC would be a massive undertaking, let alone 486. Cheers.

      Are you sure? yes | no

    Ralph wrote 11/30/2017 at 21:23 point

    Since the indiegogo is closed, how can I buy one of these?

    Saw the Q below, Diamond can run on Linux and via command line, no problem.

      Are you sure? yes | no

    Valentin Angelovski wrote 12/01/2017 at 02:08 point


    I will address the question of post-campaign Ohm availability once I have proven that I can successfully deliver to the initial backers. 

    Cheers, Valentin

      Are you sure? yes | no

    Lars Brinkhoff wrote 10/11/2017 at 09:02 point


    Is Lattice Diamond the only option for programming the EPC5?  My preference is for tools that 1) runs well in Linux, and 2) have command line interfaces.

    The nice thing about the iCE40 devices is that they're supported by the IceStorm toolchain.

    Good luck!

      Are you sure? yes | no

    mikolaj24 wrote 10/10/2017 at 08:03 point

    How faster is this processor? Can You run bogomips or other benchmark?

      Are you sure? yes | no

    Valentin Angelovski wrote 10/10/2017 at 13:22 point

    It's not a processor, it's an FPGA. You can put whatever processor (or even multiple processors) you want on it - as long as it fits inside the FPGA's logic capacity..

    As for 'processor' (which I assume you mean CPU), fastest CPU core I have ever run on my board was F32C (MIPS/RISCV compatible):

    There, you will find the speed benchmarks in the readme. At a guess, I estimate that I could possibly fit four such cores, each running @ 100MHz+ on my board and still have room for peripheral or other modules.

    Potentially even faster (VLIW) cores could also be done, in theory. However, writing a suitable c compiler backend for such a core would be challenging..

    Cheers, Valentin

      Are you sure? yes | no

    ia wrote 10/24/2017 at 13:51 point

    On indiegogo is: 25MHz Crystal oscillator 

    What this is about? How posibility faster is this machine? For example implementing only benchmark, no OS etc. 

      Are you sure? yes | no

    Valentin Angelovski wrote 10/25/2017 at 06:46 point


    Thanks for your question(s). That 25MHz mentioned on Indiegogo is for the on-board reference oscillator that feeds into the ECP5 FPGA. From there it can be stepped all the way up to 400MHz(!) internally via the two PLL Blocks that exist within the ECP5 FPGA. Of course, various factors will dictate the final MHz of any embedded user logic inside the FPGA..

    As for "What is this about" my project was not specifically designed for running Ubuntu... that is what computing platforms like the Raspberry Pi are for. My Ohm board was designed for use in FPGA-oriented projects (including the possibility of working with the raspberry pi as a hardware accelerator) and also for learning about FPGA technology in general. Cheers.

      Are you sure? yes | no

    Akira wrote 10/02/2017 at 14:29 point

    Indiegogo is blocking me for using a VPN. How lame is that? Not a cool thing at all.

      Are you sure? yes | no

    Valentin Angelovski wrote 10/03/2017 at 01:49 point

    Interesting. No VPN issues here. I am not sure that it's Indiegogo doing the blocking. Seems ironic they would actively block VPN users, particularly when they're hosting several VPN-related product campaigns on their site..

      Are you sure? yes | no

    Akira wrote 10/03/2017 at 23:10 point

    Must have been a glitch. It works now!

      Are you sure? yes | no

    Valentin Angelovski wrote 10/04/2017 at 02:21 point

    @Akira Cool! :)

      Are you sure? yes | no

    Bartosz wrote 09/29/2017 at 09:03 point

    add bitcoin, etheneum mining, the campaining increase ;-)

      Are you sure? yes | no

    t.abts wrote 09/27/2017 at 06:35 point

    I think this looks perfect to built it into a keyboard to make your own little retro gaming machine. All you need is to solder two D9 connectors to the GPIO.
    One question: Since I like my Amiga as much as my C64... will there be the possibilty to switch cores easily?

      Are you sure? yes | no

    Valentin Angelovski wrote 09/27/2017 at 08:04 point


    Short answer: Without an external PC connected? Yes, it is possible but not easily so..

    Longer answer: Notice a small 6-pin header on the right hand side of my Ohm board? That is for connection to an external JTAG programmer. You would need a custom 'hat' to control that header using a microcontroller and an SPI ROM with multiple FPGA config bitfiles loaded into it. Add a push button(s) to said hat to allow selection of said core and have the microcontroller on the custom hat transfer the desired bitfile directly into the configuration SRAM array of the ECP5 FPGA on the Ohm board upon power-up..

    By far the easiest method uses the one created for the Ohm by default: Using a USB cable and a host PC running the flea jtag utility ;-)

    Cheers, Valentin

    *EDIT*: Using the SD card to update the Ohm board's onboard SPI ROM is really only suitable for configuration updates, not multiple HDL bitfile selection..

      Are you sure? yes | no

    t.abts wrote 09/27/2017 at 08:17 point

    Thanks for your quick and detailed answer! I was more thinking of a simple software solution, like a menu to switch cores?
    But maybe this is a naive wish, since I don't have any deeper knowledge about FPGA...

      Are you sure? yes | no

    Valentin Angelovski wrote 09/27/2017 at 08:47 point


    "I was more thinking of a simple software solution, like a menu to switch cores?" You would still need an external microcontroller to take control of the FPGA via JTAG, regardless of whether you're using external push-buttons from an external hat, or some kind of on-screen-display menu to select your desired custom config bit-file for the FPGA. So yeah not quite so simple.

      Are you sure? yes | no

    mikolaj24 wrote 09/22/2017 at 09:22 point

    Tell my why not 4 fpga and goog adn fast magistrale?

    FPGA is for speed, more trouble is with communication core. Create a machine with 4 core to learn and programming interaction with more than one fpga.

      Are you sure? yes | no

    Valentin Angelovski wrote 09/23/2017 at 14:36 point

    Hello and thanks for your question! 

    I have given some thought to what you've described when I designed my Ohm board. Beause the USB/PS2 host ports are wired to the ECP5, may be possible (as well as a nice weekend project to try :-) to link multiple Ohm boards together via those host ports using some custom comms logic to implement whatever network topology may be possible using those two ports. Over very short distances it should be fast, certainly faster than normal UART speeds I would think..

    If that isn't fast enough, there are also twelve LVDS pairs available in the GPIO.. :-) Cheers, Valentin.

      Are you sure? yes | no

    Bartosz wrote 09/26/2017 at 12:06 point

    I thing Mikołaj sed about device similar transputer. Multiple core on one board and fast magistrale between it. (multiple fpga on one board)

    Because realy trouble is with programming/configuring more than one fpga.

      Are you sure? yes | no

    Valentin Angelovski wrote 09/26/2017 at 13:25 point


    Sure. On the topic of adding multiple FPGA chips on one board: Technically the ECP5 (LFE5U-25) used on my Ohm board is not only faster, but also has nearly four times the logic capacity of any of my previous FPGA boards using the MachXO2-7000 device. So from that perspective one could argue that it is almost literally four FPGA chips on one board! ;-) Cheers Valentin.

      Are you sure? yes | no

    mikolaj24 wrote 10/10/2017 at 08:08 point

    No, 4 fpga and meybe normal ARM for linux. I need a faster machine and scalable

      Are you sure? yes | no

    Bartosz wrote 09/21/2017 at 15:04 point

    Epiphany is faster, and cost 99$ = linux ARM + 16 procesor + FPGA

      Are you sure? yes | no

    Valentin Angelovski wrote 09/21/2017 at 15:27 point

    Thanks for liking my project! :-)

      Are you sure? yes | no

    Bartosz wrote 09/22/2017 at 16:24 point

    are you thinking about 2 fpga and kickstarter campaining?

      Are you sure? yes | no

    Valentin Angelovski wrote 09/23/2017 at 14:38 point


    Yes, starting with my zero-sized Ohm board. I hope to finish the Ohm campaign video in the next few days :-) Cheers Valentin.

      Are you sure? yes | no

    Blecky wrote 09/20/2017 at 01:46 point

    This is a damn beautiful project.

      Are you sure? yes | no

    Valentin Angelovski wrote 09/21/2017 at 15:34 point

    Thanks for your encouraging words. It has been a lot of fun so far :-)

      Are you sure? yes | no

    zardotagore wrote 09/19/2017 at 17:14 point

    Compliments for fantastic project, i follow your description and possibility to update with ethRJ45. Permit to suggest: i think is better more and much more USB plug. Inside USB can put inside all we need it. Happy Hacking. : )

      Are you sure? yes | no

    mikolaj24 wrote 10/10/2017 at 08:05 point

    Yes, ethernet is important for cpufarm. Many people using fpga to count ingenering or phisics projects

      Are you sure? yes | no

    Akira wrote 09/18/2017 at 13:43 point

    This is super exciting! Please let us know how to support you. Minimig ECS and C64 is all I need, really, so anything else you add is just icing on the cake :)

      Are you sure? yes | no

    Valentin Angelovski wrote 09/21/2017 at 15:46 point

    Thanks for your positive comments! Given that I had successfully ported both (admittedly the FPGA-64 port is far less refined but working as more than a proof-of-concept). My next blog update will reveal my production plans - stay tuned! :-) Valentin

      Are you sure? yes | no

    geoffmanser wrote 09/14/2017 at 19:21 point

    this is awesome can i buy one yet i cant wait to own one , what a clever brilliant idea i love it thanks for making it.

      Are you sure? yes | no

    Valentin Angelovski wrote 09/21/2017 at 15:50 point

    Thanks for yor encouraging words! My next blog update will reveal my production plans - stay tuned! :-) Valentin

      Are you sure? yes | no

    Similar Projects

    Does this project spark your interest?

    Become a member to follow this project and never miss any updates