

Io expander
BornHack Badge 2023
- Size
- 54 × 29.2 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 44
- Nets
- 20
- Pads
- 114
- Tracks, vias
- 156, 17
- Pours
- 1
- Routed
- Yes
- KiCad
- KiCad 7 (file 20221018)
- Created
- 22 Jun 2023
- Updated
- 15 Oct 2023
Overview
Io expander is an open-source printed circuit board by bornhack, from the bornhack/badge2023 repository on GitHub, published under the CC-BY-SA-4.0 licence. It is a 2-layer board of 54 × 29.2 mm with 44 parts on 20 nets, routed with 156 tracks and 17 vias.
It is built around the TCA9534PW and TS5220A. Its parts include 8 resistors, 4 diodes, 4 switches, 2 connectors and 1 IC. It belongs with the lEDs and displays boards of this library.
Main components
2TCA9534PW
TSSOP-16-40℃~+85℃ 1.5uA 1.65V~5.5V 10mA 25mA 4.1V 400kHz 500mV 8 8 I2C Interrupt Output Push-Pull Reset function、Cascade and address expansion、Built-in LED driver TSSOP-16 I/O Expanders ROHSTexas InstrumentsI/O ExpandersTS5220A
SMD-4P,5.2x5.2mm-20℃~+80℃ 100 thousand cycles 12V 2.5N 2mm 5.15mm 5.15mm 50mA Gold Gull Wing No Round Button SPST Surface Mount,Vertical Without Bracket SMD-4P,5.2x5.2mm Tactile Switches ROHSSHOU HANTactile Switches
README
README.mdBornHack 2023 NFC Badges

With this years badges, we are taking a look at NFC. There will be two badges, one that is a tag (using the NXP NTAG I2C Plus chip), and another with an NFC reader (using NXP PN7150), that can also do card emulation.
The reader badge sports an RP2040 dual core Cortex M0+ microcontroller from Raspberry Pi and 16MB of Quad SPI flash for code and data files, to handle USB connection and general application control.
The reader badge will come with CircuitPython preloaded, for a very low barrier of entry, all you need is a USB-C cable, and your favorite text editor and you're ready for NFC hacking.
CircuitPython restore file
If you flash the board with something else and want to get back to CircuitPython: Bring the badge into the UF2 bootloader. This is done by holding the BOOT button and pressing RESET or by holding BOOT while powering on. The badge will then show up as a mass storage device called something like RP2-?. This is the built in bootloader. Then simply copy firmware.uf2 from the root of this repository. The badge will reboot, and you are then back to CircuitPython.
CircuitPython supported with this board is found in the circuitpython branch
The original python files that was on the badge when handed out are in the cp-init branch
Designed in KiCad v7
To open the project, you will need to install a recent release version or one of the nightly builds, KiCad v5 or v6 won't open this design. The reader schematic as a PDF and the tag schematic as a PDF are included for reference.
Main Components:
- Raspberry Pi SoC RP2040 - low-cost, high-performance microcontroller device
- NXP PN7150 - High-Performance NFC Controller with Integrated Firmware
- W25Q128JV - 128M-bit Serial Flash Memory with uniform 4KB sectors and Dual/Quad SPI
- NXP NT3H2211W0FTT - NTAG I2C plus 2K, NFC Forum Type 2 Tag with I2C interface
Projects running on the badge
Feel free to submit a PR adding on to this list with your project that runs on the badge.
- project name and link to more info
License
The hardware design of the main branch of this repository is released under the following license:
- the "Creative Commons Attribution-ShareAlike 4.0 International License" (CC BY-SA 4.0) full text of this license is included in the LICENSE file and a copy can also be found at http://creativecommons.org/licenses/by-sa/4.0/
The CircuitPython firmware of the circuitpython branch is released under the MIT license with smaller dependencies under other licenses as detailed in its LICENSE and LICENSE_MicroPython files.
The Python NFC demonstration application of the cp-init branch is released under the MIT license as detailed in its LICENSE file.
Parts
44| Qty | Value | Footprint | References |
|---|---|---|---|
| 4 | 10k | Resistor_SMD:R_0603_1608Metric | R5, R6, R7, R8 |
| 4 | 1k | Resistor_SMD:R_0603_1608Metric | R1, R2, R3, R4 |
| 4 | LED | LED_SMD:LED_0603_1608Metric | D1, D2, D3, D4 |
| 4 | TS5220A | Button_Switch_SMD:SW_SPST_TL3342 | SW1, SW2, SW3, SW4 |
| 3 | SolderJumper_3_Open | Jumper:SolderJumper-3_P1.3mm_Open_RoundedPad1.0x1.5mm | JP1, JP2, JP3 |
| 2 | LCSC C145956 | Connector_JST:JST_SH_SM04B-SRSS-TB_1x04-1MP_P1.00mm_Horizontal | J1, J2 |
| 1 | G*** | kibuzzard-645C104C | kibuzzard-645C104C |
| 1 | G*** | kibuzzard-64946977 | kibuzzard-64946977 |
| 1 | G*** | kibuzzard-645C107E | kibuzzard-645C107E |
| 1 | G*** | kibuzzard-6495A742 | kibuzzard-6495A742 |
| 1 | G*** | kibuzzard-6495A748 | kibuzzard-6495A748 |
| 1 | G*** | kibuzzard-645C11AA | kibuzzard-645C11AA |
| 1 | G*** | kibuzzard-6495A762 | kibuzzard-6495A762 |
| 1 | G*** | kibuzzard-6495A79F | kibuzzard-6495A79F |
| 1 | G*** | kibuzzard-6495A71A | kibuzzard-6495A71A |
| 1 | G*** | kibuzzard-6495A825 | kibuzzard-6495A825 |
| 1 | G*** | kibuzzard-64946969 | kibuzzard-64946969 |
| 1 | G*** | kibuzzard-645C118B | kibuzzard-645C118B |
| 1 | G*** | kibuzzard-6495A738 | kibuzzard-6495A738 |
| 1 | G*** | kibuzzard-645C1150 | kibuzzard-645C1150 |
| 1 | G*** | kibuzzard-6495A798 | kibuzzard-6495A798 |
| 1 | G*** | kibuzzard-6495A791 | kibuzzard-6495A791 |
| 1 | G*** | kibuzzard-652C0514 | kibuzzard-652C0514 |
| 1 | INT | TestPoint:TestPoint_Pad_D1.0mm | TP1 |
| 1 | TCA9534 | Package_SO:TSSOP-16_4.4x5mm_P0.65mm | U1 |
The 40 most common of 44 parts.
More from bornhack/badge2023
2- 2 layers54 × 85.7 mm

- 2 layers54 × 85.7 mm

Similar boards
- 2 layers178 × 80 mm

Panel 1x5
flummer/dmm-sao
A small digital multimeter specifically for measuring SAO related stuff
326 parts28CC-BY-SA-4.0 - 2 layers100 × 140 mm

Circle badge
bornhack/badge2025
This badge focuses on LoRa and wireless communication in general, as there are also WiFi and Bluetooth Low Energy included in the ESP32-C3 module.
45 parts3CC-BY-SA-4.0 - 2 layers120 × 100 mm

Usb pd pico controller
flummer/sao-wall
Design for a SAO display PCB, power and control board
64 parts2CC-BY-SA-4.0 - 2 layers191.5 × 76 mm

Pcb project
CrashOverride85/zc95
4 channel EStim box inspired by the mk312bt, with Lua scripting support
337 parts117GPL-3.0 - 2 layers120 × 60 mm

Axis V2
Meigs2/Axis
An open source espresso machine controller inspired by the Gaggiuinio Project
53 parts8 - 4 layers118.7 × 72.5 mm

Framework16-m2-cellular
Popax21/framework16-cellular
A M.2 cellular modem Expansion Bay module for the Framework Laptop 16
101 parts7GPL-3.0 - 4 layers270 × 56 mm

24 channel esp32 energy meter
overallcoma/project-grayskull
ESP32-based Power Monitoring Solution
352 parts5 - 6 layers50 × 81.3 mm

Questions
How big is the Io expander PCB?
It measures 54 × 29.2 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Io expander use?
44 parts, built around the TCA9534PW and TS5220A. 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 Io expander KiCad files?
From the bornhack/badge2023 repository on GitHub, at the commit this page was made from: the board is io_expander/io_expander.kicad_pcb and its schematic io_expander/io_expander.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Io expander 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).