- Tue Jan 25, 2022 7:03 pm
#56256
Hello guys,
I am trying to get my salvaged bird zero to work but no matter what I try the scooter stops working after a while.
I have read a good amount of this thread viewtopic.php?f=56&t=6284 with no avail. The instructions on the first page seem to have been removed and I've been putting the pieces together. So far I have tried the following Arduino code with every single message, I have also tried the scooter-starter.ino I am connecting the blue to the 3v on Arduino (tried D5 in case it has slightly higher voltage) yellow to rx and green tx
I am trying to get my salvaged bird zero to work but no matter what I try the scooter stops working after a while.
I have read a good amount of this thread viewtopic.php?f=56&t=6284 with no avail. The instructions on the first page seem to have been removed and I've been putting the pieces together. So far I have tried the following Arduino code with every single message, I have also tried the scooter-starter.ino I am connecting the blue to the 3v on Arduino (tried D5 in case it has slightly higher voltage) yellow to rx and green tx
Code: Select all
/*
* byte messageD[] = {0xA6, 0x12, 0x02, 0x85, 0x24, 0x4D}; // CHANGE LOOP TO MODIFY AND TEST
This gives me 22.9 MPH. Happy scooting.
Tested on Jump ES200B
#include <Arduino.h>
int powerPin = 5;
byte messageA[] = {0xA6, 0x12, 0x02, 0x10, 0x14, 0xCF}; //SOME SORT OF UNKNOWN COMMAND THAT IS SENT EVERYTIME SCOOTER TURNS ON
byte messageB[] = {0xA6, 0x12, 0x02, 0x01, 0x14, 0xE7}; // TURNS ON ESC AND DISPLAY IN MPH
byte messageC[] = {0xA6, 0x12, 0x02, 0x05, 0x14, 0xDC}; // LOOP CODE TO STAY ON: TURNS ON HEADLIGHT, ESC ON, AND DISPLAY IN MPH
byte messageD[] = {0xA6, 0x12, 0x02, 0x85, 0x24, 0x4D}; // CHANGE LOOP TO MODIFY AND TEST
void setup() {
// initialize Serial1:
Serial.begin(9600);
pinMode(powerPin, OUTPUT);
digitalWrite(powerPin, HIGH);
Serial.write(messageA, sizeof(messageA));
//delay(500);
//Serial.write(messageB, sizeof(messageB));
}
void loop() {
delay(500);
Serial.write(messageD, sizeof(messageD));
}
It appears that the only bytes that matter are the 4th set for lights on, lights blink, MPH, or KPH select
The fifth set is for speed mode select: 20kph or 36kph
byte messageA[] = {0xA6, 0x12, 0x02, 0x10, 0x14, 0xCF}; // MAKES HEADLIGHT BLINK CODE BEFORE STARTUP
byte messageB[] = {0xA6, 0x12, 0x02, 0XE5, 0xE4, 0xDD}; // LIGHT ON & ESC ON & MPH & MAX SPEED
byte messageC[] = {0xA6, 0x12, 0x02, 0XF5, 0xE4, 0x31}; // LIGHT ON & ESC ON & KPH & MAX SPEED
byte messageE[] = {0xA6, 0x12, 0x02, 0XE1, 0xE4, 0xE6}; // LIGHT OFF & ESC ON & MPH & FAST
byte messageF[] = {0xA6, 0x12, 0x02, 0XE3, 0xE4, 0x77}; // LIGHT Flash & ESC ON & MPH & Fast
byte messageG[] = {0xA6, 0x12, 0x02, 0XE5, 0xE4, 0xDD}; // LIGHT ON & ESC ON & MPH & FAST
Scooter unlock code for the ES200B Jump Scooter.
Created by @bastis256 with collaboration from @MrSpriggs1
*/
#include <Arduino.h>
int powerPin = 5;
// byte messageA[] = {0xA6, 0x12, 0x02, 0x10, 0x14, 0xCF};
// byte messageB[] = {0xA6, 0x12, 0x02, 0x11, 0x14, 0x0B};
byte messageG[] = {0xA6, 0x12, 0x02, 0XE5, 0xE4, 0xDD}; // LIGHT ON & ESC ON & MPH & FAST
byte messageA[] = {0xA6, 0x12, 0x02, 0x10, 0x14, 0xCF}; // MAKES HEADLIGHT BLINK CODE BEFORE STARTUP
byte messageB[] = {0xA6, 0x12, 0x02, 0XE5, 0xE4, 0xDD}; // LIGHT ON & ESC ON & MPH & MAX SPEED
byte messageC[] = {0xA6, 0x12, 0x02, 0XF5, 0xE4, 0x31}; // LIGHT ON & ESC ON & KPH & MAX SPEED
byte messageD[] = {0xA6, 0x12, 0x02, 0x85, 0x24, 0x4D};
byte messageE[] = {0xA6, 0x12, 0x02, 0XE1, 0xE4, 0xE6}; // LIGHT OFF & ESC ON & MPH & FAST
byte messageF[] = {0xA6, 0x12, 0x02, 0XE3, 0xE4, 0x77}; // LIGHT Flash & ESC ON & MPH & Fast
byte messageH[] = {0xA6, 0x12, 0x02, 0x35, 0xFF, 0x38}; // LIGHT Flash & ESC ON & MPH & Fast
void setup() {
// initialize Serial:
Serial.begin(9600);
pinMode(powerPin, OUTPUT);
digitalWrite(powerPin, HIGH);
}
void loop() {
delay(200); // it's the good time in the original kit
Serial.write(messageH, sizeof(messageH));
}