Power aware design

Building power aware circuits with typeCAD

typeCAD can now check for power issues as you develop your circuits.

Current carrying tracks

When creating tracks, you can pass a powerInfo object that includes the current the track will carry. typeCAD will check that the track is wide enough to handle the current.

let track = pcb.track()
    .powerInfo({ current: 1.0, maxTempRise: 10, thickness: 35 });
    .from({x: 100, y: 100}, "F.Cu", 0.2)
    .to({x: 110, y: 100})
    .to({x: 110, y: 120, layer: "B.Cu"})

Using the above code, typeCAD will check that the track is wide enough to handle 1 amp of current for the specified temperature rise and copper thickness.

If not, it will throw an error during build. Like this:

[TrackBuilder] ERROR: Track width 0.2mm is too narrow for 1A current on F.Cu. Minimum width should be 0.300mm.

This works for any segment of track and it is automatically done during every build. You don’t need to have a separate calculator and manually check each track segment.

Current carrying vias

Vias can be created with the optional powerInfo object. This allows typeCAD to check that the current draw through the via is within the limits of the via’s rating using the IPC-2221 standard. maxTempRise is the maximum wanted rise in temperature of the via, default is 10 C. thickness is the thickness of the via’s copper in microns. 35 is the default (1 oz).

let via = pcb.via({
  at: { x: 10, y: 10 },
  size: 0.6,
  drill: 0.3,
  powerInfo: { current: 3, maxTempRise: 10, thickness: 35 },
});

Using the above code, typeCAD will check that the via is large enough to handle 1 amp of current for the specified temperature rise and copper thickness.

If not, it will throw an error during build. Like this:

[PCB VIA] ERROR: Via size 0.6mm (drill 0.3mm) is too small for 3A current. Maximum capacity is 2.75A @ 10°C rise

This also works automatically during every build.

Connecting power aware tracks, vias and pins

typeCAD also now allows for powerInfo objects to be attached to pins of components. This allows for checking proper voltage levels and current draw between components and the nets they are connected to.

  • If you try to connect a device that draws 1 Amp, but only power it with a 0.8 Amp power supply, you’ll see an error.
  • If you try to connect a 5V device to a 3.3V power supply, you’ll see an error.
  • and many more issues are detected

This all happens automatically during every build.

Taking advantage of programmatic circuit design

This is a good example of taking full advantage of programming concepts for circuit design.