Set the _KI_LIB_GIT path to point to a local copy of the kicad-library
Git repository. Then this project will pick up the Git libraries
instead of the system ones.
Now the board is within spec for MacroFab. Also, the power traces at
the USB connector are thicker, so should be able to carry high currents
more easily.
This is a major change! Almost all the components have changed to
smaller versions, with 0603 and 0402 passives and a QFN microcontroller.
The board now has four layers, with internal layers used for VBUS and
GND. The board now measures a mere 25×30 mm! The SWD header and Boot
switch footprints have been moved to the bottom to help with this
shrinkage. Two test points were added to the bottom as well to make it
possible to power the board without using the USB connector. The
mounting holes are now slightly smaller (better sized for M3), and only
17 mm apart instead of the old 18 mm.
To sum up, everything is smaller and that's almost entirely a good
thing, except now it's not really possible to build one by hand.
As it was, it wasted around 85 mW whenever the output was turned on at
20 V. That's a silly waste of power. A 100 kΩ pullup works just fine,
so I changed it. Now there's only 4 mW wasted, so I'm happy.
There's now quite a bit of stuff located under the USB connector. A lot
of manufacturers mark that area as a keep-out zone, but luckily,
Amphenol is not one of them.
It's a USB Type-C connector just like the one used in v0.1 and v0.2, but
with only SMT pins (except the fixing pins, of course). They're
slightly cheaper and probably nicer for automated assembly, but
impossible to hand-solder. That's okay though: where we're going, we
don't need hand-solderability.
The traces to the thermal vias for U1 shouldn't have been as small as
they were. Not that U1 gets particularly hot, but it would just be
nicer to use thick traces to extend to the thermal vias.
The slider for the Boot switch is no longer overhanging the board edge.
This is nice for designing enclosures, as now nothing overhangs the long
sides of the board.
Now the board should be much happier carrying 5 A, possibly even with
1 oz copper. I'd still prefer to get it made with 2 oz copper as a
matter of principle, but IPC-2152 calculations make it look like I'd
probably be okay with 1 oz.
As it was, had the silkscreen been shifted a conceivable amount, it
could have exposed portions of traces to nearby pads, opening the door
for accidental shorts during soldering. Fixed by keeping the traces
farther away from neighboring pads.
They won't be installed by default, so there shouldn't be solder paste
applied to their pads. To that end, I copied the footprints to the
pd-buddy library and removed the paste from all their pads.
The switch is optional, no components need to be removed when it's
installed, and there's no zero-ohm jumper. This circuit has been tested
on a modified v0.1 board, and it works fine.
Since it really seems like a good idea to include the flyback diode by
default, I decided to change it to a surface mount device. After that,
I noticed that it would be easy to shave another 0.5 mm off the end of
the PCB, so I did.
There was previously no way of seeing where the business end of the USB
connector was. To solve this, I added a crude outline of the connector
on the F.Fab layer.
The long VBUS trace connecting the USB connector to the MOSFET was a bit
marginal in terms of width, and plenty of room was available for it.
Therefore, I decided to change it into a filled zone, which is at least
5 mm wide for most of its length. The resistance will be much lower,
and all the vias stitching it to the other VBUS zone under the MOSFET
will help carry heat away as well.
The LED does a lot more than indicate that power negotiation failed, so
its name has been changed from NOPWR to Status. The boot mode switch
doesn't need to be yelling, so its name is changed from BOOT to Boot.
KiCAD made a lot of small changes to a lot of footprints, so I updated
them all. About the biggest difference I saw was the pads for the SWD
header are closer together.
All the power traces immediately around the MOSFET are now zones.
Huzzah! The power traces at the USB connector are slightly wider now
too. And to top it off, the ground connection to the power output
connector now has a separate zone to remove the thermal relief instead
of wide traces.
Now there's a filled zone connecting the MOSFET output to the connector,
and the + side of the output is close to the MOSFET. Both connector
leads have no thermal relief, for minimum resistance.
The USB Type-C connector was a bit far from the board edge, so I moved
the edge 0.5 mm closer to it. This allows enclosure walls to be thicker
and whatnot. I also moved the screw holes back to keep them the same
distance from the board edge, and moved D4 and R10 to keep their text
unobscured.
0 Ω resistors are cheap, and switches are expensive. It would be nice
to be able to save the price of a switch, since it's not really
necessary anyway. I can program these by SWD, after all.
I added a 0 Ω resistor, R11, to pull the BOOT pin to ground in lieu of
having SW1 installed to do the same job.
Boy, I'm good at messing up transistors! This time it was just the pin
numbers for the collector and emitter reversed, because I didn't copy
the symbol from the datasheet but rather assumed another SMT 2222 would
have the same pinout. Interestingly, it actually was able to control
the MOSFET at VBUS = 5 V and at VBUS = 9 V, but at VBUS = 15 V the
reversed transistor couldn't pull the MOSFET gate down enough.
I had the source and drain reversed—whoops. After fixing it with an
X-Acto knife and some point-to-point wiring, I've updated the schematic
and PCB files accordingly.
THIS ALSO MARKS THE BEGINNING OF DEVELOPMENT OF THE NEXT BOARD REVISION.