All Projects → Pickelhaupt → EUC-Dash-ESP32

Pickelhaupt / EUC-Dash-ESP32

Licence: GPL-3.0 license
Bluetooth Dashboard for electric unicycles (EUCs) for ESP32(ttgo t-watch). requires PlatformIO to build

Programming Languages

c
50402 projects - #5 most used programming language
C++
36643 projects - #6 most used programming language

Projects that are alternatives of or similar to EUC-Dash-ESP32

uru-card
Arduino based firmware for FIDO2 Authenticator
Stars: ✭ 114 (+375%)
Mutual labels:  platformio, ble
Openmqttgateway
MQTT gateway for ESP8266, ESP32, Sonoff RF Bridge or Arduino with bidirectional 433mhz/315mhz/868mhz, Infrared communications, BLE, Bluetooth, beacons detection, mi flora, mi jia, LYWSD02, LYWSD03MMC, Mi Scale, TPMS, BBQ thermometer compatibility, SMS & LORA.
Stars: ✭ 2,413 (+9954.17%)
Mutual labels:  platformio, ble
SmartSpin2k
Transform your spin bike into a Smart Trainer!
Stars: ✭ 88 (+266.67%)
Mutual labels:  platformio, ble
eucWatch
EUC Watch. Dash for Electric Unicycles on NRF52xx based wearables. Supports Kingsong ( All models ), Inmotion ( All ), Ninebot ( All ) , Begode ( Gotway, All ) and Leaperkim (All)
Stars: ✭ 44 (+83.33%)
Mutual labels:  gotway, kingsong
ESP-Alerts-for-Arduino
Send Android Notifications to an ESP32 with OLED display
Stars: ✭ 40 (+66.67%)
Mutual labels:  ble
canairio firmware
CanAirIO is a citizen science initiative. We are developing a mobile application that is able to set a PM2.5 or CO2 sensors, and other related sensors, as a fixed station using WiFi or mobile station with an smartphone by using a Bluetooth connection.
Stars: ✭ 84 (+250%)
Mutual labels:  platformio
socitrack
A wearable platform for social interaction studies
Stars: ✭ 16 (-33.33%)
Mutual labels:  ble
EspBuddy
Wrapper to easily upload (OTA or Serial), backup, batch query, monitor ESP8266 boards using Esptool.py, Espota.py and Platformio
Stars: ✭ 47 (+95.83%)
Mutual labels:  platformio
FireLamp JeeUI
Project Fire Lamp based on EmbUI framework (GPL license)
Stars: ✭ 77 (+220.83%)
Mutual labels:  platformio
spherov2.py
Unofficial Python API for all Sphero toys
Stars: ✭ 36 (+50%)
Mutual labels:  ble
platform-lattice ice40
Lattice iCE40: development platform for PlatformIO
Stars: ✭ 34 (+41.67%)
Mutual labels:  platformio
app-xyo-nodejs
XYO Archivist/Diviner CLI
Stars: ✭ 41 (+70.83%)
Mutual labels:  ble
powerblade
1 in² AC power meter
Stars: ✭ 50 (+108.33%)
Mutual labels:  ble
platformio-core-installer
PlatformIO Core Installer
Stars: ✭ 53 (+120.83%)
Mutual labels:  platformio
Maix-LogoClassifier
A simple logo classifier developed using Maixduino framework and PlatfomIO, to run on K210 MCU on Sipeed's Maix dev board.
Stars: ✭ 25 (+4.17%)
Mutual labels:  platformio
Open-Home-Automation
Open Home Automation with Home Assistant, ESP8266/ESP32 and MQTT
Stars: ✭ 905 (+3670.83%)
Mutual labels:  ble
ioBroker.ble
Monitor Bluetooth Low Energy beacons
Stars: ✭ 39 (+62.5%)
Mutual labels:  ble
BleDemo
Android 蓝牙BLE
Stars: ✭ 12 (-50%)
Mutual labels:  ble
Core2-for-AWS-IoT-EduKit
Accompanying code for use with AWS IoT EduKit content. Works with PlatformIO and ESP-IDF v4.2.
Stars: ✭ 107 (+345.83%)
Mutual labels:  platformio
nextdriver
An Arduino-based controller for Celestron CG5-series equatorial mounts
Stars: ✭ 21 (-12.5%)
Mutual labels:  platformio

EUC-Dash-ESP32

2021-04-03 Master branch will be unstable for a while, use release 0.9.1 until it stabilises if you don't want to test the new BLE code

Complete rewrite added, only buildable with PlatformIO please see https://github.com/Pickelhaupt/EUC-Dash-ESP32/tree/master/src for more info

Stand-alone Bluetooth dashboard for electric unicycles (EUCs) for ESP32. You can build it with both the Arduino IDE and with PlatformIO. For instructions on how to setup PlatformIO and building the project see the README.md file in the src directory.

Introduction

The latest version will no longer build using the Arduino IDE, I have migrated to PlatformIO and will not update the arduino versions.

This pre-release version of a dashboard for electric unicycles. It currently only supports KingSong wheels and ttgo t-watch 2020. There are probably still some bugs.

I got a lot of help from reading the code from the WheelLogAndroid project, it spared me from having to reverse engineer the protocol. I used My-TTGO-Watch by Dirk Brosswick as a template to implement multiple screen support, settings and a lot of other functions: https://github.com/sharandac/My-TTGO-Watch

Features

Reads BLE notifications from the electric unicycle and display data on the ESP32 display

  • Reads KS BLE notifications
  • Full and simple dashboard
  • Clock display
  • Power saving implemented, will go to sleep when wheel is disconnected and display is off. Not optimised when connected yet. Currently the battery lasts for:
    • Around 3 days not connected
    • Around 6 hours when continuously connected
    • Around 1 day of standby and 4-5 hours of continuous riding
  • Wake up from accelerometer, button and double tap
  • long press on dashboard to toggle lights
  • Settings screen:
    • clock
    • dashboard
    • BLE
    • system utilities
    • battery and power
    • display (contrast, wake time, rotation)
    • OTA upgrades
    • wifi

Data read and decoded

  • Current speed
  • Voltage
  • Current
  • Total Distance traveled
  • Distance traveled since power on
  • Time since power on
  • Power
  • Battery percentage remaining
  • Speed alarm settings
  • Tiltback (Max speed) setting
  • Max speed since power on
  • Cooling fan status
  • Ride mode setting
  • EUC temperature

Data displayed on dashboards

  • Current speed
  • Max speed
  • Wheel battery level
  • Wheel max battery
  • Wheel min battery
  • Current
  • Max current
  • Max regen breaking current
  • Temperature -- full dash only
  • Max temperature -- full dash only
  • Trip meter -- full dash only
  • Current time -- full dash only
  • Watch battery level -- full dash only

Dashboard functions:

Dashboard alerts:

Other screens

  • Time and date screen
  • Settings screen
  • trip info screen
  • wheel info screen

Screen layout:

Map of all settings screens (new version, some things still missing):

Supported Models

Only supports Kingsong wheels at the moment. it autodetects the following models:

  • KS14M/D/S
  • KS16/KS16/S/X/XS
  • KS18A/S/L/XL
  • KS-S18

Gotway support is being actively worked on.

Screenshots

Some new screenshots, colours are a bit off though

Dependencies

Required libraries:

Libraries are downloaded automatically by PlatformIO when compiling for the first time.

  • TTGO T-Watch Library; v1.4.1+
  • AsyncTCP@>=1.1.1
  • ArduinoJson@>=6.15.2

Bugs and issues

  • I have not verified if the http upgrade feature works, also the published firmware is out of date.

Todo

  • Support for more wheel brands (Gotway/Veteran, Inmotion, Ninebot planned)
  • Autodetection of wheel make and model --done, only detects KS at this time

Building the project

Requires PlatformIO and driver for the USB chip in the t-watch. for more info see: https://github.com/Pickelhaupt/EUC-Dash-ESP32/tree/master/src

Connecting to the wheel

If the "connect to wheel" setting on the main setup screen is on it should connect automatically when it finds a compatible wheel when the screen is on, it will not connect when screen is off as the device is in sleep mode. However there is currently no function implemented to make it possible to choose what wheel it will connect to of there are more than one compatible wheel in range, it will simply connect to the first one it finds.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].