As I was sitting there, miserably soldering together a fairly complex point-to-point and protoboard prototype,
wondering how many weeks of life expectancy the stress of all this precision work was removing from my existence, I thought “Why can't I just use some Grove modules for this”.
But the answer, of course, is that they suck. Majorly and incredibly. Let's look at the ways!
Apparently, education-focused tech is designed to teach the fine art of screwing around with discrete parts that you'll never use in real life, and which can't be used to build most of the
stuff that got you interested in the first place.
Everything is done the cheapest, simplest, and most low-tech way with these modules. You
can expect high power consumption, LEDs you can't turn off in software, and lots of old school analog relays.
I don't know what they were thinking with this one. Nobody else uses that connector. Why
they went with them over the very similar and commonly cloned JST-PH-4 is just baffling.
Generally, the basic design is a main board of some time, which
might or might not have onboard power or a battery connector, with
all peripherals powered by the main board. Generally the main board can only
be powered by USB, or some messy hand wiring to a craptastical module.
Not much really has to change. I believe that the existing, extremely common 4 pin standard is good enough, with only one small change, and one supplementary 3 pin standard, combined with
a generally increased quality of the modules.
Power should be much more modular. A new 3 pin connector could be defined, containing
ground, a direct battery connection, and a direct 5-24V Vin connection.
Often a peripheral will need access to some voltage other than the main system voltage,
which is getting to be 3.3v more often than not. Often you will want to power something in
an unusual way, such as from 12v. And quite often you'll want to add a larger battery.
Of course, modularizing power causes problems in the original educational context, as it would
then be easy to build a robot with big motors and overload the little JST type connectors, which may be why this is not done.
It also creates incompatible voltage level possibilities, but this imperfect compatibility
is already starting to become an issue, and most of these issues can be resolved with a simple polyfuse and a little bit of caution (Maybe even a little less than is needed for a handmade prototype!).
Tje power bus on the ubiquitous 4-pin connector itself could be more modularized. All
devices supplying power to that bus should be required to use a diode or similar, to protect against backfeeding.
If the voltage were to be dropped down to 2.4v ish, the whole system
can then be directly connected to an ultracapacitor or LTO battery as a UPS.
This of course presents a bit of an issue, as lots of things run on 3.3 that won't go
down to 2.4.
So it may be best to keep everything at 3.3v. But we can still benefit from requiring mainboards to protect against reverse current. Connecting two mainboards together, or powering a mainboard through the bus connector from two redundant supplies, are very useful use cases.
Another thing that this allows is 3.1vish UPSes. You might not be able to directly connect a battery to the bus, but you can have UPS modules that hold the data bus voltage at 3.1v, and charge
their internal battery when the voltage exceeds this.
My personal preference would just be to specify a separate power bus connector with 0-24v input, and 0-24v VBat, with the battery pin used to take power from the battery, which would be kept charged by whatever module it's directly connected to.
The VBat would also be overridden by any connected power inputs, no reason to drain the battery when not needed. Most apllications could just take power from VBat and ignore Vin.
Dropping the main data bus voltage becomes less of an issue when the separate 3-pin power connector is available. If you really need a bit of 5V, you regulate down from the unregulated 12vish bus.
Besides, as the 3 pin busses would be specified as unregulated, you can always just run them at low voltage.
As VBat isn't a “real” direct battery connection, it can be powered by a 5.5v boost regulator if you don't actually need 12v.
Now all of your 5v LDOs on that bus become almost 100% efficient!
But, it seems that 3 pins is “taken” in the STEMMA system. Perhaps we would be better served by 5 pins. Here we could almost get ATX-like. We have our ground, our 0-24v “VBat”, our 0-24v Vin, plus a regulated 12v and 5v.
Now of course, if you don't any one of these, you just don't use them. But you do parallel the wires in any connectors, if you have more than one. In this way, we have a standard way to
provide 5v and 12v to the whole system.
Another possible variant is lowering the VBat limit. This would make power input tricky, as input modules need to “override” VBat, and doing that from 24Vin requires a regulator.
But, the whole system in general becomes cheaper and easier when we know that VBat can't reach 24V.
Perhaps we could make it 16v. Cheap and easy to design for, but still able to handle the most common use cases.
Many circuits have things that aren't really GPIO(Already standardized with sometimes crappy 0.1“ headers), don't fit the usual modular idea, and aren't really power inputs either.
These include motors, speakers, batteries, solar panels, and the like.
Many of these have their own standard connectors (Don't let me catch you using non-neutrik speakers!), but the connector is panel mount, and we have to get from the board to the real connector somehow.
One possibility to standardize this would be to define the 6-pin connector as a kind of “Haha lol ur on ur own” connection. With JST-PH and 3 pins in parallel, we can theoretically handle 6A, enough for essentially all consumer audio, robot motors, and anything else.
This is slightly undesirable however, when anything other than power electronics becomes involved.
,and there's a chance to misconnect.
A better option might be to move to Phoenix connectors where possible. Those big chunky things
already let everyone know they had better be super careful.
Still, some kind of compact connector for odd cases that could use high power, does seem to be unavoidable, and there isn't always an existing standard.
The selection of grove modules usually leaves out the obvious: protected motor/LED/solenoid drivers, opto inputs, DMX drivers, and the like.
Instead of gimmicky sensors with poor calibration, and
Modules with onboard regulators also really need to watch their power consumption in standby.
That's about it. I really think modular electronics could be good enough for real use in the field, and easy enough for consumers to make their own gadgets, and to enable people to start repairing their own stuff again. We just need a few changes.