element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Community Hub
Community Hub
Member's Forum Text-based schematics?
  • Blog
  • Forum
  • Documents
  • Quiz
  • Events
  • Leaderboard
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Community Hub to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • Replies 13 replies
  • Subscribers 503 subscribers
  • Views 1544 views
  • Users 0 members are here
Related

Text-based schematics?

neuromodulator
neuromodulator over 1 year ago

I frequently end up spending a lot of time trying to make my schematics look nice. There's the whole dilemma of when to wire pins and when to just label them. Then of course, you must also figure out the best way to organize everything, where to position the components and when to hierarchize parts. Also, creating new symbols many times requires much more than drawing a box with pins, and can also consume a fair amount of time. This kinda reminds me of LABview, where lot of time is spent on rearranging nodes and wires, when ideally you would want to focus on the logic itself. It feels like there should be a more efficient way to do all this. Maybe using some standardized language? What do you think?

  • Sign in to reply
  • Cancel

Top Replies

  • dougw
    dougw over 1 year ago +4
    I think of E-CAD as "word processors" for electronic design and I have my own conventions to make schematics "readable". I can't imagine a text base description language that would be as clear or readable…
  • shabaz
    shabaz over 1 year ago +2
    That's a natural desire to make diagramming more efficient : ) (I guess you don't mean HDLs, since the output from them usually you wouldn't want to convert down to a schematic more detailed than a block…
  • michaelkellett
    michaelkellett over 1 year ago in reply to dang74 +1
    I find the interconnect in HDLs completely incomprehensible. So I use a block diagram editor at the top level to hang all the blocks together but I find the HDL much better at describing the logic. …
  • shabaz
    shabaz over 1 year ago

    That's a natural desire to make diagramming more efficient : )

    (I guess you don't mean HDLs, since the output from them usually you wouldn't want to convert down to a schematic more detailed than a block diagram, i.e. not at the level of say discrete components in an analogue circuit for instance).

    Over the years, I've tried automating diagramming many times, with varying results.

    For instance, there was a period where I wanted nice message sequence diagrams, so I automated that, not using SVG at the time, but some other graphical language or format which I can't recall.

    Simple block diagrams are fairly feasible directly typing SVG, with no higher-level language. I wanted a resistor color code, I did that in raw SVG, it was simpler than manually drawing it.

    image

    The SVG looked like this:

    image


    Another time, I wanted to sketch out some sort of timeline of activity, and that was quite successful, it was quite elaborate, using a mySQL database to store lots of timestamps and event names, and then plotting from that, and having the ability to click on the graphic and identifying the full entry in the database. This sort of stuff is great when there are thousands or tens of thousands of events.

    I think there's a lot of potential nowadays with languages such as Python so that diagrams could be programmatically created (and it would be possible to write higher-level functions to (say) place a specific component etc), but I've often found I prefer to tweak things myself, and for the high-quality diagrams, I stick with PowerPoint. For instance, I won't always center everything, because some things just visually look better eyeballed, even though they are not technically aligned (same reason old classic cars look nice with their french-curved metalwork rather than perfect computer-made curves. That's the sort of thing that would get awkward to do programmatically without many iterations in code, until it looked visually right. I think you hint at the same problem when you mention the problem of labeling things, because although there's a desire to just focus on logic, there's also another desire, to make it visually pleasing too, and that will still need the human input to nudge things one or two pixels, or move a node a fraction to the left more than a computer may have done, and so on. I actually do the same thing even with computer-drawn charts. If I'm using Matlab, then I'll edit the graphic output, because I like nudging the values on the axis a little bit different to what the computer did! I don't think anyone has ever noticed that though, but nevertheless it makes me feel better knowing a chart has been tweaked to what I feel at the time is just right!

    Example below; the text "1MHz" has been nudged to the right compared to what Matlab would have done by default, i.e. rightly or wrongly, I preferred to trust my sense of what looks visually better, more than the software.

    image

    If it's a simple schematic, then I like using PowerPoint (since I've got shapes for most of the basic components already drawn over the years), otherwise I'll draw in KiCad.Over the years I have plenty of basic shapes drawn in PowerPoint, e.g. MOSFET example below. For sure I could construct that in a programming language, but I bet I'd still want to tweak manually.

    image

    Anyway, back to Python; one method I've used on occasion, is to use it to create the desired diagram, and then edit the generated SVG output in (say) Inkscape. However, it's a one-way thing, i.e. if any changes need to be made, you'd have to either start from the Python code again and then again modify using Inkscape, or, just make further changes to the output, and accept that the Python code wont be used again, it has served its purpose for originating that particular diagram.

    Also, KiCad supports Python, so technically it may be possible to use that to directly create a schematic, but I've never tried that. I've done a few basic things with Python with KiCad, it's for sure powerful, but I'd be speculating if I suggested it's possible today to entirely build a schematic using it. I think it could be a lot more effort than just manually drawing the schematic though.

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Cancel
  • javagoza
    javagoza over 1 year ago

    At university they made me describe schematics in text with SPICE, unfortunately the graphical tools that have been created on SPICE have features that are not compatible between different programs based on SPICE. You could maybe try AI-based assistants like flux.ai.

    Flux Copilot - The First AI Powered Hardware Design Assistant

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • dang74
    dang74 over 1 year ago

    Interesting topic.  I think with analog designs involving opamps and transistors schematic entry would be more efficient than text entry.  In a digital design where you have a series of bussed signals I could see text entry being faster.  Arguably the hierarchical methods in HDL languages could be used for this.  Where you define a component in terms of it's inputs and outputs, along with top level nets for interconnecting between components.  Then you could use 'port mapping' like in VHDL to tie everything together.  Ideally the tool would generate a nice schematic as an output to this text entry so that it's easier to visualize for the person doing the layout.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • michaelkellett
    michaelkellett over 1 year ago in reply to dang74

    I find the interconnect in HDLs completely incomprehensible.

    So I use a block diagram editor at the top level to hang all the blocks together but I find the HDL much better at describing the logic.

    I know that some other people find the opposite.

    I certainly can't imagine doing analogue design in text.

    I would post an example but I'm supposed to be getting a big design to work right now so no time Frowning2

    MK

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • dang74
    dang74 over 1 year ago in reply to michaelkellett

    You are not alone with this.  I too have used block diagrams for the very top level.  Sometimes when I am looking at the higher level hierarchical code developed by another person I will translate it into block form manually on piece of paper as a way to help commit the names of the blocks and signals to memory. 

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • dougw
    dougw over 1 year ago

    I think of E-CAD as "word processors" for electronic design and I have my own conventions to make schematics "readable". I can't imagine a text base description language that would be as clear or readable. CAD systems have many tools to minimize the work and show connectivity at a glance and there are a lot of tricks to making the design process quicker and more readable. There are some conventions like making signals flow from left to right and top to bottom, but you are right, to make a schematic into something easily readable takes work. I can't resist cleaning up schematics to minimize corners and crossovers, even though it takes time. I find many techniques used to reduce schematic clutter (such as connections made with labels instead of wires and busses shrunk to a single line) to be confusing and time consuming to decipher, so I only use labels when making connections to a new page. I would actually rather make a bigger page than add more pages.

    • Cancel
    • Vote Up +4 Vote Down
    • Sign in to reply
    • Cancel
  • Jan Cumps
    Jan Cumps over 1 year ago in reply to dougw
    dougw said:
    I can't resist cleaning up schematics to minimize corners and crossovers, even though it takes time.

    It takes self-challenge:
    "Am I doing this because I can't sleep if there are cross-overs that can be avoided" or
    "Is this diagram clear enough that my colleagues (or me in 7 years) will be able to understand it".

    Good Enough is a valid KPI for efficiency improvements.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • colporteur
    colporteur over 1 year ago

    Doesn't KiCAD have some underlying text base?

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • Jan Cumps
    Jan Cumps over 1 year ago in reply to colporteur

    yes, although the structures are intended to support the graphic tools, the workflow and the manufacturing files.

    I don't see those getting generated by a text based front end. (in an achievable way)

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • dougw
    dougw over 1 year ago in reply to Jan Cumps

    Every designer has their preferences and their productivity. I always have a pause before a final check prior to sending a design to be manufactured. During that final check I clean up both inefficiencies and weaknesses in the design, even if they won't likely affect performance. Or I might add in more test points or more intuitive labels. I not sure exactly how important all this is in circuit functionality, but I do catch some errors and the results are high productivity with a high chance of the PCB working. Other designers have different methods and performance, but that doesn't mean they would have better (or worse) performance using my methods..

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
>
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube