Data Logger with Web Interface
#1
Hello guys 
INTRO TO THE PROJECT
I wanted to share with you the current state of my data logger project with its web interface. I know there are other projects like this on this forum or the test logger but I wanted to make my own version. I wanted a way to record and see the data without the need to bring a laptop to the track. So I made this ESP32-based data logger and a web processor / interface that can display the data of the runs in a clear way. And since it's web-based, you can see your data on your phone, tablet or laptop/desk computer.
HARDWARE
So here is the latest version of the data logger. There will be a post below with earlier development versions.
The data logger and SD card holder with a Yokomo wrench. Driver input (steering and throttle/brake) and motor sensor wires. No accelerometers / gyros plugged.

The car fully equipped during a club race. Two accelerometers / gyros front and back. The Y harness plugged in the receiver takes too much space. I'll figure something to make it less messy.


CHANNELS
The currently recorded channels are:
The currently inferred / maths channels are:
Future recorded channels could include:
INTERFACE
And now, some screenshots of the web interface and its different features:
0. Here is the frontpage. It's where you drag and drop your recorded data file. You can input the final gear ratio of you car. It will be useful to compute your car's speed. You can also select in which way you run on you track and your average laptime of your session. This will be useful for later

1. You can see the effect of the filter on each recorded channels.
2. Now, let's focus on the data processing part. The web interface automatically detect the window of time where you were actually driving, not when the car is turned "on" in the stands, or sitting at the border of the track. This way, it only keeps and analyze the relevant part of what is recorded.

3. The interface will detect periodicity in your recorded data. In other words, without the need for any track beacon set at the side of the track the algorithm is able to detect laptimes in your recorded channels.

Here is a comparison I made on Excel of the actual lap times by a genuine MyLaps RC4 timing system (left column) and the laptimes found by the web interface (for a previous session). The results : less than 1% of error. Maybe it's not precise enough to be a timing system on its own but at least your clearly know which lap is which and it's pretty close to the real thing. I'm pretty proud of that results NGL. It only took 5 different version of the lap detection algorithm.

4. The interface will then display a list of the laps it found:

5. Now that we have our laps, let's draw the circuit ! You can color the trajectory with the channel of you choice, and select the lap you want to see.

And for the selected lap, you can see you throttle/brake and speed as well as the steering and lateral acceleration. Here it's pretty smoothed-out because the average lap is selected.

6. You can overlay two channels to see them for the lap you chose:

7. You can see the G-Force (G-G) chart of your run. You can also color it with the channel you want.

8. Here you can compare a channel on two different laps. You can see the time delta (where you gained or lost time) for the two laps compared. There is a slider to offset and superpose the two laps at anypoint you want on the track (for example at the start of corner 4).

This is my first coding project I'm pretty new to this. I've been at work on this for the past few months, I hope you'll like it. I posted it on the on-road section because this is my main and only class I run and I wanted the opinion of the guys I read the most.
Thank you for reading all the way and feel free to tell me what you think of this. If there is enough interest I could make this available to everyone in a commercial version of the project.

INTRO TO THE PROJECT
I wanted to share with you the current state of my data logger project with its web interface. I know there are other projects like this on this forum or the test logger but I wanted to make my own version. I wanted a way to record and see the data without the need to bring a laptop to the track. So I made this ESP32-based data logger and a web processor / interface that can display the data of the runs in a clear way. And since it's web-based, you can see your data on your phone, tablet or laptop/desk computer.
HARDWARE
So here is the latest version of the data logger. There will be a post below with earlier development versions.
The data logger and SD card holder with a Yokomo wrench. Driver input (steering and throttle/brake) and motor sensor wires. No accelerometers / gyros plugged.

The car fully equipped during a club race. Two accelerometers / gyros front and back. The Y harness plugged in the receiver takes too much space. I'll figure something to make it less messy.


CHANNELS
The currently recorded channels are:
- Throttle / Brake
- Steering
- Motor RPM
- Accelerometer X, Y and Z x2
- Gyro Gx, Gy and Gz x2
The currently inferred / maths channels are:
- Vehicle speed
- Understeer / Oversteer
- Corner Radius
- Steering Speed
- Attitude
- Understeer Angle
- Difference of Lateral acceleration (Front vs Rear)
Future recorded channels could include:
- Tire temperature x4 (already have the sensor and tried it on a previous version)
- Time of flight / ride height sensor
- Damper Pot / Suspension travel sensor
INTERFACE
And now, some screenshots of the web interface and its different features:
0. Here is the frontpage. It's where you drag and drop your recorded data file. You can input the final gear ratio of you car. It will be useful to compute your car's speed. You can also select in which way you run on you track and your average laptime of your session. This will be useful for later


1. You can see the effect of the filter on each recorded channels.

2. Now, let's focus on the data processing part. The web interface automatically detect the window of time where you were actually driving, not when the car is turned "on" in the stands, or sitting at the border of the track. This way, it only keeps and analyze the relevant part of what is recorded.

3. The interface will detect periodicity in your recorded data. In other words, without the need for any track beacon set at the side of the track the algorithm is able to detect laptimes in your recorded channels.

Here is a comparison I made on Excel of the actual lap times by a genuine MyLaps RC4 timing system (left column) and the laptimes found by the web interface (for a previous session). The results : less than 1% of error. Maybe it's not precise enough to be a timing system on its own but at least your clearly know which lap is which and it's pretty close to the real thing. I'm pretty proud of that results NGL. It only took 5 different version of the lap detection algorithm.


4. The interface will then display a list of the laps it found:

5. Now that we have our laps, let's draw the circuit ! You can color the trajectory with the channel of you choice, and select the lap you want to see.

And for the selected lap, you can see you throttle/brake and speed as well as the steering and lateral acceleration. Here it's pretty smoothed-out because the average lap is selected.

6. You can overlay two channels to see them for the lap you chose:

7. You can see the G-Force (G-G) chart of your run. You can also color it with the channel you want.

8. Here you can compare a channel on two different laps. You can see the time delta (where you gained or lost time) for the two laps compared. There is a slider to offset and superpose the two laps at anypoint you want on the track (for example at the start of corner 4).

This is my first coding project I'm pretty new to this. I've been at work on this for the past few months, I hope you'll like it. I posted it on the on-road section because this is my main and only class I run and I wanted the opinion of the guys I read the most.
Thank you for reading all the way and feel free to tell me what you think of this. If there is enough interest I could make this available to everyone in a commercial version of the project.
Last edited by Pharane0; 03-27-2025 at 05:43 AM.
#2
PREVIOUS VERSIONS / development boards
v1 [2019]: First ever version was a full size arduino UNO directly bolted to the trunk part of my body-shell.
v2 [AUGUST 2021]: Second version based on a TEENSY 4.1. Faster logging rates, 1 Accelerometer and Gyro. Tire temperature sensor.

v3 [OCT 2024] : Third version. TEENSY 4.1, better internal code, better accelerometer/gyro and messier wiring. Also, motor RPM logging added.

v4 [DEC 2024] : Current version (first post). ESP32-S3. 2 Accelerometers / Gyro. RPMs and Driver Input.

v1 [2019]: First ever version was a full size arduino UNO directly bolted to the trunk part of my body-shell.

v2 [AUGUST 2021]: Second version based on a TEENSY 4.1. Faster logging rates, 1 Accelerometer and Gyro. Tire temperature sensor.

v3 [OCT 2024] : Third version. TEENSY 4.1, better internal code, better accelerometer/gyro and messier wiring. Also, motor RPM logging added.

v4 [DEC 2024] : Current version (first post). ESP32-S3. 2 Accelerometers / Gyro. RPMs and Driver Input.

Last edited by Pharane0; 03-26-2025 at 11:23 AM.
#4
Wow that is really impressive! Especially recognising laps from noisy data. Well done, and I am sure in the right hands this will be really a help to improve one's driving. I love data driven analysis, and this is really cool.
For a project where I have different data with different sampling frequency and time offset, I would need similar code. What's the basis for yours? Did you use some kind of library?
Sad I didn't meet you at Axxelerate Arena. Where will you drive outdoor? I'll be mostly in Dintikon AG.
For a project where I have different data with different sampling frequency and time offset, I would need similar code. What's the basis for yours? Did you use some kind of library?
Sad I didn't meet you at Axxelerate Arena. Where will you drive outdoor? I'll be mostly in Dintikon AG.
#5
Wow that is really impressive! Especially recognising laps from noisy data. Well done, and I am sure in the right hands this will be really a help to improve one's driving. I love data driven analysis, and this is really cool.
For a project where I have different data with different sampling frequency and time offset, I would need similar code. What's the basis for yours? Did you use some kind of library?
Sad I didn't meet you at Axxelerate Arena. Where will you drive outdoor? I'll be mostly in Dintikon AG.
For a project where I have different data with different sampling frequency and time offset, I would need similar code. What's the basis for yours? Did you use some kind of library?
Sad I didn't meet you at Axxelerate Arena. Where will you drive outdoor? I'll be mostly in Dintikon AG.
#6
Really like this project! I've been wanting to do something like this so I could get some accelerometer data off of my cars, partly just out of curiosity, but I don't know very much about coding and this even goes above and beyond what I originally thinking of. Would love to give this a go myself if you're ever willing to share the code and material list needed.
#7
#8
#9
Love all the analysis you're doing in the web interface. Would like to see the track map function and the lap comparison combined. Seems it would be a much easier visualization to figure out where on the track you're loosing time.
#12
#13
Tech Rookie
Joined: Sep 2024
Posts: 5
This project looks super amazing, seems like it would open a whole new world for RC racing comparing racing lines and data analysis!
You finally could tell with certainty in which corners you win or loose and if a changed setup is quicker and in which part of a corner...
Would personally be interested in a commercial version
You finally could tell with certainty in which corners you win or loose and if a changed setup is quicker and in which part of a corner...
Would personally be interested in a commercial version
#14
UPDATE
Hi, I wanted to share a little update on the interface.
1. To save time and going back and forth, you can now view and change the lap's start/finish line position during the file analysis with the help of a little map of the track.

2.You can now compare two runs on a dedicated page.

Hi, I wanted to share a little update on the interface.
1. To save time and going back and forth, you can now view and change the lap's start/finish line position during the file analysis with the help of a little map of the track.

2.You can now compare two runs on a dedicated page.




12Likes