A completed 15hz BLE GPS using TTGO T-Display ESP32 and BN-357

edited August 3 in DIY builds
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 :


  • edited August 3
    I love it. M8 supports Galileo, right? If so, it will be very accurate too. I think I'll order parts. What motherboard are you using? It's not listed in your parts list.

    Also, please add a nice IMU to it too. I can write an API for it.
  • The GPS does support Galileo. From the little testing I did it seems accurate enough to notice lane changes when looking at the map view so I have high hopes for it at the track.
    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.

Sign In or Register to comment.