I've also made progress on the hardware side of the house. The current hardware is effectively USB-A only, and the new revision aims to fix that. I feel like the details are somewhat interesting on this. Perhaps that isn't true for hardware developers, but I think everyone else will enjoy, so it's story time!

I took on maintenance at hardware v1.2. It relied on a voltage regulated that was not available anymore. The journey begins...

I taught myself KiCAD and updated the design to use a different voltage regulator. The pins were reversed from the previous component, so this spawned v1.3. Exact same thing as v1.2 except it used components which were actually available.

That was OK, but the board had components on both sides, which made assembly tedious and error prone. Plus people were asking about native USB-C support.

Between my desire to make these devices easier for people to build at home (myself included) and the USB-C thing, v1.4 was born.

This put all the components on the front of the board and added a USB-C connector. After a few attempts, I decided the surface-mounted USB-C connector was going to be too tedious for people to assemble, and I settled on the through-hole version.

After making a huge batch of these new boards, I discovered I made two errors.
1. I didn't connect the data pins from the A-side to the B-side. The result, you can't plug it in either way. Awkward for a USB-C connector!

2. More importantly is would ONLY work with USB-A to USB-C cables. I had wired it per the USB spec for legacy mode because the MCU only supports USB 2.0. It was only later I realized that legacy mode was referencing the cables, not the protocol.

The net result is that v1.4 hardware is basically still USB-A only. Yeah, you can put both USB ends on, but it's not going to work as most people expect

This brings us to v1.41, which is nearly identical to v1.4, except a 56K Ω resistor was swapped out for a pair of 5.1K Ω resistors and slightly different wiring. I've hand soldered this on a prototype board and can confirm that it works properly. I updated the board and published it, but I haven't had new boards made yet. So the story continues

I'm pretty sure that they'll work as my prototype did, but there's still some chance I made a mistake in KiCAD and will have to make yet another revision before it has real USB-C support. Time will tell.

So there you have it. A behind the scenes look at hardware development and how I'm pushing to make this tech more accessible to people and adding native support for USB-C.

#OpenHardware made with ❤️