New at Wan Hung Lo: Open Source Hardware! Presenting the USB A-to-Micro bridge (WHL #4) (updated)
Oh well, I already announced it’s gonna be fake. But the other way round
A while back, I saw the USB A-to-Micro bridge from youritronics. I already own one of these medium quality USB power meters that display voltage and current in an alternating fashion every few seconds. But complete control over power, data lines and also shielding is new. So I wanted one. In the short comment section however, someone noted that the signal routing probably isn’t the best. I had some spare time after Christmas this year, and I also wanted to test the Platinensammler (PCB aggregator) service from Jakob Kleinen. He gathers small and large PCB designs from people (mostly via mikrocontroller.net, I guess), combines them and sends out a big order once every month or so. He then distributes the individual PCBs himself, and everybody is happy.
This is my first PCB design, and while I started out with the provided Eagle files from youritronics, basically everything has been changed or replaced. Yet, it’s still under CC-BY-SA 3.0 and I decided to put the open hardware icon onto it, as this license seems to qualify for it. Below, the v1.1 rendering output of the excellent WebGerber is shown:
So, what have we got? A 2200 mil by 1250 mil (yes, Eagle yank units – roughly 5.6 cm x 3.2 cm) PCB with Micro-B on the one side and a standard USB-A connector on the other. There is a 5×2 pin header in the middle with a 1×4 attached at the bottom, and one variation has 2×2 SMD pads per side between two of the tracks. So basically, this PCB routes USB to USB, but the user can decide which of the traces may go through, which one doesn’t, and there is always the possibility to hook up your scope or multimeter to one (or all) of the pins.
The top contains most traces, and I tried to make the USB signal pair the same length and route them as 90 Ohm differential tracks as suggested by some online calculators. This is, of course, only true for 1.6mm PCB thickness (that’s what is offered by Jakob) and I’m not sure if it’s even correct. But I tried Silkscreen is only put to the top side, and I messed up the JP1 placement in version 1.0 (corrected in 1.1). The rest of the PCB was fine, I guess – someone might want to free some space around the four mounting holes at the edges to not scrape to GND, but that’s up to you.
Bottom side is a tad boring, only GND flood fill and the routing of the signal pair (which needs to be swapped once). For v1.1, I did some rounding around the mounting holes of the USB-A connector and also increased clearance near the bottom pin header. Both changes aren’t really affecting functionality — it’s just for the looks.
A fully populated board is shown below. Forgive me for only having a reflow type Micro USB connector, the PCB had quite a sizzle until I finally made all connections. There’s also a tiny bit of flux residue left on the board (I did give it a heavy scrub already). Nevertheless, I think it doesn’t look too shabby when you consider it was made with an unregulated iron for like 5 bucks
So once you throw in some jumpers, the board looks like shown below. It’s now very easy to put your ammeter in between, or to grab signals for your oscilloscope. The shield is also accessible, and one can experiment putting GND<->GND and SHIELD<->SHIELD, or all of them together, or coupling both sides with caps and resistors — that’s what the SMD pads are for. The 4×1 header is there to allow all combinations, as there are no larger jumpers available, as far as I know.
I also tested the unit prior to writing this. Test setup is shown below, the fully populated bridge hooked up to a short USB to Micro cable on the one side, and the other side hosts a SanDisk Cruzer Extreme 64GB. Read benchmarks are attached.
Speeds are 37.9 MB/s (direct connection to laptop) vs. 38.4 MB/s (with adapter);
Access time is 0.79 ms vs. 0.80 ms (different secondary Y scale in the images!)
So there is no difference at all, the adapter works very well. I haven’t carried out power measurements or signal snooping yet, but I measured track resistance across the device, connector to connector including jumpers, which is around 110 mΩ for data tracks and a tad more for the power lines. Measurement was taken by the great Milliohm measurement adapter from Jaanus Kalde called Half Ohm. So that shouldn’t be a problem even for USB devices that are at the upper level of the allowed range…or already above, like so many friggen hard disks.
Anyway, I think I am done with this project for now, as I have a fully working unit and I’ll keep the PCB without pads for future use. I did, however, get two overproduction units from Jakob, so if you’re interested, leave me a note. The PCBs will be 8€ each including postage in Germany — I don’t think international shipping is worth the effort. Same goes for a spare Half Ohm, which will be 19€ including shipping (and a CR2032 coin cell battery).
If you wanna run your own boards, both versions are attached below. Please leave a comment if you know how to merge two BRD files in Eagle without changing the part identifiers. I know how to panelize, but I’m interested in combining both versions (with/without SMD pads) in a single board file for cheaper production.
That’s it for now – next blog entry will be genuine Wan Hung Lo all over, I promise
:edit Feb 14, 2016:
I’ve just collected a Micro USB jack from the dead power bank I’ve reviewed recently and I decided to put it onto a second PCB. My order of ten new ones is still somewhere between here and China, and the guys over there have their New Years festivities going on. So, this is still not perfect, but it could be worse
I also noticed that some more slots below the Micro USB connector would be nice, as there are so many variations of them…