π¦ A cross-platform C# console application for simulating and visualizing racing telemetry data.
Designed for real-time use cases such as racing cockpits, simulators, and telemetry training tools.
-
β Telemetry Modes
Simulated: Generates internal mock dataUDP: Listens for incoming telemetry over UDPSerial: Connects to physical telemetry devices (e.g., Arduino)
-
β Live ASCII Dashboard
Displays speed, RPM, gear, throttle, and brake in real time. -
β Input Commands
Interact using:pause,resume,stopspeed=<value>to override speed in simulation mode
-
β Telemetry Logging
- JSONL logs per session in
telemetry_logs/ - Ideal for analysis and replay
- JSONL logs per session in
SimTelemetry/
βββ Program.cs # Main telemetry processor (Simulated, UDP, Serial)
βββ telemetry_logs/ # Automatically generated on runtime
UDPSender/
βββ Program.cs # Sends mock JSON telemetry to SimTelemetry
- .NET SDK 7+
- macOS, Windows, or Linux
cd SimTelemetry
dotnet runChoose one of the modes:
1- Simulated (no external input)2- UDP (must run UDPSender separately)3- Serial (requires a serial device or emulator)
In a separate terminal:
cd UDPSender
dotnet runThis app sends mock JSON packets every second to localhost:9000.
Sample packet:
{
"Speed": 185,
"RPM": 7200,
"Gear": 4,
"Throttle": 0.87,
"Brake": 0.13,
"Timestamp": "2025-04-15T10:30:00Z"
}Upload the following sketch to an Arduino:
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println("Speed=183,RPM=7400,Gear=4,Throttle=0.88,Brake=0.10");
delay(1000);
}Connect via USB and choose option 3 in SimTelemetry.
All telemetry is logged to:
telemetry_logs/session_YYYYMMDD_HHMMSS.jsonl
Each line is a JSON object for easy import into tools like Excel, Power BI, or Grafana.
- C# .NET 7 (console apps)
- System.Text.Json
- UdpClient / SerialPort
- async/await for concurrency
- Add replay mode from JSON logs
- Create .NET MAUI GUI version
- Add WebSocket server for broadcasting telemetry