The TinyFPGA BX is a small FPGA module with all of the components and circuitry required for the FPGA to function.
The TinyFPGA 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, which allows you to do things that are not possible with traditional microcontrollers.
While microcontroller boards have a fixed set of onboard peripheral devices, the TinyFPGA BX modules can implement the exact peripheral devices needed for your project. Each time you have different requirements, reprogram the TinyFPGA BX with a new design suited to the task. You can 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.
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.
To learn how it all works, just 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 affordable price and free access to all kinds of software you might need make this FPGA module an excellent way to get started on a new adventure with digital logic.
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.
In addition to lowering the cost of the board for users like you, TinyFPGA Bootloader also contains metadata on the SPI flash in an open JSON format. This metadata contains:
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.
The TinyFPGA BX also has an improved PCB layout. In addition to nearly doubling the number of user IOs, it has a better power delivery.
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.
If you're not a fan of graphical schematic entry, 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.