

Redesigned hardware of adamgreig's fpga/flash programmer
- Size
- 41.3 × 10.7 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 17
- Nets
- 37
- Pads
- 99
- Tracks, vias
- 217, 34
- Pours
- 3
- Routed
- Yes
- KiCad
- KiCad 5 (file 20171130)
- Created
- 26 Mar 2020
- Updated
- 20 Apr 2020
Overview
Ffp is an open-source printed circuit board by Droid-MAX, from the Droid-MAX/ffp repository on GitHub, published under the Apache-2.0 licence. It is a 2-layer board of 41.3 × 10.7 mm with 17 parts on 37 nets, routed with 217 tracks and 34 vias.
It is built around the STM32F042K6T7 and MIC2004-0.5YM5-TR. Its parts include 7 capacitors, 3 resistors, 3 ICs, 3 connectors and 1 diode. It belongs with the fPGA and programmable logic and interfaces and adapters boards and the STM32 boards of this library.
Main components
2STM32F042K6T7
LQFP-32(7x7)-40℃~+105℃ 1.65V~3.6V 12bit 26 32 Bit 32KB 48MHz 6KB ARM Cortex-M0 Built-in FLASH LQFP-32(7x7) Microcontrollers (MCU/MPU/SOC) ROHSSTMicroelectronicsMicrocontrollers (MCU/MPU/SOC)MIC2004-0.5YM5-TR
SOT-23-5-40℃~+85℃ 1 2.5V~5.5V 500mA 70mΩ High Side Switch Undervoltage Protection(UVP)、Overtemperature protection (OTP) SOT-23-5 Power Distribution Switches ROHSMicrochip TechnologyPower Distribution Switches
README
README.mdFFP: Flash/FPGA Programmer
FFP is a dead-simple USB to bidirectional SPI bridge for programming iCE40 FPGAs and their SPI flash. The hardware is an STM32F042 and not much else. Firmware and host software is written in Rust.
The firmware additionally supports SWD via the CMSIS-DAP v1 protocol, so many debuggers such as probe-rs, OpenOCD, and pyOCD are able to use an FFP to debug and program Cortex-M and other microcontrollers.

See software/ for the host-side software, firmware/ for the embedded device firmware, and hardware/ for the hardware design files.
Pinout
The FFP r1 hardware uses a 5x2 pin 0.05"-pitch connector, which is also
commonly used for Cortex family microcontrollers for SWD and JTAG. The pinout
is deliberately compatible (though note RESET is moved) to allow hardware
reuse and for compatibility with tools such as TagConnect cables.
______
3v3 --|1 2|-- FLASH DI / FPGA DO / SWDIO
GND --|3 4|-- CLK / SWCLK
GND --|5 6|-- CS / SWO
NULL --|7 8|-- FPGA nRST
GND --|9 10|-- FLASH DO / FPGA DI / nRESET
------This is the same pinout used by amp_flashprog, a custom firmware for Black Magic Probes to bitbang SPI to the same ends.
Licence
Software and firmware is licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Hardware design files are licensed under the Creative Commons Attribution license (CC-BY).
Parts
17| Qty | Value | Footprint | References |
|---|---|---|---|
| 5 | 100n | agg:0603 | C1, C2, C3, C4, C7 |
| 3 | 10k | agg:0603 | R1, R2, R3 |
| 2 | 1µ | agg:0603 | C5, C6 |
| 1 | LED | agg:0603-LED | D1 |
| 1 | MCP1700 | agg:SOT-23 | IC2 |
| 1 | MIC2004-0_5YM5 | agg:SOT-23-5 | IC3 |
| 1 | PROG | Connector_PinHeader_1.27mm:PinHeader_2x05_P1.27mm_Vertical | J3 |
| 1 | STM32F042K6T7 | agg:LQFP-32 | IC1 |
| 1 | SWD_TC | agg:TC2030-NL | P1 |
| 1 | USB_C_Receptacle_USB2.0 | footprints:USB-C_16Pin | J2 |
Questions
How big is the Ffp PCB?
It measures 41.3 × 10.7 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Ffp use?
17 parts, built around the STM32F042K6T7 and MIC2004-0.5YM5-TR. 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.
Where can I download the Ffp KiCad files?
From the Droid-MAX/ffp repository on GitHub, at the commit this page was made from: the board is hardware/ffp.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Can I use the Ffp design in my own project?
Its repository publishes it under the Apache-2.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).
Similar boards
- 2 layers40.8 × 10.6 mm

- 2 layers

- 2 layers50 × 50 mm

Binary tree
cillian64/binary-tree
A simple electronic christmas tree ornament, intended for teaching electronics.
30 parts - 4 layers99.8 × 94.6 mm

- 4 layers88.4 × 52.7 mm

InductiveSensor LDC1612 Rev3.2
UM-Battery-Control-Group/LDC_Dual_Can
LDC dual channel code for V2 boards
66 parts - 4 layers99.8 × 94.6 mm

Oresat proto card
oresat/oresat-proto-card
Prototype card for the OreSat bus. Requires the OreSat Backplane.
128 parts9 - 4 layers99.8 × 94.6 mm

- 2 layers50 × 35 mm
