Skip to the content
PCBKitNew board
4 layers98.5 × 48.5 mmController, the printed circuit board in 3D

Schematics and layouts

Size
98.5 × 48.5 mm
Copper layers
4
Thickness
1.6 mm
Parts
40
Nets
51
Pads
181
Tracks, vias
223, 59
Pours
6
Routed
Yes
KiCad
KiCad 7 (file 20221018)
Created
31 Dec 2023
Updated
23 Jun 2024

Overview

Controller is an open-source printed circuit board by SpokeSpice, from the SpokeSpice/Hardware repository on GitHub, published under the CERN-OHL-S-2.0 licence. It is a 4-layer board of 98.5 × 48.5 mm with 40 parts on 51 nets, routed with 223 tracks and 59 vias.

It is built around the ESP32-S3-WROOM-1-N8. Its parts include 8 resistors, 6 connectors, 3 capacitors, 3 diodes and 2 ICs. It belongs with the ESP32 boards of this library.

Main components

1

README

README.md

CERN OHL v2

Hardware design files for the SpokeSpice project

Overview

The project is divided into two parts, the controller and the arms. Typically a system would have 4 arms, each running at an angle of 90 degrees to the next.

This repository contains the KiCad project files for the controller and the arm PCBs.

Controller

Controller

The controller board is based on the ESP32 microcontroller and features a USB-C connector for programming. It features a battery holder for an 18650 Li-Ion cell, a 3.3V LDO regulator, an SD card slot and 4 connectors for the arms.

Several mounting holes in the PCB allow it to be mounted in a variety of different spoke configurations.

For the sake of simplicity, the controller board does not feature a battery charging circuit. The battery must be charged externally.

There is also no voltage regulation for the LEDs. The LEDs are powered directly from the battery, which is a 3.7V cell. Consequently, there is also no reverse polarity protection to avoid the voltage drop and hence the energy loss. The battery must hence be inserted with the correct polarity.

Arm

Arm

Arms are made to be attached to the spokes of a 28-inch bicycle wheel.

Several mounting holes in the PCB allow them to be mounted in a variety of different spoke configurations.

Each arm PCB features 32 WS2812B RGB LEDs and is connected to the controller board via a 4-pin cable. A second 4-pin cable can be used to daisy-chain a second arm on the other side of the wheel, which will then display the same content.

A hall effect sensor is used to detect the speed of the wheel and to synchronize the display with the rotation. There are two positions for this sensor.

Additional hardware needed for the project

As the controller and the arms are mounted to the spokes with cable ties, it's recommended to install everything on a spare wheel that you mount and dismount from the bicycle as needed.

Several additional components are needed to build the project:

  • At least one 18650 Li-Ion cell, and a charger
  • 4-pin JST PH 2.0mm pitch cables to connect the arms to the controller. The length of the cables will depend on the size of the wheel and the position of the controller, but for a 4 arm setup you should typically get away with the following items:
  • A lot of cable ties with 2-3 mm width
  • For debugging and development, it was very useful to have a magnectic USB-C adapter, such as this one. You will have to stop the wheel very often to test and tweak the setup, and the adapter allows you to quickly connect the controller to a computer without too much cable fiddling.

Contributing

If you would like to contribute to the project, please open an issue or a pull request.

License

OSHW

This project is licensed under the CERN Open Hardware License v2. You may redistribute and modify this project under the terms of the CERN-OHL-S v2 (https://ohwr.org/cern_ohl_s_v2.txt). This documentation is distributed without any warranty. Without even the implied warranty of merchantability or fitness for a particular purpose.

Parts

40
QtyValueFootprintReferences
8MountingHoleMountingHole:MountingHole_3.2mm_M3H1, H2, H3, H4, H5, H6, H7, H8
4Conn_01x04Connector_JST:JST_PH_B4B-PH-SM4-TB_1x04-1MP_P2.00mm_VerticalJ3, J4, J5, J6
310kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR1, R3, R8
31kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR2, R4, R5
3FiducialFiducial:Fiducial_0.5mm_Mask1mmFID1, FID2, FID3
3LED 10 mA greenLED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderD1, D2, D3
25.1kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR6, R7
2SW_PushButton_Switch_SMD:SW_SPST_EVQP2SW1, SW2
10.1uFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC3
110uFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC2
11uFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC1
1Battery_CellBattery:BatteryHolder_Keystone_1042_1x18650BT1
1ESP32-S3-WROOM-1RF_Module:ESP32-S3-WROOM-1U1
1Micro_SD_Card_DetConnector_Card:microSD_HC_Hirose_DM3D-SFJ2
1NCP163ASN330T1GPackage_TO_SOT_SMD:SOT-23-5U2
1SolderJumper_2_OpenJumper:SolderJumper-2_P1.3mm_Open_Pad1.0x1.5mmJP1
1USB_C_Receptacle_USB2.0_14PConnector_USB:USB_C_Receptacle_GCT_USB4105-xx-A_16P_TopMnt_HorizontalJ1

The 37 most common of 40 parts.

Questions

How big is the Controller PCB?

It measures 98.5 × 48.5 mm and has 4 copper layers, 1.6 mm thick.

What parts does the Controller use?

40 parts, built around the ESP32-S3-WROOM-1-N8. 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 Controller KiCad files?

From the SpokeSpice/Hardware repository on GitHub, at the commit this page was made from: the board is Controller/A/Controller.kicad_pcb and its schematic Arm/A/Arm.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Controller design in my own project?

Its repository publishes it under the CERN-OHL-S-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).

More from SpokeSpice/Hardware

1
  • 2 layers87.7 × 254.8 mmArm, the printed circuit board in 3D

    Arm

    SpokeSpice/Hardware

    Schematics and layouts

    62 parts1CERN-OHL-S-2.0

Similar boards

  • 2 layers85 × 115 mmOSO BOOK B1, the printed circuit board in 3D

    OSO BOOK B1

    joeycastillo/The-Open-Book

    For details on how to build, test and use Open Book, I've made documentation available here.

    76 parts8.1kCC-BY-SA-4.0
  • 2 layers299 × 82.5 mmPixelWave, the printed circuit board in 3D

    PixelWave

    hackclub/OnBoard

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

    663 parts915
  • 4 layers56.5 × 99.8 mmBitaxeGamma, the printed circuit board in 3D

    BitaxeGamma

    bitaxeorg/bitaxeGamma

    Bitaxe based on the BM1370 from the S21 Pro

    147 parts432CERN-OHL-S-2.0
  • 2 layers129.5 × 50.8 mmLilka, the printed circuit board in 3D

    Lilka

    lilka-dev/lilka

    Схема та документація ігрової консолі Lilka

    39 parts234GPL-2.0
  • 4 layers84.5 × 129.5 mmBitaxeHex, the printed circuit board in 3D

    BitaxeHex

    bitaxeorg/ultraHex

    multi-ASIC Bitcoin miner

    369 parts190CERN-OHL-S-2.0
  • 2 layers110 × 115 mmEsp32 keyboard v0.1, the printed circuit board in 3D

    Esp32 keyboard v0.1

    hhuysqt/esp32s3-keyboard

    USB/BLE keyboard driver based on ESP32S3-WROOM-1

    230 parts168GPL-3.0
  • 2 layers35.1 × 36.6 mmBinNanoFOC, the printed circuit board in 3D

    BinNanoFOC

    katbinaris/nanofoc_devkit

    Compact All-In-One BLDC Controler featuiring ESP32-S3, TMC6300 and Magalpha sensors. Small 35x35mm footprint.

    76 parts146
  • 2 layers148 × 81 mmCommunicator pcb, the printed circuit board in 3D

    Communicator pcb

    Hack-a-Day/2025-Communicator_Badge

    The 2025 Hackaday Supercon RF Communicator Badge

    58 parts107MIT