Skip to content

Using an ESP32 for turn-by-turn navigation with Komoot BLE Connect

Notifications You must be signed in to change notification settings

nitinGangurde/esp32_komoot_ble

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Hint: The code is deprecated and only kept for reference. Only tested with iOS. It won't work if you don't use the mentioned library versions. The official ESP32 Android libraries now include BLE.

The Komoot BLE Navigation Device Project

The goal of this project is to create an inexpensive turn-by-turn navigation device based on ESP32 and Komoot's BLE Connect API.

DIY: The World Cheapest Turn-by-Turn Navigation Device

Overview

This repository includes all the necessary files to build your own turn-by-turn navigation device including the files for the 3D printable case.

User instructions

  1. The battery can easily be charged by connecting the ESP32 to an USB charger if a controller with battery management is used (e.g. Adafruit Huzzah ESP32).
  2. To wake up the device from deep sleep press the button. The welcome screen is shown and ESP32 starts searching for the Komoot BLE service.
  3. Open the Komoot app on your phone and make sure Bluetooth on your phone is turned on. Start your navigation. There is no need to manually connect the ESP32 in the settings. After some seconds, the devices are paired.
  4. The device now shows the navigation instructions from the Komoot app.
  5. If connection is lost or navigation stopped, ESP32 tries to keep connection to the device for first 100 seconds. After this, it starts searching for new devices. If no new device is found for the next 100 seconds, it returns to deep sleep.
  6. Device can manually be turned off by pushing the button. This takes approximately 2 seconds.

Status

This is a first prototype which is fully working and tested. New functionality and hardware may be added. The ESP32 is quite new and the Arduino implementation still undergoing many changes. It is recommended to use the same release as stated here because there were many issues with BLE when updating versions.

Next steps:

  • improve case/ make smaller
  • use larger display
  • smoothen images
  • add more functionality
  • add battery indication
  • continuously update used libraries

Hints

  • Device can not be completely turned off without disconnecting battery, but we can enter deep sleep by pushing button and waking up again by pushing same button
  • Device can be loaded over USB port (LiPo control on-board)
  • Rename main file in .ino to work with Arduino IDE

Hardware

  • Adafruit Huzzah ESP32 (or any other with included battery management)
  • 128x64 OLED, SSD1306 Controller
  • Push button, some wires and 3D printed case, screws
  • 3.7V 400mAh LiPo

Connections

Display:

Display ESP32
SDA Pin 27
SCL Pin 33
VCC VCC
GND GND

Button:

Button ESP32
In Pin 32 pulled down with 10kOhm resistor connected to GND
Out VCC

Dependencies

Assembly



Credits

  • @danielgard for clarifying some things about the Komoot API
  • @chegewara for continuously debugging Arduino ESP32 BLE
  • Axel Poidevin for carrying the bike and phone in the video

About

Using an ESP32 for turn-by-turn navigation with Komoot BLE Connect

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 97.7%
  • C 2.3%