Skip to the content
2 layers35 × 22 mmSpiflash, the printed circuit board in 3D

USB-C-to-SPI-flash adapter with level shifting, stm32-vserprog compatible

Size
35 × 22 mm
Copper layers
2
Thickness
1.6 mm
Parts
46
Nets
60
Pads
186
Tracks, vias
279, 52
Pours
2
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
17 Dec 2019
Updated
27 Dec 2019

Overview

Spiflash is an open-source printed circuit board by florolf, from the florolf/spi-flasher repository on GitHub, published under the CC-BY-SA-4.0 licence. It is a 2-layer board of 35 × 22 mm with 46 parts on 60 nets, routed with 279 tracks and 52 vias.

It is built around the STM32F103C8T6, SN74LVC1T45DBV and SRV05-4-P-T7, with the XC6206-2.8V among its other parts. Its parts include 19 capacitors, 10 resistors, 7 ICs, 5 connectors and 1 diode. It belongs with the interfaces and adapters boards and the STM32 boards of this library.

Main components

4

README

README.md

spi-flasher

spi-flasher board photo, frontspi-flasher board photo, back

This repository contains an USB-C-to-SPI-flash adapter that is compatible with stm32-vserprog and also has integrated level-shifters towards the SPI flash. This was created mainly to try out the JLCPCB assembly service and because there is no convenient way to program 1.8V flash chips with the "Bluepill + mess of wires" setup I was using before. The pinout is arranged such that it matches the common flash test clips.

Furthermore, there is a simple breakout board that flash chips can be directly soldered onto if space in the target device is too tight to use such a clip (this is mainly useful when reverse-engineering third-party hardware).

Hardware

The respective fab directories contain fabrication data (and in the case of the adapter, JLCPCB-style assembly data) for the boards. As JLCPCB cannot populate connectors at this time, those had to be assembled manually:

  • The dual-row 100mil connector is either a plain dual-row header or a shrouded/keyed one.
  • The USB-C connector is a particular family that I sourced from AliExpress. There doesn't seem to be alternative from western distributors that's similarly convenient to solder.

The way the target is powered can be selected through the pin header above the USB port: The target can be self-powered (no jumper), powered from the internal 3.3V rail (jumper between 3.3 and Vt) or powered externally (supply power between G and Vt).

The TRST/GND connector was meant as an extension that could be used (given a modified version of stm32-vserprog) to keep a target device in reset while accessing the flash to prevent interference. However, this does not really work out mechanically, so it was never used.

Firmware

Build stm32-vserprog using BOARD=stm32-jz01v20 and flash the firmware via the TagConnect connector.

Parts

46
QtyValueFootprintReferences
13100nCapacitor_SMD:C_0402_1005MetricC4, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
433RResistor_SMD:R_0402_1005MetricR4, R5, R9, R10
4SN74LVC1T45DBVPackage_TO_SOT_SMD:SOT-23-6U5, U6, U7, U8
31uCapacitor_SMD:C_0603_1608MetricC1, C5, C7
3TestPointTestPoint:TestPoint_Pad_D1.5mmTP1, TP2, TP3
21kResistor_SMD:R_0402_1005MetricR7, R8
220pCapacitor_SMD:C_0402_1005MetricC3, C6
25k1Resistor_SMD:R_0402_1005MetricR1, R2
110uCapacitor_SMD:C_0805_2012MetricC2
11k5Resistor_SMD:R_0402_1005MetricR6
1220RResistor_SMD:R_0402_1005MetricR3
18MHzCrystal:Crystal_SMD_5032-2Pin_5.0x3.2mmY1
1ClipConnector_PinHeader_2.54mm:PinHeader_2x04_P2.54mm_VerticalJ5
1Conn_01x02Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ3
1Conn_01x03Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ4
1SRV05-4-P-T7Package_TO_SOT_SMD:SOT-23-6U2
1STM32F103C8T6Package_QFP:LQFP-48_7x7mm_P0.5mmU4
1Tag-ConnectConnector:Tag-Connect_TC2030-IDC-NL_2x03_P1.27mm_VerticalJ2
1USB_C_Receptacle_USB2.0footprints:USB-C_16PinJ1
1XC6206Package_TO_SOT_SMD:SOT-23U1
1greenLED_SMD:LED_0603_1608MetricD1

More from florolf/spi-flasher

1
  • 2 layers11 × 8 mmSo8, the printed circuit board in 3D

    So8

    florolf/spi-flasher

    USB-C-to-SPI-flash adapter with level shifting, stm32-vserprog compatible

    3 parts5CC-BY-SA-4.0

Similar boards

  • 2 layers385 × 127.3 mmKeyboard, the printed circuit board in 3D

    Keyboard

    kitspace-test-repos/kicad6-file-collection

    312 partsMIT
  • 2 layers271.5 × 81 mmAllez, the printed circuit board in 3D

    Allez

    zakariyavkhan/allez-keyboard

    Hardware and firmware files for the allez! mechanical keyboard

    142 partsGPL-3.0
  • 2 layers120 × 80 mmSpikeling v3.2, the printed circuit board in 3D

    Spikeling v3.2

    OpenSourceNeuro/Spikeling

    A hardware implementation of spiking neurons for neuroscience teaching and outreach

    233 parts21GPL-3.0
  • 4 layers115.5 × 96.2 mmClosed deck x4, the printed circuit board in 3D

    Closed deck x4

    OpenLogicEFI/Hardware

    Hardware is based off an open source project called Speeduino by Josh Stewart.

    245 parts19
  • 2 layers33 × 57.4 mmCareLite V122, the printed circuit board in 3D

    CareLite V122

    OpenhimerLab/CareLite-GPIB

    CareLite is an open-source, tiny, small USB-GPIB adaptor based on STM32 with temperature sensors.

    37 parts9GPL-3.0
  • 4 layers88 × 58 mmECG V-0.2, the printed circuit board in 3D

    ECG V-0.2

    Doenec/ecg-esp32

    open source project ecg with esp32 and ad8232

    115 parts8
  • 2 layers150 × 68 mmController, the printed circuit board in 3D

    Controller

    candykingdom/firefly2

    Small blinkenlight boards that sync up using radios

    194 parts5

Questions

How big is the Spiflash PCB?

It measures 35 × 22 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Spiflash use?

46 parts, built around the STM32F103C8T6, SN74LVC1T45DBV, SRV05-4-P-T7 and XC6206-2.8V. 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 Spiflash KiCad files?

From the florolf/spi-flasher repository on GitHub, at the commit this page was made from: the board is adapter/spiflash.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Spiflash design in my own project?

Its repository publishes it under the CC-BY-SA-4.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).