We’re reaching out to the Maker Community to get your input on our (maybe good, maybe really bad) ideas for our next PiicoDev Module - a PiicoDev Servo Driver
Backstory
We’re spending the next few episodes in our regular engineering show The Factory to take a deep dive on designing a project from end to end: Part selection, PCB, code - the works.
In Part 1 we selected a chip and assembled a test environment
In Part 2 (goes live this afternoon at 4 pm) we program a Hello, World script to drive a servo using the chip.
Which brings us to Part 3: Schematic (and maybe PCB) design. This is where we want to spin some ideas, Dear Maker.
PiicoDev works by connecting sensors and modules together in a daisy-chain. We want to make a new module that is capable of driving 1-3 servos.
Constraints
Connecting boards in a daisy-chain creates a power constraint: the bus runs at 3.3V and is supplied by low-power dev-boards. Certainly this won’t work for power-hungry servos which will happily draw >1A when delivering torque. Also, while there are some small servos that can be supplied by 3.3V, their action is sluggish and they can’t deliver a useful torque.
Ideas
So what can we do? Here’s some of our ideas - tell us what you think! We’d love to hear your thoughts on these, and if you have any of your own. We’ll feature this forum topic in the next episode of The Factory.
Idea 1 - USB-C for Power
Servo Driver Modules (and other future high-power modules) feature 2xPiicoDev connectors and 2x USB-C connectors. 5V can be brought in via USB-C from an external power source (like a power bank), and USB-C cables can daisy chain connections between multiple high-power modules. If USB-C is used for power-only, then PiicoDev cables would need to be run in parallel to transport the I2C bus.
Idea 2 - USB-C for Everything
This is the same as Idea 1, except the USB-C cable carries all signals:
- 5V power
- 3.3V power
- I2C bus (SDA and SCL)
- Ground
This topology would potentially allow a user to have some PiicoDev hardware in a daisy-chain, connect a couple high power modules in the middle of a regular PiicoDev daisy chain - all with just one connection between each module. The I2C bus data comes out of the PiicoDev connector, routes through USB-C hardware, and then routes back to the PiicoDev connector.
This is my personal favourite, and what I really wanted to get the community’s feedback on. There are risks here, like what happens if somebody naively plugs a powered servo module into their computer? How could this design be made safe by eg. selecting appropriate conductors within the cable?
Idea 3 - Use an adapter
An adapter could combine PiicoDev signals (3v3, GND, SDA, SCL) with high power (5V, GND) from a USB C connector. The output of the adapter could be some 6-wire harness that can handle reasonable current (this also doesn’t rule out USB-C).
What do you think?
So there you have it - just three candidate ideas for getting power into a servo driver without too much fuss. You’ll notice we have a love affair with USB-C in the first two ideas, and the third is an attempt to get away from that fixation and do something a little more conventional at the expense of introducing another (custom?) wiring harness into the PiicoDev ecosystem.
We’d love to hear your thoughts on these ideas and your own!
- Michael