After adding several pins to a part, using them in the schematic, then saving the netlist, running CvPcb and saving the changes, and then reading the netlist on PcbNew with “Dry run” checked, I keep getting the error “Component ‘MC1’ pad ‘30’ not found in footprint ‘.pretty:Teensy3_2’”. If I display the footprint on PcbNew using the footprint editor, the footprint is correct with the added pins. I’m at a loss here. Can anyone help? I’m running version 4.0.2-stable.
And while you’re at it, don’t draw symbols like the real thing… sort and order the pins according to your circuitry logic (usually inputs left, outputs right) and get the power pins to the top/bottom (vsupply at top, ground at bottom).
The symbols in 99.5% of the case never resemble the real devices layout.
Also your footprint is missing the modules outline on F.Fab and the placement margin on F.CrtYd. Might also be a good idea to mark out pin #1 there.
I don’t know what you mean by “modules outline” and “placement margin on F.Crt.Yd”.
If on the board, I select the footprint and press “E” key, it brings up the “Footprint Properties” menu. If I click on “footprint editor”, it brings up the Footprint editor and shows the previous footprint. However it shows “active library:MyFootprints”. If I click on the “Load footprint from library”, it brings up the correct footprint. However, the “Update footprint in current board” is grayed out.
I thought you did draw the footprint. But if you just reuse it from somewhere I don’t think you will be inclined to add the missing courtyard and device outlines. Don’t worry about it.
Just open any AVR symbol in the standard library and check it out for inspiration.
Personally I’d probably put the Reset, DAC, RS232 and I2C ports to the right, the common I/O to the left (in some sane order) and Vsupply at the top and GND/AGND at the bottom. This makes it possible to draw schematics that kind of read from left top to right bottom and one can follow the flow of energy/information, but maybe that becomes less and less important in the digital age, who knows?
This one does some of it in the Teensy schematic symbol (decoupling real thing from symbol):
That’s my philosophy also. The schematic isn’t simply the initial step in the process of creating and laying out a printed wiring board, it’s the way a designer communicates his intentions. It tells about the design’s purpose and function, not necessarily its physical construction or appearance. The assumed audience is other engineers and technicians.
This can get especially complicated in the world of microcontrollers, where most of the pins can perform more than one function - depending on either how the uC is configured when the firmware is loaded, or the values loaded into control registers as the firmware executes. Thus a particular pin might be an electrical (or logical) input in some applications, and an output in other applications. It is reasonable (but tedious) for a design engineer to create several different schematic symbols for the same microcontroller, each customized to a particular design application where the part is used.
I definitely agree . . . but then a manufacturer throws a wrench into the machinery by creating an un-numbered connection labeled, for example, “Thermal Pad” or “Power Ground”. So far I’ve handled them by creating an additional pin number, one number higher than the last number shown on the Data Sheet.
I was able to fix my problem by deleting the component causing the problem and re-running the net import on Pcbnew. What I found is that I had another component that should have been an 8 pin IC and CvPcb had it as a six pin IC. This was causing another error on the net import problem stating that two pins were not available, similar to the previous problem. I updated CvPcb with the 8 pin IC, saved it and ran the net import again on Pcbnew and it kept stating that it was trying to use the 6 pin IC.
Well, I had enough of that and so I deleted the 6 pin IC on the Pcbnew screen, ran the net import and it finally ran clean. Everything was there as it should be. I believe that this is a bug in the code and is repeatable.
Simply create a simple circuit with an 8 pin IC but associate it with a 6 pin IC instead on CvPcb. Run the net import on Pcbnew. You will see an error stating that two pins are missing on the IC. Then go back to CvPcb and reassociate the part with the correct 8 pin IC, save it and run the net import again. It should show that the two pins are still missing and it will refer it to the 6 pin IC.