The Python code I use is listed below - it very simply takes everything received from the bluetooth serial device and appends it to the file 'dump_log_file.txt' - creating it first if it does not exist. You can rename this file at the end of a flight to create separate files.
The GPS NMEA data stream is ascii text.
I believe the script will capture the binary data from an EIS but the file would need to be interpreted to extract useful data.
Python would be available free for just about any 'programmable' phone or other handheld device these days - Google might help to track a download down. There are pleanty of devotees of Python who are eager to see it available on every platform.
I have only tried this on the Nokia S60 phone - so it may not work out of the box on other systems without some changes - for example the e32 and appuifw modules may be S60 specific.
One point to note is the gps_addr string is the hardware id of the bluetooth interface device and is unique to each device. The advantage of this is that the script will connect to this device immediately and unambiguously if you happen to be in a sea of bluetooth. (Have you ever tried scanning for bluetooth devices when you are stuck in traffic?)
The disadvantage is that this code must be discovered and inserted into the script. I simply use my laptop and scan for the devices available.
If someone is interested further in decoding the file or perhaps modifying the script to generate more meaningful ascii text from the EIS data stream I have some Python code to do that as well. Send me a PM.
Doug Gray
Code:
import socket
import appuifw
import e32
gps_addr = "00:0B:0D:86:2B:B9" # 5Hz GPS
sock=socket.socket(socket.AF_BT, socket.SOCK_STREAM)
target=(gps_addr,1) # serial connection to GPS
sock.connect(target)
print 'Connected to the GPS'
log_fh = open('e:\\Python\\dump_log_file.txt','a')
going = 1
lock = e32.Ao_lock()
def exit_key_pressed():
"""Function called when the user requests exit"""
global going
going = 0
appuifw.app.exit_key_handler = None
lock.signal()
appuifw.app.exit_key_handler = exit_key_pressed
while going:
data = sock.recv(1024);
if not data: break
log_fh.write(data)
print 'exiting'
sock.close()
log_fh.close()