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.