I'm at the point now where data analysis could probably help improve my driving, but previous attempts with my phone's internal GPS proved useless and the price of a worthwhile external GPS that works with iOS (Racebox Mini) was too much to swallow before seeing if it has any benefit for me.
But then I found out I could make my own for cheap.
I use an iPhone though, which limits my options.
Using an HM-10 as a simple bluetooth passthrough for the GPS worked fine with an old android phone, but using a second device was inconvenient.
Using wifi with the bonogps project mentioned below worked well and would've been the next easiest choice, but I was already using it for OBD2 data. Switching to bluetooth for that is another expense and probably won't get me the same refresh rate I have with wifi.
So implementing BLE was my only option.
I had a TTGO T-Display ESP32 board and a lipo battery lying around, the only thing I didn't have was a GPS module and for that I got a u-blox M8 based Beitian BN-357.
The main board has a built-in battery connector and charger, a screen that I use as a battery indicator and 2 buttons that I'm using to turn the screen off to reduce power (one broke off on mine). It's a really nice all in one solution.
The only other component I added was a switch to disconnect the battery, as the power consumption of the board even in deep sleep with the GPS off is not very good (>5mA). In use, it's around 125mA with the screen on and 100mA with it off. The battery I'm using is 850mAh, so good enough for a whole day.
I then designed and 3D printed a case for the whole package.
All in all, I'm really happy with how it turned out and the whole project could probably be replicated for under 50$.
From initial tests I did just driving on the streets it seems to work well, but my first real test on track will be in 2 weeks.
Source code and files for the project available at : https://github.com/APatenaude/rc-diy-gps-tdisplay
The GPS configuration using u-center is probably the part with the least amount of clear and concise documentation available, but I found this project to be of great help : https://github.com/renatobo/bonogps
For the RaceChrono specific BLE implementation, I mostly copied a previous project I found on this forum :https://racechrono.com/forum/discussion/1876/dyi-on-ttgo-t-beamhttps://github.com/0x8008135/RaceChronoDYI-TBeam
Also, please add a nice IMU to it too. I can write an API for it.
The GPS comes on it's own board and the T-Display is the motherboard. It includes the esp32, the screen and everything else on a single board.
The IMU would be really interesting if I was riding a bike but I drive a car so I have little use for that data.