
Opensauce2024
ExcessiveOverkill/PCB-business-cards
Everything needed to make your own persistence of vision business cards

Everything needed to make your own persistence of vision business cards
PCB business cards is an open-source printed circuit board by ExcessiveOverkill, from the ExcessiveOverkill/PCB-business-cards repository on GitHub. It is a 2-layer board of 53.4 × 84.4 mm with 70 parts on 76 nets, routed with 756 tracks and 67 vias.
It is built around the STM32G031G8U6, TLC59283RGER and HT7533-1, with the AO3401A among its other parts. Its parts include 33 diodes, 8 capacitors, 5 resistors, 5 ICs and 2 transistors. It belongs with the STM32 boards of this library.
PCB cards designed for opensauce 2024 to give out to people
Anyone looking to make these cards for themselves or their own business. It is NOT for people looking to make and sell the cards to others. (non-commercial use only)
I ordered my PCBs from PCB way with .8mm thickness and ENIG coating since it is important to have a good contact surface for the batteries (and it looks nicer than HASL)
[!WARNING] These exact parts I ordered in bulk from LCSC. The parts below are the closest matches I could find from DigiKey, but have not been tested yet
A DigiKey cart containing all of the needed components can be found here
[!IMPORTANT] The battery clips I used were from LCSC not DigiKey. The ones in the digikey cart have a slightly different footprint and may not fit perfectly. The exact clips I used can be found here
Two standard CR2032 batteries are required, I used the cheap amazon ones.
An interactive BOM can be found here (open in browser)
These boards are NOT designed to be hand-solderable.
I highly recommend at least a hotplate.
A stencil could be purchaced from a PCB manufacturer to make placing the solder paste easier, but it is not requred. (PCB and stencil files are in the repo)
The accelerometer is very susceptible to bad solder joints and will result in the card not activating when shaken. I had to resolder many of them to fix this.
Run "imageConverter.py", select which images or animations you want to display normally.
A second file select window will open for SECRET images to display. They will be displayed randomly according to the parameters set at the top of the python file.
Simply don't select anything if you do not want a secret image.
Images should be 32 pixel high PNGs, width does not matter, the card will show the entire image.
Once the images are selected, the program will show a demo of what will be displayed then write to a file defining the frame data.
After the graphics have been saved, you simply build and upload the STM32 project using STM32CubeIDE.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 32 | LED | LED_SMD:LED_0603_1608Metric | D1, D2, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23 +16 |
| 5 | 100nf | Capacitor_SMD:C_0603_1608Metric | C4, C5, C6, C8, C9 |
| 4 | 10k 10% | Resistor_SMD:R_0603_1608Metric | R1, R2, R4, R5 |
| 4 | TestPoint | TestPoint:TestPoint_Pad_D1.0mm | TP1, TP2, TP3, TP4 |
| 3 | 1uf | Capacitor_SMD:C_0603_1608Metric | C1, C2, C3 |
| 2 | TLC59283RGER | footprints:RGE24_2P1X2P1_TEX | U3, U5 |
| 2 | cr2032 battery holder | footprints:cr2032 v2 | BT1, BT2 |
| 1 | 1k 10% | Resistor_SMD:R_0603_1608Metric | R3 |
| 1 | 2N7002 | Package_TO_SOT_SMD:SOT-23 | Q2 |
| 1 | AO3401A | Package_TO_SOT_SMD:SOT-23 | Q1 |
| 1 | Conn_01x05_Pin | Connector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_Vertical | J2 |
| 1 | Conn_ARM_SWD_TagConnect_TC2030 | Connector:Tag-Connect_TC2030-IDC-FP_2x03_P1.27mm_Vertical | J1 |
| 1 | D_Photo | footprints:right angle photodiode | D33 |
| 1 | HT7533-1 | Package_TO_SOT_SMD:SOT-89-3 | U6 |
| 1 | LIS3DHTR | footprints:LGA-16_3x3x1mm_STM | U2 |
| 1 | STM32G031G8U6 | footprints:UFQFPN-28 | U7 |
| 1 | button | Button_Switch_SMD:SW_Push_1P1T_XKB_TS-1187A | SW1 |
The 62 most common of 70 parts.

ExcessiveOverkill/PCB-business-cards
Everything needed to make your own persistence of vision business cards

tomrodinger/servomotor
Open-source NEMA-17 integrated servomotor (motor + closed-loop driver + controller + encoder). RS-485, Python/Arduino libraries, MCP server for AI control. Hardware, firmware and software.
zgeez/Pixel-Badge
Wearable 32x32 LED badge with Zephyr firmware, BLE control, passive NFC, and a Flutter Android app, built around a custom nRF52840 PCB.

ExcessiveOverkill/POV-card-v1
Persistence-of-vision shake light-up badges designed by Excessive Overkill

noahzhy/cc_glasses
tools/ 为此次整改的重建和检查脚本;日常直接编辑 KiCad 工程。重建脚本会覆盖设计,不能在人工修改后直接重跑。Python 工具不引入继承类;需要 KiCad 10 的 pcbnew Python,以及 Python 3 的 sexpdata、numpy、scipy、shapely、pymupdf。



slonket/c92-decoder
An MM1/MM2/Lenz decoder for classic Märklin locomotives and the pre-mfx digital systems.

It measures 53.4 × 84.4 mm and has 2 copper layers, 0.59 mm thick.
70 parts, built around the STM32G031G8U6, TLC59283RGER, HT7533-1 and AO3401A. 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 ExcessiveOverkill/PCB-business-cards repository on GitHub, at the commit this page was made from: the board is 2025/2025.kicad_pcb and its schematic 2025/2025.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask ExcessiveOverkill before reusing the design.