nanospork / NOFC

Nolo OSVR Fusion Configuration
6 stars 2 forks source link

Backwards compatibility with NOLO Firmware #7

Open johnlajoie opened 6 years ago

johnlajoie commented 6 years ago

Now that new versions of the NOLO firmware have been released, we need to address the issue of backwards compatibility as nolo-osvr is updated to include the velocity and acceleration data included on the new firmware.

A quick look at the data structures in the NOLO SDK seems to indicate the data format sent from hardware haven't changed, but that might need a more careful look to be absolutely sure. The state and quality of the data for things like velocity and acceleration in the old firmware is unknown (at least by me).

We need to settle on a policy and then update nolo-osvr accordingly:

-> We could just declare the version of the firmware we are compatible with and put no effort into supporting older firmware. At the very least the code should include a firmware check and a warning message. Presumably we would always support the latest firmware. This would be the most straightforward approach and require the least amount of effort.

-> We could identify the firmware version and use that to determine what information we pass along to OSVR. At this point it would just be the difference between passing along velocity and acceleration data or not, but it is possible that in the future this could become more complicated. This would be more complicated, and would require different hardware with different firmware versions for compatibility testing with new versions of nolo-osvr.

nanospork commented 6 years ago

With no way to downgrade firmware right now, I think option 1 will be best. Should LYRobotix at some point provide a firmware downgrade utility, then it might be worth supporting older versions.

In the meantime, we can provide documentation that points to the process for downgrading the Nolo-OSVR plugin - which is really just pulling the DLL from a previous release of NOFC. If the SteamVR plugin is updated properly, it should have no issue with the current firmware discrepancy (velocity reports vs lack thereof). I don’t foresee many other feature upgrades that don’t correspond to a firmware upgrade... maybe bug fixes...

nanospork commented 6 years ago

I think the new USBHID API variation of nolo-osvr should take care of backwards compatibility on Windows, but things are still up in the air for Linux et. al.