# Here+ V2 RTK External Sensors

**URL:** <https://discuss.cubepilot.org/t/here-v2-rtk-external-sensors/171>\
**Category:** Here GPS\
**Created:** [4 February 2019 15:31 UTC](https://discuss.cubepilot.org/t/here-v2-rtk-external-sensors/171 "2019-02-04T15:31:04Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![tonysam1](https://discuss.cubepilot.org/letter_avatar_proxy/v4/letter/t/ccd318/32.png) [@tonysam1](https://discuss.cubepilot.org/u/tonysam1)\
**Post date:** [4 February 2019 15:31 UTC](https://discuss.cubepilot.org/t/here-v2-rtk-external-sensors/171/1 "2019-02-04T15:31:04Z")

</div>

@philip

I’m having trouble interfacing with any of the external devices (ICM20948, MS5611, and HMC5983) on the [Here+ V2 RTK module](http://www.proficnc.com/all-products/113-gps-module.html) other than the LED controller (TCA62724).

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

 ![icm20948_i2c](https://discuss.cubepilot.org/uploads/default/original/1X/8e194ed0308122e861bbf536f5af57c757bc9efc.png)

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

---

<div class="post-metadata">

**Author:** ![philip](https://discuss.cubepilot.org/user_avatar/discuss.cubepilot.org/philip/32/9035_2.png) [@philip](https://discuss.cubepilot.org/u/philip)\
**Post date:** [4 February 2019 22:36 UTC](https://discuss.cubepilot.org/t/here-v2-rtk-external-sensors/171/2 "2019-02-04T22:36:47Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![tonysam1](https://discuss.cubepilot.org/letter_avatar_proxy/v4/letter/t/ccd318/32.png) [@tonysam1](https://discuss.cubepilot.org/u/tonysam1)\
**Post date:** [5 February 2019 01:07 UTC](https://discuss.cubepilot.org/t/here-v2-rtk-external-sensors/171/3 "2019-02-05T01:07:07Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![philip](https://discuss.cubepilot.org/user_avatar/discuss.cubepilot.org/philip/32/9035_2.png) [@philip](https://discuss.cubepilot.org/u/philip)\
**Post date:** [5 February 2019 08:24 UTC](https://discuss.cubepilot.org/t/here-v2-rtk-external-sensors/171/4 "2019-02-05T08:24:51Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![tonysam1](https://discuss.cubepilot.org/letter_avatar_proxy/v4/letter/t/ccd318/32.png) [@tonysam1](https://discuss.cubepilot.org/u/tonysam1)\
**Post date:** [5 February 2019 14:09 UTC](https://discuss.cubepilot.org/t/here-v2-rtk-external-sensors/171/5 "2019-02-05T14:09:18Z")

</div>

> [@philip](#):
>
> hould already be a way to do this in

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!

---

<div class="post-metadata">

**Author:** ![tonysam1](https://discuss.cubepilot.org/letter_avatar_proxy/v4/letter/t/ccd318/32.png) [@tonysam1](https://discuss.cubepilot.org/u/tonysam1)\
**Post date:** [5 February 2019 18:23 UTC](https://discuss.cubepilot.org/t/here-v2-rtk-external-sensors/171/6 "2019-02-05T18:23:52Z")

</div>

@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.

---

<div class="post-metadata">

**Author:** ![philip](https://discuss.cubepilot.org/user_avatar/discuss.cubepilot.org/philip/32/9035_2.png) [@philip](https://discuss.cubepilot.org/u/philip)\
**Post date:** [5 February 2019 23:04 UTC](https://discuss.cubepilot.org/t/here-v2-rtk-external-sensors/171/7 "2019-02-05T23:04:25Z")

</div>

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