Python is everywhere. Its capabilities continue to grow. Not only can you create simple scripts, but you can create full-blown applications with it. The core has been scaled down to run on 32-bit microcontrollers like the ESP32 and Adafruit Feather M0. You can even use Python engineer modules to design stuff like circuits. There are electronics Python modules that create schematics, simulate circuits, and make solving math a cinch. Here are some of the modules I found that make Python usable for (electronics) engineering.
Up front, make sure you have a functioning Python environment. Update the package manager “pip” since all of these electronics python modules rely on it. Speaking of dependences, you may need to also install third-party libraries for some of them. From what I can tell, these all should be platform independent. However, I only tested these electronic modules with 64-bit Windows.
With the introduction of the Raspberry Pi 4, I dug into the announcement and datasheet while waiting for mine to arrive. Well, “datasheet” might be an exaggeration, but there is a list of the Raspberry Pi 4 tech specs available. That link gives a bullet item list of the main specs. In this post, I focus on these four:
There is a lot of very cool stuff on this $35 board. (Amazing they have kept that price point!) Or even the 4 GB $55 board. Adding Bluetooth 5, H.265 AND H.264 decoding, USB-C connector (Power), and changing the SoC to a 28 nm process are all significant improvements.
But, being an engineer and a person on the Internet, I am required to nitpick, and armchair engineer this (now) released product (that I haven’t touched yet.) Without doubt there will be a number of benchmarks posted along with the release of the Pi 4. And I expect many of those only benchmark individual components. For example, I already saw graphs on the Gigabit Ethernet speed and USB 3.0 throughput, but not at the same time. As you will see in my datasheet evaluation, using two USB devices at the same time has a performance penalty.
A project I work on in my spare time is creating a portable Apple II. Like many of my projects, one leads into another. I started out wanting to make a mobile Apple II, and now I’m working on a project called Bit Preserve. How did I get from one project to the next? Well, as I looked into how to make a portable Apple II, I realized a significant issue. The original Apple II logic board has almost 80 ICs. Being a design from 1975, they are all through-hole packages. The good news is that except for the ROM chips, they are all off-the-shelf components. But such a size means it might be impossible to turn it into something handheld. I almost abandoned the project. Then, I learned about a chip included in the Apple IIgs. The name of the ASIC is “MEGA II.” (Nothing to do with Arduino.) It is a chip that integrates all of those off-the-shelf chips into an 84 pin package.
As I dove deeper into the project, I realized I needed other support chips to make the MEGA II useful. There is a decent book that discusses the technical details of the Apple IIgs, but it does not get into chip or board level design. For that detail, I had to look at the original schematics. While I am ecstatic that someone archived these original documents as PDFs, I quickly became frustrated. Sometimes the scan quality is not very good, and it is nearly impossible to search for symbols across multiple pages. I thought to myself, “There has got to be a better way!”
I had the chance to spend some time with the Arduino team before and during Maker Faire Bay Area 2019. I also attended Massimo’s “State of Arduino” talk. In short, there are new Arduino Nano boards coming, a certification available today, updates on the Vidor, interesting education kits, and one more special announcement.
It rained most of the weekend, which I am sure caused attendance to take a hit. Normally this would not be a big deal, but there was some talk it may be the last year for the Bay Area’s show. As usual, I walked the show on Friday and did take note there were several new exhibitors throughout. For that reason, I hope it is not the last one.
Depsite the grim news, spirits from attendees were high. On Saturday I helped answer questions and give out t-shirts at the Arduino booth. The time flew by fast but not before I got to overhear and explain tidbits about this year’s Arduino announcements.
New Arduino Nano (Every, IoT, BLE, and BLE Sense)
My favorite announcement, hands down, is the new Arduino Nano boards. The boards are a new small form factor featuring castellated edges. A “castellated edge” means you can solder the entire module to a PCB. It is a cost-effective way for adding a complex microcontroller solution to small and medium run products. You might be familiar with the concept from the ESP, WiFi, or Bluetooth modules.
The board form factor is really the only thing these new Arduino Nano boards have in common. Each offers a slightly different feature set. Oh, and the price for each is shocking for an Arduino branded board.
In April 2019, hardware hackers, hobbyist, and engineers joined together for the first KiCon. A couple of people asked me, “why is there a conference for KiCad?” Some questioned if KiCad was significant enough software to warrant a conference. That question is valid. But KiCon is larger than the KiCad software. Even in its first iteration, KiCon evolved more into a meeting for people building electronics hardware from small scale hobbyist to professionally designed systems, than just a conference on a single piece of software. Some might call it a maker conference. I call it a hardware developer conference. The key that tied everyone together is the open source software behind our printed circuit boards.
Twenty-five different talks covered basic KiCad usage, automating tasks, PCB layout techniques, and projects designed in KiCad. Wayne Stambaugh ended the first day with a State-of-KiCad discussion. He introduced the feature list for KiCad 6. Additionally, he announced four new lead developers and that he would be working on KiCad full time. That news means it is likely KiCad 6 will be here faster than the usual two-year release cycle.
In addition to the talks, there were several workshops and panel discussions. The workshops included a getting started with KiCad lead by Shawn Hymel [link]. That one was cool to keep an eye on because people were designing their first PCB, milling it, and then soldering parts to make the boards blink. In another workshop, Anool Mahidharia provided a hands-on guided introduction to FreeCAD. It is a parametric mechnical cad tool. The panels featuerd PCB manufactureres, workflow discussions, and the KiCad development team.
Outside of the planned classes and activities, I finally shook hands with friends whom I only knew through social media. Even though we are all electronics enthusiast or professional engineers, it is rare we end up at the same place at the same time. See what I mean about KiCad connecting liked minded people together?
With so much going on, I realized I couldn’t cover everything. Instead, this post’s focus is the tidbits I learned at the conference and stuck with me after a little bit of time passed. Here are the six things I learned at KiCon 2019.
The most popular AddOhms video is my short tutorial on MOSFET basics. In the years since I posted the video, people have sent me many questions. While answering those questions I’ve learned quite a bit as well. For example, in that video, I say that Vgs is the threshold to turn on the MOSFET. Well, it turns out, that is not entirely true. It is the threshold to turn it off! Oops. Minor point with a subtle difference, but a common MOSFET misconception.
In this post, I dispel that and other common myths and misconceptions around using MOSFETs. As with all engineering tips and tricks, this post is not a definitive guide to FETs. Instead, it is meant to be a guide to help you ask the right questions to design in the correct part.
1. Misconception: You don’t need resistors on the gate
Back when I made the AddOhms episode, I added a resistor to the MOSFET’s gate pin. Of course any time a resistor is shown in a schematic, people get worried about what complicated formula is needed to determine its value. For slow switching applications, like below 10 kHz, the resistor value doesn’t matter. Something in the 100 to 1000 KOhm range is fine.
P-Channel with series gate resistor
So if the value does not matter, why have one? The gate of a MOSFET is a small capacitor. And what happens when applying a voltage to a capacitor? It starts charging.
Resistor-Capacitor Charging Curve: Voltage and Current
The initial current is very high. It slows down as the capacitor charges. That initial current rush, also known as in-rush current, can be a problem. Even though it is a short time, there is a significant current surge which can damage an I/O pin. Depending on the size of the MOSFET’s gate capacitance, it may not be necessary to include that resistor. I wish I could say to “just” add it any time you use a MOSFET. If there is a high switching frequency, say 100 kHz or higher, then you have to worry about the RC charging curve created by the resistor and the gate capacitance.