2026-09-17 23:01:50 +01:00
2026-06-22 22:07:52 +01:00
2025-05-23 00:18:25 +01:00
2026-08-24 16:54:36 +01:00
2026-09-17 23:01:50 +01:00
2026-09-17 23:01:50 +01:00
2026-08-24 16:54:36 +01:00
2025-05-23 00:18:25 +01:00
2026-08-24 16:54:36 +01:00
2026-07-23 10:47:27 +01:00

ESDI

ESDI stands for "ESilva Desktop Interface" iirc, or "rAcElaBs aT hOmE"

This tool collects data from popular racing simulators (for now), to pass it to peripherals (or a peripheral, only made one so far). This is the currently available peripheral: CDashDisplay.

If anyone finds this project useful for anything at all it would be pretty cool. My main goal is to learn and have some fun.

Currently it can read from a .ibt file or live telemetry from iRacing. It can only be ran from the terminal: go run . offline -p <port> -i <ibt-file> example output in the terminal

or to view the live data: go run . live -p <port>

Games implemented so far:

Roadmap

  • Implement the interface for a data source
  • Configuration of the peripherals via ESDI
  • Detection of the display
  • LapTime Calculator
  • A very long list useful stuff like flags, position, more info about other drivers, track conditions and so on so forth
  • Telemetry analysis tool
  • Better user interface

Development

Mockservers

To mock BeamNG.drive, I built BeaMNGMockOg (should have though longer about the name). You create a recording by launching the BeamNG and then launching the mockserver with: BeamNGMockOg record -a 127.0.0.1 -p 4443 -o output.bin.

To replay the recording: BeamNGMockOg replay [--loop] -a 127.0.0.1 -p 4443 -i input.bin

Troubleshooting

Can't see BeamNG data coming through

Use, for example, tcpdump -i any udp port <port> -X to check if any data is available.

Debugging

Freezes:

Using delve:

  • Launch Terminal1 with dlv debug . --headless --listen=:2345 -- tui
  • Launch Terminal2 and connect to with with dlv connect :2345
  • Type continue onto Terminal2 and go to Terminal1 to use the application normally until it hangs.
  • Go back to Terminal2 to and do a Ctrl+c to capture the state and then check what went wrong by looking at the goroutines for example.

pprof:

  • go tool pprof http://localhost:8001/debug/pprof/mutex
    • type top to view the summary
    • type web to view a graph version

Shameless begging

Hey, doesn't hurt to try, its free either way: Buy me a coffee!

S
Description
No description provided
Readme GPL-3.0
995 KiB
Languages
Go 100%