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
  • About Us
  • 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
Open Source Hardware
  • Technologies
  • More
Open Source Hardware
Blog Using Buses in Circuits with KiCad 7
  • Blog
  • Forum
  • Documents
  • Events
  • Polls
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Open Source Hardware to participate - click to join for free!
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: shabaz
  • Date Created: 29 Jul 2023 1:49 AM Date Created
  • Views 9007 views
  • Likes 10 likes
  • Comments 10 comments
  • kicad 7
  • kicad
  • schematic
Related
Recommended

Using Buses in Circuits with KiCad 7

shabaz
shabaz
29 Jul 2023
Using Buses in Circuits with KiCad 7

This topic is a bit fiddly to describe in words, so I hope the video will suffice. This blog won't have much text : ( I feel like a Ronin when I'm not having to type though! : (

You don't have permission to edit metadata of this video.
Edit media
x
image
Upload Preview
image

  • Sign in to reply

Top Comments

  • shabaz
    shabaz over 2 years ago in reply to Andrew J +1
    Hi Andrew, The layout looks great, even without buses! Really nicely organized! It's possible to have the same bus name drawn as a separate segment, e.g. if you need to reuse the bus on different locations…
Parents
  • baldengineer
    baldengineer over 2 years ago

    Good video. With version 7, busses became a little more usable, in my opinion.

    I had NO idea about "unfold bus." I wonder if there is a way to make it more usable though.

    FYI, when you need to "repeat last command" for signals going to the right or up, like in your demo, I do a few tricks.

    I use the "repeat last command" to generate all of the labels. Of course, this creates them in a vertical column from 1 to n+1. At this point, if you highlight them all, you can use R (rotate) to spin them 90 degrees for your left-to-right labels.

    And to reverse the direction from n+1 to 1 vertically, just press Y (flip Y axis) to reverse the selection group

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
Comment
  • baldengineer
    baldengineer over 2 years ago

    Good video. With version 7, busses became a little more usable, in my opinion.

    I had NO idea about "unfold bus." I wonder if there is a way to make it more usable though.

    FYI, when you need to "repeat last command" for signals going to the right or up, like in your demo, I do a few tricks.

    I use the "repeat last command" to generate all of the labels. Of course, this creates them in a vertical column from 1 to n+1. At this point, if you highlight them all, you can use R (rotate) to spin them 90 degrees for your left-to-right labels.

    And to reverse the direction from n+1 to 1 vertically, just press Y (flip Y axis) to reverse the selection group

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
Children
  • shabaz
    shabaz over 2 years ago in reply to baldengineer

    Hi James,

    I reckon if they wanted to improve it, this is a situation where EAGLE was quite nice, basically first selecting wire mode, and then any click on the bus will bring up the entire list, to allow selection, and then continue drawing the signal. 

    Example with EAGLE:

    image

    With KiCad, I reckon what would be good would be if they could design it such that if W (wire) was pressed when the cursor is on a bus, then instead of just drawing a wire (as it does today), then it should just instantly show all the list, just like EAGLE. In fact this would be nice; pressing W and then all the possible signals listed in columns, or one large matrix, to let the user quickly choose, rather than the multiple-mouse-clicks that need to be done today. KiCad mockup of that:

    image

    Also today there's no flexibility in the direction that the signal will be pulled out. Whereas with EAGLE, it will bend in any direction because it follows the cursor:

    image

    If the 'W' key did what has been suggested above for wires off buses, then that EAGLE-style bending in any direction would be got for free, since that's existing W functionality (just not for a bus today).

    Should we suggest this (or with further refinements if you can think of any) to the KiCad developers? Would that be via the KiCad.info site, or via a GitLab request of some sort?

    Also there are a couple of bugs; one bug is already known but quite old, and one bug I raised yesterday.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • baldengineer
    baldengineer over 2 years ago in reply to shabaz

    Gitlab issue / feature request is the way to go. You can open up a discussion about it on the KiCad forum to get wider feedback and then link to it from the issue.

    But the developers definitely look at the issue list for deciding what to work on next. (Jon is one of the lead developers. He hangs out in the KiCad Discord. I think he has a macro key to write "can you please create a gitlab issue for that?")

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • shabaz
    shabaz over 2 years ago in reply to baldengineer

    Done!

    https://gitlab.com/kicad/code/kicad/-/issues/15310

    I think if they implemented that, it would speed up the implementation to be more efficient that EAGLE, and more intuitive, and in a way that still (to me) seems consistent with KiCad UI type behavior.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • shabaz
    shabaz over 2 years ago in reply to shabaz

    (can't edit).

    This was the proposal:

    (1) Press W (wire) when on bus, instead of right-clicking. By doing that, KiCad should infer the user wishes to draw a signal belonging to the bus, and automatically display all the items in the bus, in columns, or in one large matrix. What I mean by columns, is that one column could contain (say) ADDR15, ADDR14, ADDR13 etc, and the next column beside it would display DATA7, DATA6, and so on, for all the items in the bus label definition.

    (2) User clicks on the signal name.

    (3) The user now clicks to place the wire, and continues just_as_if_they_were_drawing_a_wire. In other words,KiCad does not stop drawing the wire (as it does with the current unfold behavior), and the user can complete the wire connection all the way to the destination component, at which point Kicad stops drawing the wire of course, but remains in wire mode. In addition, as soon as the wire drawing is stopped, KiCad automatically places a label against the first horizontal or vertical wire segment closest to the bus, with the text orientation aligned with the bus if there is no other text orientation within 2.55 mm to copy the orientation from. An alternative method of inferring the text orientation would be to store the current text orientation used on a bus, and then repeat it every time. If the user subsequently changes the text orientation on a label that belongs to a bus, then store that text orientation.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • 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