We're using DesignSpark to do the latest version of the BMU circuit boards. As NevilleH has pointed out earlier
it's freely downloadable from here: http://www.designspark.com/pcb
It seems to be pretty mature, capable software, with a well thought-out overall design, but dear oh dear some very commonly needed things are totally non-obvious (to me, at least).
So I thought I'd start a list of tips I've learned, in case anyone else wants to use it. The tips are in no particular order. My intention is to edit this post as I find more tips to add.
* Change current layer
. To change the "current layer" (so subsequent tracks go to this layer), click on the Add Track toolbar button, then *before* you lay down any tracks, press "L" and it will prompt to change to the next layer. If you have only 2 track layers, it will default to the one you are not on. Just press enter to accept (or escape to dismiss if it turns out you were on the right layer in the first place). You can also "choose" the current track by starting with an entity (e.g. a track) that is definitely on the side you want (as opposed to something like a pad, which is on all layers). Hiding other layers doesn't cause it to start a new track on the only visible layer.
* Pads on special layers
. You can use a variation of the above to put pads on special layers like the solder mask layer, or solder paste layer, or just on a copper layer and not on any paste layer. After selecting "Add pad" (F4) and before clicking to place the pad, use the context (right button) menu Change Layer (L) command to select the exact layer you want. Afterwards, you can only select from the "aggregate" layers like [All] or [Top]. (Note that [Top] really means three layers, top copper, top solder mask, and top paste.) We needed to do this to make a pad whose size was different on one side of the board to the other
(to ensure maximum clearance to something that could have high voltage in a fault condition). We added the larger of the two pads last, on just the copper layer, then added another pad (enlarged by the usual solder mask enlargement amount) to the solder mask layer. That way, there is no hole in the paste mask for this pad, so solder paste won't ooze through the hole like spaghetti.
* Mitring tracks
. To make tracks "mitre" (use 45 degree angles as normal), right click on any track and select Edit Segment, then right click again and choose Segment Mode / Miter.
* Deleting track segments
. To delete a track segment, highlight it and press Control-U (Unroute).
* Terminating tracks (etc)
. When laying down a track, and you don't have something to terminate it to (like another track or pad), right click and select Finish Here, or simply double click, or better yet press the enter key. Note that if you press escape, you lose the whole track that you've added, not just the last segment! This sort of thing caused us almost to give up on DesignSpark a few times, but every time we've found that the alternatives are worse, and there is a workaround that is fine once you know it.
* Adding a corner
. To add a corner to an existing track, use a double click. It doesn't always seem to do what you want; I hope that with experience I'll figure out what's different about the times when it won't cooperate. When it doesn't co-operate, you can often drag to one side, making the *next* corner, and adding another corner to replace the "borrowed" corner later. With practice, this becomes easy, though never natural.
* Moving a corner
. To move a corner, first make sure that nothing is selected (e.g. click away from anything). Then click on the corner and hold the left mouse button down. It will then be able to be dragged in two dimensions.
* Start laying tracks
. To start laying tracks, use the undocumented F2 key. (It is documented in the help, but is missing from the menu).
* Laying tracks mode
. When adding tracks, there is an almost invisible mode, where further clicking will attempt to continue the track. Watch the "Add Track" toolbar button; it highlights when in this mode. Press escape to exit the Add Track mode.
* Dangling tracks
. Occasionally, DesignSpark will display a track with a purple stripe down the middle
. This is a track that it thinks has no connection at one or both ends. To fix these, you need to make a new connection to where the track is supposed to go. Often, you will need to use Unroute Track Segment (i.e. delete, using Ctrl+U) the last segment that is supposed to connect somewhere, like a pad, and redo that track segment. Don't be tempted to move the pad out of the way first; the only way to make a successful connection is when adding a track to existing elements.
* Select whole object
. When selecting a rectangle or other compound object (made up of primitives like lines), use shift. (Otherwise, you select just the primitive, such as one line of the rectangle.) You can also highlight a whole net
by shift selecting a track twice.
* Pad over pad
. To add a pad over a larger pad (e.g. to add through holes to improve conductivity from a terminal connection or to improve heat sinking), I found I got pad to pad design rule violations. I could not change the net on the pads using properties; it was greyed out. You can however select the small pad, and use the right button menu to select "Add to net". It doesn't default to the net it is touching, so find the name of the large pad's net first. If you need many small pads like this, copy this pad and paste to wherever else it is needed to save time; the copied pad retains its net name. When you paste it over the larger pad, it will give you some grief about merging nets; just press enter to say yes and all is well. I have no idea what it thinks it is merging. This whole pad over pad logic applies also to copper over pads.
* Zoom around a point
. Move the mouse cursor near the middle of the area of interest, and press Z to zoom around the cursor. Otherwise, it seems to zoom around the middle of the board. The companion command U unzooms. These can sometimes be the quickest way of getting to an area of interest.
* Show one layer
. Double click the layer in the "layers" tab of the interaction window (use F9 to display it, if it's not there). To turn on a heap of layers, use control-1 or control-3 (perhaps twice if some are already partly displayed). For example, control-1 can turn on all the top layers: documentation, silkscreen, copper, solder mask, solder paste.
* Select covered entity
. To select something that is underneath something else, just try to click on it, then use the N key to cycle through the things that are at that co-ordinate. Different things will highlight as you continue pressing N.
* Making a group
. You can make a group, to make easier things like rotating a section of artwork. Make a selection, right button and select Group. There are "tight" and "loose" groups. Tight groups get selected any time you shift select any member, but you can't move any of the members of the group relative to each other. They become a solid "brick". But by un-checking the "tight" option when creating the group, you can move members, but you can still select the whole group by selecting a member and choosing "group / group select" from the right mouse button menu.
* Changing a group
. "Edit group" seems to mean rename the group, but don't change the contents of the group. Remember that "Ungroup" really means "delete the whole group that this component belongs to". However, you can still delete a few components from a group without starting again, since the group information (which components, tracks etc are part of the group) is still present in the selection. So to delete one or more components, select any member of the group, context menu Group / Ungroup, deselect the appropriate components carefully using control clicks, Finally select one of the remaining components, context menu Group, enter the group name, and save.
To add a component to a group, you can use the context menu item "Add to group".
* Removing a "slot"
. On our board, we had a routed slot under an opto-coupler. For rotation reasons, we had another slot at 180° to the one under the opto, so when the whole board outline rotates, the other slot ends up under the opto-coupler. But we need a quick way to remove the unwanted slot in the north-west of the board. I found the easiest way is to move the arc west so that it meets the board outline, then while the arc is still selected, use the right mouse menu to select Arc / Arc To Line. It then disappears since it is contiguous with the board outline.
* Removing chunks of outline
. Outline is different to ordinary track - you can't select a "track" and just delete it. The only way to remove complex shapes is to cause one line to line up with another line, thereby coalescing them, or editing a mitre to zero length. Arcs must be converted to lines to get rid of them. If they end up as a 45 degree mitre, select it, context menu, "edit mitre" and make it zero length. It probably helps for coalescing lines to make the grid visible. If converting from imperial to metric, every lines needs to be moved to the grid before coalescing is likely. Sometimes an arc won't convert to a perfect mitre, so "edit mitre" is literally not an option (not on the menu). Then you need to edit segment. Make sure the ends of the segment are grid aligned first. Use enter rather than a double click to stop editing the segment; this seems to result in far more successful edits.
* Copper pour keepouts
. To keep a copper pour away from somewhere, define a copper pour on the appropriate layer (of the copper pour to be kept away), and tick the "Pour Keepout" checkbox.
* Repouring all copper pours
. To re-pour all copper pours (e.g. after our rotation), make sure that nothing is selected and the mouse is not over any entity, and use the "Pour copper" context menu. You can also clear all copper pours
* Copper verses copper pour areas
. Adding copper seems to not attempt to keep away from other elements like holes and pads. We used this for example where we wanted "snap off" lines with closely spaced holes, yet we wanted copper to connect through the holes. Keeping away from the holes meant the copper was discontinuous. However, we now use the method in the next tip.
* Copper over holes
. Copper pours with copper right up to holes can be achieved by using pads (on the [all] layer) that have zero size, yet a proper hole size. The copper pour only seems to care about the size of the pad, not the size of the hole. Note that some manufacturers (e.g. PCBCart) will flag this as an error, unless you document it as a sort of expected aberration. Copper pours are easier to deal with than copper shapes in some cases, since they automatically stay away from edges, cutouts, and so on.
* Moving by a fixed amount
. To move a component or selection by a fixed amount, use the "+" key. (Note that "+" is "shift-=", and the equals command sets the absolute position of a component or selection.) Now enter a relative amount to move the selection by. For example, to move the selection right by 1000, enter 1000 in the X box; to move down by 500, enter -500 into the Y box.
* Goto XY
. The Goto XY is somewhat hidden as a context menu in the Goto tab of the interaction bar (note: not the Goto tab, the window/bar above it). To goto the origin
, click in space (zoom out if necessary) and use the context menu "goto system origin".
* Different nets either side of a hole
. In our celltop BMUs, we wanted to have two different nets on the two sides of the bolt holes, for measuring voltage drops at the bolts. We used two single sided (SMD) pads, each on different sides. This gave a design rule error, pad to pad, as if these pads were on the same side. We fixed this by making one of the pad holes zero size. We had to manually add a filled circle to the solder mask layer on the side with the zero sized hole. One of the networks had only one component connecting to the network; to prevent a "single pin network" (SPN) error, we had to create a component on the schematic with a pad (not a via), and place that pad away from the bolt hole. The pad can be an SMD pad (one layer, no hole).
* Converting to metric
. There seems to be an "optimisation" such that if you attempt to move an object such that it ends up almost at its starting point, it will return exactly to that starting point. So to "metrify" a coordinate (following a units conversion from thou to mm, say), you seem to have to drag the object considerably away, then drag it back again, to get it to snap to the metric grid.
* Line over outline
. Sometimes you want a line segment that exists exactly over a segment of an outline. How to select one or the other quickly? Use control-shift-click on the segment in question repeatedly. When you get the outline, the whole outline will select and highlight. CLick once more, and you seem to be guaranteed of getting the outline segment. You can now convert this to arc or whatever you need to do. When finally modifying a board outline with documentation lines over the top, say to finally convert lines to arcs, turn off the documentation layer to be sure you get the outline.
* Arc flipping
. If when you convert a line to an arc, it goes just the wrong way, you can't fix it with any Flip or rotate commands. You need to use one of the Arc context submenus: Flip Arc. Obvious once you know it's there.
* Position "snap back"
. DesignSpark seems to have a habit of allowing or causing objects to "snap" away from where you move them to. This seems to disappear at higher zoom levels, so make it a habit to zoom before moving objects.
* Different router size
. We are trying a new prototype fabricator, and they use a 1.5 mm router bit instead of the 1.27 mm we had been assuming, and 1.4 mm after that. So we did a lot of outline editing. Inside corners are most easily changed with the "edit fillet" context menu; it tells you what the present fillet size is as you adjust, and doesn't mess with the other co-ordinates.
* If deleting a component deletes heaps of tracks
. This may be because you accidentally created a tight group; deleting one member of such a group deletes them all, regardless of selection. Check the tightness by selecting an object in the group, context menu Group / Edit Group; there is a check box indicating whether it is a tight group or not. Untick this checkbox to make the group not tight.
* Printed resistor
. If you are using a long length of track as a resistor, you will need to insert a 0R resistor into the schematic, and delete it at the last minute. To prevent net naming and other problems, before deleting the 0R resistor, add a short length of dangling track. After the resistor is removed, drag the end (ensure no prior selection) of the dangling track to a via or other suitable place. It will have the coloured line down the middle of the track, but that can't be helped. This can avoid the frustration if having to re-lay out an entire net worth of tracks. Ask Weber how he knows
[ Edit: unrouting a piece of track (not deleting it) seems to be a simple alternative. ]
* Changing designators
. When changing designators on the schematic and you already have a PCB design created, beware!
. The PCB editor can get very confused, and the result is that you can have many tracks deleted. The workaround is to use the Tools / Forward Design Changes menu item after changing a designator. There is no problem unless designators become swapped or rotated.
* Adding pins to an existing component
. To avoid a problem where the component doesn't update its pin count when you add pins, you should not be editing the component when making changes to the schematic symbol/gate. From the schematic, choose the "Book" icon in the toolbar, bringing up the library manager. Select the Components tab, if not already shown. Find your existing component, select it, and click "Copy To...". Give it the new name and click Ok. Now select the Schematic Symbols tab, find the existing schematic symbol, choose "Copy To..." again and enter a new name for the schematic symbol. Now click "Edit..." to add the extra pins (or whatever other changes are needed). Save the changed schematic symbol. Go back to the library manager, select the Component tab, and click "Edit...". Right click in the component area and select "Edit Gates". Delete the existing gate and click "Add..." to add in your new schematic symbol. Now the component should have extra rows for your extra pins, and you can assign pad numbers and terminal names for the pins. If you do things in the wrong order and end up with the wrong number of rows in the component table, it is actually possible to close the component and open it again to update the table size. You may not be allowed to save the changes without all pins being assigned, so you may lose some work this way.
To answer the inevitable "Why not use Eagle instead?", Eagle is commercial software. There is a no-cost version for not-for-profit use, but it is limited to fairly small boards, 100 mm x 80 mm. Our BMU board is smaller than that, but we want to join 8 boards with Squiggle Joins (TM), so that makes the "board" 360 x 78 mm.
Nissan Leaf 2012 with new battery May 2019.
5650 W solar, 2xPIP-4048MS inverters, 16 kWh battery.
1.4 kW solar with 1.2 kW Latronics inverter and FIT.
160 W solar, 2.5 kWh 24 V battery for lights.
Patching PIP-4048/5048 inverter-chargers.