The Here3+ is a GNSS receiver often used by drones, specifically the pixhawk. I wanted to use this receiver in my own project for geopositioning, I am however completely unable to find any documentation on how to read its data. I have a CAN connection set up, but it doesn't send anything legible like when using NMEA. And I really don't want to try reverse engineering it by observing what the pixhawk and the Here3+ communicate with eachother. Am I just bad at google? What steps should I take to make this work?
2 Answers
The Here3+ uses the DroneCAN/uavCAN protocol that is now renamed to cyphal. This is an entirely different protocol from NMEA2000. The CAN msgs build-up is done by DSDL description. With DSDL file (see example c-code can be generated with specific webtool.
Another possibility is to read the canbus with the DroneCAN GUI. The translation is done in the tool.
It is a bit strange that a dbc-file isn't used...
Good luck :)
After having watched Here 3+ CAN GPS For Ardupilot & PX4, and even though the Here3/3+ does indeed contain a NEO-M8P-2, it became clear that the presence of the STM32F302/STM32H757, and the fact that the Here3+ has only CAN connectors, means that the serial connection can not be used and configuration of the u-blox component using u-center is not possible. Therefore, the suggestions offered below, unfortunately, no longer apply.
There is a manual, Here 3 manual, which doesn't seem to delve into the communication protocol.
This page, HEX/ProfiCNC Here+ RTK GPS, looks a bit more promising. It states that the Here 3 uses the I2C protocol and that it is based upon the u-blox NEO M8P.
Therefore, as a starting point at least, it would seem logical to just use the various datasheets (and online tutorials) for the U-Blox Neo M8P, in order to figure out how to communicate with the Here 3 - assuming, that is, that they are functionally equivalent.
Finally, assuming that the HERE 3 is functionally similar to a NEO M8P, you could try hooking your HERE 3 up (via USB, using an FTDI interface, if necessary) to u-center (running on a Windows PC) and configure it there.
For reference I found that these two videos were invaluable:
However, they do just use the UART/serial interface and only cover the UBX protocol and not the CAN and NMEA that you require. That said, they should give you an insight to getting the NMEA messages/packets working correctly.
These two videos cover too much information to summarise here, in this answer, unfortunately. Although, I did make some rough notes on (full disclosure) my blog page, More GPS.
This Wiki page may also be useful: Sensors/GPS.