@Ric, thank you for a phenomenal post. You make a lot of really strong points. All of your assumptions are correct, but you are missing one part which I have failed to make clear. The PCB that is being designed is a shield for an Arduino Mega, not a standalone PCB.
I completely agree the electronics should be as modular as possible. The shield will serve a couple of purposes:
- quick connections to components and/or daughter boards
- screw terminal access to unused pins
- easy swap-out capability with any board that has the same form factor as an Arduino Mega (such as the Adafruit Grand Central or other)
It will have some elements “baked-in,” namely the motor drivers. This was a hard choice and one we is still up for discussion if you see reason for it. The reason we decided to bake-in the motor drivers were:
- cheaper than buying individual, per-assembled units
- per-assembled units could become unavailable, but the chips inside them are unlikely to ever become unavailable
- the drivers being used are very generic and can support a wide variety of DC motors.
- if someone were to want to use something else, they can just use the other open pins on the shield and bypass the currently used pins for motor control in the code
With this combo of Arduino + shield w/ built-in motor controllers, I think we have something that will satisfy both the need to be modular/flexible and the need to be easy to assemble. I would love your feedback on whether or not you think the above have achieved those goals.
Here are some responses to sections in your original post:
DFM - the cost of manufacturing a PCB is very low these days and I can order them in small batches. These can be ordered from me or anyone can download the schematics and send them to the manufacturer of their choice. These would come assembled with all surface-mounted components (what little there will be for motor control) already installed.
DFR - you make an interesting point here about flaky motor controllers. I think the design of a basic driver circuit is robust enough to be trusted within a PCB and if you had to source your own through an online vendor you could still hook it up with spare pins provided on the shield.
Do you think it is better to leave the pins for the driver open and just provide a space on the shield for them to be soldered-on by the end-user? I hesitate to do that because not everyone will have the tools/skills to solder upon assembly. This is the main reason I have decided to build the motor control into the PCB shield.
Extensibility
I am so glad you are thinking about this. I can get very focused on what limited resources I have now (time, money, etc) that I lose track of all the different design possibilities for Kinograph. Your example of a vacuum chamber system is intriguing! I think in this case the Arduino Mega provides an ample number of extra pins both digital and analog that this will be feasible. And, if someone wants another board format, they can always create an adapter that accepts the Kinograph shield and re-routes its connections to the pinout of the board they prefer to use.
Thank you again for taking the time to think about Kinograph’s design in such detail and sharing them with such clarity. I really appreciate your thought partnership in this phase. I look forward to more collaboration with you!
Matthew