Jump to content




Photo

YATSS 0.10 beta: Open-source slot car timing system


  • Please log in to reply
6 replies to this topic

#1 tekrantz57

tekrantz57

    Rookie Keyboard Racer

  • Full Member
  • Pip
  • 13 posts
  • Joined: 20-July 26
  • Gender:Male
  • Location:NC

Posted 28 July 2026 - 04:23 PM

I have released the first public beta of YATSS: Yet Another Timing/Scoring System, an open-source slot car timing and race-control system.
 
The race-control application is built with Windows Forms on .NET 10 LTS. An ESP32-based controller timestamps sensor events and controls track-power relays for up to eight lanes.
 
Current features include:
  • Practice lap timing
  • Qualifying, including track calls
  • Multi-heat races with automatic racer and lane rotation
  • Paused or timed intermissions
  • Races up to 24 hours per heat
  • Manual lap corrections with an audit trail
  • HTML race reports
  • Optional JSON and CSV race-data exports
  • Automatic and manual database backups
  • Live sensor and relay diagnostics
  • Optional voice announcements
  • Logitech R500s presenter support
  • Arduino Nano ESP32 and ESP32-C6 controller configurations
Two Windows x64 downloads are available:
  • A self-contained package that requires no separate .NET installation
  • A much smaller package for computers that already have the x64 .NET 10 Desktop Runtime
YATSS has also been tested experimentally under Wine 11 on Linux. The application has run under Wine 11 on both x64 and ARM64 systems, including controller heartbeat reception. For serial communication, the Linux device must be mapped to a Wine COM port, such as mapping /dev/ttyUSB0 to COM1; selecting /dev/ttyUSB0 directly in the Windows application does not work.
 
Wine remains an experimental environment rather than an officially supported installation, but the results have been surprisingly encouraging.
 
This is a genuine beta. YATSS has completed extensive simulated races and long-running demo-lap tests, but there are no production track installations yet. Complete eight-lane ESP32-C6 sensor, relay, watchdog, and wiring-harness validation also remains outstanding.
 
Download YATSS 0.10 Beta 1:
https://github.com/t.../v0.10.0-beta.1
Source code and documentation:
https://github.com/tekrantz57/YATSS
 
YATSS is released under the MIT License. Feedback from racers and track operators about race workflow, reporting, hardware configuration, Linux/Wine behavior, and real track requirements would be especially valuable.
 
Questions, testing reports, and constructive criticism are very welcome.
  • dalek likes this
Tim Krantz 




#2 dalek

dalek

    Race Leader

  • Subscriber
  • PipPipPipPipPip
  • 947 posts
  • Joined: 25-October 11
  • Gender:Male
  • Location:Central FL

Posted 29 July 2026 - 07:20 AM

AFAIK, most timing software writes lap data to a text file but I see in your features list database is mentioned. Does your program write lap data to an Access database like SlotTrak does?

#3 tekrantz57

tekrantz57

    Rookie Keyboard Racer

  • Full Member
  • Pip
  • 13 posts
  • Joined: 20-July 26
  • Gender:Male
  • Location:NC

Posted 29 July 2026 - 09:38 AM

AFAIK, most timing software writes lap data to a text file but I see in your features list database is mentioned. Does your program write lap data to an Access database like SlotTrak does?

 

no, the database I have is for persistent data like racer names configuration and the like.  At the end of a race lap data is written to CVS and JSON files.  The format is well documented in the github documentation.


Tim Krantz 

#4 tekrantz57

tekrantz57

    Rookie Keyboard Racer

  • Full Member
  • Pip
  • 13 posts
  • Joined: 20-July 26
  • Gender:Male
  • Location:NC

Posted 07 August 2026 - 04:50 PM

I have released the first public beta of YATSS: Yet Another Timing/Scoring System, an open-source slot car timing and race-control system.
 
The race-control application is built with Windows Forms on .NET 10 LTS. An ESP32-based controller timestamps sensor events and controls track-power relays for up to eight lanes.
 
Current features include:

  • Practice lap timing
  • Qualifying, including track calls
  • Multi-heat races with automatic racer and lane rotation
  • Paused or timed intermissions
  • Races up to 24 hours per heat
  • Manual lap corrections with an audit trail
  • HTML race reports
  • Optional JSON and CSV race-data exports
  • Automatic and manual database backups
  • Live sensor and relay diagnostics
  • Optional voice announcements
  • Logitech R500s presenter support
  • Arduino Nano ESP32 and ESP32-C6 controller configurations
Two Windows x64 downloads are available:
  • A self-contained package that requires no separate .NET installation
  • A much smaller package for computers that already have the x64 .NET 10 Desktop Runtime
YATSS has also been tested experimentally under Wine 11 on Linux. The application has run under Wine 11 on both x64 and ARM64 systems, including controller heartbeat reception. For serial communication, the Linux device must be mapped to a Wine COM port, such as mapping /dev/ttyUSB0 to COM1; selecting /dev/ttyUSB0 directly in the Windows application does not work.
 
Wine remains an experimental environment rather than an officially supported installation, but the results have been surprisingly encouraging.
 
This is a genuine beta. YATSS has completed extensive simulated races and long-running demo-lap tests, but there are no production track installations yet. Complete eight-lane ESP32-C6 sensor, relay, watchdog, and wiring-harness validation also remains outstanding.
 
Download YATSS 0.10 Beta 1:
https://github.com/t.../v0.10.0-beta.1
Source code and documentation:
https://github.com/tekrantz57/YATSS
 
YATSS is released under the MIT License. Feedback from racers and track operators about race workflow, reporting, hardware configuration, Linux/Wine behavior, and real track requirements would be especially valuable.
 
Questions, testing reports, and constructive criticism are very welcome.

 

 

A ton of new work has been done on this project.  Perhaps one of the most interesting things is that not only does the frontend run on linux under wine, I have tested the entire frontend and backend on an arduino Uno Q.  The frontend runs on the linux side and the backend (firmware) runs on the microcontroller side of the Uno Q.  The whole thing runs on a single tiny board.  Hook up a monitor, keyboard and mouse to the Uno Q and you can see a running demo.


  • dalek likes this
Tim Krantz 

#5 dalek

dalek

    Race Leader

  • Subscriber
  • PipPipPipPipPip
  • 947 posts
  • Joined: 25-October 11
  • Gender:Male
  • Location:Central FL

Posted 08 August 2026 - 06:58 AM

The Uno Q completely replaces the PC?
And a printer can be connected to the Uno Q?

#6 tekrantz57

tekrantz57

    Rookie Keyboard Racer

  • Full Member
  • Pip
  • 13 posts
  • Joined: 20-July 26
  • Gender:Male
  • Location:NC

Posted 08 August 2026 - 08:47 AM

The Uno Q completely replaces the PC?
And a printer can be connected to the Uno Q?

 

the Uno Q replaces not only the PC but the microcontroller as well.  I have not hooked a printer to it yet, but have hooked printers to many other linux boxes.  That should work, will try it shortly.

 

edit: yes the printer works just fine off of the Uno Q


  • dalek likes this
Tim Krantz 

#7 tekrantz57

tekrantz57

    Rookie Keyboard Racer

  • Full Member
  • Pip
  • 13 posts
  • Joined: 20-July 26
  • Gender:Male
  • Location:NC

Posted 12 August 2026 - 05:01 PM

YATSS 0.20 Beta 2

YATSS 0.20 Beta 2 expands the public beta with integrated controller firmware installation, Arduino UNO Q support, improved Wine operation, and more complete race workflow and reporting. It is suitable for evaluation, demo races, controller development, and careful bench testing. YATSS still has no production track installations.

Highlights
  • In-app firmware installation for ESP32-C6 N4/N8, Waveshare ESP32-C5 N16R8, and Arduino Nano ESP32 controllers. Board identity and flash capacity are checked before writing.
  • Experimental Arduino UNO Q controller application using the STM32U585 for interrupt-driven sensor timing and localhost TCP communication with YATSS.
  • Piper speech on Windows and through the native Linux helper under Wine, in addition to Windows SAPI and eSpeak NG.
  • Visual start lights synchronized with the race countdown, track power applied immediately before "Let's go," and 60, 30, and 15-second announcements for longer intermissions.
  • More reliable serial and TCP reconnection, including Wine-specific serial handling and quieter expected read timeouts.
  • Completed-race HTML report display, qualifying details, optional JSON/CSV exports, database backup/restore, and automatic daily backups.
  • Clear Space-bar prompts for starts and track-call resumes, pausable timed intermissions, and qualifying track calls.
  • Build identity in the title panel and an updated public overview with demo race, practice, idle, and report screenshots.
Tested Environments
  • Windows x64 is the primary supported environment.
  • Wine on x64 Linux is experimental. The app, mapped serial controller, reports, firmware updates, and native Linux speech helper have been tested.
  • Wine on ARM64 Linux is experimental. The ARM64 app, native X11 UI, mapped serial controller, reports, and controller updates have been exercised.
  • Wine on Arduino UNO Q is experimental. The App Lab STM32 controller and localhost TCP transport passed an overnight demo-lap soak test, and lane 1 sensor input was validated end to end.
Hardware Safety

YATSS cuts all lanes when controller communication is lost for five seconds, provided that the controller and relay-coil supply remain powered. The current normally closed relay arrangement cannot remain power-off if controller or relay-coil power itself is lost. Bench-test the complete installation and use a normally open safety contactor or independent hardwired interlock where loss of control power must fail to track power off.

Installation
  1. Choose a package:
    • YATSS-win-x64-v0.20.0-beta.2.zip is the recommended self-contained x64 package and does not require a separately installed .NET runtime.
    • YATSS-win-x64-requires-dotnet10-v0.20.0-beta.2.zip is a smaller x64 package for systems with the x64 .NET 10 Desktop Runtime installed.
    • YATSS-win-arm64-v0.20.0-beta.2-experimental.zip is the experimental, self-contained Windows ARM64 package used with ARM64 Windows or Wine.
    • YATSS-UNOQ-AppLab-v0.20.0-beta.2.zip is the experimental UNO Q controller application for import into Arduino App Lab.
  2. Verify the download against YATSS-v0.20.0-beta.2-SHA256.txt.
  3. Extract the complete ZIP to a writable folder.
  4. Run YATSSWin.exe.
  5. Select Mode > Demo Race... to exercise the race workflow without hardware.

The Windows executable is not code-signed, so Windows may display a reputation warning. Verify that the ZIP came from the official GitHub release and that its checksum matches before running it.

The Windows packages include matching controller firmware. Official uploader utilities are not redistributed; YATSS reuses an installed tool or downloads a pinned official copy after operator approval and checksum verification.

Known Limitations
  • There are no production installations yet.
  • Crash recovery for an active race is not implemented.
  • Database restore validates SQLite integrity, foreign keys, schema version, and core tables, but complete required-column validation remains planned.
  • Full eight-lane sensor, relay, watchdog, and production-harness validation is still pending for the C5, C6, and UNO Q controller profiles.
  • UNO Q automatic production startup is not yet implemented; Arduino App Lab must keep the controller application running.
  • Wine environments and the ARM64 package remain experimental.
  • The binaries are not code-signed.

See TODO.md for the current engineering backlog and PUBLISH_SMOKE_TEST.md for the release validation runbook.


Tim Krantz 





Electric Dreams Online Shop