Page 72 of 73

Re: [TUT] How to unlock your Electisan Tier or Dott scooter *Alpha*

Posted: Sat May 30, 2020 7:53 pm
by Biingobom
I guess that the 2-minutes turnoff problem is based on an update to the iot-system because there are many people who did not have any of these problems with older scooters (older software). Maybe the rental companies made an update to the es200 scooters which cause this problem. It could be something like a roundrobin-code or something similar.

Re: [TUT] How to unlock your Electisan Tier or Dott scooter *Alpha*

Posted: Sat May 30, 2020 8:31 pm
by joeyfreshwater
Biingobom wrote:
Sat May 30, 2020 7:53 pm
I guess that the 2-minutes turnoff problem is based on an update to the iot-system because there are many people who did not have any of these problems with older scooters (older software). Maybe the rental companies made an update to the es200 scooters which cause this problem. It could be something like a roundrobin-code or something similar.
maybe thats why the kit i bought from batteryprovider isnt working and they arent responded to my emails for assistance lol

Re: [TUT] How to unlock your Electisan Tier or Dott scooter *Alpha*

Posted: Sun Jun 07, 2020 12:51 pm
by Peter Meter
Hello guys,

can someone please check-out my project and help me?

1. Can you please check out my esp code, because I'm not sure if it's correct. I want to try varios "Start Bytes" with one try.
My code:
Code: Select all
/*
   -- VOI Controller --
   
   This source code of graphical user interface 
   has been generated automatically by RemoteXY editor.
   To compile this code using RemoteXY library 2.4.3 or later version 
   download by link http://remotexy.com/en/library/
   To connect using RemoteXY mobile app by link http://remotexy.com/en/download/                   
     - for ANDROID 4.5.1 or later version;
     - for iOS 1.4.1 or later version;
    
   This source code is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.    
*/

//////////////////////////////////////////////
//        RemoteXY include library          //
//////////////////////////////////////////////

// RemoteXY select connection mode and include library 
#define REMOTEXY_MODE__ESP32CORE_BLE

#include <RemoteXY.h>
#include <Arduino.h>

// RemoteXY connection settings 
#define REMOTEXY_BLUETOOTH_NAME "VOI Controller V3"
//#define REMOTEXY_ACCESS_PASSWORD "password" //dont work for me -> why?


// RemoteXY configurate  
#pragma pack(push, 1)
uint8_t RemoteXY_CONF[] =
  { 255,4,0,0,0,151,0,10,52,1,
  2,1,12,22,39,7,52,8,31,31,
  80,111,119,101,114,0,83,104,117,116,
  32,100,111,119,110,0,2,1,12,34,
  39,7,52,8,31,31,70,97,115,116,
  32,115,112,101,101,100,0,83,108,111,
  119,32,83,112,101,101,100,0,129,0,
  7,4,49,6,16,86,79,73,32,67,
  111,110,116,114,111,108,108,101,114,32,
  86,51,0,2,1,12,46,39,7,52,
  8,31,31,76,105,103,104,116,115,32,
  111,110,0,76,105,103,104,116,115,32,
  111,102,102,0,2,1,12,58,39,7,
  52,8,31,31,80,111,119,101,114,32,
  86,79,73,0,83,104,117,116,32,100,
  111,119,110,32,86,79,73,0 };
  
// this structure defines all the variables and events of your control interface 
struct {

    // input variables
  uint8_t switch_power; // =1 if switch ON and =0 if OFF 
  uint8_t switch_fastspeed; // =1 if switch ON and =0 if OFF 
  uint8_t switch_light; // =1 if switch ON and =0 if OFF 
  uint8_t switch_powervoi; // =1 if switch ON and =0 if OFF 

    // other variable
  uint8_t connect_flag;  // =1 if wire connected, else =0 

} RemoteXY;
#pragma pack(pop)

////////////////////////////////////////////
//         Scooter Command include        //
///////////////////////////////////////////

byte slowvoi[] = {0xA6, 0x12, 0x02, 0x65, 0x14, 0x86}; // Speed Limit to 20 km/h (tested on voi by mayaku)
byte slow1[] = {0xA6, 0x12, 0x02, 0XF1, 0x14, 0x7E}; // LIGHT OFF & ESC ON & KPH & SLOW (tested by Wileok)
byte slow2[] = {0xA6, 0x12, 0x02, 0XF5, 0x14, 0x45}; // LIGHT ON & ESC ON & KPH & SLOW (tested by Wileok)

byte fastvoi[] = {0xA6, 0x12, 0x02, 0x35, 0xFF, 0x38}; // Maximum Speed (tested on voi by mayaku)
byte fast1[] = {0xA6, 0x12, 0x02, 0XF1, 0xE4, 0x0A}; // LIGHT OFF & ESC ON & KPH & FAST (tested by Wileok)
byte fast2[] = {0xA6, 0x12, 0x02, 0XF5, 0xE4, 0x31}; // LIGHT ON & ESC ON & KPH & FAST (tested by Wileok)

byte off[] = {0xA6, 0x12, 0x02, 0x00, 0xFF, 0xEA}; //Off (tested on voi by mayaku)

void setup()
{
  RemoteXY_Init ();

  Serial.begin(9600);
}

void loop()
{
  RemoteXY_Handler ();
  if((RemoteXY.switch_power == 1) && (RemoteXY.switch_fastspeed == 0) && (RemoteXY.switch_light == 0)) //light off + slow
  {
      Serial.write(slow1, sizeof(slow1));    
  }
  else if((RemoteXY.switch_power == 1) && (RemoteXY.switch_fastspeed) == 0 && (RemoteXY.switch_light == 1)) //light on + slow
  {
      Serial.write(slow2, sizeof(slow2));    
  }
  else if((RemoteXY.switch_power == 1) && (RemoteXY.switch_fastspeed) == 1 && (RemoteXY.switch_light == 0)) //light off + fast
  {
      Serial.write(fast1, sizeof(fast1));
  }
  else if((RemoteXY.switch_power == 1) && (RemoteXY.switch_fastspeed) == 1 && (RemoteXY.switch_light == 1)) //light on + fast
  {
      Serial.write(fast2, sizeof(fast2));
  }
  else if((RemoteXY.switch_power == 1) && (RemoteXY.switch_fastspeed) == 0 && (RemoteXY.switch_powervoi == 1)) //voi slow + light???
  {
      Serial.write(slowvoi, sizeof(slowvoi));
  }
  else if((RemoteXY.switch_power == 1) && (RemoteXY.switch_fastspeed) == 1 && (RemoteXY.switch_powervoi == 1)) //voi fast + light???
  {
      Serial.write(fastvoi, sizeof(fastvoi));
  }
      else
  {
      Serial.write(off, sizeof(off));     
  }
  delay(200);
}
To view images REGISTER or LOGIN for full access.


2. Can you please check out my wiring, is it correct?
To view images REGISTER or LOGIN for full access.


3. I could not find the right screwdriver for the black box (voi voiager2) so I drilled it out. Which screwdriver do I need to open it up without destroying it?

Thank you guys!

Re: [TUT] How to unlock your Electisan Tier or Dott scooter *Alpha*

Posted: Mon Jun 15, 2020 8:52 am
by Peter Meter
It didnt' worked on the Voiager 2 ES100 (mostly equal to the Tier ES200)... I dont know why...
Maybe the code, maybe the my wiring, or maybe an IoT update.
Does somebody has any idea?
Peter Meter wrote:
Sun Jun 07, 2020 12:51 pm
Hello guys,

can someone please check-out my project and help me?

1. Can you please check out my esp code, because I'm not sure if it's correct. I want to try varios "Start Bytes" with one try.
My code:
Code: Select all
/*
   -- VOI Controller --
   
   This source code of graphical user interface 
   has been generated automatically by RemoteXY editor.
   To compile this code using RemoteXY library 2.4.3 or later version 
   download by link http://remotexy.com/en/library/
   To connect using RemoteXY mobile app by link http://remotexy.com/en/download/                   
     - for ANDROID 4.5.1 or later version;
     - for iOS 1.4.1 or later version;
    
   This source code is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.    
*/

//////////////////////////////////////////////
//        RemoteXY include library          //
//////////////////////////////////////////////

// RemoteXY select connection mode and include library 
#define REMOTEXY_MODE__ESP32CORE_BLE

#include <RemoteXY.h>
#include <Arduino.h>

// RemoteXY connection settings 
#define REMOTEXY_BLUETOOTH_NAME "VOI Controller V3"
//#define REMOTEXY_ACCESS_PASSWORD "password" //dont work for me -> why?


// RemoteXY configurate  
#pragma pack(push, 1)
uint8_t RemoteXY_CONF[] =
  { 255,4,0,0,0,151,0,10,52,1,
  2,1,12,22,39,7,52,8,31,31,
  80,111,119,101,114,0,83,104,117,116,
  32,100,111,119,110,0,2,1,12,34,
  39,7,52,8,31,31,70,97,115,116,
  32,115,112,101,101,100,0,83,108,111,
  119,32,83,112,101,101,100,0,129,0,
  7,4,49,6,16,86,79,73,32,67,
  111,110,116,114,111,108,108,101,114,32,
  86,51,0,2,1,12,46,39,7,52,
  8,31,31,76,105,103,104,116,115,32,
  111,110,0,76,105,103,104,116,115,32,
  111,102,102,0,2,1,12,58,39,7,
  52,8,31,31,80,111,119,101,114,32,
  86,79,73,0,83,104,117,116,32,100,
  111,119,110,32,86,79,73,0 };
  
// this structure defines all the variables and events of your control interface 
struct {

    // input variables
  uint8_t switch_power; // =1 if switch ON and =0 if OFF 
  uint8_t switch_fastspeed; // =1 if switch ON and =0 if OFF 
  uint8_t switch_light; // =1 if switch ON and =0 if OFF 
  uint8_t switch_powervoi; // =1 if switch ON and =0 if OFF 

    // other variable
  uint8_t connect_flag;  // =1 if wire connected, else =0 

} RemoteXY;
#pragma pack(pop)

////////////////////////////////////////////
//         Scooter Command include        //
///////////////////////////////////////////

byte slowvoi[] = {0xA6, 0x12, 0x02, 0x65, 0x14, 0x86}; // Speed Limit to 20 km/h (tested on voi by mayaku)
byte slow1[] = {0xA6, 0x12, 0x02, 0XF1, 0x14, 0x7E}; // LIGHT OFF & ESC ON & KPH & SLOW (tested by Wileok)
byte slow2[] = {0xA6, 0x12, 0x02, 0XF5, 0x14, 0x45}; // LIGHT ON & ESC ON & KPH & SLOW (tested by Wileok)

byte fastvoi[] = {0xA6, 0x12, 0x02, 0x35, 0xFF, 0x38}; // Maximum Speed (tested on voi by mayaku)
byte fast1[] = {0xA6, 0x12, 0x02, 0XF1, 0xE4, 0x0A}; // LIGHT OFF & ESC ON & KPH & FAST (tested by Wileok)
byte fast2[] = {0xA6, 0x12, 0x02, 0XF5, 0xE4, 0x31}; // LIGHT ON & ESC ON & KPH & FAST (tested by Wileok)

byte off[] = {0xA6, 0x12, 0x02, 0x00, 0xFF, 0xEA}; //Off (tested on voi by mayaku)

void setup()
{
  RemoteXY_Init ();

  Serial.begin(9600);
}

void loop()
{
  RemoteXY_Handler ();
  if((RemoteXY.switch_power == 1) && (RemoteXY.switch_fastspeed == 0) && (RemoteXY.switch_light == 0)) //light off + slow
  {
      Serial.write(slow1, sizeof(slow1));    
  }
  else if((RemoteXY.switch_power == 1) && (RemoteXY.switch_fastspeed) == 0 && (RemoteXY.switch_light == 1)) //light on + slow
  {
      Serial.write(slow2, sizeof(slow2));    
  }
  else if((RemoteXY.switch_power == 1) && (RemoteXY.switch_fastspeed) == 1 && (RemoteXY.switch_light == 0)) //light off + fast
  {
      Serial.write(fast1, sizeof(fast1));
  }
  else if((RemoteXY.switch_power == 1) && (RemoteXY.switch_fastspeed) == 1 && (RemoteXY.switch_light == 1)) //light on + fast
  {
      Serial.write(fast2, sizeof(fast2));
  }
  else if((RemoteXY.switch_power == 1) && (RemoteXY.switch_fastspeed) == 0 && (RemoteXY.switch_powervoi == 1)) //voi slow + light???
  {
      Serial.write(slowvoi, sizeof(slowvoi));
  }
  else if((RemoteXY.switch_power == 1) && (RemoteXY.switch_fastspeed) == 1 && (RemoteXY.switch_powervoi == 1)) //voi fast + light???
  {
      Serial.write(fastvoi, sizeof(fastvoi));
  }
      else
  {
      Serial.write(off, sizeof(off));     
  }
  delay(200);
}
To view images REGISTER or LOGIN for full access.


2. Can you please check out my wiring, is it correct?
To view images REGISTER or LOGIN for full access.


3. I could not find the right screwdriver for the black box (voi voiager2) so I drilled it out. Which screwdriver do I need to open it up without destroying it?

Thank you guys!

Re: [TUT] How to unlock your Electisan Tier or Dott scooter *Alpha*

Posted: Mon Jun 15, 2020 9:25 am
by Aquaman
Pretty sure you need ground (GND) connected as well, and RXD (yellow) isn't necessary to activate the scooter. (Maybe it can be used in som way to get updates on battery charge and that type of stuff. But than you need to decode the bytes sent to the IOT-box from the scooter.)

Also password line in the code is not active, it's comment when delimited by // ...

https://en.m.wikipedia.org/wiki/Compari ... )#Comments
Peter Meter wrote:
Mon Jun 15, 2020 8:52 am
It didnt' worked on the Voiager 2 ES100 (mostly equal to the Tier ES200)... I dont know why...
Maybe the code, maybe the my wiring, or maybe an IoT update.
Does somebody has any idea?
Peter Meter wrote:
Sun Jun 07, 2020 12:51 pm
Hello guys,

can someone please check-out my project and help me?

1. Can you please check out my esp code, because I'm not sure if it's correct. I want to try varios "Start Bytes" with one try.
My code:
Code: Select all
/*
   -- VOI Controller --
   
   This source code of graphical user interface 
   has been generated automatically by RemoteXY editor.
   To compile this code using RemoteXY library 2.4.3 or later version 
   download by link http://remotexy.com/en/library/
   To connect using RemoteXY mobile app by link http://remotexy.com/en/download/                   
     - for ANDROID 4.5.1 or later version;
     - for iOS 1.4.1 or later version;
    
   This source code is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.    
*/

//////////////////////////////////////////////
//        RemoteXY include library          //
//////////////////////////////////////////////

// RemoteXY select connection mode and include library 
#define REMOTEXY_MODE__ESP32CORE_BLE

#include <RemoteXY.h>
#include <Arduino.h>

// RemoteXY connection settings 
#define REMOTEXY_BLUETOOTH_NAME "VOI Controller V3"
//#define REMOTEXY_ACCESS_PASSWORD "password" //dont work for me -> why?


// RemoteXY configurate  
#pragma pack(push, 1)
uint8_t RemoteXY_CONF[] =
  { 255,4,0,0,0,151,0,10,52,1,
  2,1,12,22,39,7,52,8,31,31,
  80,111,119,101,114,0,83,104,117,116,
  32,100,111,119,110,0,2,1,12,34,
  39,7,52,8,31,31,70,97,115,116,
  32,115,112,101,101,100,0,83,108,111,
  119,32,83,112,101,101,100,0,129,0,
  7,4,49,6,16,86,79,73,32,67,
  111,110,116,114,111,108,108,101,114,32,
  86,51,0,2,1,12,46,39,7,52,
  8,31,31,76,105,103,104,116,115,32,
  111,110,0,76,105,103,104,116,115,32,
  111,102,102,0,2,1,12,58,39,7,
  52,8,31,31,80,111,119,101,114,32,
  86,79,73,0,83,104,117,116,32,100,
  111,119,110,32,86,79,73,0 };
  
// this structure defines all the variables and events of your control interface 
struct {

    // input variables
  uint8_t switch_power; // =1 if switch ON and =0 if OFF 
  uint8_t switch_fastspeed; // =1 if switch ON and =0 if OFF 
  uint8_t switch_light; // =1 if switch ON and =0 if OFF 
  uint8_t switch_powervoi; // =1 if switch ON and =0 if OFF 

    // other variable
  uint8_t connect_flag;  // =1 if wire connected, else =0 

} RemoteXY;
#pragma pack(pop)

////////////////////////////////////////////
//         Scooter Command include        //
///////////////////////////////////////////

byte slowvoi[] = {0xA6, 0x12, 0x02, 0x65, 0x14, 0x86}; // Speed Limit to 20 km/h (tested on voi by mayaku)
byte slow1[] = {0xA6, 0x12, 0x02, 0XF1, 0x14, 0x7E}; // LIGHT OFF & ESC ON & KPH & SLOW (tested by Wileok)
byte slow2[] = {0xA6, 0x12, 0x02, 0XF5, 0x14, 0x45}; // LIGHT ON & ESC ON & KPH & SLOW (tested by Wileok)

byte fastvoi[] = {0xA6, 0x12, 0x02, 0x35, 0xFF, 0x38}; // Maximum Speed (tested on voi by mayaku)
byte fast1[] = {0xA6, 0x12, 0x02, 0XF1, 0xE4, 0x0A}; // LIGHT OFF & ESC ON & KPH & FAST (tested by Wileok)
byte fast2[] = {0xA6, 0x12, 0x02, 0XF5, 0xE4, 0x31}; // LIGHT ON & ESC ON & KPH & FAST (tested by Wileok)

byte off[] = {0xA6, 0x12, 0x02, 0x00, 0xFF, 0xEA}; //Off (tested on voi by mayaku)

void setup()
{
  RemoteXY_Init ();

  Serial.begin(9600);
}

void loop()
{
  RemoteXY_Handler ();
  if((RemoteXY.switch_power == 1) && (RemoteXY.switch_fastspeed == 0) && (RemoteXY.switch_light == 0)) //light off + slow
  {
      Serial.write(slow1, sizeof(slow1));    
  }
  else if((RemoteXY.switch_power == 1) && (RemoteXY.switch_fastspeed) == 0 && (RemoteXY.switch_light == 1)) //light on + slow
  {
      Serial.write(slow2, sizeof(slow2));    
  }
  else if((RemoteXY.switch_power == 1) && (RemoteXY.switch_fastspeed) == 1 && (RemoteXY.switch_light == 0)) //light off + fast
  {
      Serial.write(fast1, sizeof(fast1));
  }
  else if((RemoteXY.switch_power == 1) && (RemoteXY.switch_fastspeed) == 1 && (RemoteXY.switch_light == 1)) //light on + fast
  {
      Serial.write(fast2, sizeof(fast2));
  }
  else if((RemoteXY.switch_power == 1) && (RemoteXY.switch_fastspeed) == 0 && (RemoteXY.switch_powervoi == 1)) //voi slow + light???
  {
      Serial.write(slowvoi, sizeof(slowvoi));
  }
  else if((RemoteXY.switch_power == 1) && (RemoteXY.switch_fastspeed) == 1 && (RemoteXY.switch_powervoi == 1)) //voi fast + light???
  {
      Serial.write(fastvoi, sizeof(fastvoi));
  }
      else
  {
      Serial.write(off, sizeof(off));     
  }
  delay(200);
}
To view images REGISTER or LOGIN for full access.


2. Can you please check out my wiring, is it correct?
To view images REGISTER or LOGIN for full access.


3. I could not find the right screwdriver for the black box (voi voiager2) so I drilled it out. Which screwdriver do I need to open it up without destroying it?

Thank you guys!

Re: [TUT] How to unlock your Electisan Tier or Dott scooter *Alpha*

Posted: Mon Jun 15, 2020 10:21 am
by Peter Meter
Thank you for your fast answer! I will try with GND connected!
I knew about the password line, I put the // there because after I compiled the code, I got a Warning. That is why I thought it’s not working for me. But after I compiled and transferred it to the ESP32 it worked.
Thank you for the help, I will report if it worked out.
Aquaman wrote:
Mon Jun 15, 2020 9:25 am
Pretty sure you need ground (GND) connected as well, and RXD (yellow) isn't necessary to activate the scooter. (Maybe it can be used in som way to get updates on battery charge and that type of stuff. But than you need to decode the bytes sent to the IOT-box from the scooter.)

Also password line in the code is not active, it's comment when delimited by // ...

https://en.m.wikipedia.org/wiki/Compari ... )#Comments


Re: [TUT] How to unlock your Electisan Tier or Dott scooter *Alpha*

Posted: Mon Jun 15, 2020 11:18 am
by Aquaman
Be shure to check voltages on all pins.
Double check which one is 36v, so you don't mess with that one if not absolutely necessary To view images REGISTER or LOGIN for full access.


To view images REGISTER or LOGIN for full access.
And don't trust any pinout and colors mentioned, do your own measurements both once, twice and so on to be sure...

I got super confused when I used the cable from a IOT-box from ES400 TIER scooter to connect Arduino to VOI with help of VOI guide, blue and yellow wire replaced each other in that cable. To view images REGISTER or LOGIN for full access.

I was lucky it wasn't weird stuff on the other pin's and that I didn't fry anything. To view images REGISTER or LOGIN for full access.
To view images REGISTER or LOGIN for full access.


Be totally sure it is an OKAI ES100/200/VOIAGER 2 you're experimenting with. Then it should be relatively safe, but if it's something else then it can be CAN and other weird stuff on the pins easily capable of frying your ESP32 in a heartbeat. To view images REGISTER or LOGIN for full access.
To view images REGISTER or LOGIN for full access.





Peter Meter wrote:
Mon Jun 15, 2020 10:21 am
Thank you for your fast answer! I will try with GND connected!
I knew about the password line, I put the // there because after I compiled the code, I got a Warning. That is why I thought it’s not working for me. But after I compiled and transferred it to the ESP32 it worked.
Thank you for the help, I will report if it worked out.
Aquaman wrote:
Mon Jun 15, 2020 9:25 am
Pretty sure you need ground (GND) connected as well, and RXD (yellow) isn't necessary to activate the scooter. (Maybe it can be used in som way to get updates on battery charge and that type of stuff. But than you need to decode the bytes sent to the IOT-box from the scooter.)

Also password line in the code is not active, it's comment when delimited by // ...

https://en.m.wikipedia.org/wiki/Compari ... )#Comments


Re: [TUT] How to unlock your Electisan Tier or Dott scooter *Alpha*

Posted: Mon Jun 29, 2020 2:32 am
by bigredrobot
Been making lots of boxes lately but have not had much luck with the local birds, only jumps. Been using terminal blocks for easier repair when the iny little wires fatigue and fail. Also replaced some of the cheaper red push button witches with solid toggles and better metal screw terminal push buttons. Lots of hot glue now to secure the julet cable.
To view images REGISTER or LOGIN for full access.

Re: [TUT] How to unlock your Electisan Tier or Dott scooter *Alpha*

Posted: Wed Jul 22, 2020 10:40 am
by bigredrobot
Scooters for scrap in North Carolina along with about 20-30,000 Jump Bikes back in May when Uber sold jump to Lime in the process of buying Lime. Not sure how that works but these look to be all gone now.

To view images REGISTER or LOGIN for full access.

Re: [TUT] How to unlock your Electisan Tier or Dott scooter *Alpha*

Posted: Wed Jul 22, 2020 10:48 am
by bigredrobot
I have a strange issue I could use your help on. A while back I had 6 Jump scooters. Two of them started showing a weird issue where the speed would jump up randomly, especially going down hill. It would quickly shoot up by 15-20mph and then return to normal every 8-10 seconds. Going down a hill it the speed on dashboard would show 18mph then 28mph then 18mph, 22mph then 46mph.

I basically ignored it Because it was only annoying but on flat ground if the motor speed jumped, the motor would cut out for a half second until it calibrated.

Sometimes, switching off and then on again would buy me 5-20 minutes of no issues before it would start happening.

Well, the first and second scooter I experienced this issue on have now both shut off completely. They will not turn on or display a charge on dashboard. One has wheel lock engaged, the other does not.

I took one apart to about 40% last night and tried disconnecting battery, motor, dash, etc. trying to reset a connection, clear a fault etc. No luck.

Couldn't get the motor off the fork and find the leads but I suspect there is some kind of hall sensor in the wheel that has gone wacky and cant accurately report the speed, as a result the motor has shut down the controller. I was going down a steep hill on one before it happened and suppose that regen could have been over extended and fried something. Both still seem to take a charge when connected but no activities on dashboard to reflect that.