Garmin Hacking Project Report 5 The current status is things are moving slowly. The project has been focusing on the details of the Garmin proprietary protocol and this has led to a requirement of developing new tools to test the software. This has resulted in two totally free programs: a C program to send and receive the protocol and a VBX that will work inside windows to do the same. The last bit of news is that I personally dropped by Garmin's headquarters and asked them to publish the protocol. The C program is a sloppy bit of code that was hacked together from other projects and the result is a mess of code. This is accessable from my web page and feel free to use it any way you see fit. Please let me know if you fix anything as I would like to integrate more features into the existing code. The Visual Basic VBX is being written and currently is in a non-released state. It's on my web page but you have to dig for it. I would like to know if you have a copy of this so please Email me at thogard@inmind.com if you have received a copy of it. Once it is finished, I will release the finished product with a non-restrictive license (basically, I want to see any program you make with it). There will be more on this when it's completely finished. If anyone is willing to help, please let me know. On October the 25th, I bought a new radiator for my MGB in Kansas City. It seems that my GPS45 said the nearest waypoint was very close and it was the "Garmin" waypoint. I followed the arrow and sure enough there was a red brick building with their name on it. I decided to stop by and see if there was anyone I could talk to about publishing the protocol. At first, I spoke with Cliff Pemble who's card says he is a Senior Staff Engineer. I told him that it was my intent to publish the GRMN protocol details and asked if his company wouldn't consider doing it so we could get official details without second guessing what the units did. While he repeated the standard line about not publishing it, we did discuss several issues for quite a long time. He did not provide any startling revelations about the product or the protocol but does seem quite proud of the products he helped create. We talked about a number of the details that I, and others, have found out about but there wasn't much useful to report. I hope to make comments about some of the details here. What I find as one of the most useful points is that the display is more accurate for time fixes than the serial port. He did mention that the timing on the serial port isn't very good for high precision timing applications such as Network Time Protocol (NTP) but was quite suitable for less precise timing. Basically, I take this to mean if the clock spits out 1:23:45 you can count on it being 1:23:45 or a few milliseconds into 1:23:46. He recommended using their embedded GPS engine for better timing since it does produce a 1 PPS signal. He also verified that the free running clock that is sent out in the time packet is not synchronized with the real time in any way so it's not very useful to anyone. Garmin's basic points about the protocol and speed issues are: 1) They don't want to get sued. 2) They don't want to give their competitor an advantage. 3) They don't understand why the protocol spec is so important when they have other products that would work better. I'll cover point three above first. It seems that Garmin feel that those of us who are hacking GPS45 (and other models) are using the wrong units. They feel that the GPS45 is poorly suited for most integration applications when they have other units that are more suitable. After I objected to the cost of these units, they came up with a fair solution. They will sell 50 of their new 12 channel receivers for us$225 each or 50 of their 8 channel multi-track receivers for us$125 each. The price on the 12 channel receiver is about 1/4 of the price of the Motorola GPS receivers that were being considered for the group buy when sci.geo. satellite -nav was just forming. At these prices, I have found several people interested, and if someone would consider taking orders and dealing with all the issues of sending out 50 boxes, please let me know (I have too much to do right now to tackle yet another project). Garmin is worried about being sued. This was made clear by both Mr. Pemble and Dr. Min Kao (as in garMIN). They have received lots of advice from their attorneys, and while I personally feel that their lawyers have set them up for more legal troubles than they should have, they are not paying me for legal advice. Our discussion leads me to believe that there is some unknown difference between the GPS90 and the GPS45 other than marketing reasons. It might be something simple, such as better testing of the units or software that is optimized for speed in some special area. I was not provided details. Mr. Pemble spoke of having been involved with a number of aviation legal issues in the past from the investigator's side and knows first hand what kind of trouble they cause for everyone involved including those that weren't at fault. Garmin has made it clear that they will not tolerate violations of their patents and copyrights. We had a bit of discussion about what was considered a violation, and what was not. They wish to keep their trade secrets safe and I have no problem with that. I expect that if they could publish the protocol without giving their competitors an edge or increasing their liability then they would do so. Having people dig around in their code also gives them an excuse to publish a subset of the protocol that is useful to most of us. What did not come up was the subject about this free software hurting sales of their program. Either they are not worried or might consider them a competitive advantage. I think they should look deeper into that issue. They did say they would reconsider publishing the protocol but I suspect that those kinds of decisions will tend to get caught up in company politics. At this time, I feel that Garmin has a real interest in helping its users and will respect its wishes about what I can say publicly. So far they haven't told me not to publish any of the information I have but would like to review it to assess their liability. I will honor their request and give them a chance to identify these issues and explain their points. I feel it's only fair to keep them informed. I had a short conversation with Dr. Kao and a several hour conversation with Mr. Pemble. It was quite enjoyable and informative afternoon. They were quite polite to someone that is hacking one of their products and they have a sincere interest in the users of their products. They also gave me a nice hat and a shirt. For those that are going to ask, no you can't put an antenna on the hat (This has been asked so far and for those Germans that don't get their English right, a hat goes on one's head) The date October the 25th, 1995 may be important for those that are watching Garmin since it's their 6th anniversary. Also Garmin does watch what goes on in this news group! Now if they would just get their web page up and running (hint, hint and I know a contractor that could do it!). On to the VBX... First of all a VBX is a Microsoft Visual Basic add on. It's a program that builds a type of object for use in Visual Basic. What I have done is to create a VBX that talks to the serial port and watches messages come in and then translates them into Basic function calls. It gets rid of all the worries about how to open the serial port and parse the messages for the average programmer. This is currently being tested by a few people (of which have had nothing to say good or bad... more hints). At this time it will not do uploads but will do download of some (maybe most) data types. It also will send some polling requests and parses its response. The DLL also will convert from internal formats to text strings. These routines will need work.