Giter Club home page Giter Club logo

smartcontroller_smartdisplay_esp32's Introduction

[ SmartController & SmartDisplay ]

⚠️ Warning : this is work in progress. I decline all responsability about using informations from this project ⚠️

To contribute and help this project :

Donate

Logo

What is SmartController ?

It's a combo of electronic and smartphone application. It extend all features from original Minimotors EYE LCD and Minimotors controller, but it can also interface VESC, SmartESC adnd Kelly controllers. The electronic board will interract with most of the e-scooter electronic when you plug it. You simply place the little box inside the deck and connect it to the controller (and other electric parts if you want more features)

Requirements

  • An e-scooter with minimotors controllers (single or dual)
  • An power supply between 12V and 80V... (possible with external DC-DC providing 12V or 5V if you have 20S or more)
  • If you want to use progressive brake feature, you must ensure no more than 60V pass in the brake handle (issue noted only for Kaabo)
  • The electronics (ESP32 Dev KitC V4 + SmartController shield + JST SM/PH connectors)
  • Some electronic skills

What can be done ?

I suggest you to have a look at all planed features in the image below. There is almost no limit in custom features. The controller power cannot exceed the nominal power, but with a shunt, you can go upper and still have a current control loop to limit the current by software (and avoid burning the controller).

Most settings will be configurable by the smartphone, and additionnal hardware buttons will allow you to control specific features.

Some examples :

  • It can lock the escooter with bluetooth proximity (with a beacon, the smartphone or any bluetooth device). When locked, the power is so reduced that nobody can ride it is you aren't close enouth

  • You find the acceleration trigger to agressive at low speed ? you can change the acceleration curve for smooth trigger at low speed, and still have the beast once you push the trigger harder

  • You want a mode for some weather conditions like 'rainy' with less torque ? no problem. Use the customized "mode Z" in addition to mode 1/2/3 with special P7/P8/P9/PA

  • You feel the electric brake too strong at full power ? the progressive electric braking adjust the brake power in real time.

  • You find the throttle too sensitive ? change the acceleration curve to an exponential for a slow start but quick ramp-up.

>>> Check all detailed features here <<<

Board assembly (v1.3.2)

Ass1

Ass2

Ass3

Wrapping & Size

Current PCB size : 6cm x 3cm x 2cm

Idea

Electronic

Compatibility

The software is designed for ESP32 Dev Kit v4 microcontroller.

Schematics

PCB schematic v1.3.3

PCB from easyEDA

PCB from easyEDA

Protype parts list

Google sheet

Inspiration to understand controller electronic

China BLDC motor controller 36v 250W

Applications

Android

Minimo App - Github repo

iPhone

I have no skills in iPhone apps. If anyone wants to develop, let me know 😉

TODO

  • [✅] Serial Minimotors

    • [✅] Read/write serial link LCD_TO_CNTRL
    • [✅] Read/write serial link CNTRL_TO_LCD
    • [✅] Decode speed/mode/brake/regulator from serial link
    • [✅] Frame error detection
    • [N PROGRESS 🔄] Error codes processing
      • [✅] Controller under voltage error
      • [✅] Throttle voltage
      • [✅] Brake voltage
      • Controller other error
  • [✅] VESC

    • [✅] Read serial link
    • [✅] Decode datas : speed, voltage, current
    • [✅] Send current orders
    • [✅] Set speed 1/2/3 modes
    • [✅] Electric brake max power setting
    • [✅] PAS
    • [✅] Lock (anti-theft or manual)
    • [✅] Speed computing
    • [✅] Temperature feedback
    • [✅] Brake power smartphone feedback
    • [✅] Speed limiter
    • [✅] Power processing / display
    • [✅] Brake forbiden on high voltage
    • [✅] Electric analog brake processing
    • [✅] Electric digital brake processing
    • Dual VESC
      • Change speed limits
      • Get infos
    • Error codes processing
      • Temperature alarm
      • Other errors
  • [✅] Kelly

    • [✅] Read serial link
    • [✅] Decode datas : speed, voltage, controller temperature
    • Error codes processing
  • [IN PROGRESS 🔄] SmartESC v1

    • [✅] Read serial link
    • [✅] Decode datas : speed, voltage, controller temperature
    • Error codes processing
  • Serial Zero / Appolo / Weped

  • [✅] Bluetooth

    • [✅] Communication with Android
    • [✅] Anti-theth with smartphone
    • [✅] Anti-theth with beacon (scan & rssi detection)
    • [✅] Lock beacon or device settings
    • [✅] SmartController connection security (PIN code)
    • [✅] SmartController connection with multi devices (BT device choice)
  • [✅] Other inputs/outputs ↔️

    • [✅] Read current with WCS1700
    • [✅] Read battery voltage
    • [✅] Read tempertature/humidity with DHT11/DHT22
    • [✅] Read break handle position on serial
    • [✅] Read break handle position on standard brake handle
    • [✅] Read break handle position on analog brake handle
    • [✅] Read buttons
    • [✅] Send break handle position to controller
    • [✅] Send LED status
    • [✅] Send optocopler order
    • [✅] Internal temperature sensor
    • [✅] Throttle signal regeneration
  • [✅] Power 🔋

    • [✅] Convert 12V to 5V
    • [✅] Convert 80V to 5V
    • [IN PROGRESS 🔄] Convert 100V to 5V
  • Features ⚙️

    • [✅] Save settings in non volatile memory
    • [✅] Progressive electric braking (software detection)
    • [✅] Progressive electric braking (hardware analog detection)
    • [✅] OTA update
    • [✅] Current measure auto calibration (at startup)
    • [✅] Current measure manual calibration
    • [✅] Speed limiter at startup
    • [✅] Configurable speed limit
    • [✅] Remote physical button
      • [✅] Speed limiter ON/OFF
      • [✅] Lock ON
      • [✅] Nitro Boost continuous
      • [✅] Nitro Boost ON/OFF
      • [✅] Aux ON/OFF
      • [✅] Switch modes 1/2/3 or 2/3
      • [✅] Settings access
    • [✅] Disable electric brake with full battery
    • [✅] Manual calibration for analog brake
    • [✅] Manual calibration for voltage
    • [✅] Use brake switch as startup for speed limiter
    • [✅] LCD Speed adjustment
    • [✅] Exponential acceleration curve
    • [✅] PAS switch
    • [✅] Custom acceleration curves (linear/expo)
    • [IN PROGRESS 🔄] Automatic ECO mode on low battery
    • Dynamic BLE debug infos
    • Wifi connexion for dashboard display and settings
    • Advanced diagnosis (serial errors, throtle errors ...)
  • [✅] Android application 📱

    • [✅] Display :
      • [✅] Speed
      • [✅] Mode
      • [✅] Voltage
      • [✅] Current
      • [✅] Power
      • [✅] Brake mode (PA)
      • [✅] Max speed
      • [✅] Max power
      • [✅] Max current
      • [✅] Temperature
      • [✅] Humidity
      • [✅] Time
      • [✅] Moving time
      • [✅] Odometer / distance
      • [✅] Trip distance
      • [✅] Average speed
      • [✅] Autonomy
      • [IN TEST 🔄] Brake forbiden
      • Errors
    • [✅] Auto-launch app with NFC tag
    • [✅] Parameters custom settings
    • [✅] Data logging
    • [✅] History graphics
    • Wizzard with escooter model choice
    • UI configuration (hide items)
  • iPhone application 🍏

    • A kind developper to do this part ? 😇

Produce your own board

Wiring

Run it !

Ressources 🔗

Donate to support

smartcontroller_smartdisplay_esp32's People

Contributors

foujiwara avatar jojolll avatar koxx3 avatar technoo10201 avatar

Watchers

 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.