Modular Electronics Learning project

Copyright 2016 - 2021, Tony R. Kuphaldt

The Modular Electronics Learning (ModEL) project represents the culmination of nearly two decades of professional instruction in the field of industrial electricity and electronics. It is substantially different from earlier publications such as Lessons In Electric Circuits in multiple ways.

First, the tutorials seek to explain as much as possible about electric and electronic circuits from first principles such as physical Conservation Laws. Second, each complete module contains multiple tutorials approaching the topic from different perspectives and levels of complexity (e.g. Introduction, Case Tutorial, Simplified Tutorial, Full Tutorial). The Tutorial chapters strive to apply fundamental concepts and problem-solving strategies at every opportunity so that readers emerge with a strong conceptual foundation. Third, some modules additionally contain Historical References and/or Animations chapters providing further exposition and context. Fourth, each modules contains question sets, projects, and experiments in order to be a comprehensive learning tool. These application questions specifically address qualitative, quantitative, and diagnostic modes of thought in order to encourage well-rounded development of the reader's understanding. Finally, these modules showcase the use of computer-based simulation tools, especially SPICE and C++ programming, as an aid to exploration of circuits and their underlying principles.

Similar to the Socratic Electronics project, these learning modules are expressly designed to be used within an instructional modality that is both ``inverted'' (students learning independently through reading prior to meeting with the instructor) and ``Socratic'' (the instructor challenging students to reason through all concepts and problems via dialogue). Appendices contained in each and every module outline problem-solving strategies and the instructional philosophy informing the design and application of the modules.

These documents and all related files are copyrighted works, but licensed under the Creative Commons Attribution 4.0 International Public License. A copy of this license is found in the last Appendix of every learning module. Alternatively, you may visit or send a letter to Creative Commons: 171 Second Street, Suite 300, San Francisco, California, 94105, USA. The terms and conditions of this license allow for free copying, distribution, and/or modification of all licensed works by the general public.


Start at the top, and work your way down.

Modules in the same row may be completed in any order. Ideally, you should complete each whole row before proceeding down to the next row.

Any module titles appearing in italic font are either incomplete (if hyperlinked) or are not yet created (if inaccessible).

Click here to access live courses based on these modules

Mathematics Fundamentals

Manipulating Algebraic Equations Trigonometry Digital Numeration
Boolean Algebra Complex Numbers Probability
Fundamental Concepts of Calculus Numerical Differentiation Numerical Integration

Electrical Fundamentals

Matter and Energy
Voltage, Current, Resistance, and Basic Circuit Concepts Sources and Loads, Voltmeters and Ammeters
Components and Symbols Electrical Diagrams
Conductors and Electrical Connections Electrical Switches
Ohm's and Joule's Laws, Resistor Ratings, and Electrical Safety Diagnostic Fundamentals
Multimeters Overcurrent Protection
Series Circuits and Voltage Dividers Parallel Circuits and Current Dividers
Kirchhoff's Voltage Law Kirchhoff's Current Law
Series-Parallel Circuits Qualitative Circuit Analysis
Elementary Circuit Design Bridge Circuits
SPICE Modeling of Resistor Circuits Check-list of Foundational Concepts

Network Analysis

Ideal and Real Sources Maximum Power Transfer Theorem
Superposition Theorem Thevenin's and Norton's Theorems
Millman's Theorem Loop and Mesh Analysis
SPICE Modeling of DC Networks

Magnetic and Electric Fields

Electric and Magnetic Fields Capacitance and Inductance
Capacitors and Capacitive Circuits Inductors and Inductive Circuits
Electromechanical Relays 555 Timer Circuits
DC Generators DC Motors
SPICE Modeling of Inductive and Capacitive Circuits

Sensors and Actuators

Sensors Overview Actuators Overview
Potentiometric Sensors Amperometric Sensors
Rheometric Sensors Electromechanical Meters
Electromagnetic Actuators Heating and Lighting Elements
Electrical Metrology

AC Fundamentals

AC Quantities and Measurements Phasor Mathematics
Oscilloscopes AC meters
Phasors and AC Circuit Measurements Phasor Diagrams
Resistance, Reactance, and Impedance Efficiency and Power Factor
Series AC Circuits Parallel AC Circuits
Series-Parallel AC Circuits Series/Parallel AC Equivalents
Resonance Parasitic effects
Mutual Inductance Transformers
Frequency-Domain Analysis Signal Coupling and Noise
Elementary Filter Circuits AC Power Instruments
Polyphase AC Polyphase Transformer Circuits
Transmission Lines Advanced Filter Circuits
The S Variable Transfer Functions
SPICE Modeling of AC Circuits Spectrum Analyzers

Electric Power Systems

Electrical Power Grids Single-Line Electrical Diagrams
Electrical Hazards Principles of Overcurrent Protection
AC Generators AC Motors
Circuit Breakers and Disconnects Power Transformers
AC Induction Motor Starters Variable Frequency AC Motor Drives
AC Power Regulation Overvoltage Protection
Instrument Transformers Principles of Protective Relaying
Symmetrical Components AC Motor Protection
Overcurrent Protection Relays Directional Overcurrent Protection Relays
Reclosing Protection Relays Overcurrent Protection Coordination
Differential Generator, Line, and Bus Protection Relays Differential Transformer Protection Relays
Distance Line Protection Relays Traveling-Wave Line Protection Relays
Auxiliary Protective Relays Protective Relay Testing
SPICE Modeling of Power Circuits AC Power Quality

Semiconductor Fundamentals

Conductors, Insulators, and Semiconductors Semiconducting Electronic Devices
PN Junctions and Diodes Rectifier Circuits
Bipolar Junction Transistors Field-Effect Transistors
Thyristors Brute-Force Power Supplies
Optoelectronic Devices Special Diodes
Linear Voltage Regulators Linear Current Regulators
Thermal Management Power Conditioning and Protection
SPICE Modeling of Semiconductor Circuits

Vacuum Device Fundamentals

Thermionic Emission Vacuum Rectifiers
Triode Tubes Multi-Grid Tubes
Thyratron Tubes RF Tubes
SPICE Modeling of Vacuum Components

Switching Circuits

Diode Switching Circuits Clipper and Clamper Circuits
Transistor Switching Circuits Thyristor Switching Circuits
Comparators Basic Principles of Digital
Phase-Angle Power Control Pulse Width Modulation Power Control
DC-AC Power Conversion DC-DC Power Conversion
Relay Ladder Logic Semiconductor Logic Gates
Digital Numeration Digital Codes
Error Detection and Correction Digital Diagnostic Tools
Combinational Logic Latching Logic
Boolean Algebra Karnaugh Mapping
Shift Registers Digital Counters
Encoders and Decoders Multiplexers and Demultiplexers
Digital Memory Digital Computing Circuits
Analog-Digital Conversion Digital Signal Integrity
Finite State Machines Introduction to Microprocessors
SPICE Modeling of Switching Circuits


Linear Voltage Regulators Linear Current Regulators
Transistor biasing Load lines
Single-Stage BJT Amplifiers Single-Stage FET Amplifiers
Differential Pair Amplifiers Multi-Transistor Amplifiers
Amplifier Performance Feedback
Audio Amplifiers RF Amplifiers
Comparators Operational Amplifiers
Precision Rectifier Circuits Analog Computing Circuits
Signal Referencing and Scaling Data Acquisition Circuits
Oscillators Active Filters
SPICE Modeling of Amplifier Circuits


Serial Data Communication EIA/TIA-232, 422, and 485 Serial Networks
Ethernet Networks Internet Protocols
Internet-based Systems Modbus Networks
Basic Principles of Radio Radio Antennas
RF Link Budgets Introduction to Modulation
Amplitude Modulation Frequency Modulation
Mixers High-Frequency Amplifiers
Radio Transmitters Radio Receivers
Antenna Feed Systems RF Measurements
Radio Wave Propagation RF Safety
Optical Communication Digital Security

Programmable Systems

Digital Memory Finite State Machines
Introduction to Microprocessors Introduction to Microcontrollers
Introduction to Assembly Language Programming Introduction to C/C++ Programming
Texas Instruments MSP430 Microcontrollers
Introduction to PLCs Programmable Logic Arrays

Career-related information

Career Guide

Software applications

SPICE version 2G6 is a legacy, ``freeware'' program used to analyze DC and AC circuits. Using SPICE is similar to writing a computer program. The first step is to create a plain-text file containing instructions for SPICE to follow, and then you invoke the SPICE program to process that plain-text file. SPICE then generates readable output with an analysis of the circuit, either in plain-text form of in a format suitable to graphic display using other software applications. While this may seem primitive in comparison to ``WYSIWYG'' style circuit analysis programs where you draw a picture of the circuit to be analyzed, using SPICE to analyze simple circuits is far from complicated, and becoming familiar with writing SPICE code is an excellent introduction to text-based computer programming, which any serious student of electronics needs to learn anyway.

Here is SPICE2G6 compiled for Microsoft Windows XP, to be run in the command-line window (cmd). This is a precompiled set of executables and dynamically-linked libraries:

Here is SPICE2G6 for the Linux operating system. After unpacking this ``tar'' source code archive file, you will need to compile it to create an executable: spice2g6.tar

A more modern version of SPICE is NGSPICE, the particular version hosted here is version 26. This is a derivative project based on SPICE version 3, copyright (1996) by the Regents of the University of California under a modified BSD license. A user's manual complete with all copyright notices and licenses is avaiable here: Ngspice version 26 manual (PDF)

Here is NGSPICE version 26 compiled for Microsoft Windows. It comes with an interactive terminal and graphic display. Simply extract all files contained in the ``zip'' archive: Instructions for using the interactive mode are found in the manual. NGSPICE also supports legacy ``batch'' mode operation as well, where you invoke NGSPICE at the command prompt (cmd) and receive text output.

Here is NGSPICE version 26 for the Linux operating system. After unpacking the source code archive file, you will need to compile it to create an executable: ngspice-26.tar.

Here is a simple terminal-based program called TROUBLESHOOT useful for practicing circuit troubleshooting. After unpacking the source code archive file, you will need to compile it to create an executable: tshoot_2v0.tar. This program runs well under Microsoft's ``Windows Subsystem for Linux'' (WSL), and natively under Apple OS X or Linux. Instructions on setting up WSL for a Microsoft Windows operating system are found here: WSL instructions.

Live courses

The following courses based on ModEL learning modules are designed for use at Lewis-Clark State College in Lewiston, Idaho. These are based on legacy (pre-2020) course numbers and titles, modified both for inverted instruction as well as revised topic coverage based on student and program needs.

The following courses are designed to fit in a sequence of four semesters, each semester being 15 weeks in length. Total semester-credit count is less than 60 credits, allowing room for general education and/or elective courses. Theory courses are calculated on the basis of 1 contact hour per week, per semester-credit. Experiment courses are calculated on the basis of 3 contact hours per week, per semester-credit. Project courses are calculated on the basis of 2 contact hours per week, per semester-credit.

Template, Theory course:
EET 000 T (4 cr)
Template, Experiments course:
EET 000 E (4 cr)
Template, Projects course:
EET 000 P (4 cr)
Basic DC Circuit Theory
IETTI-101 (4 cr)
Semester 1 Theory
Introduction to Microcontrollers
IETTI-103 (4 cr)
Semester 1 Experiments
Digital Electronics
IETTI-102 (4 cr)
Semester 1 Projects
Advanced Electrical Principles
IETTI-104 (4 cr)
Semester 2 Theory
AC Circuit Analysis
IETTI-112 (3 cr)
Semester 2 Experiments
Solid State Devices
IETTI-105 (4 cr)
Semester 2 Projects
Advanced Electronics I
IETTI-222 (4 cr)
Semester 3 Theory
C Computer Programming
IETTI-221 (4 cr)
Semester 3 Experiments
Advanced Digital Design
IETTI-220 (4 cr)
Semester 3 Projects
Advanced Electronics II
IETTI-223 (4 cr)
Semester 4 Theory
Intro to Programmable Devices
IETTI-225 (4 cr)
Semester 4 Experiments
Embedded Systems
IETTI-106 (4 cr)
Semester 4 Projects

Here is a calendar for the active semester at LC State College, as a web page: Calendar (HTML). Here is the same calendar, as a comma-separated variable file viewable and editable in a spreadsheet: Calendar (CSV).

Here is a daily schedule for Monday-Friday EET program classes at LC State College, as a PDF document: Daily Schedule (PDF).

Source files

This is the ``archive'' file for the Modular Electronics Learning project, in ``tar'' format which is a popular archival format on Unix-based operating systems: model.tar

Download this file to your computer, place it in a directory suitable for storing all the source files of this project, and then run the following command to extract all the individual files from this archive:

tar xvf model.tar

Every single file that is part of this project is covered by the Creative Commons ``Attribution'' license, which gives you freedom to pick specific files and incorporate them into your own project(s) if desired. All you must do is attribute original authorship of these files to myself.

An alternative to downloading this (very large!) archive file is to simply download individual source files for specific learning modules. Most of the files for this project are hosted in one directory, which means, for example, all you need to do to download the source LaTeX code for the text and formatting of the Series-Parallel Circuits learning module (mod_seriesparallel) is to replace the URL in your web browser ending in mod_seriesparallel.pdf with mod_seriesparallel.latex.

Section title index

A plain-text file listing all the sections in every Module may be viewed or downloaded here: List of Section Titles

This list may be helpful in searching for a particular topic among all the Modules hosted on this site.