-
Notifications
You must be signed in to change notification settings - Fork 2
Home
Welcome to the KISS_OSD wiki!
the serial connection is 8bit 115200baud full duplex you can get the datas at serial1 (RX/TX pins next to the USB port) the FC will only answer to requests of on the serial, as long as there is no USB plugged in.
to request the telemetry data simply write 0x20
to it. the replay function lookes like this:
// GUI viewable variables
serial_send_byte(5); // startByte
serial_send_byte(154); // BytesNum the byte count that will be sent
serial_send_floats(RXcommands,8); // 16
serial_send_byte(Armed); // 17
serial_send_word((uint16_t)(LiPoVolt*100)); // 19
serial_send_words(GyroXYZ,3); //25
serial_send_words(ACCXYZ,3); // 31
serial_send_word((int16_t)(angle[0]*100)); // 33
serial_send_word((int16_t)(angle[1]*100)); // 35
serial_send_word((int16_t)(angle[2]*100)); // 37
serial_send_word(I2C_Errors); // 39
serial_send_word(calibGyroDone); //41
serial_send_byte(failsave); //42
serial_send_word((uint16_t)debug*1000); //44
serial_send_byte(0); //45
serial_send_floats(GyroRaw,3); //51
serial_send_floats(ACCRaw,3); //57
serial_send_floats(ACCtrim,2); // 61
serial_send_floats(ACCAng,2); // 65
serial_send_byte(mode); // 66
serial_send_word((uint16_t)debug1*1000); //68
serial_send_words(PWMOutVals,6); // 80
serial_send_word((uint16_t)debug2*1000); //82
serial_send_byte(idleTime);//83
serial_send_words(ESC_Telemetrie[0],5); // 93
serial_send_words(ESC_Telemetrie[1],5); // 103
serial_send_words(ESC_Telemetrie[2],5); // 113
serial_send_words(ESC_Telemetrie[3],5); // 123
serial_send_words(ESC_Telemetrie[4],5); // 133
serial_send_words(ESC_Telemetrie[5],5); // 143
serial_send_byte(MaxTemp); // 144
serial_send_word(MinVolt); // 146
serial_send_word(MaxAmps); // 148
serial_send_word(usedMAH); // 150
serial_send_word(MaxRPMs); // 152
serial_send_word(MaxWatt); // 154
serial_send_byte(checkSum); // endByte
the channel order is throttle, roll, pitch, yaw, aux 1234
gyro and acc datas are send X,Y,Z//0,1,2
the ESC's telemetry is for each ESC
- 0: temperature in 1°C,
- 1: voltage in 0.01V
- 2: current in 0.01A
- 3: consumption in 1mah
- 4: erpm in 100erpm
the checksum becomes useless as there are too many bytes now. i will add a real CRC in future. if you still want to use it, it is the average of all bytes send (excluding the two start bytes and its self)
floats are used *1000 so (float)1.0f == (int16_t)1000
16bit wariables are sent with high byte first