bluerobotics / ping-firmware

Repository for binary files associated with ping devices
5 stars 8 forks source link

Add synchronous transmission capability #13

Open jaxxzer opened 4 years ago

jaxxzer commented 4 years ago

It will be nice to have some way to tell the device exactly when to transmit, and to be able to operate several devices in synchronization to prevent interference.

ES-Alexander commented 2 weeks ago

For some context, by default the echosounder firmware transmits on its own schedule, and there's currently no direct control to "transmit now". External requests for data simply provide the latest profile / distance estimate.

As a workaround in the meantime, it is possible to manually disable unused sensors to prevent them interfering while getting a profile from a different one.

If a single program is controlling multiple sonars, it is possible to cycle through them, disabling each after a new profile is received. Note that the distance estimation functionality partially relies on temporal filtering across subsequent profiles, so if you care about the sonar's distance estimates (not just the profile data) then you'll need to allow each sonar to be enabled for multiple pings so it has a chance to build up confidence in its estimate. Disabling auto mode may help to speed this up (by preventing automatic range adjustments), although that's only practical if you have a rough idea of how far away targets are likely to be, as well as how strongly they'll reflect the pings (manual mode also requires manually configuring the gain).