Giter Site home page Giter Site logo

esp32_gps's Introduction

ESP32_GPS

The goal is to build a portable GPS device that displays a map with your position in a small display. The map data is extracted from the OpenStreetMap project data and reduced to only the basic elements for a clear navigation, e.g. while mountain biking. The scripts extracts basically polylines and polygons to display the roads, paths, rivers, buildings, forest, etc.

To download and extract the map files of your country/area see: https://github.com/aresta/OSM_Extract. It is still work in progress, but it's already funtional. Once you extract and generate the map files copy them into the SD card and put the SD card in the device.

The elements:

  • ESP32-S3 with at least 4MB of PSRAM. (with ESP32 Wrover module it works also).
  • GPS module.
  • Small display. IPS to get a good visibility outdoors.
  • Micro-sd card with the maps data.
  • Vectorial maps data from OpenStreetMap.

First I built a prototype in the protoboard:

New version with ESP32-S3 devkit: GPS ESP32

I have created also a PCB prototype with battery, usb charger, programmer header, a joystick and two buttons for user interface and other two for reset and program mode:

The previous version. The Wrover module is under the display: GPS ESP32

The new version (still in design phase) with the ESP32-S3, battery charger, card slot and GPS all integrated in the board. GPS ESP32

The schematic: GPS ESP32

I will share the kicad project also.

The wiring for the basic prototype with the ESP32-S3 devkitc: GPS ESP32

The MCU should be the ESP32-S3 with 4MB or 8MB of PSRAM (or Wrover) to have enough memory for the maps data to display.

I plan also a version with a small round display in a compact form. The system should work with any display size.

The prototype is already functional. It's shows your position in the map with the little triangle, it refresh as you move. With the joystick you can move around in the screen, zoom in and out.

The map is created out of an Openstreetmap PBF extract and clipped to the desired area and put the generated map files in the SD card. Storage space is not a problem, so you can have a quite big area of hundreds of kms. The map file creation is done in the computer with some scripts and then copied to the SD card. See project: https://github.com/aresta/OSM_Extract

The map files creation, the rendering of the elements and the GPS position work fine but there is still work to do. The user interface is still very basic and the GPX track display and track recording is not yet implemented.

Any help is welcome!

Todo's:

  • Optimize several aspects related to maps storage and memory.
  • Test with IPS smaller displays and round (clock) displays.
  • A proper plastic housing and better compact design, maybe with lateral buttons as the GPS patch can't be placed below the display to have a good reception and it takes quite some additional space.
  • Show and record the GPX tracks.
  • Rotate the elements based in movement direction.
  • ...

The excellent map data is available thanks to the great OpenStreetMap project and contributors. The map data is available under the Open Database License.

© OpenStreetMap contributors

esp32_gps's People

Contributors

aresta avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.