Dirk_Hendrik wrote:As a full time electronics CAD system userI always have a tremendous respect for people choosing to make applications like these. It's a shitload of work. Therefore some remarks;
First ,thank you for the feedback. I have had very little.
You say it's a lot of work to make an application like this but the whole thing is only 6500 lines of code. If I rolled the code back to the most basic vero functionality (which is all I used for several years) you could halve that figure. I don't know if you are a programmer or not, but that is very little code and it did not take me that long to write.
Dirk_Hendrik wrote:What did make you decide to make an application like this? There's quite a few CAD systems available including those targeted at Veroboard
I've only ever built on vero and perf and the software was primarily written to help me do that.
I realised that I could easily do a code modification to draw PCB style tracks so I added it.
By including the PCB mode, it means I can post a vero layout to a forum such as this one, but also post an etch-it-yourself style PCB layout (for those who like to do that) with no extra effort. All it takes is a few mouse-clicks.
I have a particular way of building things on vero. I only ever break strips between holes and I always use solder bridges to join adjacent tracks instead of jumpers.
I used to do layouts by hand but it was very tedious and error prone. Most of the time was spent verifying connectivity.
I wanted software that would:
- Let me easily add & manipulate components without hunting through menus.
That's why I have a single control panel with practically everything in it.
- Dynamically check and visualise connectivity while the circuit is manipulated.
- Have the program tell me where to make breaks in the vero strips.
- Have the program tell me where to bridge strips together with solder.
For the sorts of circuits I build, learning a full electronics CAD package (e.g. Eagle, KiCad, etc) and finding a way to use it to produce a vero layout would have been total overkill. They contain way more functionality than I would ever need.
I wanted something that was as easy to use as DIYLC. I like DIYLC and it is a nice drawing program, but what stops it being useful for me is the lack of any connectivity checking or visualisation. There are hundreds of "unverified" DIYLC layouts out there, and I suspect that is largely down to this lack of connectivity checking. If DIYLC had connectivity checking I may have never written my own program.
All the other vero software I have seen starts with a board of strips to which you add components, make breaks, and add jumpers. That would be the way you do things if you have a board physically in front of you and were laying out parts, but to my mind it is not the best way to approach the layout problem algorithmically. Also, not all vero programs had routing or connectivity checking. At least not in the way I wanted it to work. My approach is this...
- Start with an empty board with no strips.
- Lay out the components as they appear in the schematic.
- Graphically specify the netlist by clicking on the component pins.
- Manipulate the components to minimise area (using the auto-routing to make connections).
- Finally, switch on "Vero" mode in the software and let it tell me where to make the strip breaks and solder bridges.
Dirk_Hendrik wrote:- Whay did make you decide , unless I operated the application wrong, to start off from PCB layouting straight away without going through schematic and netlist phase. This approach kills all portability of a design to a different form as well as all forms of error checking.
I don't know if you ran through the in-built tutorials ? (Help->Tutorials)
There is a netlist in the tool. You can't do auto-routing or connectivity checking without it. Having this sort of error checking was the reason I wrote the software in the first place.
You can import/export the netlist but it is my own text format. I could add import from some other format like LTspice but it's not a priority at the moment. I reckon anyone whose using something like LTspice would probably be using a full EDA package to produce boards anyway.
The way you specify the netlist in the program is graphically at the beginning of the layout.
There is an example in the tutorials of a simple NPN amplifier.
The idea is that you do not go straight to the final layout. Instead you start by placing the parts just as they appear in the schematic.
Think of this as the "schematic drawing stage". Apart from ICs, there is not that much difference between drawing a schematic symbol and drawing a component outline.
Once you have the parts laid out as in the schematic, you specify the netlist graphically by "painting" netlist values to the component pins using mouse clicks. That is the "netlist specification stage".
So long as you specify the netlist correctly, you can then manipulate the parts however you want and the program will prevent you from making short-circuits and will warn you about open-circuits.
Dirk_Hendrik wrote:As well, I tend to judge PCB cad systems by 2 initial factors: How are libraries made and how easy is it to edit add components to that library oneself? As far as I see now the possibility to add or edit components is in the hands of the programmer.
In other words, when going further with this project look at how the big boys do it. In structure of the CAD system, and then in functionality.
I tried to cover the majority of parts that you would have on a vero build. It would not be difficult to add a footprint editor and it's on my to-do list.