Path to professional use #242
Replies: 6 comments 8 replies
-
|
@shanemmattner Not wanting to diminish the usefulness of SKiDL (which I used and appreciated before I joined JITX), but your point about schematics not needing to be human-like may miss the mark for lots of folks. We have repeatedly seen that a significant fraction of the ecosystem wants or needs access to a usable schematic. When you take PCBs into production using a code-based approach (like SKiDL or JITX), there are still many touch points that need traditional artifacts (i.e. schematics, etc). |
Beta Was this translation helpful? Give feedback.
-
|
@bhusang thank you for your comment and your point is certainly valid: having a readable schematic is necessary for a professional design and it's hard to know when you will need to analyze a circuit from a schematic viewpoint when moving through the production process. I think long term SKiDL should have auto placement/routing of parts and beautification of schematics to human level. Dave worked on schematic generation and routing for ~2 years and got some pretty good results with simpler circuits. I'm not sure this algorithm would scale for more complex circuits with lots of connections. But I think if we can do the 2nd feature I mention of updating the already existing project between SKiDL script executions then we could allow a user to move, connect, and rotate components as they want and keep the schematic layout persistent. This workflow wouldn't be as automatic as a complete circuit generation, but it's a short term fix that I think could work in practice and allow SKiDL to be used professionally sooner than waiting to completely solve the schematic generation problem. It looks like JitX has a Sr Software engineer dedicated to just schematic generation so it's got to be a hard problem. |
Beta Was this translation helpful? Give feedback.
-
I think the current PCB design ecosystem does need human-readable schematics. It's simply too entrenched in the community. The only way to move off schematics is by showing another technique that makes it faster/easier to generate designs with fewer errors, and even then it might require a generation. This happened with the FPGA/ASIC community when they switched over to HDLs, but they didn't have a long history of using schematics and many of those designers already had coding backgrounds.
You're correct about this, and it's been a problem I've worried about for years. Recently, an issue (#238) referenced a related problem that has made me think there is a possible solution, but it will require some manual input into the SKiDL code from the designer. So that's something I'll be working on.
There is the existing
I have interest in addressing some of these issues. I think your efforts to apply LLMs to SKiDL have the most potential and we should continue that. I can look what it will take to keep SKiDL output consistent with the KiCad PCB (issue #238), and hammer Schematics, however, are a time suckhole. I think SKiDL should output SVG instead of KiCad schematics. SVG is more universal in case SKiDL gets used in a non-KiCad environment. The other problem with KiCad schematics is that a user will want to edit them and then have those changes back-annotated into the SKiDL code. That's very hard if the SKiDL code is using things like iterative loops, subcircuits, groups, etc. and not just a linear list of statements. It's like editing machine code and then trying to automatically go back and update the C code to generate it.
Geez, that's a sweet gig! I worked 21 months on schematics and didn't even get a fucking tee-shirt, although I did design one: |
Beta Was this translation helpful? Give feedback.
-
|
Hi, "I think the current PCB design ecosystem does need human-readable schematics. It's simply too entrenched in the community. The only way to move off schematics is by showing another technique that makes it faster/easier to generate designs with fewer errors, and even then it might require a generation. This happened with the FPGA/ASIC community when they switched over to HDLs," As a power electronics engineer, I think I can skip the schematic generation. I usually have a netlist for simulation and then I convert that into a pcb. I think we can go from SKiDL to PCB generation directly. The challenge is when the PCB is generated by SKiDL the parts are not properly placed. Hiereplace does a good job but it was breaking on the new KiCAD version, due to different timestmps. I don't know if that's fixed. I was able to use some GA to improve the placement of the components. Essentially, a GA enabled kinet2pcb module. However, I got busy and left it there. Flux (the company is doing it) What do you guys think of working on that area? |
Beta Was this translation helpful? Give feedback.
-
|
Hierplace is its own separate project independent of SKiDL. If you want to improve it, go ahead! That would benefit not only SKiDL, but KiCad as well. (I'll have to check hierplace to see if it's compatible with the current version of KiCad with its unstable Python API.) |
Beta Was this translation helpful? Give feedback.
-
|
Last time I checked, it was not working with SKiDL generated netlists. because the format of timestamp changed in KiCad 7 I think. The timestamp for components and sheets are generated with SKiDL. You had a recent commit about timestamp and that might have fixed it. Have not tested it yet. |
Beta Was this translation helpful? Give feedback.

Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Over the last few years I've been spinning a ton of PCB's for different designs at work. Many times I've wished the circuits were defined in Python code to avoid mistakes like accidentally connecting nets or accidentally having multiple 3.3v power rails (+3.3v, +3v3, etc). Lately I've been making more complex boards that are a huge pain to check that every pin of a 300+ pin chip is connected properly. It would be nice to have those large circuits in code so it's easy to double-check connections. Another big motivator to use Python based circuits is being able to feed a circuit into an LLM for analysis and feedback. With the advent of tools like Quilter it seems like a natural fit to generate entire circuit boards from Python defined code. Other companies are trying to make circuits with code (Jitx) but SKiDL just seems so much more simple and approachable using Python and easy syntax.
So I've been thinking about what would need to change or be added to SKiDL so I could practically use it in my professional day to day PCB designs. It seems like there's just a few features that would be needed so SKiDL could be really useful to me.
Let me know what you think @devbisme . I have time, interest, and tokens to work on these problems if you could provide some guidance and feedback along the way.
Beta Was this translation helpful? Give feedback.
All reactions