A quick presentation.
A good project is NOTHING without good and understandable documentation. I've always loved good pinouts of dev boards, I think they save so much time and effort that they are a necessity.
I've searched a bit online and found PCBDraw by Jan Mrázek (https://github.com/yaqwsx/PcbDraw). It's a fantastic tool from which you can convert your KiCAD PCB to a Vectorial image.
Happy and full of myself with my nice SVG image, I then search for a good pinout maker software, and no dice. Such projects do exist but didn't fulfill my needs.
Some (too much) coffee later, I made a little program in Python that does just that!
The program takes a JSON file describing all the functions of all the pins you want to document and generates a nice SVG image. My code is quite messy and not well documented (ironic ?) but it was made specifically to meet the deadline of the Hackaday wildcard challenge.
What 3 nights of not enough sleep gets you?
I'm glad you asked, this is our dev board SPIN!
Be aware that some assembly is required. The current version of this program only generates the "pins" and the legend. All the images, text, license, and adjustments are made after the fact on Inkscape!
So what this piece of kit does deliver?
This is a sample output file untouched straight from the program:
Pretty neat hun? I like to think this is pretty similar to buying a piece of Swedish furniture and putting it together yourself. Jokes aside, a later version of the software could take care of a lot of messing around but I need some rest.
How do I feed this monster?
Each pin is made of labels, and each label has a style and may have categories.
Buckle up it's going to be quite the ride from now.
A style.json file describes all the available styles present in your pinout. They define the color of the label as such as the skewed factor and special capabilities (hidden label, dummy label, only text label).
The legend plot the label in the same order as they are described in the style.json.
And for the pins themselves, we define the side (the orientation Left to right or Right to left), PWM capabilities, and most importantly the functions.
Each function is a label but is not necessarily plotted in the final image. We have to enter each name of the label in the name field, each style corresponding with a style in style.json, and so forth.
And finally, the categories able you to filter and omit categories of pins to simplify your pinout without redoing this file each time you change your mind (trust me it's a real-time saver).
Without this feature, our SPIN board would flood like this monster! And the last thing I want from a doc is to get a headache.
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.