TinyFPGA BX

Crowdfunding Page History

This page is an archive of the original crowdfunding campaign for this project. It may not be up-to-date with the latest updates and product availability. Return to the current project page.

$20,284 raised

of $1 goal

Funded! Order Now

Apr 19

funded on

2,028,400%

funded

384

pledges

Pledge Now

$5

Support TinyFPGA!

Thanks for supporting TinyFPGA!


$38

Your own TinyFPGA BX

Your very own TinyFPGA BX! Learn how to design digital logic, build the tiny microcontroller of your dreams, or just sleep snugly at night knowing you have a digital jack of all trades in your toolkit.


$74

TinyFPGA BX Twins

Two identical TinyFPGA BX boards with a tiny discount! Build something cool with two FPGAs talking to other and learn the tricky nuances of inter-IC communication. Or use one now and save the other for later, its up to you!


$180

TinyFPGA BX Five-pack

A five-pack of TinyFPGA BX boards for all the awesome projects you're going to build. You might not know what you will build yet but you'll be prepared when the fancy strikes.


$775

TinyFPGA BX Classroom Bundle

A total of 25 TinyFPGA BX boards with a nice discount. The TinyFPGA BX boards are perfect to run a hands-on workshop, teach a lab on digital logic and FPGAs, or to keep in stock at a maker space.

Details

A tiny, low-cost, open FPGA dev board that packs a punch.

As Featured In

industriaembebidahoy

"La tarjeta de desarrollo FPGA de código abierto TinyFPGA BX permite implementar circuitos de lógica digital propios en un formato diminuto."

EEWeb

"TinyFPGA boards offer an inexpensive way for 'microcontroller jockeys' to get an introduction to the world of FPGAs"

Hackster.io

"Field-programmable gate arrays (FPGAs) have come of age. "

Hackaday

Hackaday

"TINYFPGA IS A TINY FPGA BOARD"

EEWeb

"Both the stepper driver chip and the FPGA come in 5mm x 5mm QFN packages, so I could eventually wrap this up into a pretty small custom printed circuit board (PCB)."

Hackster.io

"... an FPGA performs logic because its hardware gates are wired that way. That means it can do things much faster, and in parallel. FPGA are there for when extra speed, and low latency, are needed."

Hackaday

Hackaday

"It’s small, it’s cheap, it’s easy to use, and there are working examples of FPGA development using this board."

The TinyFPGA BX brings the power and flexibility of custom digital logic designs to the maker community. The BX module allows you to design and implement your own digital logic circuits in a tiny form-factor perfect for breadboards, small spaces, or custom PCBs.

This incredible power allows you to do things that are not possible with traditional microcontrollers. While microcontroller boards have a fixed set of peripheral devices on-board, the TinyFPGA BX modules can implement the exact peripheral devices needed to get the job done. It’s not software bit-banging, it’s the real deal implemented in digital logic. When the next project has different requirements, reprogram the TinyFPGA BX with a new design suited to the task.

The full potential of programmable logic devices allows for even more ambitious projects than custom microcontroller peripherals: augment a retro-computer with new capabilities, recreate an 8-bit computer from history, or design your own.

If you don’t know what the big deal is with custom digital logic, then here’s a great way to learn. Place a TinyFPGA BX down on a breadboard and get to work interfacing it with LEDs, switches, rotary encoders, and any other peripheral, sensor, or interface you might like to try. The low cost of the BX and open-source ecosystem make this an excellent way to get started on a new adventure with digital logic.

Whether you are a hobbyist looking to expand your capabilities, a professional prototyping a new product, or a student learning the ropes of digital design, the TinyFPGA BX can help you on your way.

Who Needs It and Why?

Have you ever wanted to use an FPGA in a project, but the available boards were too big or expensive? New to FPGAs and want to learn how to use them? Want to put an FPGA on a PCB you are designing but don’t want to worry about power delivery, clocking, configuration flash, or difficult surface mount packages? If you answered “yes” to any of these questions, then the TinyFPGA BX can help!

The TinyFPGA BX is designed for makers and hobbyists. It puts you in control by taking care of FPGA support details and getting out of your way. It provides an easy to use component for your projects. It’s small enough to fit comfortably on a breadboard for learning or prototyping. When you’re ready, you can design a custom PCB incorporating a TinyFPGA BX module.

The TinyFPGA BX module is completely open hardware and open source. If you move beyond the need for through-hole components, you may decide you want to re-use or adapt the design for your own creations.

Description

The TinyFPGA BX is a small FPGA module with all of the components and circuitry required for the FPGA to function taken care of for you. To develop for the board you create a design in your favorite digital design language (Verilog/VHDL, Migen, and Chisel are some popular options). Alternatively, you can use a schematic entry tool like IceStudio. A schematic entry tool allows you to graphically draw a digital circuit to be implemented on the FPGA.

Once you have a design, you can program it onto the TinyFPGA BX module over USB. All the functions your design implements will now be able to interface with the outside world through the module’s IO pins.

Specifications

  • Height: 1.4 inches, width: 0.7 inches
  • Programming interface: USB 2.0 full-speed (12 mbit/sec)
  • ICE40LP8K FPGA
    • 7,680 four-input look-up-tables
    • 128 KBit block RAM
    • Phase Locked Loop
    • 41 user IO pins
  • 8 MBit of SPI Flash
  • Onboard 3.3 V (300 mA) and 1.2 V (150 mA) LDO regulators
  • Low-Power 16 MHz MEMs Oscillator
    • 1.3 mA power when active
    • 50 ppm stability.

Features

Small form-factor is breadboard friendly

There’s plenty of space on either side for connecting jumpers or components. There is no smaller FPGA board available with this many logic resources!

Open source bootloader

Forget proprietary and expensive USB interface chips, the TinyFPGA BX implements its own open source USB bootloader! Upon power-up, USB bootloader is loaded from SPI flash and becomes active. It appears on the host computer as a virtual serial port device. The programmer software automatically detects the board and uses the serial interface to program your design onto the board. Once your design is loaded in the SPI flash, the board reboots and loads your design without the bootloader. To update your design just press the reset button and the bootloader will be activated again.

The TinyFPGA Bootloader has features that proprietary chips do not have. In addition to lowering the cost of the board for users like you, it also contains metadata on the SPI flash in an open JSON format. This metadata contains:

  1. A unique ID for each board. No matter what serial port designation your OS assigns your board, you can always be sure you are programming the right one.
  2. A human-readable name of the board and FPGA.
  3. Information on where to put the user program and optional user data.
  4. An update URL for fetching bootloader/firmware updates.

This metadata, along with the dedicated programmer tool, makes the TinyFPGA BX boards easy to use.

If you want to see all the metadata stored on all the boards connected, you can get a full JSON listing of the metadata annotated with the serial port name they are connected to.

For technical details and source code see the TinyFPGA Bootloader GitHub repository.

High-quality PCB design

The TinyFPGA BX improves upon the previous B2 model in every aspect and the PCB layout is no exception. In addition to nearly doubling the number of user IOs, the new PCB layout also an improved PCB layout and power delivery:

  1. Four-layer PCB with dedicated ground and power planes
  2. Six external ground connections (including the USB connector)
  3. Power distribution and decoupling capacitors implemented by the book for all ICs, including bulk capacitance and ferrite bead filtering for the board.

Open source FPGA toolchain support

In addition to the free tools from Lattice for developing with the iCE40 FPGAs, the TinyFPGA BX is also supported by the completely open-source IceStorm FPGA toolchain.

IceStorm has enabled incredible tools like IceStudio to be developed. If you are new to the world of digital logic, IceStudio is a great way to learn and make with FPGAs.

IceStorm currently supports the TinyFPGA B2 and I will be working closely with its creators to implement support for the TinyFPGA BX as well.

If graphical schematic entry is not your thing, you can use your own favorite text editor or try out the APIO-IDE project. APIO-IDE builds on top of PlaformIO-IDE and is a great open-source development environment for FPGAs.

Comparisons

Besides the TinyFPGA BX, there are a few different FPGA boards that have adopted a smaller form factor suitable for breadboards. These boards vary in availability, price, capacity, features, and license. A section on FPGA power delivery comparisons has been added since it is easy to overlook and can have a large impact on stability and signal integrity.

TinyFPGA BX Lattice ICEstick UPDuino v2.0 bugblat TIF
License OSHW Closed Closed Closed
Stock Pre-Order In Stock In Stock Out of Stock
FPGA
Model iCE40LP8K iCE40HX1K iCE40UP5 LCMX02 1200/4000
Logic Capacity (LUTs) 7680 1280 5280 1280/4320
Internal RAM (bits) 128k 64k 120k + 1024k 64k/92k
Multipliers 0 0 8 0/0
Peripherals
USB Interface OSHW Bootloader FTDI 2232HL FTDI 232HQ SIL 2112
User IOs 41 24 34 16
Onboard Clock 16 MHz MEMS 12 MHz MEMS 12 MHz (from FTDI) 48 MHz (from SIL)
Flash 8 MBit SPI Flash 32 MBit SPI Flash 32 MBit SPI Flash 80KBit/96KBit FPGA User Flash
FPGA Power Delivery
Dedicated Ground/Power Planes Yes Yes No Yes
Dedicated FPGA Bypass Capacitors 8 18 2 4
Board Ground Connections 6 6 3 3
Software
Open Source Toolchain Yes Yes Yes No
APIO Support Yes Yes No No
IceStudio Support Yes Yes No No

Manufacturing Plan

The TinyFPGA BX boards will be manufactured by PCBWay in China.

I have been using PCBWay for all of the TinyFPGA boards including the BX prototypes. The process of manufacturing the prototypes with PCBWay has found some design rule violations that I was able to clean up. It also ensured that they would be able to assemble the boards with the unique BGA footprint that is present on them. The prototype run of 20 boards came back with every one of them 100% functional.

PCBWay offers a full turnkey service for fabricating the PCBs, sourcing components, and assembling the boards. To help reduce costs I will be working with Arrow to source some of the key components of the board.

After the crowd-funding campaign ends, the full manufacturing run will be ordered from PCBWay along with components from Arrow. When PCBWay receives payment, they will begin fabrication of PCB panels with TinyFPGA BX boards. During PCB fabrication, the full electrical connectivity of each board is tested and physical characteristics are optically inspected. The panels will likely be finished by the time the components arrive for assembly.

After assembly, the boards are broken out of the panels using a “pizza cutter” tool. It is a specially designed tool that seperates the boards from their panel without mechanically stressing the components.

The individual boards are packed and shipped to TinyFPGA in Sacramento, California. Here they will be tested for correct functionality and programmed with the USB bootloader.

The testing and programming take place on a dedicated test-jig. The test-jig is currently powered by a Teensy 3.6 microcontroller board. This is a ready-made module that can easily be replaced if there are any issues with it. It also has a built-in micro SD card slot that is used to contain the test and production firmware. Below you can see the test-jig used to test and program the prototypes.

The test-jig pushes the board onto a set of pogo-pins that contact all of the testpoints and headers on the bottom of the board. Through these pogo-pins the board programming and testing procedure is executed automatically:

  1. The 1.2 and 3.3 volt power rails are sampled with an ADC to determine if they are within spec. This ensures the voltage regulators are functional.
  2. A test design is loaded onto the FPGA. This tests the SPI flash and allows the test-jig control over the FPGA IOs.
  3. Connectivity of each IO pin is tested.
  4. The test design divides the 16 MHz clock down to a speed that can be measured accurately by the microcontroller within the test jig. This is done with the FPGA PLL as well as some digital logic. The microcontroller tests the duration of this low speed output to ensure it is the correct duration and is stable. This tests that the clock generator chip is functioning correctly on the board and that the PLL on the FPGA is stable.
  5. The USB bootloader is programmed onto the SPI flash.
  6. A unique UUID is generated for the board and programmed onto the SPI flash along with the bootloader metadata.
  7. Output from all of the tests is collected and a PASS/FAIL message is presented to the test jig operator.

Passing boards are then packaged in an ESD safe bag and labeled. At this point they are ready to be shipped to backers!

Shipping & Fulfillment

  • The TinyFPGA BX boards will ship from Sacramento, California.
    • Shipping within the USA is free.
    • Shipping outside the USA is $7.
  • See Crowd Supply’s guide on shipping for more details.

Risks

There are many things that can go wrong when manufacturing hardware. The TinyFPGA BX is a proven design with a few dozen working prototypes, but this doesn’t mean that higher volume manufacturing is guaranteed to go smoothly. Here’s a list of the likelier risks to production:

Components can take longer than expected to source

For whatever reason, components that used to be plentiful one day can come under a crunch during manufacturing. This could be due to someone else buying all the parts for their own production run or a supply chain issue for the original manufacturer of the component. So far this hasn’t been an issue for the previous B2 version or for the BX prototypes.

Poor PCB yield

When just a few PCBs are manufactured yield issues might not become apparent. When a larger production run is ordered there could be yield issues that could require a redesign or additional run that will take more time.

Poor assembly yield

Issues with components, PCB design, solder paste stencil, or assembly equipment can cause issues with PCB assembly. The TinyFPGA BX has an increased risk of a hit to the assembly yield due to the unique BGA footprint for the FPGA. So far, all of the prototypes that have been assembled have not exhibited any issues with the BGA footprint, but it is possible it could affect the assembly yield in higher volume production. If the yield is very bad, it would require a redesign. If the yield is good enough, then it should not cause any delays.

Challenges

The TinyFPGA BX is based on the successful B2 board. In addition to the basic design of the board itself, it also shares a lot of the test-rig firmware and hardware. This similarity reduces the challenges, but the crowd funding campaign scale could present an additional challenge.

Supply Chain Logistics

The TinyFPGA BX boards are manufactured by PCBWay in China. They have been great to work with, but it can be tricky to get key components to China economically. Luckily I will have some help in getting this done.

Testing

Every single board coming from the manufacturer needs to be functionally tested. This means the voltage levels, FPGA IOs, clock chip, SPI flash, and LEDs must be tested and verified to be assembled correctly. After the board is tested, it needs to have the USB bootloader programmed onto the SPI flash along with a unique ID. This is all done automatically by the test-rig. The test-rig for the BX has been developed and validated using the BX prototypes.

Right now the programming phase of the tester is running a bit slow and I will be working on speeding that up.

Packing and Shipping

For previous manufacturing runs for TinyFPGA I have broken out the boards from panels and finished the edges myself. This is a real pain in the rear and I have a different plan for the BX. The assembly house has a “pizza cutter” machine that seperates the boards with nice smooth edges. I will be paying them a little extra for this service so I can ship the boards faster.

Thank You!

Thanks for reading the whole campaign, I have worked hard on this project and I am excited to get it out for makers everywhere to use! You can support the project by selecting one of the pledge levels at the very top right of the page. When you get your TinyFPGA BX and make something, let me know. I love seeing the projects people make with TinyFPGA boards, even if you’re just learning and it’s a simple blinking light!

Ask a Question

Have a question not answered in the description above or in the Updates?

Ask TinyFPGA a Question or Browse the Crowd Supply Guide

Credits

TinyFPGA

TinyFPGA is a one-man endeavor to bring the incredible capabilities of FPGAs to makers around the world. Luke started TinyFPGA while looking for an FPGA that could be used in a breadboard. When no suitable candidate was found he took it upon himself to develop a tiny FPGA dev board.


Luke Valenty


OSH Park

Prototype PCB Manufacturer

PCBWay

PCBA Manufacturer

Subscribe to the Crowd Supply newsletter, highlighting the latest creators and projects: