Hello, I was hoping to use up to 6 of the announced 12 PWM pins on the Nicla Vision board to drive servos as a function of the image processing. However, from the documentation, the Servo class seems to be limited to 3 pins, and I find no reference as to what are the actual physical pins on the Vision board. I believe I can “manually” configure PWM signals to do the job, but I was wandering if there was a more straightforward solution using the Servo class. Any thoughts?
Yeah, we never actually really documented or supported driving servos from the Nicla. It’s the same CPU though as our regular camera so the servo class probably works. However, I’d just use the MicroPython Timer to mimic servo outputs. This bypasses whatever limits are on the servo module.
https://docs.openmv.io/library/pyb.Timer.html
You just create a Timer object and then make a Timer channel for the particular pin output.
Pins available to use are here: micropython/pins.csv at befa2defb4ee0577f438c1a042f382a630646526 · openmv/micropython · GitHub
You can lookup which timer/channel is on which pins via the https://www.st.com/resource/en/datasheet/stm32h743vi.pdf.
Then finally, you just need to know which pins they broke out on the header of the Nicla: https://docs.arduino.cc/static/6e9c1946e3264c607feb85d195f0e669/ABX00051-full-pinout.pdf?_gl=1*q1dt85*_ga*MTIxNTg2Mzg3NS4xNjc3OTc4MjYy*_ga_NEXN8H46L5*MTY4NjI0OTE1NC4xNS4xLjE2ODYyNDkxNjMuMC4wLjA.