I am trying to communicate a Nicla SENSE ME with an Arduino Uno through SPI, I2C, and UART, and in none of the cases has it been possible. The Nicla Sense seems to have a different encoding for each standard (it is supposed to be standard but it is not for the Nicla Sense - it seems that Bosch complicates everything and they do not respond in their forums). For this reason, I want to know if someone has already solved this problem, or how to file a formal complaint.
Sounds like a voltage mismatch problem.
You cannot directly connect I/O pins on a 5V processor to a 3.3V processor. If you tried, you may already have damaged one or both MCUs. Use a bidirectional logic level shifter instead.
I am using the voltage level converter "https://www.amazon.com/-/es/Convertidor-de-nivel-lógico-bidireccional/dp/B00M7U5DV2" and the oscilloscope shows that the levels are generated correctly. In UART I use 19200 baud as indicated in another forum. In I2C I use the default speed, when observing the logic analyzer you can see the generated frame, but at the end there is an extra bit that should not be there and is generated by the Nicla (God and Bosch know why that bit is there). This bit damages the communication and generates erroneous data until after a while it stops transmitting. If anyone has been able to communicate a Nicla Sense ME with an Arduino UNO using any of these three protocols SPI, I2C or UART, please tell me how you achieved it and what your hardware and software configuration is. Thank you.