Hey everyone, I am new to the forum but have been using existing posts and the Ardupilot documentation for a while now and it has proven to be very useful. Myself and a few friends are working on a custom drone project using a Marvelmind indoor positioning system to fly the drone indoors, hooked up to the Pixhawk 4 GPS port, and using a raspberry pi zero w, hooked up to the Pixhawk 4 Telem 1 port, to scan the temperature across a room with a heat source in the middle. The goal is to produce a temperature map of the room. I have the pi and the Pixhawk communicating to each other.
The pi is getting all of the Pixhawk data live with no problems, and can command the Pixhawk just fine (like toggling flight modes, reboot, etc). I am able to fly the drone indoors and get an accurate Lat/Long position of the drone. When pulling a flight log, I can see its flight path and any other parameters that the pixhawk data logs show. I also have a log from the raspberry pi which gives me temperature values at various time intervals at a fixed refresh rate. The trouble is I have these 2 separate logs, and no way of syncing them so that the temperature is linked to a point XYZ. I know the pixhawk uses what is called GPS time, based off of seconds since the last epoch. The pi’s time stamp does this as well, and when putting the pi’s time values into an epoch to real world time calculator, time and date is 100% accurate. My trouble is, I can get the pi to have accurate epoch time, however, in the logs of the pixhawk, the epoch time it gives is always some time long in the past, like in 1974. Ardupilot has very little documentation on using the TIMESYNC and SYSTEM_TIME functions, (located here https://ardupilot.org/dev/docs/ros-timesync.html) and I have tried to implement them both to get the raspberry pi to send its accurate time to the pixhawk, so that that pixhawk time matches the pi’s time. Neither of these seem to change the time of the pixhawk that is stored in the flight logs.
Does anyone have any documentation or useful information for getting the time of the two synced together somehow? This is the last hurdle of the project to getting a temperature map and we haven’t found a solution yet. We have tried using the “time sync” button on the Marvelmind software which should send accurate time data to the Pixhawk. This works for updating the time stamps on the pixhawk’s data log file names, but does not change the internal time logged in the Pixhawk. Even so, the time stamps on the data log file names are 3 days behind for some reason (we were testing on 4/12/20 at 2pm, and the time stamps of the log file names said it was 4/9/20 at 9am). Please let me know. Thanks!