RAK18040 and RAK12500 conflict

Hi all,

I’m building a prototype based on RAK WisBlock. I need to process both audio signal, GPS, temperature and humidity, and acceleration. They don’t need to operate all at the same time. Audio capture needs to be continuous to detect anomaly (e.g. loud noise like alarm), but the rest can get activated on-demand. I also want to send notifications from the device via Lora.

The components I use:

  • RAK19007 base board with Lora, IO slot and 4 sensor slots
  • RAK4631 core module
  • RAK12500 module for GPSrak12500)
  • RAK18040 + RAK18041 for microphone audio capture
  • RAK1901 temperature and humidity sensor
  • RAK1904 acceleration sensor

For now I’m testing with the code samples from RAK repositories and I’m stuck at making all of these sensors work.

When I put GPS module into slot D, the microphone stops capturing any data. The board initialized, but then gets stuck and not printing anything into the serial output. In the same configuration GPS is working without any problems. The code I’m using: RAKwireless-Audio-library/examples/RAK4631/AnalogMicSerialPlotter/AnalogMicSerialPlotter.ino at main · RAKWireless/RAKwireless-Audio-library · GitHub

If I detach the GPS module microphone capture works fine. Also, when I move GPS to slot A, both work as expected.

If the GPS is in slot A, I then use slots C and D for RAK1901 and RAK1904. Then the problem is these additional modules don’t work. For example, I use WisBlock/examples/common/sensors/RAK1904_Accelerate_LIS3DH at master · RAKWireless/WisBlock · GitHub and there is no output to the serial.

Is it some conflicts on I2C bus when I use this modules? How can I debug it?

Or is it problem with power? I’m powering the board from via USB from my MacBook.

I’m using the latest non-RUI3 firmware.

Any help is appreciated!

UPDATE: Looking at the pin mapping tool it seems like IO is conflicting with the GPS module when in slot D. In this configuration I can get the example code for the microphone to work. Mapper tool is saying I can replace 3-axis with 9-axis and then move GPS to slot C (and use i2c), but then the board is pretty much unresponsive.

RAK1901 in Slot A
RAK1904 in Slot B
RAK12500 in Slot C
RAK18040 in IO slot

Should theoretically work if you do not use the interrupts of the RAK1904.

Bernd, thanks a lot for the answer!

In the configuration you proposed all the critical components work! The project is now unblocked, thanks a lot!

What didn’t work is RAK1904 in Slot B. When I have it attached to the board it will go unresponsive, even if I don’t use the RAK1904 in my code.

Do modules “save state” between the restarts? Does it mean I need to configure it beforehand?

I’m trying to run WisBlock/examples/common/sensors/RAK1904_Accelerate_LIS3DH/RAK1904_Accelerate_LIS3DH.ino at master · johansmacias/WisBlock · GitHub

and it seems like its not explicitly using INT1

After a power cycle you have to setup the sensors again.