This compact servo features an N20 coreless motor and integrated driver board for positioning control. It incorporates a high resolution magnetic encoder and dual Hall effect sensors for closed-loop feedback.
The integrated Attiny microcontroller handles quadrature decoding and enables setting servo position precisely over I2C. Pulse width modulation of the motor is managed on-board through RPC.
It has 2 Stemma-Q I2C plugs to allow for chaining servos, and other devices together.
Since the gearbox is modular, the gear ratio of has a large range of different ratios for different speeds and torques.
The device operates on a supply voltage of 5-12V DC. It offers 360 degrees of continuous rotation.
Overall, it provides an good balance of precision speed control, torque, and small size.
When designing the servo, my initial approach was to drive it directly with PWM signals from the main robot controller board. However, after more consideration, I realized there were some benefits to instead using I2C communication to control the servo module:
Firstly, I2C helps reduce the load on the main controller's GPIOs. With many components like sensors and displays also needing to interface with the main board, minimizing GPIO usage is beneficial. I2C's multidrop bus allows all servos to share just two signal lines.
Secondly, having an integrated controller chip on the servo PCB enables more flexible control logic compared to direct PWMing. The controller can implement features like positional control, speed regulation, error handling, etc. Instead of outputting PWM pulses, the main board simply sends high level position or velocity commands over I2C. Likewise, the servo controller chip could be reprogrammed or swapped out to easily change the control algorithms. With the right firmware, the servo behavior can be optimized for different robots' needs. This modularity makes iterating and enhancing the servo module much easier.
Finally, offloading the PWM generation and other motion control duties from the main processor to the servo controller frees up processing power. This lets the mainboard focus on higher-level behaviors rather than precision motor timing tasks.
Unfortunately I had already orderd the PCBs, and will have to reorder an updated version, which will waste time, but that is just the game goes.
In summary, utilizing a dedicated servo controller chip allows me to add features, optimize performance, save main processor resources, and design a more scalable, flexible robotic architecture. While direct PWM control is simpler, I2C unlocks more possibilities.
Thanks! There is a disk with magnets embedded on the back motor shaft that spins and the poles get picked up by hall 2 hall effect sensors. This acts like an encoder. I just program the Attiny to get the pulse count, and calculate the position given the gear ratio.
Hi, I like your approach using an N20 standard. How are you going to measure the position of the output shaft? Do you mount a magnet on the gearbox? Much success on soldering your prototype and happy firmware development. bst matthias
Thanks! There is a disk with magnets embedded on the back motor shaft that spins and the poles get picked up by hall 2 hall effect sensors. This acts like an encoder. I just program the Attiny to get the pulse count, and calculate the position given the gear ratio.