Writing/Using a Garmin Device driver (USB) on a windows machine.

Hello,

i'm new to c++ and have no clue how to write a driver or simple console program to communicate with a Garmin device. E.g. GPSmap 496. I want to detect if the device was plugged in and read everything like vid, pid and gps specific values.

Can you give me a few hints on how to start?
I've read about libusb/winusb but i'm not sure if i need this or if i can access the device without these libs.


regards
René
This maybe a suitable starting point
http://www.gpsbabel.org/index.html
Hello guestgulkan,

thank you for your reply!
Thats a really good starting point. But the next thing is to read and write from and to a specific memory location. I guess i've to read the garmin protocol and usb specification?

After using google for a few days i give up searching for existing classes :P


Edit: I gave up. Thanks anyway. Its a shame to develop on a windows machine..
Last edited on
Hello,

You do NOT need to read any garmin protocol or USB specs.
Usually those device come with a device driver wich will make the device appear as a virtual
COM port on the pc.You connect to the COM port using the Win32 API and retrieve data
wich is usually in NMEA 0183 format : http://en.wikipedia.org/wiki/NMEA_0183
Thats all you need to do.I have worked on these in the past and i can tell you its quite easy.
Hi thanks for sharing information. NMEA_0183 is a simple ASCII, serial communications protocol so is it only restricted to COM port ?

Nowadays we do have devices that are USB-port based so does NMEA_0183 still works ? And having a common NMEA protocol does not mean ALL hardware manufacturers will follow isn't it ? So one important question to ask before purchase those hardware is to check the device "talk" and support which protocol is it ?

It has been a while since I did an application reading and processing data from COM port for the compass and GPS. I use Windoze Hyperterminal to monitor the data.
Topic archived. No new replies allowed.