Jacdac Plug-and-Play for Microcontrollers
microsoft.github.io
microsoft.github.io
https://web.archive.org/web/20191130155328/https://jacdac.or...
I worked with a similar single-wire protocol when working with a large German appliance maker. This looks pretty close to the same idea, they even used PCB edge connectors like this to save a few pennies.
I'll just add that getting the software and hardware right is a lot trickier than it looks. Bus arbitration and collision recovery at the hardware level isn't always the easiest when working with low speed microcontrollers. And, by the time you have it all working, you've reinvented CANBUS but without the differential signalling so you need to keep the cables short.
And all of this is supposed to fit on a single 'cute' board with a pushbutton or tricolor LED? Hardware overkill.
It probably has some use in the hobbyist sector, I'd love to see Sparkfun or Lady Ada pick it up but they're very smart groups and have their own direction with things like Qwiic (which is just I2C, something already on a lot of MCUs in hardware) The proprietary connector, fixed to 3 pins only, is a huge turnoff too. I can get a lot more mileage out of putting FTDI parts on each side of a board and using USB-C patch cords I bought at the gas station.
Another issue is that the connector often short while plugging-in and out which may cut the power to your entire bus, resetting everything. Not a great end-user experience. There is also a risk users will plug Jacdac to their headphones, possibly burning them.
The Qwiic cables have to be really short (Jacdac cables can be a few meters) and are not designed for easy plug-in and out thousands of times. Also, the I2C devices are not standardized meaning you need a new driver in your software environment for every single accelerometer. Finally, I2C doesn't let you have multiple instances of the same device because of address collisions.
I like the edge connector though - nice way to get a maybe-someday connector on a board without adding visible BOM cost. The board routing involved will cost money, of course, and the gold plating shown, if necessary, is also a cost adder.
Gold plating is not strictly necessary, depending if you plan to use the plug thousands of times.
Edit: also very good observation on top of the comment - Jacdac is indeed a way to bring "modern" software engineering practices to hardware design.
That seems interesting on the cost side if the cable is not too expensive.
[0]: https://microsoft.github.io/jacdac-docs/overview/connectorca...
[0] - https://microsoft.github.io/jacdac-docs/ddk/design/#pcb-edge...
/me checks taobao again
Nope, still not.
Kittenbot devices came with a standard audio jackplug. Easy cabling, off the shelf.
But this wasn't originally for rocket science, but simple DIY projects or kids projects. If repositioned it will have a hard time getting adopted.
Jacdac both offers a standard way of using devices (from the website: 'devices with the same functionality but different hardware implementations can be substituted without having to recompile the application that uses them. For example, two different models of accelerometer hardware can replace each other because they share the same software interface.') and a standard way of finding devices (because all devices advertise the services they provide every 500ms).
Honestly, as somebody whose job involves a lot of interfacing with random bits of hardware, this would make my life a heck of a lot easier! There have been way too many times I've received a device manual for e.g. a Modbus-over-RS485 interface and had to go 'okay, is this list of register IDs zero-based or one-based? floating point or fixed point? big-endian or little-endian (or both in the case of one awful device!)' etc etc.
Now if only we could get all these silicon vendors to put Jacdac directly on their current I2C/SPI sensors... It's definitely possible given that basic Jacdac implementation runs on PMC150C with 64 bytes or RAM and 1.5k of ROM, but it may be a hard sell since they seem to like lock-in.