When your schematic has a large number of related signals, it is helpful to group them. In its schematic editor, KiCad has a few tools to help. Your end-goal helps determine which tools to use. For example, do you need a KiCad bus or a label? In this post, I explore how you can define signals, group them, and reference them across schematic sheets.
Up until recently, I did not need to use a bus or multiple sheets. However, the Apple IIgs project I’m working on is too large for a single page. In a KiCad live stream, I looked at how to create busses and connect them. In a separate tutorial, I will show how to work with multiple sheets in KiCad.
tldr; KiCad does not require the use of a bus to connect signals together. Wire labels already provide that connection. A KiCad bus offers two things: 1) a visual representation and 2) an easier way to create global connections (across sheets.)
Before jumping to how to use a bus, first, we need to start with the basics. KiCad connects nodes with a “wire” element. KiCad gives each wire drawn a unique name unless it connects to an existing node. The user can override the name by adding a label.
A new project I have started working on involves the Apple IIgs. It was Apple’s last 16-bit (and 8-bit) computer. Inside are many application specific integrated circuits, or ASICs, that make the IIgs an extraordinary member of the Apple II family. One chip, in particular, is called the “MEGA-II.” This chip takes all of the individual logic chips from the original Apple II design and incorporates them into a single 84-pin PLCC.
The project I have in mind needs the MEGA-II. I need to design some printed circuit boards for it and a few other IIgs chips. That goal means I need at least one custom Kicad schematic symbol. I plan to create a custom library of Apple IIgs components.
Like other computers from the same era, complete schematics are available. However, they are not in a modern format. Since I need to create symbols for so many of the chips as it is, I may end up re-creating the entire IIgs schematic.
For now, here is the process I use to create custom KiCad schematic symbols and parts.
Continuing the DIY Arduino tutorial series, this AddOhms episode shows how to create a PCB in KiCad. I make a joke that the original design was a rectangle, which I found boring and pointless. So instead, I designed a triangle to give the board 3 points. Get it? Puns! I am calling it the Pryamiduino. To be honest, I found not having a constraint to be a problem. By forcing a specific board size and shape, many decisions were more manageable.
First design – Boring!
In the end, the video ended up more edited than I planned. KiCad is just so finicky and crashy that I could not make a coherent start to finish tutorial. At least, I could not work with a board at this level of complexity. Something simple like a 555 flasher would be easier to show from start to finish. I am planning some immediate follow-ups with quick tips on using KiCad. It is a frustrating suite of applications, but the results can be quite nice.
A KiCad BOM is a list of all the parts your design is using. The term BOM, or bill-of-materials, is standard for supply chain management and does not just apply to electronics. KiCad’s eeschema has a BOM export feature. Unfortunately as of Version 4.0, this feature is still somewhat lacking. Given the limitations, here are some tips to take your KiCad BOM from Schematic to Mouser.
Spending a few extra minutes while capturing (drawing) your schematic thinking about your KiCad BOM can save you a ton of time later on. Moreover, as you build up a database of parts, these extra minutes turn into seconds. Here are a couple of ways to describe your parts, especially passive components, better while drawing schematics in KiCad.
Engineers make a schematic to explain their circuits.
One time I was looking for a non-tourist pub in Japan. I asked someone for help. She said, “I’m sorry, but I do not speak good English. I will bring my friend, and she will draw you a map.” (Exact quote!) The map her friend drew, gave directions to a bar with a “Neon Yellow Sing.” She meant “sign.”
The map was the method we used to communicate with each other, even though we didn’t both speak English. With this crude but useful map, I could find my next drinking place destination.
Schematics are the same as this map. Even if you don’t speak the same language, you can communicate how a circuit works when you make a schematic.
One of the last significant steps in a project is designing the custom PCB. This stage means creating a DIY Arduino board that is custom to the application. Two examples of my past projects are BinBoo, a Binary Clock, and Open Vapors, my reflow oven controller.
While working on a project for a friend, I got to thinking; it would be nice to have a checklist for circuit elements to include on a DIY Arduino board. In the early days, I forgot to add a filter cap to AREF, for example.
These tips are based on an 8-bit AVR design, like the ATmega328p chip. You could apply these tips to other 8-bit AVRs. Until now, I have not designed a custom board around a 32-Bit/ARM board. Though at only $16, I would be tempted to just solder the Teensy module directly to my finished board.
Below is a written list of items for a DIY Arduino checklist. If you’d like to see me design this board in KiCad, check out this AddOhms Tutorial.
There is a project that has been sitting on my “to do” list for too long. My lab notebook has several dedicated pages for it. But I have not made progress. I decided to take some advice I have given to other people. When you’re stuck on starting a task, break down the project until you find a piece small enough you can get it done with no problem.
The project involves the Apple IIgs. It was Apple’s last 16-bit (and 8-bit) computer. Inside are some application specific integrated circuits or ASICs that make the IIgs. The name with my attention is named “MEGA-II.” It takes all of the individual logic chips from the original Apple II design and incorporates them into a single 84-pin PLCC.
The last time I looked at using an X-Carve for Printed Circuit Boards (PCBs), I created a demo board with EAGLE. Since then, I have learned more about using KiCad, the open source electronics CAD suite. While not a step-by-step tutorial, here is my rough KiCad to X-Carve PCB workflow. These are just the high-level steps, the tools necessary, and the settings I’ve discovered for each—so far.
As 2015 wraps up, I took a look at baldengineer.com’s traffic for the past year. Here’s some of the most popular stuff from my blog, in case you missed it.
Everyone with a blog looks at their traffic numbers. For me, traffic data provides feedback on what tutorials or posts are helping people most. Each year, the traffic to my blog grows at ridiculous numbers. As someone with both an engineering and marketing background, I find the numbers impossible to believe.
Thank you to everyone who reads, shares, and comments the stuff I create. Those of you on the mailing list, I appreciate the interaction we have there, please keep writing in!
Check out these posts if you didn’t catch them the first time.
There are two methods to making a prototype PCB: 1) Etch Your Own or 2) Send to a Prototyping Service. While there are many prototyping service options, most cause you to wait anywhere between 24 hours and 30 days before you get your boards back.
If you need a PCB done today, etching at home is a great option. Chemical etching involves all kinds of steps with all kinds of weird chemicals. If you don’t want your neighbors to think you’re the next Walter White, then mechanical etching is a better option. Which is why I bought an X-Carve from Inventables. It’s a CNC Milling Kit you build yourself.
If you need a reason to be an Element 14 member, let me suggest their Road Test program. Companies partner with Element14 to get people to try out their gear. A couple of years ago I got a new microcontroller board. This week I received a new test instrument. Here’s my hands-on Picoscope 2204 review.
The scope is bus powered. With the BNCs and type-B USB connector, it is slightly larger than an external USB hard drive. There is not much weight to the device. It does not feel cheap, just lighter than I expected.
Getting the scope up and running is a breeze. Pico Tech included a CD (or DVD?) to install the software, but I could not find my drive to check it out. Software downloads from Pico Tech’s website work great. It looks like you can even download the software and use it in “Demo mode” if you are curious how it works–without purchasing anything.
Sharing is the maker community’s foundation. When you share projects with others, you contribute to the community. In the past, you might just post your project on a personal website. Today there are many options to share projects.
This weekend I “finished” my reflow oven controller, Open Vapors. Believe it or not, five years ago there were not a bajillion similar projects. In fact, I based my design on the only completely open source project I found. It is a reflow oven controller Arduino shield from Rocket Scream.
After completing my controller, I was excited to share the project. Then I started to think about where to post the files. Obviously, here at baldengineer.com is one option. But I wondered. Is there a better place where others could benefit from my work?
This post is a few notes on the platforms used to share projects. At first, these might seem like they all serve the same purpose. From a high level that is true. However, there are small differences that you should consider when you share projects with the open source hardware community.
Recently I’ve been expanding my retro game collection to include game cartridges imported from Japan. The problem is that I don’t have Japanese game systems (yet). So I’m creating an open source adapter to convert Famicom carts to the NES. Before I submit the PCB to OSH Park, I’m going to run through this PCB Checklist to make sure I don’t forget something silly.
This PCB checklist is something I’ve built over my years of creating boards. If you’ve got tips from your own list, don’t forget to leave a comment letting us know.
PCB Production Checklist
The concepts on this list will apply to almost any PCB software. The tips I give relate to EAGLE, since that is what I use most often. Feel free to comment to add tips for other design software like upverter.com or KiCad.
Engineers are notorious introverts. An untrue generalization is that introverts hate being social. Like all humans, introverts are social creatures. We just prefer only to discuss the topics which are of interest to us. We will listen to anything. This social media guide for engineers explains why and how you can participate in social media, without being social.
Let’s address something head-on. Gone are the days of just “here’s what I ate” or “I’m in the bathroom” social posts. Social media channels are mature platforms for communication. Sure, junk still exists. However. You can filter out the signal from the noise when you following my social media guide for engineers.
In this post, I briefly touch on the difference between an FPGA and a microcontroller. Then I walk you around the MKR Vidor 4000’s board. Using one of the examples, I talk a bit about how the various chips communicate with each other. This section also highlights what makes the Arduino FPGA board different from other development boards. Lastly, I answer “should you buy an Arduino MKR Vidor 4000?”