Windows 11 installation
This folder contains the supported Windows 11 installation and start scripts for JMK RB RaceController.
Supported runtime
- 64-bit Windows 11 (
x64orarm64) - Node.js
22or24LTS - npm
10or newer - bundled AMMC runtime in
AMMC\windows64
Node.js 18 and 20 are not supported by the current native SQLite dependency.
Recommended installation
- Extract or clone the complete repository, preferably to a short path such as
C:\Live_RC. - Double-click
windows\install.bat. - Approve the Node.js LTS installation if Windows asks for it.
- Wait until the script reports
Windows setup completed. - Start with
windows\start_backend.batornpm start. - Open
http://localhost:8081.
The installer:
- checks the Windows architecture
- checks Node.js and installs current LTS with
wingetwhen needed - installs/checks Microsoft Visual C++ 2015-2022 x64 Runtime for bundled AMMC
- runs
npm cifrompackage-lock.json - verifies that Express loads
- opens an in-memory SQLite database through
better-sqlite3 - verifies
ammc-amb.exe,ammc.dll, andMyLapsSDK.dll - creates
data\andlogs\
Run from PowerShell instead when you want options:
Set-ExecutionPolicy -Scope Process Bypass
.\windows\setup.ps1
Install, add inbound firewall rules for ports 8081 and 9000, and start the server:
Start-Process powershell -Verb RunAs -ArgumentList '-ExecutionPolicy Bypass -File .\windows\setup.ps1 -OpenFirewall -StartServer'
Manual installation
Install Node.js 22 or 24 LTS, then run in the repository root:
npm ci
npm run verify
npm start
npm ci installs exactly the dependency versions in package-lock.json. The install fails early with an actionable message if Node.js is unsupported. The post-install verification also fails if the native SQLite module cannot run.
Runtime commands
npm start
npm run status
npm restart
npm stop
npm run start:fg
npm startstartsserver.jsin the background.npm run statusreadsdata\server.pidand reports process state.npm restartrestarts the background process.npm stopstops it.npm run start:fgruns in the current terminal for troubleshooting.- stdout is written to
logs\server.out.log. - stderr is written to
logs\server.err.log. - SQLite data is written to
data\rc_timing.sqlite.
Windows helper scripts
windows\install.bat: install and verify all runtime dependencieswindows\start_backend.bat: start the Node backend in the backgroundwindows\start_ammc.bat: start bundled AMMC manuallywindows\start_all.bat: start AMMC, backend, and open the browserwindows\stop_all.bat: stop the backend andammc-amb.exe
Manual AMMC start with a decoder IP:
windows\start_ammc.bat 192.168.1.10
The script resolves the executable to:
AMMC\windows64\ammc-amb.exe
You can override its defaults before starting:
set DECODER_IP=192.168.1.10
set WS_PORT=9000
windows\start_ammc.bat
Managed AMMC from the web UI
The recommended normal operation is to let the backend manage AMMC:
- Start RaceController with
npm start. - Open
Settings. - Enable
Managed AMMC. - Set the decoder IP and WebSocket port
9000. - Save and click
Start AMMC. - Use the server WebSocket URL and connect the decoder.
AMMC always runs on the computer that runs npm start. Opening the UI from a laptop does not start AMMC on that laptop.
Network access
- Admin/UI/backend: TCP
8081 - AMMC WebSocket: TCP
9000
Find the Windows server address with:
ipconfig
Then open this from another computer on the LAN:
http://<windows-server-ip>:8081
Do not expose the full admin UI directly to the internet. Publish only /public-overlay/* through a reverse proxy when an external overlay is needed.
Native dependency troubleshooting
better-sqlite3 normally installs a prebuilt Windows binary and does not require Visual Studio. If npm falls back to compiling it:
- Confirm
node --versionreports Node 22 or 24. - Move the repository to a short ASCII path such as
C:\Live_RC. - Run the Node native-tools installer as Administrator:
& "C:\Program Files\nodejs\install_tools.bat"
- Reopen PowerShell and run:
npm ci
npm run verify
Update an existing installation
Stop the service, update the files, reinstall locked dependencies, verify, and restart:
npm stop
git pull
npm ci
npm run verify
npm start
Keep data\ when updating. It contains the SQLite database, saved state, PID file, and local AMMC configuration.