GPS Speedometer

A GPS speedometer can be useful because it gives you the actual speed over the ground without relying on the vehicle’s wheel size, gearing, or existing speed sensor. I've also made a second version with mph unit.

This is the mph version with the same hardware.

Disclaimer : For Educational Purpose Only.

Parts required:

1. ESP32 S3 Supermini
AliExpress➡️ Buy Option 1  Buy Option 2
 

2. 1.28" GC9A01 display

AliExpress➡️ Buy option 1  Buy option 2 

3. GPS module (NEO-7M + Antenna)

AliExpress➡️ Buy option 1  Buy option 2 

4. Lipo battery 3.7v
AliExpress➡️ Buy Option 1  Buy Option 2

Circuit Diagram
ESP3S3 Supermini has built-in battery charger.

Source Code:

I've uploaded the source code (both km/h & mph) in my drive


New to Arduino IDE & esp32 programming? (follow this tutorial)
https://docs.waveshare.com/ESP32-Arduino-Tutorials/Arduino-IDE-Setup

Note: Before you upload and run into an error make sure you-

Download all required libraries :
i) lvgl (Only use v8.3.11)
ii) LovyanGFX (latest)


You can also install libraries directly from Arduino IDE library manager.

Use Arduino IDE v2.3.4 and esp32 board v3.x.x by espressif



Note: It takes about 10-15 minutes to compile the code first time. You need to wait for 1-2 minutes to get satellite signal after a cold start. Placing the GPS module indoor will reduce the signal reception. Mileage is saved in non volatile storage so powering off won’t erase the data.

If you face any issue send me an email with subject "gps meter" to abid.business01@gmail.com

Comments

  1. e usabile anche il classico schermo rotondo che usi abitualmente?

    ReplyDelete
  2. The .ino program calls an none-existant file name Preferences ..

    See line 5 of GpsSpeedKM.ino
    #include

    Please, what has the Preference.h 's content to be ?
    It's easy to create an empty file, but it is better to use it properly with the appropriate content.
    Thanks.

    ReplyDelete
    Replies
    1. That is a built-in library for esp32. To save mileage data in the NVS so even after you reset the board the mileage will not be erased.

      Delete
    2. Compilation did work also with: ESP32wroom AND ESP32C3

      Delete
    3. But, again, be very carefull with « #include //Attention n'utilisez que la version 8.3.11 » only use the 8.3.11 library

      Delete
  3. Hey there,
    This is an amazing project that I’m actually going to make for a project motorcycle that I’ve just started yesterday.

    I was wondering if this could be “ported” to have a second display show the engine RPM and the selected transmission gear?

    ReplyDelete
    Replies
    1. My bad, I see you’ve already done it, nice work!

      Delete
  4. I’ve got a problem with esp32, mote with compiling in arduino ide. It is like never ending story. The compilation takes ages. Maybe you could help?

    ReplyDelete
    Replies
    1. This normally takes 15-20 mins for first time compile.

      Delete
    2. Looks like ot Works but… after 20 min of cold start zero GPS finds

      Delete
    3. And IF it makes difference i bought esp32 s3 zero that has no ports for battery, or i don’t see them

      Delete
    4. Problem solved. Lost conection Wit tx

      Delete
  5. I'm having this error. Thank you.

    #include "ui.h"
    #include "ui_Screen.h"

    ReplyDelete
    Replies
    1. You must put all the header files ( like ui.h, and others) in the same folder with the .ino file

      Delete
  6. So at each start is the distance reset to zéro or is it the total ?

    ReplyDelete
    Replies
    1. Distance is saved in NVS after each km or mile so powering it off will still keep the saved distance and even if you restart, it will show total distance.

      Delete
  7. Maybe a silly question, does this support recharging via usb as well? fun little project with my son.

    ReplyDelete
    Replies
    1. Yes of course, the board has battery charging function.

      Delete
  8. Cool, excited to try this out with my 6 year old.

    Any thoughts on making an android device controller with a 2 channel relay for your next video?

    ReplyDelete
  9. ciao è possibile utilizzare anche uno schermo un po piu'grande?

    ReplyDelete
  10. Hi. This is a great project.
    Two questions.
    Is it possible to do this with a larger display?
    Are the kilometers driven saved, or do they reset when you turn it off?
    Thanks for your great work.

    ReplyDelete
    Replies
    1. Larger display possible but it will require a different hardware + code.
      Yes the mileage is saved in non volatile storage.

      Delete
    2. Thanks for the the answers.
      I'LL try to build this one but would love to see a bigger version.

      Delete
  11. If I decide to print a 3d case, the GPS module can go inside or it's better on the outside?

    ReplyDelete
  12. Hi, really interesting project. I would like to ask you if it is possible to change the speed scale, I mean the max speed value, and possibily how do it. Tank you

    ReplyDelete
    Replies
    1. I'm building an updated GPS speedometer with touch controls for customised units, range, brightness, mileage clearing functions. Stick around!!

      Delete
    2. Thanks for the the answers.
      I'll wait for it.

      Delete
  13. Very nice , I use it in a old BMW to avoid speed traps , as the original speedo is very ugly :)
    https://ibb.co/0zyywD3

    ReplyDelete

Post a Comment