I was looking for a simple PCB editor like this and I'm thrilled. Thank you for the development of this ingenious tool. I think that in the current version it covers almost everything that I need for the construction of prototypes and individual pieces. A few small things are still missing and I would like to make suggestions.
One thing I'm missing is editing the distance of the connectors to the outline of integrated circuits, so I can also use individual components (examples: unusual relays, fuse holders, plugged-in modules like displays, sensors, Arduino Nano, etc.)
Solution ideas:
A simple component editor that can generate an individual component with connections at any point
An importable component file format (created in a text editor using human-readable syntax like INI, JSON, XML, YAML, etc.) with examples
Integration of an object without connectors (rectangle and ellipse with variable dimensions) that can be grouped with pads
Integration of additional parameters for the border distance of DIL packages in x- and y-direction
What do you think?
Best regards,
Andreas
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
The main restriction underlying the whole software is that it works on a fixed size grid of 0.1 inch squares. I did that because I wrote the software to help me do veroboard/perfboard layouts rather than PCBs. It was never meant to be a PCB editor, and I only included that mode because I realised it was a simple change to the existing veroboard code. The grid structure is fundamental and everything (routing/connectivity checking) relies on it. So "connections at any point" isn't an easy change if it means not using the grid.
One thing I want to improve (when I have time) is to not use the 0.1 inch grid to handle "collision detection" (i.e. checking if components occupy the same physical space).
That is sort of related to the component editor (which I have thought about before but never had time to implement). If the "border distance" you describe is refering the physical package outline, then I can see why someone would want to define that. I will definitely consider adding it. I just need to find the time.
By the way, may I ask if you are using the software for PCBs or for vero/perfboard build?
BR
Alex.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I'm sorry, I expressed myself unclear. I use the software for vero/perfboard builds and I know about the fact, that the grid is given. This is no problem!
But some components are not part of the library and can not be mapped properly with DIL housings, when there are not continuous rows of pins on both sides. A help cound be, if pins could be disabled or deleted in some kind and there would be space for tracks then.
I've thought about it and I think a solution would be that, if possible, you are integrating some kind of flexible, rectangular part, that basically behaves like a DIL package but has a pin at every possible point on the grid, which can be disabled or deleted individually.
Then I could, for example, build und use individual components like these (examples):
If so then I can see the problem. If you tried to model the above part as a long IC with unpainted pins in the middle, then the auto-routing code will forbid routing to the central pins. (which is wasteful). The work-around is to define a set of separate pads for the pins, and then group them as an object. That solves the routing problem, but then there is no information on the physical component extents, so you then have to mentally visualise where the component is as you do a layout and avoid placing parts in places that would not be allowed in reality.
Maybe I can't give you the full component editor that you are asking for, but I can definitely move things in that direction and maybe get most of the way there.
You see, the way the parts are defined in the code is with a "footprint" that is basically a text based map of the pin numbers, plus special characters to represent "empty sapce", "occupied space", "space underneath an IC". For example, see following image. https://1drv.ms/u/s!AvrH61utWEtEilwTgiVh75yXnxlQ
So in principle, the ability to specify custom footprints is possible.
The actual code that draws the component outline is completely separate and is hard-coded unfortuantely. So apart from the above grid, the component editor would have to be limited initially to just doing something very simple like drawing a rectangle or ellipse. (I guess a single rectangle and a circle will actually cover most cases). Would those sort of changes help?
BR
Alex
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Your example shows exactly what I mean. By the way: I have already tried to use sets of grouped pads, but labeling gets horrible when I begin to duplicate this "parts"...
If it would be possible to create parts by defining a footprint matrix and choosing rectangle or ellipse as outline, it would be great!
I imagine the workflow as follows:
Add > Custom rectangular / elliptical
Set length and width
Push the footprint button to open the footprint window
Each field of the footprint matrix can be set to empty/occupied/pin/space underneath
Save the footprint for this component
Apart from that, maybe it's worth too taking a few extra components into the general library. I could try to make some useful suggestions, if you want.
Kind regards,
Andreas
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I think it is a reasonable suggestion. I don't know how long it will take to code that though as I have limited time.
In the short term, the quickest and easiest way to get a new footprint into the tool is for me to hardcode it directly so it comes with the other pre-defined parts. That will take minutes for a rectangular part.
I would probably not put new parts under the "Add" menu item (unless the package type was well defined such as TO-92, etc). The reason being that it's not a good idea to have a menu item with hundreds of items listed. I would probably only show the new parts in the Parts/Templates dialog.
If you want some parts added to the tool, then please send me the part names and footprint maps and I'll work towards getting them into the next release.
Can I ask if you are Windows user or Linux Mint18.3? The reason it that if you are using a pre-built version of VeroRoute then I can simply mail you a test executable containing the new parts to see if they are OK before release. (An exectuable is at most 500k, compared to the nearly 8-9GB of a regular release with all the extra Qt DLLs).
What do you think?
Alex.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
If it's much easier for you to add some components, then I will send you a list of a few components with their footprint maps. Expect it in the next few days. You can decide for yourself whether they are better suited for the menu or the library.
I'm using Linux Mint 18.3 - sending an executable would be fine. I like to try a new version and give you feedback.
Kind regards,
Andreas
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I was looking for a simple PCB editor like this and I'm thrilled. Thank you for the development of this ingenious tool. I think that in the current version it covers almost everything that I need for the construction of prototypes and individual pieces. A few small things are still missing and I would like to make suggestions.
One thing I'm missing is editing the distance of the connectors to the outline of integrated circuits, so I can also use individual components (examples: unusual relays, fuse holders, plugged-in modules like displays, sensors, Arduino Nano, etc.)
Solution ideas:
What do you think?
Best regards,
Andreas
Hi Andreas,
Thanks for the suggestions.
The main restriction underlying the whole software is that it works on a fixed size grid of 0.1 inch squares. I did that because I wrote the software to help me do veroboard/perfboard layouts rather than PCBs. It was never meant to be a PCB editor, and I only included that mode because I realised it was a simple change to the existing veroboard code. The grid structure is fundamental and everything (routing/connectivity checking) relies on it. So "connections at any point" isn't an easy change if it means not using the grid.
One thing I want to improve (when I have time) is to not use the 0.1 inch grid to handle "collision detection" (i.e. checking if components occupy the same physical space).
That is sort of related to the component editor (which I have thought about before but never had time to implement). If the "border distance" you describe is refering the physical package outline, then I can see why someone would want to define that. I will definitely consider adding it. I just need to find the time.
By the way, may I ask if you are using the software for PCBs or for vero/perfboard build?
BR
Alex.
Hello Alex,
I'm sorry, I expressed myself unclear. I use the software for vero/perfboard builds and I know about the fact, that the grid is given. This is no problem!
But some components are not part of the library and can not be mapped properly with DIL housings, when there are not continuous rows of pins on both sides. A help cound be, if pins could be disabled or deleted in some kind and there would be space for tracks then.
I've thought about it and I think a solution would be that, if possible, you are integrating some kind of flexible, rectangular part, that basically behaves like a DIL package but has a pin at every possible point on the grid, which can be disabled or deleted individually.
Then I could, for example, build und use individual components like these (examples):
Kind regards,
Andreas
Hi Andreas,
Only the first of those images opens. Do you mean that you couldn't create a DIP package such as this one...
http://www.experimentalistsanonymous.com/diy/Datasheets/MN3208.pdf
If so then I can see the problem. If you tried to model the above part as a long IC with unpainted pins in the middle, then the auto-routing code will forbid routing to the central pins. (which is wasteful). The work-around is to define a set of separate pads for the pins, and then group them as an object. That solves the routing problem, but then there is no information on the physical component extents, so you then have to mentally visualise where the component is as you do a layout and avoid placing parts in places that would not be allowed in reality.
Maybe I can't give you the full component editor that you are asking for, but I can definitely move things in that direction and maybe get most of the way there.
You see, the way the parts are defined in the code is with a "footprint" that is basically a text based map of the pin numbers, plus special characters to represent "empty sapce", "occupied space", "space underneath an IC". For example, see following image.
https://1drv.ms/u/s!AvrH61utWEtEilwTgiVh75yXnxlQ
So in principle, the ability to specify custom footprints is possible.
The actual code that draws the component outline is completely separate and is hard-coded unfortuantely. So apart from the above grid, the component editor would have to be limited initially to just doing something very simple like drawing a rectangle or ellipse. (I guess a single rectangle and a circle will actually cover most cases). Would those sort of changes help?
BR
Alex
Hello Alex,
Your example shows exactly what I mean. By the way: I have already tried to use sets of grouped pads, but labeling gets horrible when I begin to duplicate this "parts"...
If it would be possible to create parts by defining a footprint matrix and choosing rectangle or ellipse as outline, it would be great!
I imagine the workflow as follows:
Apart from that, maybe it's worth too taking a few extra components into the general library. I could try to make some useful suggestions, if you want.
Kind regards,
Andreas
I think it is a reasonable suggestion. I don't know how long it will take to code that though as I have limited time.
In the short term, the quickest and easiest way to get a new footprint into the tool is for me to hardcode it directly so it comes with the other pre-defined parts. That will take minutes for a rectangular part.
I would probably not put new parts under the "Add" menu item (unless the package type was well defined such as TO-92, etc). The reason being that it's not a good idea to have a menu item with hundreds of items listed. I would probably only show the new parts in the Parts/Templates dialog.
If you want some parts added to the tool, then please send me the part names and footprint maps and I'll work towards getting them into the next release.
Can I ask if you are Windows user or Linux Mint18.3? The reason it that if you are using a pre-built version of VeroRoute then I can simply mail you a test executable containing the new parts to see if they are OK before release. (An exectuable is at most 500k, compared to the nearly 8-9GB of a regular release with all the extra Qt DLLs).
What do you think?
Alex.
Hello Alex,
If it's much easier for you to add some components, then I will send you a list of a few components with their footprint maps. Expect it in the next few days. You can decide for yourself whether they are better suited for the menu or the library.
I'm using Linux Mint 18.3 - sending an executable would be fine. I like to try a new version and give you feedback.
Kind regards,
Andreas