pcb-rnd knowledge pool
Hobbyist vs. professional use
pro_vs_hobby by Tibor 'Igor2' Palinkas on 2018-02-26
Tags: insight, hobby, hobbyist, professional
Abstract: The professional and the hobbyist use cases differ. pcb-rnd is shifting from a hobbyist-centered UI and data model to a more balanced one that tries to suit both professionals and hobbyists. These changes make some hobbyist-centric actions somewhat harder to achieve while make many things professionals need easier to achieve.
The two use cases are very different in almost every aspect of editing, but sometimes you can combine the two. For example board outline is about the same thing in both worlds.
But a lot of things differ.
For example as a hobbyist, you want direct control of individual objects and work with a lot of exceptions (hacks). Like you figure it's hard to solder a pin because the ring is too small, compared to how much heat the component drives away so you go there and increase the ring on that one pin. Or you shrink the pin a bit at one place so 2 wires can pass between 2 pins.
In the professional setup you do not want to have random, per object differences: you want all your 1206 resistor pads to be exactly the same, else mass production will suffer.
Original PCB had a model that was perfect for the hobbyist: every object is an individual instance you hack in random ways as easily as using a hotkey 's' over it. Of course you could then write a script that checked the board (for pro use cases) if all your vias had the same drill size (see also: vendor drill). I consider this one extreme, the hobbyist extreme.
Other extreme is what KiCAD does, if I am not mistaken: there are exactly two, board global via drill sizes, and there is simply no way to use a via with a different hole. A via is either a normal via or a microvia, and there's no reason to have a 3rd hole size. AFAIK clearance is global in many EDA tools, you can't set it up per clearing object, only per plane or even globally, per board! These is the other extreme, the for-pro extreme.
It is possible to make a compromise and support both:
- provide a way to derive objects from a master (we do that with padstacks: padstack references link to the padstack prototype; change the prototype and it affects all references)
- still allow each individual object to choose its properties from a set that contains more than 2 items (e.g. vias are padstacks and for a padstack you chose a prototype and there's no limit on how many prototypes you want to choose from)
- or even allow them to locally deviate from the centrally specified thing (e.g. thermal is per layer per padstack; the global padstack clearance is per padstack reference; for a hobbyist this means you can have random clearances; for pros you can keep all global clearances zero and rely on the per shape clearance ironed in the padstack prototype so you get uniformity
- subcircuits are "locked", only floaters can move; which means you can't easily change objects within the subcircuit, which means 15 copies of the same subcircuit will look the same, 15 times. For a hobbyist, you want occasional pad geometry changes; for a pro, you want all 15 copies to look the same and anything that may change one accidentally is bad.
pcb-rnd started to move from the hobbyist extreme of gEDA/PCB into some middle-ground compromise. It started to have a lot of unified things and it started to give up some of the easy 'go there and manually tweak the size of this one via' operations. I know this will be unusual to some of our hobbyist users, but I already get positive feedback from pro users.
At the end, pcb-rnd won't lose too much functionality, if any. It's just that some of the hobbyist manual local tweaking gets a bit more complicated to do (will require more user input) while the professional unified use is getting simpler. For vast majority of the functionality we will support both, it's just the 'how easily it is achieved' that changes.