Testing with ngspice

 

ngspice simulation of Voltage Adder circuit with 1KHz sinusoidal input

Winter is nearly here in the San Francisco Bay Area. In the South Bay, the daily temperatures have been cooler, and in the evening is positively cold, relative to room temperature. So, lately I've not been as able to use my unheated outdoor garage electronics lab to do EMS development. Instead, I was thinking more about ways to use a computer to integrate module designs and to design PCBs. With some PCBs in the pipeline to the fab house, construction on the Model III EMS modules could commence in earnest in the Spring of 2021.

Lately, I've been consolidating my computer use toward Google Chromebook devices in general. I no longer use macOS or iPad OS, and there's no way I'd consider Windows under any circumstances whatsoever. I basically use Linux, ChromeOS and Android. I also have two Raspberry Pi computers operational for radios (SDR) and one for CAD. However, the Raspberry Pi machines are outside in the outdoor lab, and I've not bothered to setup remote desktops or VNC. 

Instead, my main machine really has been a Google Pixelbook. I have been using the Crostini Debian Linux container on the Pixebook for more than 2 years. I really like this enviornment!

To find a way to continue EMS development with BJT circuit designs for modules, I decided to look into ngspice again, which I had used a lot on Linux in the early 2000s, for FPGA applications. This weekend I evaluated a number of open source schematic entry environments that work with ngspice. In the end, I decided that I dislike them all, when compared with just plain text entry. My development system is pretty much GNU Emacs. A desktop GUI environment is just a means for using an xterm 😀. I guess I mostly see the world in "text" form. Going from a hand-generated schematic drawing to text netlists is totally easy for me. 

So, the foto below is the emacs ngspice text for the Voltage Adder that I bench tested a couple weeks back:

ngspice netlist for Voltage Adder

After making the decision to use discrete transistors rather than integrated circuits, it became more imperative to consider having PCBs fabricated, rather than using pad-per-hold breadboards. This is because there are more components involved with discrete designs, and so a PCB is considerably more convenient than a breadboard for assembly. PCBs are a bit more fixed in their purpose though, so such construction also means that integrating known-to-work circuit designs is more of an imperative. So, through this Winter, "building in simulation" makes a lot of sense.

Comments