Skip to the content
2 layers100 × 47.5 mmController, the printed circuit board in 3D

Build your own DIY Shot Clock

Size
100 × 47.5 mm
Copper layers
2
Thickness
1.6 mm
Parts
175
Nets
129
Pads
635
Tracks, vias
1,073, 232
Pours
24
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
7 Jun 2021
Updated
29 Aug 2026

Overview

Controller is an open-source printed circuit board by DLaxV-Community-Projects-Hub, from the DLaxV-Community-Projects-Hub/Open-Shot-Clock repository on GitHub, published under the CERN-OHL-P-2.0 licence. It is a 2-layer board of 100 × 47.5 mm with 175 parts on 129 nets, routed with 1,073 tracks and 232 vias.

It is built around the E220-400M22S, ESP32-S3-MINI-1-N8 and SP3485EN-L/TR, with the LM358, BQ25616RTW and TPS259474ARPW among its other parts. Its parts include 64 resistors, 39 capacitors, 16 connectors, 13 diodes and 11 switches. It belongs with the lEDs and displays boards and the ESP32 boards of this library.

Main components

12

README

README.md

theme

Open Shot Clock

Open Shot Clock is an Open Source and DIY Project aiming to minimize the barriers of entry for shot-clock-aided sports like Boxlacrosse and Sixes and maximizing the pure sports experience to an affordable price.

Details

  • 10" super bright LED digits (in color of your choice)
  • indoor and outdoor usage
    • impact and water resistant portable design
    • LED brightness adjustable to your needs
  • wireless and cable connection
  • 12V input supply (portable battery or mains operation by AC-DC power supply)
  • handheld controller
  • wifi connection to smartphone
    • control option
    • settings change
    • firmware updates
  • external horn for each display
  • tripod stands ~2 meter height
  • tested under competition conditions

The price tag is around 1000€ for materials and accessories. Depending on which design and battery options you choose, it might cost more.

For more information have a look at our wiki or this blog made by @devdrik.

The Open Shot Clock in Action

To see the Open Shot Clock in action check out the following recordings of Lacrosse high lights in Germany:

What´s Included Here

  • Design Documentation for Open Shot Clock Displays and Controller
    • CAD and PCB designs
    • 3d printing files
    • DIY Building Instructions Manual (german)
    • BOM for Displays, Controller and accessories (german)
    • User Manual (german)
    • Source Code to run Displays and Controller
  • Project Wiki (work in progress)

Usage

To build your own Open Shot Clock you can find all documents/information in the documentation folder.

Getting All the Parts Needed

Please go through the BOM to make sure you have all parts needed available. In the BOM we have included recommendation links, where we recently purchased the parts. Be aware that you can choose from different design features which you have to cover in your purchases. The developement is stil ongoing so some design features are not yet tested or even sufficiently developed.

In the design 3d printing is requried. Make sure you print the necessary parts before starting to build or let them print by a printing service. Make sure the parts are printed with a heat and impact resistant 3d printing material. You can find recommended materials in the BOM.

For the PCBs you can use the design files to order them at a PCB manufacturer like PCBWay or you can get in touch with us, there are still some prototyping PCBs left of the current version. In the near future the PCB design has to be adapted to the new Heltec Lora 32 version 3.0. For now the new version is supported through a workaround. For more information check this blog artical from @devdrik.

List of Optional Design Features:

  • Displays - 19 mm thick highly machined base plate or 8 mm thick easy to build base plate

    • 19 mm makes a more stable design and is tested well
    • 8 mm base plate is much easier to build with less special machinery, but it´s not tested yet (there might be clashes with electronic parts inside the case)
  • Displays - Temperature Managment (up to now we don´t know if a temperature management is necessary, to find out we integrated a temp sensor socket on the display pcbs, tests are still in planning)

    • No Cooling
    • Fan grids on the back for passiv cooling (default)
    • Active Fan with fan grids on the back (fan can be installed behind one fan grid and operated by one mosfet output, this feature is not yet included in the sourc code)
  • Displays - Batteries (you can find different battery options in the BOM from which you can choose)

  • Accessories - you can find different accessory options in the BOM from which you can choose

  • Displays - Type-Plate customization (for having your own type-plate text you can get in touch with us, we can change the text for you)

  • to be continued

Assembling

When you have all parts available please follow the DIY Building Instructions Manual for assembling your Open Shot Clocks. Some parts like the base-, front- and back-plates or the aliminium extursion profiles need to be modified before they can be assembled. You can do the needed modification by using the drawings of these parts or you can get in touch with us, there are still some back plates left in our stock. In this youtube playlist you can see videos of @devdrik performing the assembing process of an Open Shot Clock. In the future the playlist will be extended to cover all parts of the assembling process.

Heltec WiFi LoRa V2/V3

The V2 module is hard to get at the moment, so we added support for the new V3 version of the module, that is easy to source. To use V3 with PCBs designed for V2, you need to rewire some connections. So make sure not to use a V3 on a V2 PCB without modification!

What to do to use a V3 on a Display PCB v0.2:

  • Do not connect GPIO21 and GPIO48 of the V3 to the display PCB
  • Connect GPIO38 to the display PCB where GPIO21 would be
  • Connect GPIO39 to the display PCB where GPIO48 would be
  • In config.h set DISPLAY_PCB_VERSION V0_2_HACK

v3 Mod pins

What to do to use a V3 on a PCB for V2 (controller):

  • Button BUTTON_PIN_B can not be used anymore
  • Add pull-ups to all buttons (to be tested)
5V Hack

Some Mosfet modules do not work with 3.3V on gate. To fix this on a v0.2 shotclock display PCB, we can disconnect the 3V3 pins from the of the heltec module and connect the corresponding pins on the display PCB to 5V of the heltec module. This will bring all 3V3 on the display PCB to 5V, so be careful if you use a temperature sensor!

5V Mod pins

How to Set Up the Firmware

You can find the source code for the controller and the displays in the code folder. Please just copy this repo to your VS Code with Plaformio extension and open both as projects. Fill in your preferred wifi credentials for setting up local device wifi networks to change settings. It is recommended to use different credentials for the controller and the displays to make sure you access the right devices settings. Make sure to select the environment that fits the board you are using.

  • flash controller
    • SPIFFS
    • source code
  • flash displays
    • source code

What´s Left to Do

  • Tackle issues
  • Build up Wiki with design insights, project history and roadmap
  • Source code refactoring
  • Design and test mdf display case as cost reduction opportunity
  • pcb design to be ported to another open source platform and integration of heltc lora 32 v3.0 support
  • Support first builders and gather feedback
  • Offer english version of documents (if sufficiently demanded)
  • to be continued

How to Contribute

Feel free to customize your Open Shot Clock to your needs. For this purpose you can find the design files in the cad and pcb folders and the source code in the code folder. If you have ideas how to improve the Open Shot Clock and you need support for the integration or you want to share the benefits with the community please get in touch with us.

Acknowledgement

Many thanks to Ulf for some initial inspiration in the approach to develop a LED shot clock. If you are looking out for a minimal and cheap setup for small indoor fields without obstacles have a look to Ulf´s basketball shot clock tutotial! With minor changes to the app it is possible to start with 30 seconds on the clock for lacrosse instead of 24 as for basketball.

Authors

Contact

github@dlaxv.de

License

CERN OHL v2 Permissive

Parts

175
QtyValueFootprintReferences
19100nCapacitor_SMD:C_0402_1005MetricC101, C102, C201, C202, C203, C204, C205, C206, C207, C208, C209, C301, C401, C402, C408, C416 +3
151kResistor_SMD:R_0402_1005MetricR101, R102, R103, R104, R107, R202, R410, R420, R421, R426, R429, R438, R439, R440, R446
10SW_4x3mmRVNSPRK_Switch:SW_Push_4x3mmSW101, SW102, SW201, SW202, SW203, SW204, SW205, SW206, SW207, SW208
920kResistor_SMD:R_0402_1005MetricR201, R203, R205, R403, R404, R406, R407, R425, R444
8LEDLED_SMD:LED_0603_1608MetricD101, D102, D202, D402, D403, D406, D407, D408
8PicobladeConnector_Molex:Molex_PicoBlade_53048-0210_1x02_P1.25mm_HorizontalJ202, J203, J204, J205, J206, J207, J208, J209
710uCapacitor_SMD:C_0603_1608MetricC302, C419, C421, C422, C423, C424, C425
610kResistor_SMD:R_0402_1005MetricR108, R436, R437, R443, R445, R447
54k3Resistor_SMD:R_0402_1005MetricR105, R106, R416, R419, R448
40RResistor_SMD:R_0402_1005MetricR412, R432, R449, R450
40RResistor_SMD:R_0603_1608MetricR422, R423, R424, R435
4200kResistor_SMD:R_0402_1005MetricR417, R418, R428, R430
4560RResistor_SMD:R_0402_1005MetricR204, R413, R441, R442
4M3MountingHole:MountingHole_3.2mm_M3H101, H102, H103, H104
30RResistor_SMD:R_1206_3216MetricR401, R402, R408
310uCapacitor_SMD:C_1206_3216MetricC409, C410, C413
3150uCapacitor_SMD:CP_Elec_8x10C407, C414, C415
31N5819WSDiode_SMD:D_SOD-323D201, D404, D405
31uCapacitor_SMD:C_0603_1608MetricC403, C404, C418
32N7002Package_TO_SOT_SMD:SOT-23Q402, Q403, Q404
32kResistor_SMD:R_0402_1005MetricR409, R414, R415
2130kResistor_SMD:R_0402_1005MetricR427, R431
2DOZ35N06Package_SON:VSON-8_3.3x3.3mm_P0.65mm_NexFETQ202, Q401
2JST XHConnector_JST:JST_XH_B2B-XH-A_1x02_P2.50mm_VerticalJ101, J401
2RJ45Connector_RJ:RJ45_Amphenol_RJHSE5380J103, J104
2Term 3.5mmConnector_Phoenix_MC:PhoenixContact_MC_1,5_2-G-3.5_1x02_P3.50mm_HorizontalJ102, J210
1100uHInductor_SMD:L_Changjiang_FNR4030SL402
110nCapacitor_SMD:C_0402_1005MetricC405
1120RResistor_SMD:R_0805_2012MetricR301
113kResistor_SMD:R_0402_1005MetricR434
118650RVNSPRK_Electromechanical:BatteryHolder_SMD_1x18650BT401
11nCapacitor_SMD:C_0402_1005MetricC406
11uCapacitor_SMD:C_0402_1005MetricC411
12.2uHInductor_SMD:L_1008_2520MetricL403
12R2Resistor_SMD:R_0402_1005MetricR405
12u2Capacitor_SMD:C_0603_1608MetricC412
151kResistor_SMD:R_0402_1005MetricR433
16.8uHInductor_SMD:L_Bourns_SRP1050WAL401
182kResistor_SMD:R_0402_1005MetricR411
1BQ25616Package_DFN_QFN:VQFN-24-1EP_4x4mm_P0.5mm_EP2.5x2.5mm_ThermalViasU405
1E220-400M22SRVNSPRK_Modules:E220-400M22SU302
1ESP32-S3-MINI-1Espressif:ESP32-S3-MINI-1UU101
1LM358Package_SO:SOIC-8_3.9x4.9mm_P1.27mmU201
1LM5166DRCRPackage_SON:Texas_S-PVSON-N10_ThermalViasU404
1LM74700Package_TO_SOT_SMD:SOT-23-6U403
1LOGORVNSPRK_Markings:JLC-UL_1-2Layer_10mmG***
1LOGOOpen-Shot-Clock:Open-Shot-Clock_QR_8mmG***
1LOGORVNSPRK_Logo:Ravnsprk_Logo_5mmG***
1LOGORVNSPRK_Logo:Ravnsprk_Logo_Mask_5mmG***
1NTCResistor_SMD:R_0402_1005MetricTH401
1OLED 0.96" (I2C)Connector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_Vertical_SMD_Pin1LeftJ201
1Q_NMOS_GDSPackage_TO_SOT_SMD:TO-252-2Q203
1SI2301Package_TO_SOT_SMD:SOT-23Q201
1SIC438BED-T1-GE3Package_DFN_QFN:Vishay_PowerPAK_MLP44-24L_ThermalViasU401
1SMAJ24CADiode_SMD:D_SMAD401
1SP3485EN-L/TRPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU301
1SS54Diode_SMD:D_SMAD203
1SW_SPDT_312Button_Switch_THT:SW_CuK_OS102011MA1QN1_SPDT_AngledSW401
1TPS259474ARPWRVNSPRK_Packages:RPW0010A_VQFN-HR-10U402
1USB_C_Plug_USB2.0Connector_USB:USB_C_Receptacle_G-Switch_GT-USB-7010ASVP101

The 172 most common of 175 parts.

More from DLaxV-Community-Projects-Hub/Open-Shot-Clock

2
  • 2 layers100 × 75 mmDisplay, the printed circuit board in 3D

    Display

    DLaxV-Community-Projects-Hub/Open-Shot-Clock

    Build your own DIY Shot Clock

    209 parts5CERN-OHL-P-2.0
  • 2 layers85 × 65 mmJunction, the printed circuit board in 3D

    Junction

    DLaxV-Community-Projects-Hub/Open-Shot-Clock

    Build your own DIY Shot Clock

    11 parts5CERN-OHL-P-2.0

Similar boards

  • 6 layers167.5 × 79 mmHandheld, the printed circuit board in 3D

    Handheld

    gamebub/gamebub-pcb

    PCB design files for the Game Bub project

    356 parts31CERN-OHL-S-2.0
  • 4 layers40 × 100 mmNNCpro, the printed circuit board in 3D

    NNCpro

    PlanAndBuild/NoNameComputer-2.0

    The NoNameComputer 2.0 AKA NNCpro is being designed for mid-high power rockets and other flying vehicle. It will be equipped with various sensors like barometers, IMUs, magnetometer, current sensing etc.

    263 parts2
  • 2 layers120 × 60 mmControlBoard, the printed circuit board in 3D

    ControlBoard

    itsmeibii/SplitFlap-Control-Board

    Raspberry Pi 4 control board for a split-flap display + HUB75 LED panels: USB-C PD input, 8A buck, Pi eFuse. KiCad, gerbers, BOM, enclosure.

    62 parts
  • 4 layers68 × 78 mmMurexrobotics electrical carrier, the printed circuit board in 3D

    Murexrobotics electrical carrier

    punkfab/pcb-corpus

    235 real KiCad boards from open-source hardware repositories, prepared as a placement and routing benchmark

    216 parts1
  • 4 layers38.5 × 29 mmPl60c dmx mini, the printed circuit board in 3D

    Pl60c dmx mini

    tsmiltonAgents/pl60c-dmx-wakeup

    A small ESP32-S3 board that drives the wired DMX512 input of a Neewer PL60C panel light so the light can be ramped up slowly in the morning (sunrise alarm). Rev A, 2026-09-02.

    37 parts
  • 2 layers30 × 65 mmDevboard, the printed circuit board in 3D

    Devboard

    dark-Phoenix2077/voidboard

    custom esp32 devboard with extensive power management and a built-in IMU

    44 parts
  • 2 layers101.5 × 64.4 mmCapibator PCB, the printed circuit board in 3D

    Capibator PCB

    Capibator/hardware

    deals with research material on hardware, schematic, pcb design and bom etc.

    108 parts

Questions

How big is the Controller PCB?

It measures 100 × 47.5 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Controller use?

175 parts, built around the E220-400M22S, ESP32-S3-MINI-1-N8, SP3485EN-L/TR and LM358. 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 DLaxV-Community-Projects-Hub/Open-Shot-Clock repository on GitHub, at the commit this page was made from: the board is pcb/controller/controller.kicad_pcb and its schematic pcb/controller/Communication.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-P-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).