Skip to the content
2 layers100 × 75 mmDisplay, the printed circuit board in 3D

Build your own DIY Shot Clock

Size
100 × 75 mm
Copper layers
2
Thickness
1.6 mm
Parts
209
Nets
170
Pads
845
Tracks, vias
1,420, 442
Pours
23
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
7 Jun 2021
Updated
29 Aug 2026

Overview

Display 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 × 75 mm with 209 parts on 170 nets, routed with 1,420 tracks and 442 vias.

It is built around the ESP32-S3FN8, E220-400M22S and SP3485EN-L/TR, with the TPS54202DDC, PCA9685BS and TMP1075DSGR among its other parts. Its parts include 62 resistors, 43 capacitors, 28 diodes, 22 connectors and 19 transistors. 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

209
QtyValueFootprintReferences
22LEDLED_SMD:LED_0603_1608MetricD101, D102, D201, D203, D401, D402, D403, D404, D405, D406, D407, D501, D502, D503, D504, D505 +6
214k3Resistor_SMD:R_0402_1005MetricR107, R108, R203, R204, R401, R402, R403, R404, R405, R406, R407, R501, R502, R503, R504, R505 +5
18DOZ35N06RVNSPRK_Packages:VSON-8_3.3x3.3mm_P0.65mm_CustomQ201, Q202, Q401, Q402, Q403, Q404, Q405, Q406, Q407, Q501, Q502, Q503, Q504, Q505, Q506, Q507 +2
16100nCapacitor_SMD:C_0402_1005MetricC101, C102, C103, C105, C107, C108, C109, C113, C201, C301, C601, C613, C614, C617, C620, C621
15XH 2PConnector_JST:JST_XH_B2B-XH-A_1x02_P2.50mm_VerticalJ1, J401, J402, J403, J404, J405, J406, J407, J501, J502, J503, J504, J505, J506, J507
101k8Resistor_SMD:R_0402_1005MetricR101, R102, R104, R105, R109, R609, R610, R618, R619, R629
718kResistor_SMD:R_0402_1005MetricR110, R603, R604, R606, R607, R622, R626
50RResistor_SMD:R_1206_3216MetricR201, R202, R601, R602, R608
510uCapacitor_SMD:C_1206_3216MetricC602, C603, C606, C615, C618
51uCapacitor_SMD:C_0402_1005MetricC4, C5, C104, C106, C110
40RResistor_SMD:R_0603_1608MetricR302, R303, R620, R623
41uCapacitor_SMD:C_0603_1608MetricC604, C609, C622, C623
4M3MountingHole:MountingHole_3.2mm_M3H101, H102, H103, H104
4SW_4x3mmRVNSPRK_Switch:SW_Push_4x3mmSW101, SW102, SW103, SW104
310uCapacitor_SMD:C_0603_1608MetricC1, C616, C619
3220uCapacitor_SMD:CP_Elec_8x10C607, C608, C612
382kResistor_SMD:R_0402_1005MetricR611, R621, R624
3M2.5MountingHole:MountingHole_2.7mm_M2.5_DIN965H1, H2, H3
21.8pFCapacitor_SMD:C_0402_1005MetricC111, C112
211kResistor_SMD:R_0402_1005MetricR625, R627
212pCapacitor_SMD:C_0402_1005MetricC2, C3
21N5819WSDiode_SMD:D_SOD-323D601, D602
2200kResistor_SMD:R_0402_1005MetricR613, R614
222RResistor_SMD:R_0402_1005MetricR2, R3
222uHInductor_SMD:L_Changjiang_FNR4030SL602, L603
2LM74700Package_TO_SOT_SMD:SOT-23-6U605, U606
2SMAJ24CADiode_SMD:D_SMAD603, D604
2SS54Diode_SMD:D_SMAD202, D204
2TPS54202DDCPackage_TO_SOT_SMD:SOT-23-6U603, U604
2Term 3.5mmConnector_Phoenix_MC:PhoenixContact_MC_1,5_2-G-3.5_1x02_P3.50mm_HorizontalJ201, J202
101x08_PinConnector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_VerticalJ103
10RResistor_SMD:R_0402_1005MetricR616
1100RInductor_SMD:L_0603_1608MetricFB1
110kResistor_SMD:R_0402_1005MetricR106
110nCapacitor_SMD:C_0402_1005MetricC610
1120RResistor_SMD:R_0805_2012MetricR301
11kResistor_SMD:R_0402_1005MetricR103
11nCapacitor_SMD:C_0402_1005MetricC611
12.7nHInductor_SMD:L_0402_1005MetricL101
124nHInductor_SMD:L_0402_1005MetricL1
12N7002Package_TO_SOT_SMD:SOT-23Q101
12R2Resistor_SMD:R_0402_1005MetricR605
12u2Capacitor_SMD:C_0603_1608MetricC605
13225 40MHz 10ppmCrystal:Crystal_SMD_3225-4Pin_3.2x2.5mmY101
16.8uHInductor_SMD:L_Bourns_SRP1050WAL601
1680RResistor_SMD:R_0402_1005MetricR617
1E220-400M22SRVNSPRK_Modules:E220-400M22SU302
1ESP32-S3FN8Package_DFN_QFN:QFN-56-1EP_7x7mm_P0.4mm_EP5.6x5.6mmU102
1LOGOOpen-Shot-Clock:Open-Shot-Clock_QR_8mmG***
1LOGORVNSPRK_Logo:Ravnsprk_Logo_5mmG***
1LOGORVNSPRK_Logo:Ravnsprk_Logo_Mask_5mmG***
1LOGORVNSPRK_Markings:JLC-UL_1-2Layer_10mmG***
1Logo_Open_Hardware_SmallSymbol:KiCad-Logo2_5mm_SilkScreenSYM2
1Logo_Open_Hardware_SmallSymbol:OSHW-Logo2_7.3x6mm_SilkScreenSYM1
1PCA9685BSPackage_DFN_QFN:QFN-28-1EP_6x6mm_P0.65mm_EP4.25x4.25mmU201
1RJ45Connector_RJ:RJ45_Amphenol_RJHSE5380J101
1SIC438BED-T1-GE3Package_DFN_QFN:Vishay_PowerPAK_MLP44-24L_ThermalViasU601
1SP3485EN-L/TRPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU301
1Screw Terminal 3.5mmConnector_Phoenix_MC:PhoenixContact_MC_1,5_6-G-3.5_1x06_P3.50mm_HorizontalJ102
1TMP1075DSGRPackage_SON:WSON-8-1EP_2x2mm_P0.5mm_EP0.9x1.6mmU101
1TPS259474ARPWRRVNSPRK_Packages:RPW0010A_VQFN-HR-10U602
1U.FLRVNSPRK_Connector:U.FL_Hirose_U.FL-R-SMT-1_VerticalJ105
1USB_C_Plug_USB2.0Connector_USB:USB_C_Receptacle_G-Switch_GT-USB-7010ASVP101

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

2
  • 2 layers100 × 47.5 mmController, the printed circuit board in 3D

    Controller

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

    Build your own DIY Shot Clock

    175 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

  • 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
  • 4 layers219 × 178 mmNoU3-Panelized, the printed circuit board in 3D

    NoU3-Panelized

    AlfredoSystems/NoU3-Hardware

    1,380 parts1
  • 4 layers110 × 37 mmBDCMotorControlBoard, the printed circuit board in 3D

    BDCMotorControlBoard

    nunosousa/TelescopeMirrorTester

    This is an application intended to provide useful tools to perform Foucault or Wire testing on reflective telescope mirrors

    91 partsMIT
  • 4 layers37.1 × 41 mmServoLess, the printed circuit board in 3D

    ServoLess

    Aiano/ServoLess

    Wireless and brushless DC Servo.

    98 parts2

Questions

How big is the Display PCB?

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

What parts does the Display use?

209 parts, built around the ESP32-S3FN8, E220-400M22S, SP3485EN-L/TR and TPS54202DDC. 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 Display 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/display/Display.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 Display 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).