Skip to the content
PCBKitNew board
2 layers189.5 × 204.9 mmSmartSpin2k Panelized, the printed circuit board in 3D

SmartSpin2k Panelized

doudar/SmartSpin2k292

Transform your spin bike into a Smart Trainer!

Size
189.5 × 204.9 mm
Copper layers
2
Thickness
1.6 mm
Parts
749
Nets
1,017
Pads
2,918
Tracks, vias
6,759, 1,116
Pours
27
Routed
Yes
KiCad
KiCad 6 (file 20211014)
Created
28 Aug 2020
Updated
7 Nov 2026

Overview

SmartSpin2k Panelized is an open-source printed circuit board by doudar, from the doudar/SmartSpin2k repository on GitHub, published under the GPL-2.0 licence. It is a 2-layer board of 189.5 × 204.9 mm with 749 parts on 1,017 nets, routed with 6,759 tracks and 1,116 vias.

It is built around the ESP32-WROOM-32D, CP2102-GMR and MAX3232ID, with the TMC2209-LA-T, TPS5430DDA and LM1117-3.3 among its other parts. Its parts include 288 capacitors, 216 resistors, 63 ICs, 54 diodes and 36 connectors. It belongs with the radio and wireless and robots and motor control boards and the ESP32 boards of this library.

Main components

10

README

README.md
ss2k banner

You can visit us at Facebook

Did you know there's a SmartSpin2k companion App?

Find the source code here! -> SS2kConfigApp

You can get it from the Apple App Store here:

Or for Android devices:

About

SmartSpin2k is a DIY project that allows you to turn any spin bike into a smart trainer. With SmartSpin2k, you can connect your spin bike to Zwift, TrainerRoad, or other popular training apps. This allows you to control your bike's resistance automatically, track your performance, and compete with other riders online.

SmartSpin2k is easy to build and requires only a few simple tools. The entire build process can be completed in under an hour.

If you are looking for a way to turn your spin bike into a smart trainer, SmartSpin2k is the perfect solution. With its new features and improvements, SmartSpin2k rev 3 is the best version yet.

Getting Started

To get started with SmartSpin2k, you will need the following:

  • A spin bike with a resistance control knob.
  • A 3D printer.
  • A soldering iron and basic soldering skills.

Once you have these materials, you can follow the these instructions to build your own SmartSpin2k. If you'd prefer to buy a pre-assembled kit, we have them for sale at SmartSpin2k.com

Features

SmartSpin2k offers a number of features, including:

  • Automatic incline resistance control: SmartSpin2k can automatically control your bike's resistance based on the resistance settings in your training app. This allows you to focus on your workout and not worry about adjusting the resistance yourself.
  • SmartSpin2k ERG function is a great way to improve your cycling performance. It allows you to train at a consistent power output, which is essential for improving your speed and endurance. ERG stands for "electronic resistance control." It works by automatically adjusting the resistance on your bike based on the power output you set in your training app.
  • Online competition: SmartSpin2k can connect to Zwift, TrainerRoad, and many other cycling apps allowing you to compete with other riders online. This is a great way to stay motivated and push yourself to new heights.
  • Do you have a spin bike that doesn't output realistic or accurate power numbers? If so, you're not alone. Many spin bikes have inaccurate power meters that can make it difficult to track your progress and train effectively. With SmartSpin2k you can calibrate the power output of your spin bike.

Conclusion

SmartSpin2k is a great way to turn any spin bike into a smart trainer. With its new features and improvements, SmartSpin2k Rev 3 is the best version yet. If you are looking for a way to improve your indoor cycling experience, SmartSpin2k is the perfect solution.

Documentation

Everything you need to know is in the SS2K Wiki Hardware files and build assets are in SS2k-Hardware.

Contributing

  1. Install Microsoft Visual Code. https://code.visualstudio.com/
  2. Install the pioarduino IDE extension (pioarduino.pioarduino-ide) recommended by this repository in Visual Studio Code.
  3. Install Python https://www.python.org/downloads/
  4. Install Pre-commit. https://pre-commit.com py -m pip install pre-commit
  5. Follow any install warnings to add pre-commit to your path.
  6. Install pre-push git hooks: pre-commit install --hook-type pre-push
  7. Open this project in the pioarduino IDE.

For command-line builds, use a Python virtual environment and run python -m pip install -r requirements-ci.txt from the repository root to install the same pinned pioarduino Core used by CI. CI uses Python 3.11. If that environment already has the upstream platformio package installed, uninstall it before installing pioarduino; the two packages share Python modules and command names.

pioarduino still uses platformio.ini, the .platformio tool directory, and the pio / platformio commands. Build with pio run -e release (classic ESP32) or pio run -e S3release (ESP32-S3), and run native tests with pio test -e native. See AGENTS.md for build and validation details.

Important announcement for existing users

If you experience an issue after upgrading firmware, please follow these instructions in the Wiki. Flashing instructions are available HERE.

Licensing

The hardware designs are licensed under the CERN Open Hardware License Version 2 - Permissive license. The software in this project is licensed under the GNU GENERAL PUBLIC LICENSE Version 2, June 1991 license.

Hardware 2.0

^^@eMadman's IC4 model

Parts

749
QtyValueFootprintReferences
630.1uFCapacitor_SMD:C_0402_1005MetricC17, C17, C17, C17, C17, C17, C17, C17, C17, C20, C20, C20, C20, C20, C20, C20 +47
4510kResistor_SMD:R_0402_1005MetricR22, R22, R22, R22, R22, R22, R22, R22, R22, R23, R23, R23, R23, R23, R23, R23 +29
36330Resistor_SMD:R_0402_1005MetricR12, R12, R12, R12, R12, R12, R12, R12, R12, R13, R13, R13, R13, R13, R13, R13 +20
36LED_SmallLED_SMD:LED_0603_1608MetricD1, D1, D1, D1, D1, D1, D1, D1, D1, D2, D2, D2, D2, D2, D2, D2 +20
270(5%)Resistor_SMD:R_0402_1005MetricR1, R1, R1, R1, R1, R1, R1, R1, R1, R4, R4, R4, R4, R4, R4, R4 +11
270.1uF(10%)Capacitor_SMD:C_0402_1005MetricC13, C13, C13, C13, C13, C13, C13, C13, C13, C15, C15, C15, C15, C15, C15, C15 +11
27100nF(50V)Capacitor_SMD:C_0805_2012MetricC4, C4, C4, C4, C4, C4, C4, C14, C14, C14, C14, C14, C14, C14, C14, C14 +11
18100uF(50V)Capacitor_SMD:CP_Elec_8x10C7, C7, C7, C7, C7, C7, C7, C19, C19, C19, C19, C19, C19, C19, C19, C19 +2
181uFCapacitor_SMD:C_0603_1608MetricC10, C10, C10, C10, C10, C10, C10, C10, C10, C11, C11, C11, C11, C11, C11, C11 +2
18200Resistor_SMD:R_0402_1005MetricR10, R10, R10, R10, R10, R10, R10, R10, R10, R11, R11, R11, R11, R11, R11, R11 +2
1880mResistor_SMD:R_1206_3216MetricR15, R15, R15, R15, R15, R15, R15, R15, R15, R16, R16, R16, R16, R16, R16, R16 +2
18B4B-XH-AMLFSNConnector_JST:JST_XH_B4B-XH-AM_1x04_P2.50mm_VerticalJ1, J1, J1, J1, J1, J1, J1, J1, J1, J2, J2, J2, J2, J2, J2, J2 +2
18D_SchottkyDiode_SMD:D_SMAD7, D7, D7, D7, D7, D7, D7, D7, D7, D8, D8, D8, D8, D8, D8, D8 +2
18S8050Package_TO_SOT_SMD:SOT-23Q1, Q1, Q1, Q1, Q1, Q1, Q1, Q1, Q1, Q2, Q2, Q2, Q2, Q2, Q2, Q2 +2
18SW_PushButton_Switch_SMD:SW_Push_SPST_NO_Alps_SKRKSW1, SW1, SW1, SW1, SW1, SW1, SW1, SW1, SW1, SW2, SW2, SW2, SW2, SW2, SW2, SW2 +2
90.01uFCapacitor_SMD:C_0805_2012MetricC28, C28, C28, C28, C28, C28, C28, C28, C28
91.0uFCapacitor_SMD:C_0805_2012MetricC25, C25, C25, C25, C25, C25, C25, C25, C25
91.5nFCapacitor_SMD:C_0805_2012MetricC31, C31, C31, C31, C31, C31, C31, C31, C31
9100kResistor_SMD:R_0402_1005MetricR14, R14, R14, R14, R14, R14, R14, R14, R14
9100nF(10V)Capacitor_SMD:C_0805_2012MetricC12, C12, C12, C12, C12, C12, C12, C12, C12
9100uFCapacitor_SMD:C_1206_3216MetricC30, C30, C30, C30, C30, C30, C30, C30, C30
910118194-0001LFdigikey-footprints:USB_Micro_B_Female_10118194-0001LFJ4, J4, J4, J4, J4, J4, J4, J4, J4
910uFCapacitor_SMD:C_0603_1608MetricC32, C32, C32, C32, C32, C32, C32, C32, C32
910uF(50V)Capacitor_SMD:C_0805_2012MetricC1, C1, C1, C1, C1, C1, C1, C1, C1
910uF(50V)Capacitor_SMD:C_1206_3216MetricC3, C3, C3, C3, C3, C3, C3, C3, C3
9150pFCapacitor_SMD:C_0805_2012MetricC26, C26, C26, C26, C26, C26, C26, C26, C26
91MResistor_SMD:R_0402_1005MetricR2, R2, R2, R2, R2, R2, R2, R2, R2
91kResistor_SMD:R_0402_1005MetricR6, R6, R6, R6, R6, R6, R6, R6, R6
91uF(50V)Capacitor_SMD:C_0603_1608MetricC9, C9, C9, C9, C9, C9, C9, C9, C9
92.2uFCapacitor_SMD:C_0402_1005MetricC16, C16, C16, C16, C16, C16, C16, C16, C16
920kResistor_SMD:R_0805_2012MetricR17, R17, R17, R17, R17, R17, R17, R17, R17
922kResistor_SMD:R_0402_1005MetricR18, R18, R18, R18, R18, R18, R18, R18, R18
922nF(50V)Capacitor_SMD:C_0805_2012MetricC6, C6, C6, C6, C6, C6, C6, C6, C6
94.7kResistor_SMD:R_0402_1005MetricR21, R21, R21, R21, R21, R21, R21, R21, R21
94.7uFCapacitor_SMD:C_0805_2012MetricC24, C24, C24, C24, C24, C24, C24, C24, C24
94.7uF(50V)Capacitor_SMD:C_1206_3216MetricC18, C18, C18, C18, C18, C18, C18, C18, C18
94.7uF(6V3)Capacitor_SMD:C_0805_2012MetricC8, C8, C8, C8, C8, C8, C8, C8, C8
95.9kResistor_SMD:R_0603_1608MetricR20, R20, R20, R20, R20, R20, R20, R20, R20
9549Resistor_SMD:R_0402_1005MetricR19, R19, R19, R19, R19, R19, R19, R19, R19
9B8B-XH-A_LFSNConnector_JST:JST_XH_B8B-XH-AM_1x08_P2.50mm_VerticalJ3, J3, J3, J3, J3, J3, J3, J3, J3
9EG1218Button_Switch_SMD:SW_SPDT_CK-JS102011SAQNS1, S1, S1, S1, S1, S1, S1, S1, S1
9ESP32-WROOM-32DRF_Module:ESP32-WROOM-32U1, U1, U1, U1, U1, U1, U1, U1, U1
9INTERFACE-CP2102-GMR(QFN28)Package_DFN_QFN:QFN-28-1EP_5x5mm_P0.5mm_EP3.35x3.35mmU5, U5, U5, U5, U5, U5, U5, U5, U5
9LM1117-3.3Package_TO_SOT_SMD:SOT-223-3_TabPin2U6, U6, U6, U6, U6, U6, U6, U6, U6
9LOGOIEEE_Logo:SS2K_QR_Code_25x25mmG***, G***, G***, G***, G***, G***, G***, G***, G***
9LOGOIEEE_Logo:SmartSpin_ScreenPrint_One_25x25mmG***, G***, G***, G***, G***, G***, G***, G***, G***
9L_IronInductor_SMD:L_12x12mm_H8mmL1, L1, L1, L1, L1, L1, L1, L1, L1
9MAX3232MAX3232:MAX3232IPWRU3, U3, U3, U3, U3, U3, U3, U3, U3
9SRV05-4Package_TO_SOT_SMD:SOT-23-6U7, U7, U7, U7, U7, U7, U7, U7, U7
9TMC2209-LA-TPackage_DFN_QFN:QFN-28-1EP_5x5mm_P0.5mm_EP3.75x3.75mmU2, U2, U2, U2, U2, U2, U2, U2, U2
9TPS5430DDAPackage_SO:SOIC-8-1EP_3.9x4.9mm_P1.27mm_EP2.514x3.2mmU4, U4, U4, U4, U4, U4, U4, U4, U4

The 729 most common of 749 parts.

Questions

How big is the SmartSpin2k Panelized PCB?

It measures 189.5 × 204.9 mm and has 2 copper layers, 1.6 mm thick.

What parts does the SmartSpin2k Panelized use?

749 parts, built around the ESP32-WROOM-32D, CP2102-GMR, MAX3232ID and TMC2209-LA-T. 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 SmartSpin2k Panelized KiCad files?

From the doudar/SmartSpin2k repository on GitHub, at the commit this page was made from: the board is Hardware/V3 - Integrated PCB/PCB/SS2K_KiCad_Files/SmartSpin2k_Panelized/SmartSpin2k_Panelized.kicad_pcb and its schematic Hardware/V3 - Integrated PCB/PCB/SS2K_KiCad_Files/SmartSpin2k.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the SmartSpin2k Panelized design in my own project?

Its repository publishes it under the GPL-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 doudar/SmartSpin2k

1
  • 2 layers57.2 × 60.3 mmSmartSpin2k, the printed circuit board in 3D

    SmartSpin2k

    doudar/SmartSpin2k

    Transform your spin bike into a Smart Trainer!

    82 parts292GPL-2.0

Similar boards

  • 2 layers67.1 × 88.4 mmDE429 001 INSTALL, the printed circuit board in 3D

    DE429 001 INSTALL

    Purdue-Northwest-Vibration-Anaylsis/Purdue-Northwest-Vibration-Analysis

    Vibration analysis senior design project for purdue northwest.

    48 parts2
  • 4 layers317.5 × 228.6 mmChess board iot, the printed circuit board in 3D

    Chess board iot

    shuki25/chess-board-pcb

    487 parts
  • 4 layers50 × 75.2 mmRpiFly v3, the printed circuit board in 3D

    RpiFly v3

    r3dpath/RpiFly_Hardware

    While most of the functionality here has been tested to work theres certainally some marginal design decisions, just beware.

    108 parts1
  • 2 layers290 × 100 mmESP32-Wall Clock, the printed circuit board in 3D

    ESP32-Wall Clock

    SkullKill/ESP32-Wall-Clock-PCB

    ESP32 based 30cm Wall Mounted Clock. WiFi, NTP, SNMP, web interface, MicroUsb, Type-C, HG3613 Retrofit

    207 parts3GPL-3.0
  • 2 layers60 × 60 mmSolarpowerPCB, the printed circuit board in 3D

    SolarpowerPCB

    icl-rocketry/ICARUS

    Imperial College london rocketry Attempts to be Resourceful by Using Solar power. A CanSat for the Mach-22 Competition

    142 parts
  • 4 layers64 × 77 mmOBSPro, the printed circuit board in 3D

    OBSPro

    FabianSchwartau/OBSPro

    Version of the OpenBikeSensor hardware optimized for PCBA

    131 parts3LGPL-2.1
  • 2 layers38.7 × 50.6 mmSmartWatch, the printed circuit board in 3D

    SmartWatch

    PierceMckinnon/SmartWatch

    PCB + SW to make a functional smartwatch

    89 parts1