
Lattice FPGA feather wing
Oak-Development-Technologies/Lattice-FeatherWing
Home of the Lattice FeatherWing

Home of everything RPGA! From schematics and board files to buildable examples!
RPGA Feather is an open-source printed circuit board by Oak-Development-Technologies, from the Oak-Development-Technologies/RPGA-Feather repository on GitHub, published under the MIT licence. It is a 4-layer board of 50.8 × 22.9 mm with 82 parts on 96 nets, routed with 1,035 tracks and 133 vias.
It is built around the ICE5LP1K-SG48ITR, ECS-327ATQMV-AS-TR and MBR0520LT1G, with the SM04B-SRSS-TB(LF)(SN)(P) and UHD1110-FKA-CL1A13R3Q1BBQFMF3 among its other parts. Its parts include 28 capacitors, 16 resistors, 6 ICs, 3 connectors and 1 diode. It belongs with the microcontroller boards boards and the RP2040 and FPGA and CPLD boards of this library.
Welcome to the RPGA Feather GitHub page. This page is designed to be a single source of truth for this board, including board files like schematics, production files, BOM, and more. In addition to that, there are also a handful of examples available to build with just a little effort specifically for the RPGA Feather.
Continue reading to get started.
What is the RPGA Feather? RPGA Feather is a development board which provides the ease of use of the RP2040 from Raspberry Pi with the wide open source support of the iCE40 FPGA line. RPGA Feather combines the RP2040 with an iCE5LP4K FPGA from Lattice Semiconductor which has 3520 LUTs, 2 hardware SPI and I2C blocks, a bright RGB LED driver, two internal oscillators, and 1 PLL which can be used to generate additional clocks for your designs.
RPGA Feather provides up to 11 direct GPIO connected between the RP2040 and the iCE5LP4K. This includes the 3 pins used for programming the bitstream onto the FPGA.
Having a good pinout guide can be useful for getting started. We provide this pinout card with every RPGA Feather purchased from our shop.
You can find the PDF under the Hardware Directory Here. Thanks to @skliffmueller for making and sharing it.
We provide a few examples in this repository for getting familiar with interfacing with the iCE5LP4K FPGA.
Following the comments in the top.v file under the src directory can enable you to build these specific examples quickly. Once you have the example set up in the file, you can build it using the following command:
make buildBuilding requires using Yosys OSS CAD Suite, which can be found by visiting the OSS CAD Suite build github repository. Follow the instructions for setting up the tools on your OS and you'll be good to go.
Once you have a top.bin file which should be in the base directory of the repository, you can simply copy it over onto your RPGA Feather CIRCUITPY drive. If you haven't downloaded the CircuitPython Community Bundle to get IcePython you can head to the CircuitPython Libraries page to download it, or download the latest release directly.
Once you have IcePython and the top.bin file loaded onto your RPGA Feather, the next step is to get your code setup to load the FPGA.
Using Mu or your favorite CircuitPython compatible IDE, open up the code.py file and past the following code:
# SPDX-FileCopyrightText: 2017 Scott Shawcroft, written for Adafruit Industries
# SPDX-FileCopyrightText: Copyright (c) 2023 Seth Kerr for Oak Development Technologies
#
# SPDX-License-Identifier: Unlicense
"""
Example showing how to program an iCE40 FPGA with circuitpython!
"""
import time
import board, busio
import oakdevtech_icepython
import gc
print("Mem Free: ",gc.mem_free(),"Mem Alloc", gc.mem_alloc())
spi = busio.SPI(clock=board.F_SCK, MOSI=board.F_MOSI, MISO=board.F_MISO)
iceprog = oakdevtech_icepython.Oakdevtech_icepython(
spi, board.F_CSN, board.F_RST, "top.bin"
)
timestamp = time.monotonic()
iceprog.program_fpga()Save the file and you should see the green CDONE LED light up on your board. Depending on the example you built, you might see the RGB LED light up that is next to the FPGA.
If you have any questions, please feel free to open an issue. Issues are a great way to raise concerns or bugs with the examples or hardware itself. And your feedback is critical to making sure we can fix issues and improve the quality of life for everyone's experience with RPGA Feather.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 16 | 0.1u | Capacitor_SMD:C_0402_1005Metric | C4, C5, C7, C8, C9, C10, C11, C12, C13, C14, C17, C18, C23, C24, C25, C26 |
| 4 | 10k | RPGA Feather:R0402 | R1, R7, R10, R15 |
| 4 | 1u | Capacitor_SMD:C_0402_1005Metric | C3, C6, C16, C19 |
| 4 | 4.7u | Capacitor_SMD:C_0603_1608Metric | C21, C22, C27, C28 |
| 4 | 5k1 | RPGA Feather:R0402 | R4, R5, R13, R14 |
| 4 | JUMPER-SMT_3_1-NC_TRACE_SILK | RPGA Feather:SMT-JUMPER_3_1-NC_TRACE_SILK | JP1, JP2, JP3, JP4 |
| 2 | 0.47u | Capacitor_SMD:C_0402_1005Metric | C15, C20 |
| 2 | 1k | RPGA Feather:R0402 | R2, R6 |
| 2 | 27 | RPGA Feather:R0402 | R8, R9 |
| 2 | 27p | Capacitor_SMD:C_0402_1005Metric | C1, C2 |
| 2 | SOF-232HST | RPGA Feather:3.3X2.9 | U$4, U$5 |
| 1 | 100k | RPGA Feather:R0402 | R3 |
| 1 | 2k | Resistor_SMD:R_0402_1005Metric | R16 |
| 1 | 953 | RPGA Feather:R0402 | R11 |
| 1 | CONN_02-JST-2MM-SMT | RPGA Feather:JST-2-SMD | J2 |
| 1 | DMG3415U-7X2-DFN2015-3 | RPGA Feather:X2-DFN2015-3 | U1 |
| 1 | ECS-327ATQMV-AS-TR | RPGA Feather:XTAL_ECS-327ATQMV-AS-TR | Y1 |
| 1 | FEATHER_BASE | RPGA Feather:FEATHER_PINS | U$1 |
| 1 | G*** | kibuzzard-6601FCFE | kibuzzard-6601FCFE |
| 1 | G*** | kibuzzard-66022711 | kibuzzard-66022711 |
| 1 | G*** | kibuzzard-6601FCEA | kibuzzard-6601FCEA |
| 1 | G*** | kibuzzard-6601FC9E | kibuzzard-6601FC9E |
| 1 | G*** | kibuzzard-6601CDB5 | kibuzzard-6601CDB5 |
| 1 | G*** | kibuzzard-6657261C | kibuzzard-6657261C |
| 1 | G*** | kibuzzard-6601CD6F | kibuzzard-6601CD6F |
| 1 | G*** | kibuzzard-660226BE | kibuzzard-660226BE |
| 1 | G*** | kibuzzard-6601FC47 | kibuzzard-6601FC47 |
| 1 | G*** | kibuzzard-6601FCCE | kibuzzard-6601FCCE |
| 1 | G*** | kibuzzard-6601FC5E | kibuzzard-6601FC5E |
| 1 | G*** | kibuzzard-66565BE9 | kibuzzard-66565BE9 |
| 1 | G*** | kibuzzard-6601FD10 | kibuzzard-6601FD10 |
| 1 | G*** | kibuzzard-6601CD49 | kibuzzard-6601CD49 |
| 1 | G*** | kibuzzard-6601CDBD | kibuzzard-6601CDBD |
| 1 | GREEN | RPGA Feather:LED-0603 | CDONE0 |
| 1 | ICE5LP1K-SG48ITR | RPGA Feather:QFN50P700X700X100-49N | U6 |
| 1 | LED0603 | RPGA Feather:LED-0603 | CHG0 |
| 1 | MBR0520LT1G | RPGA Feather:SOD3716X117(SOD-123) | U$2 |
| 1 | MCP73831T-2ACI/OTSOT-23-5_MC-L | RPGA Feather:SOT-23-5_MC-L | U2 |
| 1 | R-US_R0402 | RPGA Feather:R0402 | R12 |
| 1 | RP2040_M0+ | RPGA Feather:QFN-56 | U$3 |
| 1 | SM04B-SRSS-TB_LF__SN_ | Connector_JST:JST_SH_BM04B-SRSS-TB_1x04-1MP_P1.00mm_Vertical | J3 |
| 1 | TLV75533PDBVRDBV5_TEX-L | RPGA Feather:DBV5_TEX-L | U4 |
| 1 | TPS73201DBVRDBV5-L | RPGA Feather:DBV5-L | U3 |
| 1 | UHD1110-FKA-CL1A13R3Q1BBQFMF3 | RPGA Feather:LED_UHD1110-FKA-CL1A13R3Q1BBQFMF3 | D1 |
| 1 | USB_C_Receptacle_USB2.0_14P | Connector_USB:USB_C_Receptacle_GCT_USB4105-xx-A_16P_TopMnt_Horizontal | J1 |
| 1 | USER | RPGA Feather:LED-0603 | USER1 |
| 1 | W25Q16JVUXIQW25Q16JVUXIQ_WIN-L | RPGA Feather:W25Q16JVUXIQ_WIN-L | U7 |
It measures 50.8 × 22.9 mm and has 4 copper layers, 1.6 mm thick.
82 parts, built around the ICE5LP1K-SG48ITR, ECS-327ATQMV-AS-TR, MBR0520LT1G and SM04B-SRSS-TB(LF)(SN)(P). The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the Oak-Development-Technologies/RPGA-Feather repository on GitHub, at the commit this page was made from: the board is hardware/RPGA Feather.kicad_pcb and its schematic hardware/RPGA Feather.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Oak-Development-Technologies/Lattice-FeatherWing
Home of the Lattice FeatherWing


open-seneca/modular-aq-sensor
The repo contains the firmware, 3d-printed casing, PCB-files, and documentation for our modular open-seneca sensor based on a "Black Pill" MCU. It can be flashed using Arduino IDE.

daglem/reDIP-CIA
MOS 6520 PIA / MOS 6522 VIA / MOS 6526/8520/8521 CIA replacement


jerry-kerenzikov/ytterbium
Project files for Ytterbium modular CPU platform and Yprog programming tool

hackclub/OnBoard
💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

dragonlock2/kicadboards
Offsite backup for the miscellaneous KiCad boards that don't fit elsewhere