D1 is now a B140, which is a MacroFab house part. It's actually a bit
more expensive from distributors than the SS14FL, but the lack of a
labor charge makes it quite a bit cheaper for PCBA. It's also larger,
so in order to fit the new part, I moved it between Q2 and J1. This is
possible because…
Q2 is now a DMP3017SFG. This is a cheaper, smaller, and less
over-specified MOSFET which should be fine for the job of controlling
the PD Buddy Sink's output. It uses a proprietary Diodes Inc. package
whose footprint I contributed to KiCad's library. Because the new
MOSFET is so much smaller than the old one, I was able to fit it close
to the board edge where R9 used to be.
The whole output circuit has been rearranged, and I like its layout a
lot more now. Also, the new position of D1 allowed me to move a bunch
of reference designators closer to their footprints, which is nice.
The components on the bottom, SW1 and P1, were using slightly modified
footprints from the KiCad library (default, but with no paste on any
pads) in v0.3. Now they're back to the default footprints, but with
local paste clearance set to -100% to make sure there's no paste on any
of their pads.
Made mounting holes have solid connection to zones
There's not really any reason for mounting holes to have thermal relief,
since they don't normally get soldered. Removing the thermal relief may
make them resist tearing more, too.
It used to be an MMBT2222, now it's an MMBT3904. The new transistor is
slightly lower-spec'd, but is still more than plenty for this
application. Also, it's a MacroFab house part, so the boards will be
even cheaper to manufacture.
Now signal vias are MacroFab's minimum size, and power vias have a
slightly smaller drill than before to not be slightly pushing
MacroFab's design rules.
U2 was moved to remove ambiguity. Q1 was moved to ensure it isn't cut
off by a hole. U1 was moved to stay away from where MacroFab put their
secret manufacturing code.
In the previous board version, there was a trace (OUT_CTRL) between the
Boot switch's pins 2 and 3. Since those two pins are the ones that
need to be shorted to enter DFU mode, it's possible that users wanting
to upgrade the device's firmware would want to short them with a blob
of solder rather than buying a switch. While the soldermask *should*
prevent this solder blob from shorting the OUT_CTRL line high,
soldermask can be accidentally scraped off, so I don't want to rely on
it in this case.
This commit moves the OUT_CTRL trace out from between SW1 pins 2 and 3,
and adds a keepout zone between those two pins. This should make it
much safer to bridge those pins with a blob of solder.
Assuming I'm going to keep ordering boards from MacroFab, it makes sense
to use their house parts as much as possible. Therefore, the next
boards will use a C&K PTS810 as the Setup switch instead of an Alps
SKQG. In addition to saving money, this change allows room for larger
"Setup" and "GND" labels.
MacroFab wants oval drills to be marked on the board edge layer, so
that's what I'm doing. Hopefully they'll be able to handle oval drills
better soon, given a recent comment on their blog.
The SOT-89 footprint changed its name slightly in the KiCad library,
so the voltage regulator has been updated accordingly. It has a nice
new 3D model too. It's not weird and blue anymore. I like it.
The SOD-123 was also updated to have a 3D model. The board now only
lacks models for the footprints I made myself. Heh.
Now they're MM3Z5V6T1G, an SOD-323 5.6 V 300 mW Zener diode. Similar to
the old part, but easier to solder and cheaper. One of those two points
matters.
KiCad has the right footprint now, so I don't have to substitute an
SOD-323 footprint. The 3D model looks less inaccurate I suppose, but
still not right for the particular diodes I'm using.
The footprints haven't been merged yet, but the symbol has. Therefore,
I updated the footprint in the pd-buddy library to match the new symbol
(changed shield pin number to S1) and changed the schematic to have the
new connector symbol. The board looks the same except that a couple
references changed.
Now that the appropriate pull requests have been merged, I can use the
standard part rather than the one I created in this repository.
Speaking of which, this commit removes FUSB302B and MLP-14 from this
repository.
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.
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.