Menu

Build or modify components

Andreas
2019-02-17
2019-02-18
  • Andreas

    Andreas - 2019-02-17

    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:

    1. A simple component editor that can generate an individual component with connections at any point
    2. An importable component file format (created in a text editor using human-readable syntax like INI, JSON, XML, YAML, etc.) with examples
    3. Integration of an object without connectors (rectangle and ellipse with variable dimensions) that can be grouped with pads
    4. Integration of additional parameters for the border distance of DIL packages in x- and y-direction

    What do you think?

    Best regards,
    Andreas

     
  • Alex Lawrow

    Alex Lawrow - 2019-02-18

    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.

     
  • Alex Lawrow

    Alex Lawrow - 2019-02-18

    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

     
  • Andreas

    Andreas - 2019-02-18

    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:

    1. Add > Custom rectangular / elliptical
    2. Set length and width
    3. Push the footprint button to open the footprint window
    4. Each field of the footprint matrix can be set to empty/occupied/pin/space underneath
    5. 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

     
  • Alex Lawrow

    Alex Lawrow - 2019-02-18

    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.

     
  • Andreas

    Andreas - 2019-02-18

    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

     

Log in to post a comment.

MongoDB Logo MongoDB