Hallo zusammen, ich habe mal wieder ein kleines Anliegen und komme hier seit 2 Tagen auch mit recherchieren nicht weiter. Ich habe hier eine China Funkfernbedienung für RC Drohnen und das entsprechende Empfängermodul rumliegen und wollte hier etwas daraus bauen. Leider ist der Hersteller unklar und zu den Modulen gibt es keinerlei Beschreibung. Modulbezeichnung (RF297RX-1) In mühseliger Testarbeit konnte ich folgendes Herausfinden: DI - Pin Unklar TX - Daten an Fernbedienung senden (115200 Baud) RX - Daten von Fernbedienung empfangen (115200 Baud. Hier erhalte ich immer 42,54,3C,01,04,01,04,) IN2 - Pin Unklar IN1 - PPM Signal der Steuerungen und Taster + - +3,3V - - GND Mittlerweile habe ich es jedoch hinbekommen das PPM Signal über einen Arduino auszuwerten und so 2 Motoren anzusteuern. Falle es jemand weiterhilft .. das PPM Signal liegt an IN1 an. Das Modul bietet zudem die Möglichkeit an über eine serielle Verbindung Daten zurück zur Fernbedienung zu senden (Spannung/Daten vom GPS Modul/Geschwindigkeit und Höhe). Diese Daten konnte ich bereits mal mitsniffen und auch mitgesniffte Daten wieder an die Fernbedienung zurück senden. Was mir nun fehlt ist, wie sich die Checksumme zusammensetzt, damit ich eigene Werte übertragen kann. Hier habe ich schon sämtliche CRC Kalkulatoren getestet, sämtliche Berechnungen angestellt aber bin hierbei nie zu einem Ergebnis gekommen. Ich hoffe einer von euch hat hierzu die passende Idee wie sich die Checksumme bilden lässt. Bei der letzten Stelle handelt es sich vermutlich um die Checksumme, die vorletzte Stelle steht vermutlich für die Spannung, da 79 in HEX die 121 -> 12,1V widerspiegeln die angelegt waren. Das Sniffing hat folgende Ergebnisse geliefert: 15:53:30.184 -> 42,54,3E,0F,04,CB,06,3F,00,CC,0B,00,F6,FF,FD,FF,00,00,00,79,66, 15:53:30.685 -> 42,54,3E,0F,04,CB,06,3F,00,CB,0B,00,F6,FF,FD,FF,00,00,00,79,4B, 15:53:31.185 -> 42,54,3E,0F,04,CB,06,40,00,CB,0B,00,F6,FF,FD,FF,00,00,00,79,34, 15:53:31.687 -> 42,54,3E,0F,04,CB,06,40,00,CC,0B,00,F6,FF,FF,FF,00,00,00,79,30, 15:53:32.436 -> 42,54,3E,0F,04,CB,06,40,00,CC,0B,00,F6,FF,FE,FF,00,00,00,79,30, 15:53:32.937 -> 42,54,3E,0F,04,CB,06,40,00,CB,0B,00,F6,FF,FE,FF,00,00,00,F9,37, 15:53:33.439 -> 42,54,3E,0F,04,CB,06,40,00,C3,0B,00,F6,FF,FE,FF,00,00,00,79,3F, 15:53:33.940 -> 42,54,3E,0F,04,CB,06,3F,00,CB,0B,00,F6,FF,FE,FF,00,00,00,79,48, 15:53:34.441 -> 42,54,3E,0F,04,CB,06,40,00,C6,0B,00,F6,FF,FE,FF,00,00,00,79,3A, 15:53:34.742 -> 42,54,3E,0F,04,CB,06,3F,00,CB,0B,00,F6,FF,FE,FF,00,00,00,79,48, 15:53:35.698 -> 42,A4,3E,0F,04,CB,06,3F,00,CC,0B,00,F6,FF,FE,FF,00,00,00,79,4F, 15:53:36.198 -> 42,54,3E,0F,04,CB,06,40,00,C4,0B,00,F6,FF,FE,FF,00,00,00,79,38, 15:53:36.698 -> 42,54,3E,0F,04,CB,06,3F,00,CB,0B,00,F6,FF,FE,FF,00,00,00,79,48, 15:53:37.200 -> 42,54,3E,0F,04,CB,06,3F,00,CC,0B,00,F6,FF,FE,FF,00,00,00,5E,FA, 15:53:37.701 -> 42,54,3E,0F,04,CB,06,3F,00,CC,0B,00,F6,FF,FE,FF,00,00,00,79,4F, 15:53:37.748 -> 42,54,3E,0F,04,CB,06,3F,00,CC,0B,00,F6,FF,FE,FF,00,00,00,79,4F, 15:53:38.952 -> 42,54,3E,0F,04,CB,06,7F,00,C5,0B,00,F7,FF,FE,FF,00,00,00,F9,47, 15:53:39.453 -> 42,54,3E,0F,04,CB,06,3F,00,C1,0B,00,F7,FF,FE,FF,00,00,00,79,43, 15:53:39.955 -> 42,54,3E,0F,04,CB,06,80,00,C2,0B,00,F7,FF,FE,FF,00,00,00,79,3F, 15:53:40.455 -> 42,54,3E,0F,04,CB,06,80,00,C1,0B,00,F7,FF,FE,FF,00,00,00,79,3C, 15:53:40.810 -> 42,54,3E,0F,04,CB,06,40,00,C2,0B,00,F7,FF,FE,FF,00,00,00,79,3F, 15:53:41.659 -> 42,54,3E,0F,04,CB,06,40,00,CB,0B,00,F7,FF,FE,FF,00,00,00,79,36, 15:53:42.160 -> 42,54,3E,0F,04,CB,06,40,00,CA,0B,00,F7,FF,FE,FF,00,00,00,79,37, 15:53:43.663 -> 42,54,3E,0F,04,CB,06,3F,00,CB,0B,00,F8,FF,FF,FF,00,00,00,79,46, 15:53:44.917 -> 42,54,3E,0F,04,CB,06,3F,00,CB,0B,00,F8,FF,FE,FF,00,00,00,79,46, 15:53:45.418 -> 42,54,3E,0F,04,CB,06,3F,00,CC,0B,00,F8,FF,FF,FF,00,00,00,79,D0, 15:53:45.920 -> 42,54,3E,0F,04,CB,06,3F,00,CC,0B,00,F8,FF,FE,FF,00,00,00,79,41, 15:53:46.422 -> 42,54,3E,0F,04,CB,06,3F,00,CC,0B,00,F8,FF,FE,FF,00,00,00,79,D0, 15:53:46.871 -> 42,54,3E,0F,04,CB,06,3F,00,CB,0B,00,F8,FF,FE,FF,00,00,00,79,46, 15:53:47.673 -> 42,54,3E,0F,04,CB,06,3F,00,CB,0B,00,F8,FF,FE,FF,00,00,00,79,46, 15:53:48.174 -> 42,54,3E,0F,04,CB,06,3F,00,CC,0B,00,F8,FF,FE,FF,00,00,00,79,41, 15:53:48.676 -> 42,54,3E,0F,04,CB,06,3F,00,CB,0B,00,F8,FF,FE,FF,00,00,00,79,46, 15:53:49.176 -> 42,54,3E,0F,04,CB,06,3F,00,C3,0B,00,F8,FF,FE,FF,00,00,00,79,4E, 15:53:49.678 -> 42,54,3E,0F,04,CB,06,3F,00,CB,0B,00,F8,FF,FE,FF,00,00,00,5E,F4, 15:53:49.878 -> 42,54,3E,0F,04,CB,06,3F,00,CB,0B,00,F8,FF,FF,FF,00,00,00,79,43, 15:53:50.932 -> 42,54,3E,0F,04,CB,06,3F,00,CB,0B,00,F8,FF,FE,FF,00,00,00,79,46, 15:53:51.433 -> 42,54,3E,0F,04,CB,06,3F,00,CC,0B,00,F8,FF,FE,FF,00,00,00,79,41, 15:53:51.935 -> 42,54,3E,0F,04,CB,06,3F,00,C7,0B,00,F8,FF,FE,FF,00,00,00,79,4A, 15:53:52.467 -> 42,54,3E,0F,04,CB,06,3F,00,CB,0B,00,F8,FF,FE,FF,00,00,00,79,46, 15:53:52.915 -> 42,54,3E,0F,04,CB,06,3F,00,C3,0B,00,F8,FF,FE,FF,00,00,00,79,4E, 15:53:53.670 -> 42,54,3E,0F,04,CB,06,3F,00,CB,0B,00,F8,FF,FE,FF,00,00,00,79,46, 15:53:54.171 -> 42,54,3E,0F,04,CB,06,3F,00,CB,0B,00,F8,FF,FE,FF,00,00,00,79,46, 15:53:54.673 -> 42,54,3E,0F,04,CB,06,3F,00,CC,0B,00,F8,FF,FF,FF,00,00,00,79,D0, 15:53:55.175 -> 42,54,3E,0F,04,CB,06,3F,00,CC,0B,00,F8,FF,FE,FF,00,00,00,79,D0, 15:53:55.676 -> 42,54,3E,0F,04,CB,06,3F,00,CB,0B,00,F8,FF,FF,FF,00,00,00,79,43, 15:53:55.977 -> 42,54,3E,0F,04,9B,06,3F,00,CB,0B,00,F8,FF,FE,FF,00,00,00,79,46, 15:53:56.926 -> 42,54,3E,0F,04,CB,06,3F,00,CB,0B,00,F8,FF,FE,FF,00,00,00,79,46, 15:53:58.930 -> 42,54,3E,0F,04,CB,06,3F,00,CC,0B,00,F8,FF,FD,FF,00,00,00,79,41, 15:53:59.030 -> 42,54,3E,0F,04,CB,06,3F,00,CB,0B,00,F7,FF,FD,FF,00,00,00,79,4A, 15:54:00.186 -> 42,54,3E,0F,04,CB,06,3F,00,CC,0B,00,F7,FF,FD,FF,00,00,00,5E,D3, 15:54:00.687 -> 42,54,3E,0F,04,CB,06,3F,00,CB,0B,00,F6,FF,FD,FF,00,00,00,79,4B, 15:54:01.189 -> 42,54,3E,1F,04,CB,06,3F,00,CB,0B,00,F6,FF,FD,FF,00,00,00,79,4B, 15:54:01.690 -> 42,54,3E,0F,04,CB,06,3F,00,CB,0B,00,F6,FF,FD,FF,00,00,00,79,4B, 15:54:02.038 -> 42,54,3E,0F,04,CB,06,3F,00,CB,0B,00,F6,FF,FD,FF,00,00,00,79,4B, 15:54:02.940 -> 42,54,3E,0F,04,CB,06,3F,00,CC,0B,00,F6,FF,FE,FF,00,00,00,5E,FA, 15:54:03.441 -> 42,54,3E,0F,04,CB,06,3F,00,CB,0B,00,F6,FF,FE,FF,00,00,00,79,48, 15:54:03.943 -> 42,54,3E,0F,04,CB,06,3F,00,CB,0B,00,F6,FF,FE,FF,00,00,00,79,48, 15:54:04.444 -> 42,54,3E,0F,04,CB,06,3F,00,CC,0B,00,F6,FF,FE,FF,00,00,00,79,4F, 15:54:04.946 -> 42,54,3E,0F,04,CB,06,3F,00,CC,0B,00,F7,FF,FE,FF,00,00,00,F9,4E, 15:54:05.099 -> 42,54,3E,0F,04,CB,06,3F,00,CB,0B,00,F7,FF,FE,FF,00,00,00,79,49, 15:54:06.201 -> 42,54,3E,0F,04,CB,06,3F,00,CC,0B,00,F7,FF,FE,FF,00,00,00,5E,FA,
Ich hab gerade mal eine Zeile ausprobiert mit den üblichen Polynomen und bin auf die schnelle auch nicht auf ein Ergebnis gekommen. Allerdings ist mir ein Artikel vom CCC eingefallen, vielleicht hilft dir das weiter: https://media.ccc.de/v/eh16-27-how_to_reverese_crcs
Hallo, deine CHK hat irgendwas mit der einfachen XOR-Summe zu tun. Lässt man die ersten 3 Zeichen einer Meldung weg dann ist die XOR Summe über die restlichen Zeichen (inclusive der vermuteten CHK) in 90% der Fälle gleich 0x00. In den wenigen Fällen in denen es nicht stimmt liegt vielleicht ein "sniffing"-Fehler vor ???
1 | /*
|
2 | 4. 5. 6. .........................................CHK, XOR-Summe
|
3 | 0f,04,9b,06,3f,00,cb,0b,00,f8,ff,fe,ff,00,00,00,79,46,=50
|
4 | 0f,04,cb,06,3f,00,c1,0b,00,f7,ff,fe,ff,00,00,00,79,43,=00
|
5 | 0f,04,cb,06,3f,00,c3,0b,00,f8,ff,fe,ff,00,00,00,79,4e,=00
|
6 | 0f,04,cb,06,3f,00,c3,0b,00,f8,ff,fe,ff,00,00,00,79,4e,=00
|
7 | 0f,04,cb,06,3f,00,c7,0b,00,f8,ff,fe,ff,00,00,00,79,4a,=00
|
8 | 0f,04,cb,06,3f,00,cb,0b,00,f6,ff,fd,ff,00,00,00,79,4b,=00
|
9 | 0f,04,cb,06,3f,00,cb,0b,00,f6,ff,fd,ff,00,00,00,79,4b,=00
|
10 | 0f,04,cb,06,3f,00,cb,0b,00,f6,ff,fd,ff,00,00,00,79,4b,=00
|
11 | 0f,04,cb,06,3f,00,cb,0b,00,f6,ff,fd,ff,00,00,00,79,4b,=00
|
12 | 0f,04,cb,06,3f,00,cb,0b,00,f6,ff,fe,ff,00,00,00,79,48,=00
|
13 | 0f,04,cb,06,3f,00,cb,0b,00,f6,ff,fe,ff,00,00,00,79,48,=00
|
14 | 0f,04,cb,06,3f,00,cb,0b,00,f6,ff,fe,ff,00,00,00,79,48,=00
|
15 | 0f,04,cb,06,3f,00,cb,0b,00,f6,ff,fe,ff,00,00,00,79,48,=00
|
16 | 0f,04,cb,06,3f,00,cb,0b,00,f6,ff,fe,ff,00,00,00,79,48,=00
|
17 | 0f,04,cb,06,3f,00,cb,0b,00,f7,ff,fd,ff,00,00,00,79,4a,=00
|
18 | 0f,04,cb,06,3f,00,cb,0b,00,f7,ff,fe,ff,00,00,00,79,49,=00
|
19 | 0f,04,cb,06,3f,00,cb,0b,00,f8,ff,fe,ff,00,00,00,5e,f4,=95
|
20 | 0f,04,cb,06,3f,00,cb,0b,00,f8,ff,fe,ff,00,00,00,79,46,=00
|
21 | 0f,04,cb,06,3f,00,cb,0b,00,f8,ff,fe,ff,00,00,00,79,46,=00
|
22 | 0f,04,cb,06,3f,00,cb,0b,00,f8,ff,fe,ff,00,00,00,79,46,=00
|
23 | 0f,04,cb,06,3f,00,cb,0b,00,f8,ff,fe,ff,00,00,00,79,46,=00
|
24 | 0f,04,cb,06,3f,00,cb,0b,00,f8,ff,fe,ff,00,00,00,79,46,=00
|
25 | 0f,04,cb,06,3f,00,cb,0b,00,f8,ff,fe,ff,00,00,00,79,46,=00
|
26 | 0f,04,cb,06,3f,00,cb,0b,00,f8,ff,fe,ff,00,00,00,79,46,=00
|
27 | 0f,04,cb,06,3f,00,cb,0b,00,f8,ff,fe,ff,00,00,00,79,46,=00
|
28 | 0f,04,cb,06,3f,00,cb,0b,00,f8,ff,fe,ff,00,00,00,79,46,=00
|
29 | 0f,04,cb,06,3f,00,cb,0b,00,f8,ff,ff,ff,00,00,00,79,43,=04
|
30 | 0f,04,cb,06,3f,00,cb,0b,00,f8,ff,ff,ff,00,00,00,79,43,=04
|
31 | 0f,04,cb,06,3f,00,cb,0b,00,f8,ff,ff,ff,00,00,00,79,46,=01
|
32 | 0f,04,cb,06,3f,00,cc,0b,00,f6,ff,fd,ff,00,00,00,79,66,=2a
|
33 | 0f,04,cb,06,3f,00,cc,0b,00,f6,ff,fe,ff,00,00,00,5e,fa,=92
|
34 | 0f,04,cb,06,3f,00,cc,0b,00,f6,ff,fe,ff,00,00,00,5e,fa,=92
|
35 | 0f,04,cb,06,3f,00,cc,0b,00,f6,ff,fe,ff,00,00,00,79,4f,=00
|
36 | 0f,04,cb,06,3f,00,cc,0b,00,f6,ff,fe,ff,00,00,00,79,4f,=00
|
37 | 0f,04,cb,06,3f,00,cc,0b,00,f6,ff,fe,ff,00,00,00,79,4f,=00
|
38 | 0f,04,cb,06,3f,00,cc,0b,00,f7,ff,fd,ff,00,00,00,5e,d3,=b9
|
39 | 0f,04,cb,06,3f,00,cc,0b,00,f7,ff,fe,ff,00,00,00,5e,fa,=93
|
40 | 0f,04,cb,06,3f,00,cc,0b,00,f7,ff,fe,ff,00,00,00,f9,4e,=80
|
41 | 0f,04,cb,06,3f,00,cc,0b,00,f8,ff,fd,ff,00,00,00,79,41,=03
|
42 | 0f,04,cb,06,3f,00,cc,0b,00,f8,ff,fe,ff,00,00,00,79,41,=00
|
43 | 0f,04,cb,06,3f,00,cc,0b,00,f8,ff,fe,ff,00,00,00,79,41,=00
|
44 | 0f,04,cb,06,3f,00,cc,0b,00,f8,ff,fe,ff,00,00,00,79,41,=00
|
45 | 0f,04,cb,06,3f,00,cc,0b,00,f8,ff,fe,ff,00,00,00,79,d0,=91
|
46 | 0f,04,cb,06,3f,00,cc,0b,00,f8,ff,fe,ff,00,00,00,79,d0,=91
|
47 | 0f,04,cb,06,3f,00,cc,0b,00,f8,ff,ff,ff,00,00,00,79,d0,=90
|
48 | 0f,04,cb,06,3f,00,cc,0b,00,f8,ff,ff,ff,00,00,00,79,d0,=90
|
49 | 0f,04,cb,06,40,00,c2,0b,00,f7,ff,fe,ff,00,00,00,79,3f,=00
|
50 | 0f,04,cb,06,40,00,c3,0b,00,f6,ff,fe,ff,00,00,00,79,3f,=00
|
51 | 0f,04,cb,06,40,00,c4,0b,00,f6,ff,fe,ff,00,00,00,79,38,=00
|
52 | 0f,04,cb,06,40,00,c6,0b,00,f6,ff,fe,ff,00,00,00,79,3a,=00
|
53 | 0f,04,cb,06,40,00,ca,0b,00,f7,ff,fe,ff,00,00,00,79,37,=00
|
54 | 0f,04,cb,06,40,00,cb,0b,00,f6,ff,fd,ff,00,00,00,79,34,=00
|
55 | 0f,04,cb,06,40,00,cb,0b,00,f6,ff,fe,ff,00,00,00,f9,37,=80
|
56 | 0f,04,cb,06,40,00,cb,0b,00,f7,ff,fe,ff,00,00,00,79,36,=00
|
57 | 0f,04,cb,06,40,00,cc,0b,00,f6,ff,fe,ff,00,00,00,79,30,=00
|
58 | 0f,04,cb,06,40,00,cc,0b,00,f6,ff,ff,ff,00,00,00,79,30,=01
|
59 | 0f,04,cb,06,7f,00,c5,0b,00,f7,ff,fe,ff,00,00,00,f9,47,=c0
|
60 | 0f,04,cb,06,80,00,c1,0b,00,f7,ff,fe,ff,00,00,00,79,3c,=c0
|
61 | 0f,04,cb,06,80,00,c2,0b,00,f7,ff,fe,ff,00,00,00,79,3f,=c0
|
62 | 1f,04,cb,06,3f,00,cb,0b,00,f6,ff,fd,ff,00,00,00,79,4b,=10 */
|
Deine Meldungen sind hier sortiert und ohne die ersten 3 Zeichen Gruss
Tatsache da hast du recht. Die Fernbedienung lässt sich nun korrekt steuern. Vielen Dank dafür. Ich frage mich immer wie Ihr auf solche Ideen kommt :-) Hier noch ein paar Daten die ich herausgefunden habe. Ich gehe davon aus, dass stelle 4-10 die Seriennummer oder so widerspiegelt. // Stelle 1: unbekannt, immer 42 // Stelle 2: unbekannt, immer 54 // Stelle 3: unbekannt, immer 3E // Stelle 4: unbekannt // Stelle 5: unbekannt // Stelle 6: unbekannt // Stelle 7: unbekannt // Stelle 8: unbekannt // Stelle 9: unbekannt // Stelle 10: unbekannt // Stelle 11: Richtung 01 - 0F // Stelle 12: Anzahl Sateliten // Stelle 13: unbekannt // Stelle 14: Höhe (grob) // Stelle 15: unbekannt // Stelle 16: unbekannt // Stelle 17: Distance unten Rechts (fein) // Stelle 18: Distance unten Rechts (grob) // Stelle 19: Geschwindigkeit m/s unten links // Stelle 20: Spannung // Stelle 21: Checksumme byte message[21] = {0x42, 0x54, 0x3E, 0x0F, 0x04, 0xcb, 0x06, 0x40, 0x00, 0x00, 0x07, 0x08, 0x00, 0x05, 0xFE, 0xFF, 0xFF, 0x10, 0x50, 0x79, 0x00}; message[20] = message[3] ^ message[4] ^ message[5] ^ message[6] ^ message[7] ^ message[8] ^ message[9] ^ message[10] ^ message[11] ^ message[12] ^ message[13] ^ message[14] ^ message[15] ^ message[16] ^ message[17] ^ message[18] ^ message[19]; for (int i = 0; i < sizeof(message); i++) { Serial.print(message[i], HEX); Serial.print(" "); } mySerial.write(message, sizeof(message)); Serial.println(" ");
1 | const int SIZE = 21; |
2 | |
3 | ...
|
4 | byte message[SIZE] = {0x42, 0x54, 0x3E, 0x0F, 0x04, 0xcb, 0x06, 0x40, |
5 | 0x00, 0x00, 0x07, 0x08, 0x00, 0x05, 0xFE, 0xFF, 0xFF, 0x10, 0x50, 0x79, |
6 | 0x00}; |
7 | |
8 | ...
|
9 | |
10 | message[SIZE-1] = 0x00; |
11 | for (int i = 0; i < SIZE; i++) |
12 | {
|
13 | if (i >= 3) message[SIZE-1] ^= message[i]; |
14 | |
15 | Serial.print(message[i], HEX); |
16 | Serial.print(" "); |
17 | }
|
18 | |
19 | mySerial.write(message, SIZE); |
20 | Serial.println(" "); |
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.