- Posts: 11
Flysky AFHDS 2A, protocol as used i10, i6, iT4,
- Appelmoesman
- Offline
I understand why it might be important to get it to work though because although I use a 2:30sec timer to give me a rough estimate my 1600Mah Zippy 35C came down all puffed yesterday when filming the quick demo flight.
Goebish adviced me to get better batteries in the meantime! well you're right! for the zippy I pushed it too hard. my 1000mah 65C graphene and 1300mah 45C graphene get mildly warm but never puff. I use a 90000mah 18650 li-ion pack that I homebuild from scrap laptop battieries to charge in the field so I believe i should not complain Im really happy with my setup.
Please Log in or Create an account to join the conversation.
- goebish
- Offline
- I Void Warranties
- Posts: 2631
Please Log in or Create an account to join the conversation.
- goebish
- Offline
- I Void Warranties
- Posts: 2631
Appelmoesman wrote: my 1600Mah Zippy 35C came down all puffed yesterday
Your setup demands quite a bit of current actually, you should get some higher grade Li-Po packs (they cost twice as much and are heavier, but there's a reason), forget about Zippy
Please Log in or Create an account to join the conversation.
- goebish
- Offline
- I Void Warranties
- Posts: 2631
github.com/cleanflight/cleanflight/releases/tag/v1.14.0
Please Log in or Create an account to join the conversation.
- Fernandez
- Topic Author
- Offline
- Posts: 983
AFHDS 2a is very good and in my opinion toghether with Frsky on of the best price/performance choices for diy full range projects.......
Please Log in or Create an account to join the conversation.
- povlhp
- Offline
- Posts: 43
github.com/cleanflight/cleanflight/blob/...ain/telemetry/ibus.c
Can anybody tell me, how is it connected ? The Rx to the data out iBus port, and the Tx to the iBus sensor port ? The source clearly states not to connect Rx of the UART. Maybe because alreay used for data port ?
Code also talks about sent bytes coming back du to the conenction of Rx/tx at the iA6B.
Please Log in or Create an account to join the conversation.
- plaisthos
- Offline
- Posts: 10
Please Log in or Create an account to join the conversation.
- joelones
- Offline
- Posts: 27
Concerning telemetry, from what I understand it connects like FrSky, right? So from the F3's TX (UART3/TX pin OR pin 6 form IO_2) to the IBUS sensor port, which is where exactly? Also is the Devo 7E capable of telemetry?
Please forgive me if this has been asked.
Please Log in or Create an account to join the conversation.
- goebish
- Offline
- I Void Warranties
- Posts: 2631
Please Log in or Create an account to join the conversation.
- joelones
- Offline
- Posts: 27
Please Log in or Create an account to join the conversation.
- Appelmoesman
- Offline
- Posts: 11
fpv.tv/x210-build/
Devo7E and TGYIa6C receiver (SBUS)
with acc off and BB off only 30% cpu use on 4K-4K
Please Log in or Create an account to join the conversation.
- mclarenman01
- Offline
- Posts: 2
I have a FS-A8S and X6B on their way to me at the moment.
I will test them as soon as I get a chance and will let you know how they go
Please Log in or Create an account to join the conversation.
- ketsa
- Offline
- Posts: 47
Please Log in or Create an account to join the conversation.
- povlhp
- Offline
- Posts: 43
There is work going on at cleanflight, I have submitted a few data logs from using multiple sensors. At least on the iBus side, we get 1 measurement every 7ms or so (between data being sent over iBus ->FC).
They seem to have a type and a value.
For now I am fine with battery sensor, it is the most important. But would be nice to have support for more, including the custom stuff going into CleanFlight.
Please Log in or Create an account to join the conversation.
- goebish
- Offline
- I Void Warranties
- Posts: 2631
Hopefully I should have some free time for that by the end of the month.
Also, I think I know why telemetry page settings are not saved now.
Please Log in or Create an account to join the conversation.
- qba667
- Offline
- Posts: 16
0xAC(byte) SENSOR_ID (byte) SENSOR_INDEX (byte) PAYLOAD_LENGTH (byte) PAYLOAD (n bytes) ...........
frame may contains number of sensors but total length can not exceed 28 bytes.
Please Log in or Create an account to join the conversation.
- qba667
- Offline
- Posts: 16
0xAC(byte) SENSOR_ID (byte) SENSOR_INDEX (byte) PAYLOAD_LENGTH (byte) PAYLOAD (n bytes) ...........
frame may contains number of sensors but total length can not exceed 28 bytes.
@goebish as you are the master of AFHDS 2A reversing I would like to ask you about opinion.
After some changes in RX - to avoid checking if TX support extended telemetry (packet AD probably) I was able to get my AC frame on SPI of TX - here we have BAAD F00D (I have send it from emulated sensor).
Without changes in RX - it ask TX all time with AD frame.
AD frame is constructed in following code:
if ( word_200005F0 )
{
*buffer = 0xADu;
buffer[1] = (buffer[1] >> 7 << 7) | HIBYTE(word_200005F0) & 0xF | 0x80;
buffer[2] = (unsigned int)HIBYTE(word_200005F0) << 25 >> 29;
v7 = (unsigned __int8)(word_200005F0 - 6);
buffer[3] = v7;
v8 = HIBYTE(word_200005F2);
buffer[4] = word_200005F2;
buffer[5] = v8;
switch ( v7 )
{
case 1:
buffer[6] = dword_200005F4;
break;
case 2:
v9 = BYTE1(dword_200005F4);
buffer[6] = dword_200005F4;
buffer[7] = v9;
break;
case 4:
v10 = dword_200005F4;
buffer[6] = dword_200005F4;
buffer[7] = BYTE1(v10);
buffer[8] = v10 >> 16;
buffer[9] = BYTE3(v10);
break;
}
word_200005F0 = 0;
}
RAM:200005F0 word_200005F0 DCW 0
RAM:200005F2 word_200005F2 DCW 0xFA8A
RAM:200005F4 byte_200005F4 DCB 0
Structure is AD RXID (4bytes) TXID(4bytes) ...request data
Any ideas what can be requested?
Please Log in or Create an account to join the conversation.
- HappyHarry
- Offline
- Posts: 1136
Please Log in or Create an account to join the conversation.
- goebish
- Offline
- I Void Warranties
- Posts: 2631
@qba667, sorry but I've no idea, I've not been into that yet.
Please Log in or Create an account to join the conversation.
- qba667
- Offline
- Posts: 16
That is bug in RX. RX was never expecting such size of telemetry data.
sensors = 20000474
sensors[388]
0C A1 BA AD F0 0D BA AD F0 0D 8A FA
copy to
sensors[372]
0C A1 BA AD F0 0D BA AD F0 0D 8A FA
What is 200005A8
200005A8 = sensors + 378
sensors[372] 0C standard telemetry response byte 1
sensors[373] A1 standard telemetry response byte 2
sensors[374] BA standard telemetry response byte 3
sensors[375] AD standard telemetry response byte 4
sensors[376] F0 standard telemetry response byte 5
sensors[377] 0D standard telemetry response byte 6
sensors[378] BA 200005A8 - we are starting to write to memory used by mode 4 (some 2 way communication - using sensors AD packets)
sensors[379] AD
sensors[380] F0
sensors[381] 0D
sensors[380] 8A
sensors[381] FA
sensors[382] +1
sensors[383] +2
sensors[384] +3
sensors[385] +4
sensors[386] +5
sensors[387] +6
sensors[388] conflict! overlap with DMA buffer
Max response payload size = 8+6 = 14 bytes
It must be used by multi value sensors like altitude sensor CAT01 - it sends back 3 values. I have no such sensor to verify how it is working.
I would like to use another mode where I can push as much data as possible to TX.
The code for checking mode 4 looks like:
ad_resp_plus1 = *(_BYTE *)(ptr + 309); // AD response + 1 send from radio
if ( ad_resp_plus1 << 28 )
{
if ( (unsigned int)*(_BYTE *)(ptr + 309) << 25 >> 29 != 5 )
{
if ( (unsigned int)(ad_resp_plus1 << 25) >> 29 != 3 )
goto LABEL_51;
if ( *(_WORD *)(ptr + 372) != *(_WORD *)(ptr + 308) || *(_WORD *)(ptr + 374) != *(_WORD *)(ptr + 310) )// check if telemetry sensor matches AD packet
goto LABEL_65;
sizeOfSensorReponse = *(_BYTE *)(ptr + 372);
if ( sizeOfSensorReponse == 7 )
{
if ( *(_BYTE *)(ptr + 376) != *(_BYTE *)(ptr + 312) )// compare 4th byte of sensor response with 4th byte of AD response
goto LABEL_65;
}
else
{
if ( sizeOfSensorReponse != 8 )
{
if ( sizeOfSensorReponse == 10 && *(_DWORD *)(ptr + 376) == *(_DWORD *)(ptr + 312) )
goto LABEL_64;
LABEL_65:
v23 = *(_BYTE *)(ptr + 10) + 1;
goto LABEL_50;
}
if ( *(_WORD *)(ptr + 376) != *(_WORD *)(ptr + 312) )
goto LABEL_65;
}
LABEL_64:
copiedResponse = *(_DWORD *)(ptr + 372);
*(_DWORD *)(ptr + 384) = *(_DWORD *)(ptr + 376);// AD packet to send payload copy from sensor response
*(_DWORD *)(ptr + 380) = copiedResponse;// AD packet payload to send
v23 = 0;
LABEL_50:
*(_BYTE *)(ptr + 10) = v23;
*(_BYTE *)ptr = 3;
goto LABEL_51;
} // in case when shifting resuts in 5
sizeOfResponse = *(_BYTE *)(ptr + 372);
if ( sizeOfResponse == 7 || sizeOfResponse == 8 || sizeOfResponse == 10 )
{
response_plus1 = *(_BYTE *)(ptr + 373);
if ( (response_plus1 & 0xF) == (ad_resp_plus1 & 0xF)
&& (unsigned int)*(_BYTE *)(ptr + 373) << 25 >> 29 == 5
&& response_plus1 >> 7 == asSensor2
&& *(_WORD *)(ptr + 374) == *(_WORD *)(ptr + 310) )
{
goto LABEL_64;
}
}
goto LABEL_65;
}
v18 = *(_DWORD *)(ptr + 4) + 1;
*(_DWORD *)(ptr + 4) = v18;
if ( v18 >= 0xA )
{
LABEL_18:
v11 = 3;
LABEL_32:
*(_BYTE *)ptr = v11;
}
LABEL_33:
result = 0;
LABEL_34:
*(_BYTE *)(ptr + 10) = result;
break;
default:
goto LABEL_51;
}
}
return result;
}
Please Log in or Create an account to join the conversation.
- Home
- Forum
- Development
- Protocol Development
- Flysky AFHDS 2A, protocol as used i10, i6, iT4,