I am thinking that I should be able to open a socket from my Python app that would connect to my RPi on port 10110, but at that point I run out of understanding.- do I need to do anything to get the data or does kplex keep pushing it out?- does the data just come in the NMEA sentence format in text ?- are there any modules that have any NMEA class definitions alraedy set up?
Device drivers
On Linux you can use the standard FTDI serial driver. It used to be a bit difficult to enable this driver for a device that uses a USB device PID that the driver did not know about.
The best way with a new kernel is to add new device ID after the module is loaded. This allows the driver to function for multiple FTDI device IDs, so it will also work if you have other FTDI devices in the system.
# - Detect any Actisense device. This adds a new USB ID to the FTDI driver, so is always safe.
# The driver will autoenumerate the bus after this and report the new device (see dmesg)
modprobe ftdi_sio
echo 0403 d9aa > /sys/bus/usb-serial/drivers/ftdi_sio/new_id
A less flexible way to tell the driver about the Actisense device ID is to load it at module load. This might make the driver not function for other devices:
sudo echo 'ftdi_sio vendor=0x0403 product=0xd9aa' >>/etc/modules
and after reboot it shows up:
You can get persistent naming for the NGT-1 USB device with the following udev rule:
pi@raspberrypi:~$ cat /etc/udev/rules.d/99-my-usb-device.rules
SUBSYSTEM=="tty", ACTION=="add", ENV{ID_SERIAL}=="Actisense_NGT-1_1FD34", NAME="actisense"
The serial number above is unique, so you can find out information about your device to base the udev rule on with
udevadm info -q all -n /dev/ttyUSB0
HOWEVER - I have not yet managed to get the vendor and product details to work from the modules file - so I will need to get another way of executing the commands automatically. Nor have I tried the udev configuration.
... more updates to follow - C