I'd like to send data from a Python program on the Udoo to a 5V Arduino (probably a Teensy 3.5). The 5V Arduino will be running a dozen or so i2c sensors. Accordingly, the 5v Arduino should be the master on the i2c bus. Right now, I am sending data via serial from the Python program to the Udoo's onboard Arduino Curie and then off to the 5v Arduino using i2c. That works well, except the Curie's cannot operate as slaves on an i2c bus. So, the Curie is the master and the 5V arduino the slave. It was great for testing but that configuration ultimately won't work. I can think of a few options to achieve the same goal but I'd love some advice as to what people on this board would recommend. Thanks!
You could use one if the 2 I2C busses on the Braswell side: https://www.udoo.org/docs-x86/Hardware_Reference/Pinout_Braswell.html I am not sure if these busses can be defined as slave but it is worth trying. Take care of the 1.8V I/O level of these pins!!
Thanks. I fear it can't be used as a slave and I don't know how to go about figuring that out from the datasheets online. I was hoping someone on this forum could confirm slave use is possible. If I don't hear from anyone, I think I might try serial (using a logic level converter of course).
Good question. Not enough PWM pins or digital pins among other things. If those weren't issues, would there be any way to debug using serial.print() on the curie when it's is getting data from the Braswell side? Thanks!
You would have to debug it through the python program that is communicating with the curie through serial. There are also plain digital pin and pwm extenders through I2C if you need only that. So Braswell communicates with curie through serial. Curie communicates with I2C with sensors and extenders. No extra Arduino needed.
I would also suggest group all those sensors to the Arduino side. If Arduino 101 is not resourceful/powerful, use something else such as Mega2560 or Teensy 3.6. Even a $3 STM32F103 based Arduino is more flexible and powerful. There are also PWM extender boards and IO extender boards. You'll be much, much happier. Use Braswell X86 for its brain, not for its I/O capabilities.