Go to file
giuliof 1223f86a9b Fixed DOTS in common panel 2019-05-28 21:43:42 +02:00
docs written documentation 2019-05-05 15:33:08 +02:00
.gitignore First (untested) changes for new HW 2019-01-11 13:14:58 +01:00
ArcheryClock-Arduino.ino Fixed DOTS in common panel 2019-05-28 21:43:42 +02:00
LICENSE.md written documentation 2019-05-05 15:33:08 +02:00
README.md Typo 2019-05-05 23:57:44 +02:00
utils.h First (untested) changes for new HW 2019-01-11 13:14:58 +01:00


Archery Clock (code)

Arduino code to handle displays in archery competitions. This project was inspired by hjegers's Archery Clock and is compatibile with his PC software.

With this code panels can be controlled from PC, with wired (USB) or wireless (xBee, nRF24) connections.

Caution! This code is not compatibile with the original Archery Clock circuit because of pinout changes.

How can I use it?

You'll need:

  • an Arduino Mega;
  • Archerino PCB or a handmade one, see schematics;
  • (optional) a radio interface (xBee or nRF24L01);
  • hjegers's Archery Clock software (crossplatform!).

Panel assembly


Last stable version has not dependencies, but

Please refer to libraries guide for installation.


If you make use of nRF24L01 radio module you must uncomment following line

// #define HAS_WIFI

then compile the code and load onto Arduino Mega.

Tech specs

PC (i.e. ArcheryClock application) sends commands to the Arduino to update the LED panel. Every command (package) is formatted as an ASCII number between 0 and 65535 (16-bit), terminated with newline (\n).

Arduino makes integer conversion and parses the command following below specification:

DigitsValue Package

Digits Value

Identified by first bit equal to zero. Contains information regarding seven segment digits:

  • S - side: determines if the package is directed to left or right panel (if presents);
  • O - sideOverride: flag the package to be accepted by both panels;
  • M - minutes:
  • Right Digit: numeric value of rightmost digit;
  • Mid Digit: numeric value of central digit;
  • Left Digit: numeric value of leftmost digit;

TrafficValue Package

Traffic Value

First bit is set to one, followed by two zeros. Contains information regarding traffic lights and archer group letters:

  • B - buzzer: turns on the horn;
  • Traffic Left: traffic light LEDs for left panel. Bit 4 represents green, followed by orange and red;
  • Traffic Right: traffic light LEDs for right panel.
  • Archer Groups: each bit, starting from rightmost, represents an archer group from A to F. E and F are currently not supported by the hardware.

StateValue Package

State Value

First four bits are set to one. Contains information regarding panel settings and has no direct visive output:

  • ABCD: discriminates game phases. If emergency, this is set to 6;
  • Competition: expresses the current type of competition (i.e. FITA);
  • three bits are ignored
  • Group Number: number of playing archer groups. Since one group is always present, 0 represent one team, 1 represent two and so on.


ArcheryClock may send other packages but are ignored by this code due to lack of hardware support.


  • Henk Jegers - Initial work - hjegers
  • Giulio Fieramosca - Further developement - giuliof


This project is released under the GPL License - see the LICENSE.md file for details


Thanks to

  • Giulia of "Arcieri del Poggio" who contributed to first panel version assembly;
  • Paolo of "Arcieri Poggibonsi" who acted as beta tester and helped with feedbacks and advices;