An Electric Scooter Community on a Mission to Stamp out Transportation Mediocrity.

Covers electric scooter models whether shared or for consumers.
#15132
nobody wrote:
Wed Sep 04, 2019 5:01 pm
galaksy2001 wrote:
Wed Sep 04, 2019 12:46 pm
nobody wrote:
Wed Aug 21, 2019 5:20 pm
I have had problem with CRC, but analyzing packets speed controller sends after ENABLE pin goes high, I have been able to get correct polynomial etc.. Naturally it sends same CRC as it awaits.
Hi ;) Do you confirm it's CRC-16 with poly 0x1021 ?
Hi, yes 0x1021 is correct. But you also need correct init and other things.
I have isolated one packet coming from speed controller and pasted it to online calculator. Then I could find the correct CRC by comparing what controller sent with calculated result.
Easy....
Yes, that is the easiest way.
#15135
Zrohn wrote:
Wed Sep 04, 2019 9:01 pm
Hi,
I understand not wanting to share the solution, but any and all help is much appreciated. I have the TX and RX lines connected to RealTerm and GND to GND and the blue wire hooked up to 3.3v. When I open up coms with a baud of 9600, I get a seemingly random loop of hex values. Is this normal?
Hi,
You are almost there!!
Before I wrote my code for microcontroller, I used RealTerm. RealTerm can be set up to "parse" incoming packets from scooter to show one packet on one line. This makes everything much easier. Then you will notice that incoming packets follows the protocol ZipperZ published.
From received data I was able to find out correct CRC16 type (my previous post). Then I constructed "turn on" packet, added two CRC bytes, hit "send" and scooter came to life. All you need is RealTerm, protocol description and online CRC calculator.

In my microcontroller code I have not even bothered to calculate CRC, but used hand precalculated values. After all you need only 4 different packets for basic control.
#15152
this seems complicated. I am sorry but not a total noob here. I know how to serial into this but on the coding side theres blank. I'd appreciate a step by step tutorial without the gps board.

Ive got a uart flasher but what do you use to send the actual packet(s) once automated?

And i read you dont just send the hex values theres a handshake with the gps board beforehand?
what is going on?
#15229
ZipperZ wrote:
Thu Sep 05, 2019 1:25 am
nobody wrote:
Wed Sep 04, 2019 5:01 pm
galaksy2001 wrote:
Wed Sep 04, 2019 12:46 pm


Hi ;) Do you confirm it's CRC-16 with poly 0x1021 ?
Hi, yes 0x1021 is correct. But you also need correct init and other things.
I have isolated one packet coming from speed controller and pasted it to online calculator. Then I could find the correct CRC by comparing what controller sent with calculated result.
Easy....
Yes, that is the easiest way.
Done ! Thx guys :D
#15260
galaksy2001 wrote:
Sat Sep 07, 2019 2:06 pm
Do you have a " 06e" error after 10 minutes ? Then the motor 's controller is no more reachable and I have to disconnect the controler from power ... quite embarassing , isn't it ? :lol:
Yeah... keep-alive messages have to be sent. I do "not know" how in "original" it is done. Maybe someone could share if they are sending the "enable" periodically or the "LIMEBIKE" or anything else?
#15261
What do you mean by "Keep-alive" messages ? The unlock code has to be placed in the loop part of the arduino ? I did it but it doesn't work ...

Edit : i answered too quickly. I think i understand what you mean. i have to send messages regularly to prevent controller from sleeping, that's it ?
Edit 2 : sending the "enable" periodically doesn't work... "limebike" ?
  • 1
  • 3
  • 4
  • 5
  • 6
  • 7
  • 21

As this was a rental version whos overstock was […]

Any one got any info on beryl bikes I seen a few[…]

LH/ TF-100 Style Display.

Hi I recently converted a Bird Zero to a personal […]

How do you operate dash without button? I have[…]