I just came back from a fantastic honeymoon and I see I have a little catching up to do.
View attachment 592219
View attachment 592222
Congratulations on getting married.
I'm thinking about publishing information on the Bluetooth characteristics for those who would want to roll their own. I haven't decided yet but I'm leaning that way (at a low priority)
I have already gotten most of the way there on the Bluetooth characteristics. I know there are two Bluetooth interfaces, one for the ground station and one for the tracker. I found the ground station one first. I then found the characteristics and comparing the data to USB data I was able to debug an incrementing packet number, and realized I was definitely looking at the ground station data. Next I found the tracker Bluetooth interface, and it's characteristics. I can tell I am in theory looking at the right packet, because I can see the number of satellites in the hex data.
Satellites in bold:
@ GPS_STAT 203 0000 00 00 00:21:01.034 CRC_OK TRK FthrWt04025 Alt 001304 lt +33.34901 ln -111.75781 Vel +0000 -120 +0002 Fix 3 #
4 3 0 0 000_00_00 000_00_00 000_00_00 000_00_00 000_00_00 CRC: 52DE
20 fe a1 00 0a 00 46 74 68 72 57 74 30 34 30 32 .....FthrWt0402
35 00 a9 e0 13 72 1c 63 bd a2 f6 05 00 03 00 00 5....r.c........
60 ff 02 00 01
04 00 00 03 1d 00 00 11 00 00 00 `...............
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 bd 00 4c 00 35 00 2f 00 00 .........L.5./..
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 2a 48 44 25 00 00 00 00 00 00 00 00 00 ...*HD%.........
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 df 0f 97 cb c4 ef 17
I did find plenty of other characteristics, but nothing useful. I do know I can write commands at these characteristics, but again haven't gotten anything useful from that. I did manage to get some very interesting behavior from the ground station by writing a certain command, but still wasn't useful.
Characteristics:
00060001-f8ce-11e4-abf4-0002a5d5c51b
c8875008-57d2-4b60-9adc-3e080635bdda
Overall I am just trying to pull the lat/long. My best guess from the hex data above is that the data I am looking for is bolded below. I just don't know how to decode it.
20 fe a1 00 0a 00 46 74 68 72 57 74 30 34 30 32 .....FthrWt0402
35 00
a9 e0 13 72 1c 63 bd a2 f6 05 00 03 00 00 5....r.c........
60 ff 02 00 01 04 00 00 03 1d 00 00 11 00 00 00 `...............
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 bd 00 4c 00 35 00 2f 00 00 .........L.5./..
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 2a 48 44 25 00 00 00 00 00 00 00 00 00 ...*HD%.........
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 df 0f 97 cb c4 ef 17
I also suspect there is some piece of the ground station interface I don't understand. Where if I send it the right write commands it will start outputting the same tracker packet I see on the tracker interface. I say this, because the tracker interface only works when the tracker is around my computer. Which makes me think it is coming directly from the tracker itself. I know from all my research that the same data has to come out of the ground station interface.
Can you tell me which bytes in the packet are the lat/long and how to decode them? Then you don't have to write full documentation until you decide to get around to it.
I'll summarize the historical context for people who are relatively new to this product (Welcome!), and give some development status updates:
Kevin Small and I have collaborated on Featherweight hardware and software since around 2011, when we were both doing it as a hobby and a side gig. My day job was working on NASA programs in big aerospace and startup aerospace companies. I made the Parrot and then the Raven altimeters, and Kevin wrote a windows interface and graphing app for those altimeters in C#, for royalties. In 2017 I made the Featherweight GPS system, pretty much in its current form, and Kevin took some time off from work to make the first iFIP GPS app, writing it natively for iOS. I added more capabilities into the firmware, partly in
a collaboration with my day job working on NASA's LOFTID program. Around that time, Kevin got promoted and needed to focus more on his day job. Android development got put on hold, releasing the app got put on hold, and there were a number of bug fixes, improvements, and other work that were left undone. In the meantime, COVID happened,
I had a lot of big personal changes, I moved back to Colorado permanently into a house where I could build rockets again. Then the nature of my day job changed, and I decided to quit my day job to develop the Blue Raven and Featherweight Altimeters full-time. To do this, I needed to develop a phone app with a dedicated app developer who I could direct to put in all the features I wanted. Kevin did a great job on the iFIP, and together IMO we raised the bar for rocketry tracking. But I needed more time and energy than he could give, so I found a new developer for the Blue Raven.
The Blue Raven uses a microcontroller that does all of the flight control plus the Bluetooth interface, and I taught myself what I needed to know to get the Bluetooth working on top of the next-generation flight control and data recording functions. The developer I have contracted with created the Blue Raven phone app, using Flutter to handle the iOS and Android development concurrently. What we are working on right now, besides releasing the Blue Raven app through the stores and making some other improvements, is adding the GPS tracker interface to the new Featherweight phone app that currently just has the Blue Raven. My near-term goal is to do that without disturbing the firmware on the trackers and the ground station. This way I can provide a good Android interface sooner without needing to wait for me to learn how to work with the Cypress (now NXP) Bluetooth module that Kevin wrote the firmware for, and without my developer needing to support over-the-air updates in the phone app for that module.
The GPS tracker/GS firmware still has untapped potential features that I'm planning to take advantage of with the phone new app, including a way to de-conflict channel selection with other users at the launch, and features related to monitoring other people's flights. Further down the road (probably next year) I'll update the tracker hardware design to use the same microcontroller I'm using for the Blue Raven.
The history and future plans are very interesting. Thanks for sharing them.