Altium Circuit Maker
Altium (used to be Protel) makes some very nice PCB design tools, and Altium Circuit Maker is their newest product, with the added benefit that it is free! This two part series looks into Circuit Maker, and has a quick tutorial on usage. As always, leave comments below!
Altium Circuit Maker has upsides and downsides, but overall I think this will be a GREAT addition to the open source hardware movement! Sharing all your designs and parts libraries by default is a bold move, and should lead to great things!
- New, Modern tool, looks good and is much easier to use than most other stuff out there.
- Integrated design and library sharing system (see cons), integrated parts backend uses Ciiva
- Exceptionally well done online manual
- Unlimited FREE usage (no layer limits, no parts limits)
- Did I mention it is FREE with NO LIMITS (looking at you EAGLE, Upverter, etc…)
- Always online, no local storage of any files
- Forced to share designs, no real choice apart from a few “Sandboxed designs”
- Slightly buggy, though way better than the professional version of Altium!
- Not much Tutorial content, more of a manual here-is-everything-and-kitchen-sink approach from Altium.
- Fatal version control flaw!
If I had to point to one thing that Altium Circuit Maker desperately needs is better community support! The starting community page is lackluster and random.
Altium! Please add this stuff:
- Ability to rate Users. Show recognition for the best and brightest designers!
- Make re-use of sub-circuits easier! Right now, my only real option is to go randomly searching through projects, hoping to stumble onto something useful, copy the project, and tear it out. The ideal case would be to have separate sub-circuits section, where I can easily find a buck/boost converter, battery charger, and other stuff EEs use over and over. Then make it easy to place right into the design.
- Improve Ability to rate designs! You can post a comment and rating, but there is no detail. What about the design is 5/5 stars?
- Let us comment and accept pull requests on commonly used parts.
- Let user have their own homepages to show their work! (Kinda exists under Community Profile…)
- Have a website we can check for community activity, instead on only through Altium Circuit Maker.
- Speedup access to community. I have a fairly fast internet, and it takes 5-10 seconds to load each page. Very frustrating when you are searching for anything.
- Bring back the Altium keyboard shortcuts! I miss being able to press P(place) -> W(wire)
- Many to one relation, or generic parts. I need only 1 model of a 0402 resistor, and then specify that it is a 10k 0402 resistor later.
Here is the current deal breaker though: There is no version control for library parts or anything in place at the moment! I can go in and change practically any library part in any way I want, authors retain no control on their parts library entries. My changed part becomes the new default revision, as in the first one listed and selected when importing a part. THIS is a deal breaker, for 3 reasons:
- A malicious script kiddie can come in make empty parts for every part in the library, which is easy to restore but annoying. More serious is they can subtly break designs, such that when users make em, the board goes up in smoke!
- There is no way to know how good or accurate a design is! It could be off by a mile or perfect, but without visibility into the versioning, I can’t tell what has happened to it.
- Even with the best intentions of fixing a mistake, changing a part that is already in someone’s design is a recipe for disaster. The existing design doesn’t change by default, but doing a library update or making a new design and bringing in the part does cause the change. Multiple version revision control is needed.
If Altium Circuit Maker wants to fix this, they need to employ the Github model, and FAST! That way, every part would have an “issues” page, a rating page, and authors would hold the “master” copy. If someone comes along and notices a mistake, they can submit a pull request. If the author is not responsive or doesn’t want to fix, they can then make a fork and direct people to the corrected version. This would solve all of the versioning issues very quickly.
There doesn’t yet seem to be a lot of tutorial content out there for Altium Circuit Maker, so I am going to walk through getting a simple board produced! The tutorial will also cover some tips for first time circuit designers. General steps are idea, parts selection, schematic capture, part creation, board layout, and production output. The full documentation is available here: http://documentation.circuitmaker.com/
What do you want the circuit to do? Does this function already exist? (please please PLEASE do not make another level converter or RS232-USB circuit, there are thousands of em). Things to consider:
- Voltages and currents. Designing for 5V at 500mA max is a good place to start, as you can easy get tons of power supplies for this (USB)
- Complexity. The complexity of what you are trying to do drives both board size and layer count, which in turn is the major driver of cost on most small projects
- Manufacturing. Is this a 1 off, or something you are planning to make thousands of. The more you are planning to make, the more time you should spend minimizing parts counts and making more robust designs.
In this example, I will be making a small programming header board to get from the venerable AVRISPv2 to a small integrated board. I will need to source USB power, provide some simple protection, and have a signal inverter for the reset line. I am making 1 board only.
Now that you have decided what the circuit must do, we should consider the core parts of the design. The main microprocessor or other central parts should be listed. For my project, this is simply a header, an inverter, plus a 3.3V linear regulator. When selecting parts, be sure they follow the requirements from the Idea section above.
Schematic capture and starting a Project
Open Altium Circuit Maker, and start a new project. Note that Altium Circuit Maker makes project open to the world by default, but has recently made a “Sandbox” mode available to keep it private. Next, right click on the project and select Add New To Project -> Schematic
Pro Tip: Use the Windows Problem Steps recorded to help easily write super detailed tutorial steps and screenshots
The first part I am going to add is the inverter. Go to the View top toolbar, and select Libraries. On the right side menu, I input the part I am looking for, ensuring the top “Has Model” checkbox is checked, the NC7SV04P5X. Repeat this with enough parts until you have most of the important ones.
Now that we have some components, we can take our first stab at wiring them together. For now we are going to stick strictly to the basics, things like sheet re-use, buses and differential pairs are to be covered later. First add power ports, one for each GND and power signal. Don’t make the mistake of leaving the power port named VCC, double click it and rename it to something like 3.3V. This makes your design less error prone and much more readable. After your power ports, wire up all remaining connections.
You can also add comments, to help explain design decisions. These are publicly viewable, and can also let users flag issues.
Sometimes the part you want does not exist in the Altium Circuit Maker included CIIVA library. This is your chance to create a part and give back to the community! In my case, a header that matches the AVRIPSII programmer does not exist, with part number 75869-131LF.
Open the Libraries side panel under View -> Libraries. Here, enter the part number you want (ensuring the top “Has Model” checkbox is NOT checked) right click on the brought up component and select “Build this component”. Altium Circuit Maker now automatically populates the part entry with a ton of data, saving you time. We now need to add a Schematic symbol and a Footprint. This is done by clicking the + signs at the bottom of the page.
If you realize later on that you made a mistake here, got to Libraries, search for your part, right click and select Edit.
WARNING: Make sure to click “Commit” when leaving, else your work is LOST!
Here we draw the schematic representation of the part. This consists of adding pins (Passive, In, Out, etc) and drawing an overall shape of the part.
- Keep inputs on the left, outputs on the right, +Ve Power on top, -Ve (or Gnd) on bottom
- You don’t have to match the physical layout of the part, make it easy to understand instead
- For truly huge pin counts, split the part into several schematic parts. Take a look at the STM32F407 for an example of this, they split the power from all other pins.
- Keep pin lengths at 20 or 30
- Hit Tab when placing a part to change its properties
- Select multiple parts, hit F11 to change properties for all of them
- The “Display Name” should match what the spec sheet for the part states, the “Designator” is used to match pins from schematic to footprint.
- When drawing a bounding box, keep it transparent and extend slightly past last pin
- Adding symbols is optional, but recommended for usability. Good free list here: symbols
- Add a Reference Designator to your part! Click Library -> Component Properties. My connector is labelled J, from the Standards here: Reference Designator
More info here: Add a Symbol
The footprint is the physical model of the part. It is used to define pin and pad placement, silkscreen outline, and ensure mechanical fit. All parts created should ideally have a 3D model, but this is not required. The bare minimum is a mechanical outline, pads, and indicator for orientation (usually silkscreen symbol for pin 1).
- Search for existing community footprints with “Place Existing Footprint”, don’t re-invent the wheel!
- For complex parts, search to see if a manufacturer provided .step model exists. This can be directly imported into the footprint. Read more here: 3D body
- If there is no pre-made 3D model, draw the outline, and then head to Tools -> Manage 3D Bodies. There, extrude the outline you drew up to the height of the part.
- Pin 1 or center of the part is generally used as the “reference” point of the part, that is the 0,0 location.
- You can have multiple footprints. This is generally used to make a “tight tolerances” version, and a “relaxed tolerances” version.
- Press q (with nothing selected) to toggle between imperial and metric measurements
- Always identify Pin 1 with silkscreen markings or pad shape or BOTH (ideal solution)!
You may have noticed a third box on the parts creation page titled Simulation model. This is used when simulating electrical parts prior to production. In my opinion, in 99% of cases for the hobby/small project world, it is not worth the effort to use the simulator.
That’s all for today! Tune in next week for Part 2 – schematic naming, Board layout and manufacture!