Here+ V2 RTK External Sensors

#1

@philip

I’m having trouble interfacing with any of the external devices (ICM20948, MS5611, and HMC5983) on the Here+ V2 RTK module other than the LED controller (TCA62724).

Attached is an example of attempting to write to the ICM20948 (address 0x69) over I2C:

I’ve attempted every possible address that the sensors could be (0x68, 0x69, 0x76, 0x77, 0x3D, 0x3C) and none of them will ACK the read/write requests. Furthermore, when I attempt to read/write to the TCA62724 (via address 0x55) I get a response and can control the LEDs on the module - so I know the I2C connection is, otherwise, working.

Am I missing something? Do I need to bridge a solder joint to access the sensors? I’ve reached out to the PX4 community as well to no avail. Any additional information would be greatly appreciated!

Thanks!
Tony

#2

what are you trying to do?
these devices are all connected via SPI to the onboard STM32F3 micro, the I2C is just emulated for reverse compatibility reasons. they will not show up as you expect… for example, there is no TCA62724 onboard at all, but rather, 4 custom ProfiLED’s set up to pretend to be the TCA driver.

the CAN Firmware will give greater access to the sensors onboard.

If you could outline exactly what you are wanting to do, we can then assist you with how

#3

Thanks @philip, that completely makes sense and explains the behavior I was observing. As of right now, we would like to access the ICM20948 and/or HMC5883 for external magnetometer readings only. The hardware is configured for I2C right now, i.e. for this revision we cannot re-purpose the IO for CAN.

So, can we go emulate the ICM20948 and/or HMC5883 over I2C? This would be the easiest because both drivers are already supported on PX4. Otherwise, how do we interface, over I2C, with the F3 to access the magnetometer data? We can write/support writing the required Here+ V2 driver for PX4.

Thanks for your help!
Tony

#4

the ak09916 that is being emulated is the exact same driver you would need for the ICM20948

There should already be a way to do this in PX4

#5

Great, I will work on the AK09916 driver in PX4. I believe there is some additional development required on the PX4 side. I’ll report back here. Thanks for your help!

#6

@philip FYI I was able to initialize and read the ak09916 on PX4. It’s currently passing calibration and appears to be working. Had to modify their ICM20948 driver to use it. I’ll work with the PX4 community to integrate it into the PX4 upstream.

One additional question - we have the the Here+ V2 mounted with the GPS antenna facing up (obviously) and the wire harness plugged into the ‘back’ side of the drone, i.e. the connection side is closest to the rear of the drone. In order to properly rotate the ak09916 sensor in software so that the magnetometer is facing the front, I applied a 180 degree rotation in the roll axis and a 270 degree rotation in the yaw axis. Does this rotation correspond with the rotation of the ak09916 internally? It appears to be working but I do not think that it lines up perfectly with the silkscreen ‘mpu’ axis diagram printed on the GPS.

#7

Sounds perfect. The silk is an old reference, and can probably be removed.
Glad to hear you have had some progress

1 Like