What “PWM” resolution will the 32xServo Hat Use?
I have not given the question much concern, but I notice that someone advertise 12 bit resolution on similar products. I tested the same Circuit they use earlier and decided against using it because it’s I2C interface was to slow in making multiple servo position changes simultaneously. I simply could not move my robot the way I wanted, so lets look into the details.
The 32xServo Hat uses a M3 72Mhz ARM that only sit around to clock channels. So my resolution (position accuracy) is depending on how fast and reliable I can tick through a 32 entry table. 12 bit resolution means 4096 positions while we can estimate at least an iteration per 0,1 ms giving 10,000 positions. If we really need to we can probably add a zero to that.
The second question is more interesting – how fast can we change all 32 channels if it is part of a combined movement? And can we pre-store complex operations on the Hat?
This is the thing – we do have a powerfully MCU so we can program intelligence into the Hat to avoid that RPI needs to do low Level operations. Data transfer rates are fast so we can set 32 new positions within a single command using max 10ms from writing it on the PI until it is effect on the controller. This is crucial for more complex robots. The difference is not the speed of the SPI, but the fact that I can do it in a single command on 32 channels due to the design of easyIPC.
Returning to more complex operations – I think we should add a micro-script allowing the Hat to store pre-loaded operations – We actually got 20-32Kb SRAM we can put to some usage because it is more or less unused right now.