A fencing scoring machine based on the Pimoroni Interstate75W (RP2350) driving a 64x32 HUB75 LED matrix.
Fencing scoring machines are expensive. The little SG boxes have gotten to be $400+ and those are as basic as they get.
I wanted to make an open source scoring machine for club use that is feature-rich! The FossBox can function as a simple scoring box, a scoring machine with timer and score controlled by a ref via their phone, or a box with score and time that two fencers can use on their own with no ref (work in progress at the time of writing)!
I am also tired of everyone trying to make a quick buck off a piece of new shiny fencing tech. That's why this is all open source. All the electronics can be bought for ~$70 and some pieces, like the floor cord plugs, can be things you already have lying around. My first proof of concept box used spare epee sockets to connect the floor cords and epee socket arms as a stand. (Fun fact, most epee socket screws are M3, which is the same threads as the mounting holes on the back of the LED matrix.)
Note: At the time of writing the FossBox is epee only.
- Python
- Interstate75W (RP2350) or Adafruit Matrix Portal S3
- Note: The I75W seems to be hard to find in the US currently. I was only able to find one at a local Microcenter. You can order from their site, but you'll be hit by tariffs.
- Note part 2: the FossBox was originally written for the I75W. Any new features will likely be written for that board first.
- 64x32 HUB75 LED matrix panel
- USB C cable
- 2x epee sockets (or 4mm banana sockets)
Make any changes to Config.py that you need. Most likely you'll need to change the GPIO pins for the weapon and bells.
I would also recommend changing BLUETOOTH_ID if you have more than one box
- Download Pimoroni's custom MicroPython firmware for the RP2350 from their GitHub releases page - look for a file targeting the Interstate75W.
- Hold the BOOT button and plug in USB - the board mounts as a mass storage drive.
- Drag the
.uf2onto the drive; it will reboot automatically.
- Download the CircuitPython
.uf2for the Matrix Portal S3 from circuitpython.org. - Double-tap the reset button - the board mounts as
MATRIXBOOT. - Drag the
.uf2onto the drive; it reboots as aCIRCUITPYdrive.
- In
src/main.py, uncommentPimoroniI75and comment outMatrixPortalS3. - Copy the contents of
lib/pimoroni-i75w/to the/libdirectory on the board. - Copy all
.pyfiles fromsrc/to the root of the board. Thesrc/pwa/folder is the web remote only - it does not go on the board.
- In
src/main.py, confirmMatrixPortalS3is uncommented (it is by default). - Copy the contents of
lib/adafruit-metro-portal-s3/to the/libdirectory on the board. - Copy the fonts from
fonts/in this repo to a/fontsdirectory on the board (create it if it doesn't exist). - Copy all
.pyfiles fromsrc/to the root of the board, exceptboot.py- that file is Pimoroni-specific and will cause an error on CircuitPython. Thesrc/pwa/folder is the web remote only - it does not go on the board.
- adafruit_ble, adafruit_bitmap_font, adafruit_display_text - Copyright (c) Adafruit Industries, MIT License
- Fonts (
5x8.bdf,4x6.bdf) - sourced from the u8g2 font collection by olikraus. Licenses vary per font; see the u8g2 font license overview for details.