Wheellog / Wheellog.Android

App for EUC on Android. Various popular unicycle manufacturers are supported.
GNU General Public License v3.0
61 stars 20 forks source link

BLE data format changed for latest Begode/Gotway wheels? #392

Closed projectitis closed 6 months ago

projectitis commented 1 year ago

Hi there,

I am working on an Arduino library that reads data from wheels, using some of this excellent code as a reference for my c++ code.

I personally have a new (late 2022) MTen3, and the raw data stream that I see from my device is slightly different from that in the comments at the bottom of the Gotway Adapter.

Frames now come in varying lengths.

It looks like the data is backwards compatible, because buffer[00..18] are the same as before. However, the WheelLog code will discard the longer Frame A packets completely because of the footer check.

Not sure if it makes a difference, but data is received in alternating packets of 20 and then 8 bytes (20, 8, 20, 8, 20, 8, 20, 8 etc)

Here are the different frames (with markup for visibility):

// Frame A (buffer[18] == 00)
[55 AA] - 19 D0 00 00 00 00 00 00 FF 7E FD 6E 00 01 00 00 [00] - [18] - [5A 5A 5A 5A]
[55 AA] - 19 D0 00 00 00 00 00 00 FF 9C FD 2B 00 01 00 00 [00] - [18] - 00 0A 04 - [18] - [5A 5A 5A 5A] - 5A 5A 5A 5A
// Frame B (buffer[18] == 04)
[55 AA] - 00 02 A1 39 44 00 02 BF 00 24 00 02 00 00 00 0A [04] - [18] - [5A 5A 5A 5A]
[55 AA] - 00 02 A1 39 44 00 02 BF 00 24 00 02 00 00 00 0A [04] - [18] - [5A 5A 5A 5A] - 5A 5A 5A 5A

Once I have my code in a better state, I will help decode what the additional data might be! But in the meantime, just a heads-up :)

Some raw data from my wheel (just sitting still beside my desk):

55AA0002A139440002C0002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002BF002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002BF002400020000000A04185A5A5A5A
55AA19D0000000000000FF9CFD2B000100000018000A04185A5A5A5A5A5A5A5A
55AA0002A139440002BF002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002BF002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002BE002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002BE002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002BE002400020000000A04185A5A5A5A
55AA19D0000000000000FF92FD3A000100000018000A04185A5A5A5A5A5A5A5A
55AA0002A139440002BE002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002BD002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002BD002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002BD002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002BD002400020000000A04185A5A5A5A
55AA19D0000000000000FF9CFD4E000100000018000A04185A5A5A5A5A5A5A5A
55AA0002A139440002BC002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002BC002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002BC002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002BC002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002BC002400020000000A04185A5A5A5A
55AA19D0000000000000FF92FD64000100000018000A04185A5A5A5A5A5A5A5A
55AA0002A139440002BB002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002BB002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002BB002400020000000A04185A5A5A5A
55AA19D0000000000000FF7EFD6E0001000000185A5A5A5A
55AA0002A139440002BB002400020000000A04185A5A5A5A
55AA19D0000000000000FF88FD74000100000018000A04185A5A5A5A5A5A5A5A
55AA0002A139440002BA002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002BA002400020000000A04185A5A5A5A
55AA19D0000000000000FFA6FD7E000100000018000A04185A5A5A5A5A5A5A5A
55AA0002A139440002BA002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002B9002400020000000A04185A5A5A5A
55AA19D0000000000000FF92FD8C000100000018000A04185A5A5A5A5A5A5A5A
55AA0002A139440002B9002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002B9002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002B9002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002B8002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002B8002400020000000A04185A5A5A5A
55AA19D0000000000000FF9CFDA3000100000018000A04185A5A5A5A5A5A5A5A
55AA0002A139440002B8002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002B8002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002B7002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002B7002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002B7002400020000000A04185A5A5A5A
55AA19D0000000000000FFA6FDBB000100000018000A04185A5A5A5A5A5A5A5A
55AA0002A139440002B6002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002B6002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002B6002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002B6002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002B6002400020000000A04185A5A5A5A
55AA19D0000000000000FF9CFDD1000100000018000A04185A5A5A5A5A5A5A5A
55AA0002A139440002B5002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002B5002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002B5002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002B5002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002B4002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002B4002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002B4002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002B4002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002B4002400020000000A04185A5A5A5A
55AA19D0000000000000FFA6FDF80001000000185A5A5A5A
55AA0002A139440002B3002400020000000A04185A5A5A5A
55AA19D0000000000000FF9CFDFD000100000018000A04185A5A5A5A5A5A5A5A
55AA0002A139440002B3002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002B3002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002B3002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002B2002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002B2002400020000000A04185A5A5A5A
55AA19D0000000000000FFBAFE13000100000018000A04185A5A5A5A5A5A5A5A
55AA0002A139440002B2002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002B2002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002B1002400020000000A04185A5A5A5A
55AA19D0000000000000FF88FE220001000000185A5A5A5A
55AA0002A139440002B1002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002B1002400020000000A04185A5A5A5A
55AA19D0000000000000FFA6FE2C000100000018000A04185A5A5A5A5A5A5A5A
55AA0002A139440002B1002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002B0002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002B0002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002B0002400020000000A04185A5A5A5A
55AA19D0000000000000FFBAFE3D000100000018000A04185A5A5A5A5A5A5A5A
55AA0002A139440002B0002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002AF002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002AF002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002AF002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002AF002400020000000A04185A5A5A5A
55AA19D0000000000000FFBAFE4E000100000018000A04185A5A5A5A5A5A5A5A
55AA0002A139440002AE002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002AE002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002AE002400020000000A04185A5A5A5A
55AA19D0000000000000FFBAFE650001000000185A5A5A5A
55AA0002A139440002AE002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002AE002400020000000A04185A5A5A5A
55AA19D0000000000000FFB0FE6C000100000018000A04185A5A5A5A5A5A5A5A
55AA0002A139440002AD002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002AD002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002AD002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002AD002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002AC002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002AC002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002AC002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002AC002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002AC002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002AB002400020000000A04185A5A5A5A
55AA19D0000000000000FFBAFE91000100000018000A04185A5A5A5A5A5A5A5A
55AA0002A139440002AB002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002AB002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002AB002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002AA002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002AA002400020000000A04185A5A5A5A
55AA19C8000000000000FFB0FEA90001000000185A5A5A5A
55AA0002A139440002AA002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002AA002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002AA002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002A9002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002A9002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002A9002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002A9002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002A9002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002A8002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002A8002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002A8002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002A8002400020000000A04185A5A5A5A
55AA19C8000000000000FFCEFED2000100000018000A04185A5A5A5A5A5A5A5A
55AA0002A139440002A7002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002A7002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002A7002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002A7002400020000000A04185A5A5A5A
55AA19C8000000000000FFCEFEE7000100000018000A04185A5A5A5A5A5A5A5A
55AA0002A139440002A6002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002A6002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002A6002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002A6002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002A6002400020000000A04185A5A5A5A
55AA19C8000000000000FFD8FEF8000100000018000A04185A5A5A5A5A5A5A5A
55AA0002A139440002A5002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002A5002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002A5002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002A5002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002A4002400020000000A04185A5A5A5A
55AA19C8000000000000FFCEFF0A000100000018000A04185A5A5A5A5A5A5A5A
55AA0002A139440002A4002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002A4002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002A4002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002A3002400020000000A04185A5A5A5A
55AA19C8000000000000FFE2FF20000100000018000A04185A5A5A5A
55AA19C8000000000000FFCEFF20000100000018000A04185A5A5A5A5A5A5A5A
55AA0002A139440002A3002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002A3002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002A2002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002A2002400020000000A04185A5A5A5A
55AA19C8000000000000FFE2FF34000100000018000A04185A5A5A5A5A5A5A5A
55AA0002A139440002A2002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002A2002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002A1002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002A1002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002A1002400020000000A04185A5A5A5A
55AA19C8000000000000FFCEFF4B000100000018000A04185A5A5A5A5A5A5A5A
55AA0002A139440002A1002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002A0002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002A0002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002A0002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A139440002A0002400020000000A04185A5A5A5A
55AA19C8000000000000FFE2FF60000100000018000A04185A5A5A5A5A5A5A5A
55AA0002A1394400029F002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A1394400029F002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A1394400029F002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A1394400029F002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A1394400029F002400020000000A04185A5A5A5A
55AA19C8000000000000FFE2FF6A000100000018000A04185A5A5A5A5A5A5A5A
55AA0002A1394400029E002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A1394400029E002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A1394400029E002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A1394400029D002400020000000A04185A5A5A5A
55AA19C8000000000000FFCEFF80000100000018000A04185A5A5A5A5A5A5A5A
55AA0002A1394400029D002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A1394400029D002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A1394400029D002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A1394400029C002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A1394400029C002400020000000A04185A5A5A5A
55AA19C8000000000000FFECFF92000100000018000A04185A5A5A5A5A5A5A5A
55AA0002A1394400029C002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A1394400029C002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A1394400029B002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A1394400029B002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A1394400029B002400020000000A04185A5A5A5A
55AA19C80000000000000000FFA3000100000018000A04185A5A5A5A5A5A5A5A
55AA0002A1394400029B002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A1394400029A002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A1394400029A002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A1394400029A002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A1394400029A002400020000000A04185A5A5A5A
55AA19C8000000000000000AFFB1000100000018000A04185A5A5A5A5A5A5A5A
55AA0002A13944000299002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A13944000299002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A13944000299002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A13944000299002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A13944000299002400020000000A04185A5A5A5A
55AA19C8000000000000FFE2FFC7000100000018000A04185A5A5A5A5A5A5A5A
55AA0002A13944000298002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A13944000298002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A13944000298002400020000000A04185A5A5A5A5A5A5A5A
55AA0002A13944000298002400020000000A04185A5A5A5A
55AA19C80000000000000000FFD3000100000018000A04185A5A5A5A

Here is some raw data, but in the 20/8 format that is is actually received:

000A04185A5A5A5A
5A5A5A5A55AA0002A13944000277002400020000
000A04185A5A5A5A
5A5A5A5A55AA0002A13944000277002400020000
000A04185A5A5A5A
55AA19C8000000000000FFE20236000100000018
000A04185A5A5A5A
5A5A5A5A55AA0002A13944000277002400020000
000A04185A5A5A5A
5A5A5A5A55AA0002A13944000276002400020000
000A04185A5A5A5A
5A5A5A5A55AA0002A13944000276002400020000
000A04185A5A5A5A
5A5A5A5A55AA0002A13944000276002400020000
000A04185A5A5A5A
5A5A5A5A55AA0002A13944000276002400020000
000A04185A5A5A5A
55AA19C8000000000000FFEC0245000100000018
000A04185A5A5A5A
5A5A5A5A55AA0002A13944000275002400020000
000A04185A5A5A5A
5A5A5A5A55AA0002A13944000275002400020000
000A04185A5A5A5A
5A5A5A5A55AA0002A13944000275002400020000
000A04185A5A5A5A
5A5A5A5A55AA0002A13944000275002400020000
000A04185A5A5A5A
55AA19C800000000000000000247000100000018
000A04185A5A5A5A
55AA19C800000000000000000245000100000018
000A04185A5A5A5A
5A5A5A5A55AA0002A13944000274002400020000
000A04185A5A5A5A
5A5A5A5A55AA0002A13944000274002400020000
000A04185A5A5A5A
5A5A5A5A55AA0002A13944000274002400020000
000A04185A5A5A5A
55AA19C80000000000000014024B000100000018
000A04185A5A5A5A
55AA19C8000000000000FFF60254000100000018
000A04185A5A5A5A
5A5A5A5A55AA0002A13944000273002400020000
000A04185A5A5A5A
5A5A5A5A55AA0002A13944000273002400020000
000A04185A5A5A5A
5A5A5A5A55AA0002A13944000273002400020000
000A04185A5A5A5A
5A5A5A5A55AA0002A13944000273002400020000
000A04185A5A5A5A
5A5A5A5A55AA0002A13944000272002400020000
000A04185A5A5A5A
55AA19C8000000000000FFEC025B000100000018
000A04185A5A5A5A
5A5A5A5A55AA0002A13944000272002400020000
000A04185A5A5A5A
5A5A5A5A55AA0002A13944000272002400020000
000A04185A5A5A5A
5A5A5A5A55AA0002A13944000272002400020000
000A04185A5A5A5A
5A5A5A5A55AA0002A13944000271002400020000
000A04185A5A5A5A
5A5A5A5A55AA0002A13944000271002400020000
000A04185A5A5A5A
55AA19C8000000000000FFF6025F000100000018
000A04185A5A5A5A
5A5A5A5A55AA0002A13944000271002400020000
000A04185A5A5A5A
5A5A5A5A55AA0002A13944000271002400020000
000A04185A5A5A5A
5A5A5A5A55AA0002A13944000270002400020000
000A04185A5A5A5A
5A5A5A5A55AA0002A13944000270002400020000
000A04185A5A5A5A
5A5A5A5A55AA0002A13944000270002400020000
000A04185A5A5A5A
55AA19C800000000000000000264000100000018
000A04185A5A5A5A
5A5A5A5A55AA0002A13944000270002400020000
000A04185A5A5A5A
5A5A5A5A55AA0002A1394400026F002400020000
000A04185A5A5A5A
5A5A5A5A55AA0002A1394400026F002400020000
paymicro commented 1 year ago

It looks more like the MTU (data length) has changed, not the packet format. Therefore, one package is not divided into 2 parts.