View Single Post
Old Jun 02, 2012, 02:27 PM
NorCalMatCat is offline
Find More Posts by NorCalMatCat
FPV Electronics For Life!
NorCalMatCat's Avatar
United States, CA, Arcata
Joined Oct 2011
2,669 Posts
Discussion
Reverse Engineering the FeiyuTech Log File (Hornet OSD)

As many know the Hornet OSD can log to an SD card, but it is in a proprietary format that only FeiyuTech GCS software can decode, well not now!

I have managed to reverse engineer most of the information from the Hornet OSD log file, and now I am working on a web based tool to convert to KML as well as view info and statistics from your log file.

To use it just go to http://letsfpv.com/feiyulog and upload your log!

Eventually I also plan to make my own viewer so that you can get the GCS like instrumentation playback, but without the buggy GCS!

NOTICE
The Hornet OSD likes to reset itself in air when an SD Card is inserted, please bug Feiyutech at service@feiyu-tech.com to fix this issue as soon as possible so that hopefully they release a firmware fix for it shortly!

The file format:

#DATA1
#DATA1,?,?,?,?,?,Lat1,Lat2,Lat3,Lat4,Long1,Long2,L ong3,long4,CutHDG1,CutHDG2,?,?,altitude1,altitude2 ,airspeed1,airspeed2,barualt1,barualt2,tgtdist1,tg tdist2,latost1,latost2,?,?
Code:
?        :
?        :
?        :
?        :
?        :
Lat1     : See Coordinates Below 
Lat2     : See Coordinates Below
Lat3     : See Coordinates Below
Lat4     : See Coordinates Below
Long1    : See Coordinates Below
Long2    : See Coordinates Below
Long3    : See Coordinates Below
Long4    : See Coordinates Below
CutHDG1  : x*2.56
CutHDG2  : x*0.01 (added to Cut HDG)
?        :
?        :
Altitude1: x*25.6
Altitude2: x*0.1 (Added to Altitude1)
Airspeed1: x*90 (2 or 3 add 3.6, above 4 90+((x-1)*3.6)
Airspeed2: x*0.36 added to airspeed1
Barualt1 : x*25.6 (If above 6000m subtract 6000 and negative sign the result for below 0 altitude.)
Barualt2 : x*0.1 added to barualt1
TgtDist1 : x*256
TgtDist2 : x*1
LatOST1  : x*25.6 (Up to 127, 128+ = (x-128)*-value)
LatOST2  : x*0.1 (if lastost1 is - then subtract, else add)
?        :
?        :
#DATA2
#DATA2,?,?,Waypoint,TgtHDG1,TgtHDG2,TgtAlt1,TgtAlt 2,TgtGS1,TgtGS2,HomeLat1,HomeLat2,HomeLat3,HomeLat 4,HomeLng1,HomeLng2,HomeLng3,HomeLng4,TgtLat1,TgtL at2,TgtLat3,TgtLat4,TgtLng1,TgtLng2,TgtLng3,TgtLng 4,APVlt1,ApVlt2,BattVlt,Hour,Minute,Second,Month,D ay,?,temp,BattCur1,BattCur2,?,?,refresh,?,Downlink Refresh,?,?
Code:
?              :
?              :
Waypoint       : x*1
TgtHDG1        : x*256
TgtHDG2        : x added to TgtHDG1
TgtAlt1        : x*256
TgtAlt2        : x added to TgtAlt1
TgtGS1         : x*92.16
TgtGS2         : x*0.36 added to TgtGS1
HomeLat1       : See Coordinates Below
HomeLat2       : See Coordinates Below
HomeLat3       : See Coordinates Below
HomeLat4       : See Coordinates Below
HomeLng1       : See Coordinates Below
HomeLng2       : See Coordinates Below
HomeLng3       : See Coordinates Below
HomeLng4       : See Coordinates Below
TgtLat1        : See Coordinates Below
TgtLat2        : See Coordinates Below
TgtLat3        : See Coordinates Below
TgtLat4        : See Coordinates Below
TgtLng1        : See Coordinates Below
TgtLng2        : See Coordinates Below
TgtLng3        : See Coordinates Below
TgtLng4        : See Coordinates Below
APVlt1         : x*25.6
APVlt2         : x*0.1 added to APVlt1
BattVlt        : x*0.1
Hour           : x*1
Minute         : x*1
Second         : x*1
Month          : x*1
Day            : x*1
?              :
Temp           : x*1
BattCur1       : x*25.6
BattCur2       : x*0.1 added to BattCur1
?              :
?              :
Refresh        : x*1
?              :
DownlinkRefresh: x*1
?              :
?              :
#DATA3
#DATA3,?,?,Pitch1,Pitch2,roll1,roll2,AileronGain1, AileronGain2,ElevatorGain1,ElevatorGain2,ThrottleG ain1,ThrottleGain2,RudderGain1,RudderGain2,AltErro r1,AltError2,?,?
Code:
?            :
?            :
Pitch1       : x*25.6
Pitch2       : x*0.1 (added to pitch1)
Roll1        : x*12.3 
Roll2        : x*0.1 (Added to Roll1)
AileronGain1 :
AileronGain2 :
ElevatorGain1:
ElevatorGain2:
ThrottleGain1:
ThrottleGain2:
RudderGain1  :
RudderGain2  :
AltError1    : x*256
AltError2    : x*1
?            :
?            :
Coordinates:
Code:
Coord1: x*4.26666666666667 (up to 128, 128+ (x-128)*-value) 
Coord2: x*0.0166666666666667 (if Coord1 is - then subtract, else add)
Coord3: x*0.000426666666666667 (added to Coord1)
Coord4: x*0.00000166666666666667 (added to Coord1)
NorCalMatCat is offline Find More Posts by NorCalMatCat
RCG Plus Member
Last edited by NorCalMatCat; Jun 07, 2012 at 12:32 PM.
Reply With Quote