01/09/2020 at 14:26 •
A new speed increase has been finally uncovered for the ES-200. This command has been applied to the Final version of the Scooter Unlocker for the ESP32. https://github.com/chappy1978/ES200-Scooter-Unlocker/tree/Final Happy hunting
And a Big Thanks to Wileok for doing the hard work and finding the command.
01/06/2020 at 13:56 •
I have branched of the GitHub library to two versions. The master branch is a stable version not being updated and Final is going to be the production version with all the extra options to make it as simple to use a possible. Hope everyone enjoys.
01/01/2020 at 13:44 •
So this project has been migrated to a Github repository. Hope everyone will enjoy.
12/30/2019 at 22:39 •
The project is getting difficult to maintain with just using Hackaday.io Im going to migrate the project to Github. So I can share the newest versions.
12/30/2019 at 01:35 •
Ok The Holidays are suck. Oh ya Im not here to bitch. So Ive got an updated ESP32 with bluetooth that can code select any and all known codes. So you can ride along on the fly and switch from granny mode to a whooping 13 mph with flashing headlights and all. Just need to type in a decimal number from 0-255 on the smartphone of your choosing and test to you hearts content. Im going to put it on Hackaday. For all the cool kids in the know. If you don't read the ten thousand time I put the link in the forum. Still no luck on the speed. I think a more complex solution will be required. Something along the lines of reprogramming the STM8 in the headstock and adding bluetooth which is cool and a pain in the ass.
So nexts is a couple of lessons learn. The ESP32 sucks the mA hard. 100 ma running full power. So when compiling use the 80 mhz setting, set the flash to 40 mhz. And if there is a tech savvy soul to be found, kill one of the cores. Ive gotten mine down to about 50-60mA with a low power of 20mA. That not including the draw on the buck convertor.
My next goal is to have a low power mode. But that it won't be a problem much longer. The low power needs a way to wake it up to turn on the bluetooth radio. Im trying to decide if it will be a touch pad to wake it up like all the new kids toys or have it wake up every so often and look for a BLE connection. Or even a little mix of the two.
Also for the nano diehards that want to build something similar to my code. You can use a HM-05 Bluetooth module and the RemoteXY website to make your own forked version. It can work I just don't have the time to do it. It will need a SoftSerial setup for the bluetooth. It should not be much more than a cut and paste job.
12/20/2019 at 22:53 •
Now that I have the bluetooth working and Im pretty sure that this code won't break the scooter. I got to tested out the controls in motion. Which it is lots of fun running around with a iPhone in my brake hand. Trying to get a scooter going as fast as I can. It starting to seem like the top speed for this motor controller is 13 mph. I found out I can make the headlight turn on/off and even flash. Make the scooter go slow as dirt. And some even make the MPH on the LCD turn on and off. Not sure what the point of that is, maybe something to do with MPH/ KPH. What the best news is that 0xFF is the fastest accelerating setting. The little wheel even squeaked off the line.
12/20/2019 at 13:53 •
Today I got the code working to send test commands to the scooter motor controller. This is some of the rules the command system seem to follow.
- It looks like the commands need to be sent twice for them to take effect.
- The keep alive command/ Kill will over write all other commands.
- The commands you want to keep working need to be sent repeatedly to keep working, every 10 sec is OK.
None of this has been tested on a running scooter. (i.e. don't want to kill my ride) So I can't tell you if the motor is operational.
As for the commands Ive gotten something to happen
0x02 Causes headlight to flash and a loss of the LCD
0x03 Causes headlight to flash and LCD is still working
0x05 Turns on Scooter
0x06 Causes headlight to flash and a loss of the LCD
0x07 Causes headlight to flash, LCD is still working, MPH is lit.
0x09 Causes headlight to turn off, LCD is still working, MPH is lit.
0x0A Causes headlight to flash and a loss of the LCD
0x0B Causes headlight to flash and a loss of the LCD
0x0D Causes headlight to turn off, LCD is still working, MPH is lit.
0x0E Causes headlight to flash and a loss of the LCD
0x0F Causes headlight to flash, LCD is still working, MPH is lit.
12/19/2019 at 17:20 •
So when I type in commands into my remote for ESP32 the motor controller spits back hex data. It easier on the eyes in decimal so here a little to look at
Keep alive command
19 38 20 0 44 213 0 82 0 0 80 0 0 7 0 0 255 1 153 186 0 158 0 0 0 0 0 0 32 0 2 100 17 16 16 18 255 255 255 148 127
19 38 20 0 44 213 0 82 0 0 80 0 0 16 0 0 255 1 153 186 0 158 0 0 0 0 0 0 32 0 2 100 17 16 16 18 255 255 255 148 1
Notice the highlighted numbers is on and off. Other commands seem to change the last third fourth and fifth digits. Also adds a bunch more data to the response.
19 38 20 0 44 213 0 82 0 0 80 0 0 16 0 0 255 1 153 186 0 158 0 0 0 0 0 0 32 0 2 100 17 16 16 18 255 255 255 202 197 255 255 255 255 255 255 3 255 0 154 36 255 20 162 51 255
The last digit in the string is the checksum Im guessing.
12/18/2019 at 20:47 •
The remote commands software is working. I can send commands to the motor controller from my iPhone which is pretty cool. I haven't yet figured out any interesting commands that I can figure. The keep alive command keeps stepping on the commands I send. For example I send a command to the motor controller the LCD flashes the response. But as soon a the keep alive timer send a command the last command is over written. I really need a working GPS to monitor and see how commands are sent over a long period of time. Ahh a project for another day.
12/17/2019 at 13:23 •
So if just if anyone at home is interested in testing out the new command injection firmware it is intended for a ESP32 (i.e. Adafruit Huzzah32) The reason being is it has 2 hardware serial ports. One of the ports is sending to the scooter the commands over Serial1. The other is being used for debugging and sending commands to the ESP32 i.e. Serial
You can do this with an Arduino Nano but it would need to be updated with a SoftSerial command to work.