There’s a lot of ways to burn up your time when designing PCBs, but renaming components can be one of the most frustrating. [Joe Pinzone] wrote in with his solution to the problem. Instead of hunting for each part on the schematic to change them one at a time, he makes a list of the substitutions and then uses a script to make all the changes in the XML files. He didn’t publish a post about his work, but you’ll find the source code he wrote embedded after the break.
The straw that finally broke the camel’s back was a project that included about two hundred components which didn’t seem to have a naming order that made any sense with the actual values of the components. The script is written in C++ (for Windows but [Joe] says this should be easily ported to other systems as well). To use it he creates a CSV file with the current component names in the first column. He then goes through and types what he wants for the new name in the second column. This CSV, along with the BRD and SCH files are then given as inputs for the script (through selecting them all and dragging to the script or as CLI arguments) and it automatically makes the changes.
Of course this is only possible because Cadsoft transitioned to using XML files in Eagle 6.
Continue reading “Renaming Parts In Eagle CAD By Editing The XML Directly”
Kicad is a fantastic PCB layout tool. We think creating a part for use with Kicad is in many ways easier than in Eagle, but it never hurts to have a few shortcuts. Here’s a new way to quickly get your parts into the schematic editor. It’s a Python script that generates symbols from an XML input file. You create the XML file with a list of all the pins on your part and the function they will serve. The Python script will then format that as a library file which can be imported by Kicad.
It’s a little bit clunky due to the number of steps in the process. But it is possible to use a CSV file generated in a spreadsheet program to create the XML needed by the script. We’ve used the online component builder ourselves, and appreciate the possibility of mass pin assignments instead of the drop-box for every pin as used by the web interface. One time we were 20 pins into the naming process and accidentally refreshed the page… ugh!
The code is available in their git repository, with a description of the XML format, and a wiki tutorial outlining the component building process. After you give it a try we’d love to hear what you think in the comments.
Version 6 of the popular schematic and PCB layout software EAGLE is now in beta testing. The most notable change is the migration to XML file formats that we looked at last month.
[PT] didn’t waste any time getting his hands on the software and giving it a thorough test drive. The image seen above shows the files of a MintyBoost. It’s impossible to make out at this resolution, but it is indeed spitting out human-readable (well maybe) XML in the windows below instead of the ‘no trespassing’ binaries they used to use.
Earlier today when working on a feature we had to jump on a different computer that had EAGLE installed in order to look at a .SCH file. We wonder if someone will put out a rendering package that can parse the new format and spit out a quick PNG? At the very least, we expect to see some useful hacks for part replacement or pin swapping. It shouldn’t be too hard to poke around and figure out what happens when changing some of the stored values. Got anything in mind that you can do by editing these by hand?
Oh, we almost forgot! The biggest benefit you get from this is the increased version control compatiblity since programs like git will be able to perform diff functions on the files.
[PT] posted about an exciting development from Cadsoft, the migration to XML based parts, schematics, and board layouts. The adoption of this open standard goes hand-in-hand with the open hardware initiatives people like [PT] have been pushing for.
Cadsoft Eagle is our go-to schematic and PCB software. We even have a tutorial which guides you through preparing your files for PCB manufacture. But the files containing parts libraries, schematics, and board layouts have always been binaries. A transition to XML means a lot of things. They will be easier to edit, and much friendlier for tracking changes using version control systems like SVN, CVS, Mercurial SCM, Git, etc. But immediately on our minds is the accessibility for hacking. Think of how easy XML parsing is in programs like Python. It should be snap to write scripts on a whim that will manipulate the XML files in any way imaginable. This doesn’t discount the value of Eagle, it extends the usability far beyond what any team of engineers at Cadsoft could produce by themselves. And for that, we say Bravo.
[Graham Auld] got his hands on an energy monitor for free from his utility company. The device seen in the insert provides a nice LCD display but he wanted a way to graph the data over time. There was an included cable and a method of using Google PowerMeter but only for Windows computers. He did a little poking around and came up with a Perl script to interface the meter with Google’s tools.
The hardware module is known as the Current Cost CC128 and the developer was nice enough to publish an XML output description which [Graham] used in his script. From there it’s just a matter of registering and authenticating through the Google PowerMeter API. The script is not fully polished yet but it serves as a road map for your own implementation.
[_coreDump] was doing some database vulnerability testing using SQLmap to automate the process. To his dismay, the package was unable to test using the Simple Object Access Protocol. Faced with having to manually test all of the SOAP vulnerabilities he decided to work some Python magic and add support. His solution allows SQLmap 0.8 to parses XML data from the SOAP protocol by modifying three files from the package. He’s made the diff files available if you need this functionality for your own security testing.