DJI FPV AIR UNIT to BETAFLIGHT communication

AIR UNIT sends sequence of 11 requests with 10 ms interval. Bataflight replies. Sequence repeated in 100 ms.

Top: FC;         Bottom: AirUnit

Here is the list of all MSP commabds used in the exchange:

MSP_FC_VERSION ID=03
MSP_NAME ID=10
MSP_FILTER_CONFIG ID=92
MSP_PID_ADVANCED ID=94
MSP_STATUS ID=101
MSP_RC ID=105
MSP_ANALOG ID=110
MSP_RC_TUNING ID=111
MSP_PID ID=112
MSP_BATTERY_STATE ID=13
MSP_STATUS_EX ID=150

Here is the decoded communication (1 period)

AIR UNIT -> FC FC-> AIR UNIT
17.047830500000000,Async Serial,$ (0x24)
17.047917000000002,Async Serial,M (0x4D)
17.048003999999999,Async Serial,< (0x3C)
17.048090999999999,Async Serial,’0′ (0x00)
17.048177500000001,Async Serial,’3′ (0x03)
17.048264499999998,Async Serial,’3′ (0x03)
 
(MSP_FC_VERSION 03)
 
  17.054576999999998,Async Serial,$ (0x24)
17.054663500000000,Async Serial,M (0x4D)
17.054749999999999,Async Serial,> (0x3E)
17.054836500000000,Async Serial,’3′ (0x03)
17.054922999999999,Async Serial,’3′ (0x03)
17.055009500000001,Async Serial,’3′ (0x03)
17.055095999999999,Async Serial,’5′ (0x05)
17.055182500000001,Async Serial,’1′ (0x01)
17.055269500000001,Async Serial,’7′ (0x07)
   
17.058577000000000,Async Serial,$ (0x24)
17.058664000000000,Async Serial,M (0x4D)
17.058750499999999,Async Serial,< (0x3C)
17.058837499999999,Async Serial,’0′ (0x00)
17.058924500000000,Async Serial,\n (0x0A)
17.059011000000002,Async Serial,\n (0x0A)
 
(MSP_NAME 10 //out message Returns user set board name-betaflight)
 
  17.064562500000001,Async Serial,$ (0x24)
17.064648999999999,Async Serial,M (0x4D)
17.064735500000001,Async Serial,> (0x3E)
17.064821999999999,Async Serial,’0′ (0x00)
17.064908500000001,Async Serial,\n (0x0A)
17.064995000000000,Async Serial,\n (0x0A)
   
17.067717500000001,Async Serial,$ (0x24)
17.067804500000001,Async Serial,M (0x4D)
17.067890999999999,Async Serial,< (0x3C)
17.067978000000000,Async Serial,’0′ (0x00)
17.068065000000001,Async Serial,\ (0x5C)
17.068151499999999,Async Serial,\ (0x5C)
 
(MSP_FILTER_CONFIG 92)
 
  17.074556999999999,Async Serial,$ (0x24)
17.074643500000001,Async Serial,M (0x4D)
17.074729999999999,Async Serial,> (0x3E)
17.074816500000001,Async Serial,’28’ (0x1C)
17.074902999999999,Async Serial,\ (0x5C)
17.074989500000001,Async Serial,d (0x64)
17.075075999999999,Async Serial,d (0x64)
17.075162500000001,Async Serial,’0′ (0x00)
17.075248999999999,Async Serial,’0′ (0x00)
17.075335500000001,Async Serial,’0′ (0x00)
17.075422000000000,Async Serial,’0′ (0x00)
17.075508500000002,Async Serial,’0′ (0x00)
17.075595000000000,Async Serial,’0′ (0x00)
17.075681500000002,Async Serial,’0′ (0x00)
17.075768000000000,Async Serial,’0′ (0x00)
17.075854499999998,Async Serial,’0′ (0x00)
17.075941000000000,Async Serial,’0′ (0x00)
17.076028000000001,Async Serial,’0′ (0x00)
17.076114499999999,Async Serial,’0′ (0x00)
17.076201000000001,Async Serial,’0′ (0x00)
17.076287499999999,Async Serial,’0′ (0x00)
17.076374000000001,Async Serial,’0′ (0x00)
17.076460500000000,Async Serial,’0′ (0x00)
17.076547000000001,Async Serial,’0′ (0x00)
17.076633500000000,Async Serial,’0′ (0x00)
17.076720000000002,Async Serial,d (0x64)
17.076806500000000,Async Serial,’0′ (0x00)
17.076892999999998,Async Serial,COMMA (0x2C)
17.076979500000000,Async Serial,’1′ (0x01)
17.077065999999999,Async Serial,’0′ (0x00)
17.077152500000000,Async Serial,’0′ (0x00)
17.077238999999999,Async Serial,’200′ (0xC8)
17.077325500000001,Async Serial,’0′ (0x00)
17.077411999999999,Async Serial,’193′ (0xC1)
   
17.078726000000000,Async Serial,$ (0x24)
17.078812500000002,Async Serial,M (0x4D)
17.078899499999999,Async Serial,< (0x3C)
17.078986000000000,Async Serial,’0′ (0x00)
17.079073000000001,Async Serial,^ (0x5E)
17.079160000000002,Async Serial,^ (0x5E)
 
(MSP_PID_ADVANCED 94)
 
  17.084542500000001,Async Serial,$ (0x24)
17.084629000000000,Async Serial,M (0x4D)
17.084715500000001,Async Serial,> (0x3E)
17.084802000000000,Async Serial,’ (0x27)
17.084888500000002,Async Serial,^ (0x5E)
17.084975000000000,Async Serial,’0′ (0x00)
17.085061499999998,Async Serial,’0′ (0x00)
17.085148000000000,Async Serial,’0′ (0x00)
17.085234499999999,Async Serial,’0′ (0x00)
17.085321000000000,Async Serial,’0′ (0x00)
17.085407499999999,Async Serial,’0′ (0x00)
17.085494000000001,Async Serial,’0′ (0x00)
17.085580499999999,Async Serial,’0′ (0x00)
17.085667000000001,Async Serial,’0′ (0x00)
17.085753499999999,Async Serial,’0′ (0x00)
17.085840000000001,Async Serial,’0′ (0x00)
17.085927000000002,Async Serial,’0′ (0x00)
17.086013500000000,Async Serial,’0′ (0x00)
17.086099999999998,Async Serial,’0′ (0x00)
17.086186500000000,Async Serial,’0′ (0x00)
17.086272999999998,Async Serial,d (0x64)
17.086359500000000,Async Serial,’0′ (0x00)
17.086445999999999,Async Serial,7 (0x37)
17.086532500000001,Async Serial,’0′ (0x00)
17.086618999999999,Async Serial,’250′ (0xFA)
17.086705500000001,Async Serial,’0′ (0x00)
17.086791999999999,Async Serial,’136′ (0x88)
17.086878500000001,Async Serial,’19’ (0x13)
17.086964999999999,Async Serial,’0′ (0x00)
17.087051500000001,Async Serial,’0′ (0x00)
17.087137999999999,Async Serial,’1′ (0x01)
17.087224500000001,Async Serial,’0′ (0x00)
17.087311000000000,Async Serial,’0′ (0x00)
17.087398000000000,Async Serial,’0′ (0x00)
17.087484499999999,Async Serial,’0′ (0x00)
17.087571000000001,Async Serial,’5′ (0x05)
17.087657499999999,Async Serial,’20’ (0x14)
17.087744000000001,Async Serial,< (0x3C)
17.087830499999999,Async Serial,’0′ (0x00)
17.087917000000001,Async Serial,< (0x3C)
17.088003499999999,Async Serial,’0′ (0x00)
17.088090000000001,Async Serial,< (0x3C)
17.088176499999999,Async Serial,’0′ (0x00)
17.088263000000001,Async Serial,’0′ (0x00)
17.088349500000000,Async Serial,g (0x67)
   
17.089172000000001,Async Serial,$ (0x24)
17.089258999999998,Async Serial,M (0x4D)
17.089345500000000,Async Serial,< (0x3C)
17.089432500000001,Async Serial,’0′ (0x00)
17.089518999999999,Async Serial,e (0x65)
17.089606000000000,Async Serial,e (0x65)
 
(MSP_STATUS 101
cycleTime UINT 16 unit: microseconds
i2c_errors_count UINT 16
sensor UINT 16
BARO<<1|MAG<<2|GPS<<3|SONAR<<4
flag UINT 32 a bit variable to indicate which BOX are active, the bit position depends on the BOX which are configured
global_conf.currentSet UINT 8 to indicate the current
configuration setting )
 
  17.094536500000000,Async Serial,$ (0x24)
17.094622999999999,Async Serial,M (0x4D)
17.094709500000000,Async Serial,> (0x3E)
17.094795999999999,Async Serial,’21’ (0x15)
17.094882500000001,Async Serial,e (0x65)
17.094968999999999,Async Serial,} (0x7D)
17.095055500000001,Async Serial,’0′ (0x00)
17.095141999999999,Async Serial,’0′ (0x00)
17.095228500000001,Async Serial,’0′ (0x00)
17.095315500000002,Async Serial,! (0x21)
17.095402000000000,Async Serial,’0′ (0x00)
17.095488499999998,Async Serial,B (0x42)
17.095575000000000,Async Serial,’0′ (0x00)
17.095661499999999,Async Serial,’0′ (0x00)
17.095748000000000,Async Serial,’0′ (0x00)
17.095834499999999,Async Serial,’0′ (0x00)
17.095921000000001,Async Serial,’8′ (0x08)
17.096007499999999,Async Serial,’0′ (0x00)
17.096094000000001,Async Serial,’0′ (0x00)
17.096180499999999,Async Serial,’0′ (0x00)
17.096267000000001,Async Serial,’0′ (0x00)
17.096353499999999,Async Serial,’20’ (0x14)
17.096440000000001,Async Serial,’4′ (0x04)
17.096526500000000,Async Serial,’0′ (0x00)
17.096613000000001,Async Serial,’0′ (0x00)
17.096699500000000,Async Serial,’0′ (0x00)
17.096786500000000,Async Serial,v (0x76)
   
17.099242000000000,Async Serial,$ (0x24)
17.099329000000001,Async Serial,M (0x4D)
17.099416000000002,Async Serial,< (0x3C)
17.099502500000000,Async Serial,’0′ (0x00)
17.099589500000000,Async Serial,i (0x69)
17.099675999999999,Async Serial,i (0x69)
 
(MSP_RC 105
rcData[RC_CHANS] 16 x UINT 16
Range [1000;2000]
ROLL/PITCH/YAW/THROTTLE/AUX1/AUX2/AUX3AUX4)
 
  17.094536500000000,Async Serial,$ (0x24)
17.094622999999999,Async Serial,M (0x4D)
17.094709500000000,Async Serial,> (0x3E)
17.094795999999999,Async Serial,’21’ (0x15)
17.094882500000001,Async Serial,e (0x65)
17.094968999999999,Async Serial,} (0x7D)
17.095055500000001,Async Serial,’0′ (0x00)
17.095141999999999,Async Serial,’0′ (0x00)
17.095228500000001,Async Serial,’0′ (0x00)
17.095315500000002,Async Serial,! (0x21)
17.095402000000000,Async Serial,’0′ (0x00)
17.095488499999998,Async Serial,B (0x42)
17.095575000000000,Async Serial,’0′ (0x00)
17.095661499999999,Async Serial,’0′ (0x00)
17.095748000000000,Async Serial,’0′ (0x00)
17.095834499999999,Async Serial,’0′ (0x00)
17.095921000000001,Async Serial,’8′ (0x08)
17.096007499999999,Async Serial,’0′ (0x00)
17.096094000000001,Async Serial,’0′ (0x00)
17.096180499999999,Async Serial,’0′ (0x00)
17.096267000000001,Async Serial,’0′ (0x00)
17.096353499999999,Async Serial,’20’ (0x14)
17.096440000000001,Async Serial,’4′ (0x04)
17.096526500000000,Async Serial,’0′ (0x00)
17.096613000000001,Async Serial,’0′ (0x00)
17.096699500000000,Async Serial,’0′ (0x00)
17.096786500000000,Async Serial,v (0x76)
   
17.109118500000001,Async Serial,$ (0x24)
17.109204999999999,Async Serial,M (0x4D)
17.109292000000000,Async Serial,< (0x3C)
17.109378499999998,Async Serial,’0′ (0x00)
17.109465499999999,Async Serial,n (0x6E)
17.109552499999999,Async Serial,n (0x6E)
 
(MSP_ANALOG 110
vbat UINT 8 unit: 1/10 volt
intPowerMeterSum UINT 16
rssi UINT 16 range: [0;1023]
amperage UINT 16 )
 
  17.114490000000000,Async Serial,$ (0x24)
17.114577000000001,Async Serial,M (0x4D)
17.114663499999999,Async Serial,> (0x3E)
17.114750000000001,Async Serial,’7′ (0x07)
17.114836499999999,Async Serial,n (0x6E)
17.114923000000001,Async Serial,J (0x4A)
17.115009499999999,Async Serial,’0′ (0x00)
17.115096000000001,Async Serial,’0′ (0x00)
17.115182500000000,Async Serial,’0′ (0x00)
17.115269000000001,Async Serial,’0′ (0x00)
17.115355500000000,Async Serial,’0′ (0x00)
17.115442000000002,Async Serial,’0′ (0x00)
17.115528500000000,Async Serial,# (0x23)
   
17.118043499999999,Async Serial,$ (0x24)
17.118130000000001,Async Serial,M (0x4D)
17.118217000000001,Async Serial,< (0x3C)
17.118303500000000,Async Serial,’0′ (0x00)
17.118390500000000,Async Serial,o (0x6F)
17.118477500000001,Async Serial,o (0x6F)
 
(MSP_RC_TUNING 111
byteRC_RATE UINT 8 range [0;100]
byteRC_EXPO UINT 8 range [0;100]
byteRollPitchRate UINT 8 range [0;100]
byteYawRate UINT 8 range [0;100]
byteDynThrPID UINT 8 range [0;100]
byteThrottle_MID UINT 8 range [0;100]
byteThrottle_EXPO UINT 8 range [0;100] )
 
  17.124501500000001,Async Serial,$ (0x24)
17.124588500000002,Async Serial,M (0x4D)
17.124675000000000,Async Serial,> (0x3E)
17.124761500000002,Async Serial,’14’ (0x0E)
17.124848000000000,Async Serial,o (0x6F)
17.124934499999998,Async Serial,d (0x64)
17.125021000000000,Async Serial,’0′ (0x00)
17.125107499999999,Async Serial,K (0x4B)
17.125194000000000,Async Serial,H (0x48)
17.125280499999999,Async Serial,F (0x46)
17.125367000000001,Async Serial,\n (0x0A)
17.125453499999999,Async Serial,2 (0x32)
17.125540000000001,Async Serial,’0′ (0x00)
17.125626499999999,Async Serial,r (0x72)
17.125713000000001,Async Serial,’6′ (0x06)
17.125799499999999,Async Serial,’0′ (0x00)
17.125886000000001,Async Serial,d (0x64)
17.125972999999998,Async Serial,d (0x64)
17.126059500000000,Async Serial,’0′ (0x00)
17.126145999999999,Async Serial,’12’ (0x0C)
   
17.127950500000001,Async Serial,$ (0x24)
17.128036999999999,Async Serial,M (0x4D)
17.128124000000000,Async Serial,< (0x3C)
17.128210500000002,Async Serial,’0′ (0x00)
17.128297499999999,Async Serial,p (0x70)
17.128384499999999,Async Serial,p (0x70)
 
(MSP_PID 112
PIDITEMS x conf.pid[] 3*PIDITEMS x UINT 8 Currently, PIDITEMS is constant = 10
Order : ROLL / PITCH / YAW / ALT / POS / POSR / NAVR /LEVEL /MAG / VEL VEL is not used )
 
  17.134487499999999,Async Serial,$ (0x24)
17.134574000000001,Async Serial,M (0x4D)
17.134660499999999,Async Serial,> (0x3E)
17.134747000000001,Async Serial,’15’ (0x0F)
17.134833499999999,Async Serial,p (0x70)
17.134920000000001,Async Serial,. (0x2E)
17.135006499999999,Async Serial,( (0x28)
17.135093000000001,Async Serial,’25’ (0x19)
17.135179500000000,Async Serial,2 (0x32)
17.135266000000001,Async Serial,- (0x2D)
17.135352500000000,Async Serial,’27’ (0x1B)
17.135439000000002,Async Serial,A (0x41)
17.135525500000000,Async Serial,- (0x2D)
17.135611999999998,Async Serial,’0′ (0x00)
17.135698500000000,Async Serial,2 (0x32)
17.135784999999998,Async Serial,2 (0x32)
17.135871999999999,Async Serial,K (0x4B)
17.135958500000001,Async Serial,( (0x28)
17.136044999999999,Async Serial,’0′ (0x00)
17.136131500000001,Async Serial,’0′ (0x00)
17.136218000000000,Async Serial,k (0x6B)
   
17.137812499999999,Async Serial,$ (0x24)
17.137899000000001,Async Serial,M (0x4D)
17.137986000000001,Async Serial,< (0x3C)
17.138072500000000,Async Serial,’0′ (0x00)
17.138159500000000,Async Serial,’130′ (0x82)
17.138246500000001,Async Serial,’130′ (0x82)
 
(MSP_BATTERY_STATE 130 //out message
Connected/Disconnected, Voltage, Current Used)
 
  17.144524499999999,Async Serial,$ (0x24)
17.144611500000000,Async Serial,M (0x4D)
17.144698000000002,Async Serial,> (0x3E)
17.144784500000000,Async Serial,\t (0x09)
17.144870999999998,Async Serial,’130′ (0x82)
17.144957500000000,Async Serial,’2′ (0x02)
17.145043999999999,Async Serial,’0′ (0x00)
17.145130500000000,Async Serial,’0′ (0x00)
17.145216999999999,Async Serial,J (0x4A)
17.145303500000001,Async Serial,’0′ (0x00)
17.145389999999999,Async Serial,’0′ (0x00)
17.145476500000001,Async Serial,’0′ (0x00)
17.145562999999999,Async Serial,’0′ (0x00)
17.145649500000001,Async Serial,’0′ (0x00)
17.145735999999999,Async Serial,’195′ (0xC3)
   
17.147928000000000,Async Serial,$ (0x24)
17.148015000000001,Async Serial,M (0x4D)
17.148101499999999,Async Serial,< (0x3C)
17.148188500000000,Async Serial,’0′ (0x00)
17.148275500000000,Async Serial,’150′ (0x96)
17.148361999999999,Async Serial,’150′ (0x96)
 
(MSP_STATUS_EX 150 //out message cycletime, errors_count,CPU load, sensor present etc)
 
 
17.154527500000000,Async Serial,$ (0x24)
17.154613999999999,Async Serial,M (0x4D)
17.154700500000001,Async Serial,> (0x3E)
17.154786999999999,Async Serial,’21’ (0x15)
17.154873500000001,Async Serial,’150′ (0x96)
17.154959999999999,Async Serial,’127′ (0x7F)
17.155047000000000,Async Serial,’0′ (0x00)
17.155133500000002,Async Serial,’0′ (0x00)
17.155220000000000,Async Serial,’0′ (0x00)
17.155306499999998,Async Serial,! (0x21)
17.155393000000000,Async Serial,’0′ (0x00)
17.155479499999998,Async Serial,B (0x42)
17.155566000000000,Async Serial,’0′ (0x00)
17.155652499999999,Async Serial,’0′ (0x00)
17.155739000000001,Async Serial,’0′ (0x00)
17.155825499999999,Async Serial,’0′ (0x00)
17.155912000000001,Async Serial,’8′ (0x08)
17.155998499999999,Async Serial,’0′ (0x00)
17.156085000000001,Async Serial,’3′ (0x03)
17.156171499999999,Async Serial,’0′ (0x00)
17.156258000000001,Async Serial,’0′ (0x00)
17.156344499999999,Async Serial,’20’ (0x14)
17.156431000000001,Async Serial,’4′ (0x04)
17.156517999999998,Async Serial,’0′ (0x00)
17.156604500000000,Async Serial,’0′ (0x00)
17.156690999999999,Async Serial,’0′ (0x00)
17.156777500000000,Async Serial,’132′ (0x84)
   
   

NEXT PERIOD


17.247869500000000,Async Serial,$ (0x24)
17.247956500000001,Async Serial,M (0x4D)
17.248042999999999,Async Serial,< (0x3C)
17.248130000000000,Async Serial,’0′ (0x00)
17.248217000000000,Async Serial,’3′ (0x03)
17.248303499999999,Async Serial,’3′ (0x03)
 

*************************************************************