STM32 Virtual COM Port Issues

For some reason, the Virtual Com Port (VCP) drivers for STM32 chips were acting up and not properly enumerating a usable COM port on Windows when I was testing an STM32L476 chip.

I’m not sure if this is a chip-specific issue or if this problem shows up on more chips using the STM32Cube Hardware Abstraction Layer.

(Even after I installed Atollic TrueSTUDIO and the older STSW-LINK004 Windows utility, which I like better than the new STM32CubeProgrammer because it doesn’t require Java.)

Continue reading STM32 Virtual COM Port Issues

EAGLE CAD Custom Parts Gotchas

Here are some notes and reminders to myself, things to double and triple-check when creating a custom part.

These are things that I’ve messed up.

Package Creation

EAGLE Layers

Top (or Bottom) means exposed copper on the board, use the “Land Pattern” information in the datasheet to create these pads:

Land pattern = the exposed copper

tStop (bStop) means no colored solder mask applied in this area, so the copper is cleanly exposed, usually a bit larger than the copper pads:


tCream (bCream) shows the size of the stencil openings, usually a bit smaller than the size of the copper pads:


Note that the dimensions of tStop > Top > tCream, which makes sense. tCream is the smallest, because you usually actually don’t want your solder going all the way to the edge of the exposed copper. You get short circuits that way.

The tCream Stencils Are Usually Pretty Messed Up

One huge issue encountered quite frequently when using SMD parts in EAGLE is that the tCream pad sizes simply put too much solder paste onto the board.


People need to remember to adjust their device Packages and shrink the tCream rectangles, particularly for large pads that could cover a lot of paste and cause shorts under the package.

The default SMD part in EAGLE has tCream covering the entire pad, which will probably be a problem.

You can use the Design Rule Check -> Masks -> Cream setting to shrink the size of the stencil by some amount, but it’s not clear that this is the most effective way to design the stencil. It may require more specific, per-Package tuning. Using the DRC setting applies the rules to all SMD devices in the design.


But this doesn’t make sense, for instance, for simple devices like a 0805 resistor or capacitor, as having a lot of solder most likely will not cause a reflow short to occur.

And using these settings may cause problems for certain 3-terminal SMD chips.

Grid Units and Size

When creating surface-mount part packages, go to the command-entry bar (which might be in inches):

EAGLE CAD Grid Default

And type:

grid mm; grid alt mm;

And the system will then be thinking in millimeters:

EAGLE CAD Grid Default (mm)

You might want to set the grid to match the grid pattern in the datasheet. Let’s say you’re creating a VQFN12 part, with a 0.5mm pitch:

Land Pattern VQFN12

Then you can see that each pin center is offset by 0.5mm. So you can tell EAGLE CAD to set up a grid and alt grid this way by saying:

grid mm 1; grid alt mm 0.5;

Through-Hole Pads

When creating a through-hole via / pad it doesn’t automatically create a tStop mask that can be easily soldered to. I’ve gotten bit by this. It will create a plated through-hole, but not a copper pad. This is evil.