ESim

From Script | Spoken-Tutorial
Jump to: navigation, search


eSim (previously known as Oscad / FreeEDA) is an open source EDA tool for circuit design, simulation, analysis and PCB design. It is an integrated tool built using open source software such as KiCad (http://www.kicad-pcb.org) and Ngspice (http://ngspice.sourceforge.net/). eSim is released under GPL.

eSim offers similar capabilities and ease of use as any equivalent proprietary software for schematic creation, simulation and PCB design, without having to pay a huge amount of money to procure licenses. Hence it can be an affordable alternative to educational institutions and SMEs. It can serve as an alternative to commercially available/ licensed software tools like OrCAD, Xpedition and HSPICE.


The Spoken Tutorial Effort for eSim has being contributed by Usha Vishwanathan, Gloria Nandihal and Athul George from FOSSEE Project, IIT Bombay with domain reviews done by Gloria Nandihal and Athul George.


Useful for Electrical Engg/Electronics students.

Basic Level

  1. Getting started with eSim Linux installation
    • Install eSim in Linux
    • Features of eSim
    • Test run an example using eSim
    • Running Half wave rectifier circuit using eSim
    • Half wave rectifier schematic
    • Simulate the schematic using eSim
    • Ngspice terminal
    • Showing the output NgSpice plot
    • Showing the output Python plot
  2. Getting started with eSim Windows installation
    • Install eSim in Windows
    • Features of eSim
    • Test run an example using eSim
    • Running Half wave rectifier circuit using eSim
    • Half wave rectifier schematic
    • Simulate the schematic using eSim
    • Ngspice terminal
    • Showing the output NgSpice plot
    • Showing the output Python plot
  3. Schematic Creation and Simulation
    • Launch eSim through terminal
    • Add components to circuit schematic
    • Connect the components using wires
    • Annotate the components
    • Generate spice netlist
    • Add source details and analysis parameters
    • Convert Spice netlist to Ngspice format
    • Simulate the circuit
    • Understand the multi-meter functionality
  4. Simulating an Astable Multivibrator
    • Creating a schematic.
    • Assigning Values to components.
    • Annotating the schematic.
    • Performing Electrical Rules Check.
    • Generating a netlist.
    • Setting transient parameters.
    • Converting KiCad netlist to ngspice netlist.
    • Assigning Device models to the semiconductor components.
    • Simulating the circuit.
    • Understanding the Python Plotting feature and ngspice terminal.
  5. Mapping Components with Footprints
    • Simulating a circuit.
    • Removing sources, labels and plots from the schematic.
    • Adding Connectors to schematic.
    • Performing annotation, ERC.
    • Launching Cvpcb.
    • Segregating footprints according to their libraries.
    • Viewing selected footprint.
    • Assigning footprints to corresponding components.
    • Saving the footprint association.
    • Generating .net netlist file.
  6. Setting Parameters for PCB designing
    • Launching Pcbnew
    • Reading .net netlist
    • Moving footprints
    • Orienting footprints
    • Selecting working layer
    • Creating board outline
    • Setting design rules for DRC
    • Changing global track width
    • Verifying drill hole size
    • Verifying drill hole shape
  7. Laying Tracks on PCB
    • Launching Pcbnew
    • Selecting working layer.
    • Placing a track between two nodes.
    • Adding a ground plane outline for the board.
    • Adding a ground plane for the board.
    • Placing Dimensions for the board.
    • Placing text on the board.
    • Performing DRC.
    • Generating Gerber files.
    • Viewing created Gerber files.
  8. PCB Layout for Astable Multivibrator
    • Launching Eeschema.
    • Launching Pcbnew.
    • Selecting working layer.
    • Placing a track between two nodes.
    • Adding Board outline.
    • Adding a ground plane for the board.
    • Adding a ground plane outline for the board.
    • Performing DRC.
    • Generating Gerber files.
    • Viewing created Gerber files.

Intermediate Level

  1. Creating a Device Model
    • Introduction to Device Models.
    • Creating a Germanium Diode 1N34A model using the Model Editor feature.
    • Adding parameters of Germanium 1N34A.
    • Opening the Diode Characteristics example of eSim.
    • Performing KiCad to Ngspice conversion.
    • Verifying the characteristics of Germanium diode.
    • Observing the Knee voltage and forward current of Germanium diode.
    • Importance of Shockley Diode equation for DC analysis.
    • Editing the emission coefficient N of Germanium diode.
    • Observing the decreased Knee voltage and forward current of Germanium diode.
  2. Uploading a Spice Device Model
    • Introduction to Device Models.
    • Downloading ans saving the Schottky.lib file.
    • Uploading an spice Schottky Diode model.
    • The lib and the xml file of Schottky will be in the User Libraries folder.
    • Opening the Diode characteristics example from eSim.
    • Performing the KiCad to Ngspice conversion.
    • Adding the Schottky library file under Device Model tab
    • Generating the Ngspice plots.
    • Observing the Knee voltage and forward current of the Schottky diode.
    • Generating the Python plots.
  3. Subcircuit Builder
    • Introduction to Subcircuit Builder.
    • Creating a subcrcuit of Half Adder in eeschema.
    • Connecting Ports.
    • Generating KiCad netlist for the subcircuit.
    • Generating Ngspice netlist for the subcircuit.
    • Introduction to Library Editor and Part Library Editor.
    • Creating a Part Library/symbol for the subcircuit.
    • Adding Pins to the component symbol.
    • Verifying the component in the KiCad library.
    • Simulating the subcircuit using HA_Test example
  4. Editing a Subcircuit
    • Introduction to Edit subcircuit feature.
    • Editing an existing Half Adder subcircuit.
    • Adding an Inverter gate to the output of AND gate.
    • Adding Port.
    • Generating KiCad netlist for the subcircuit.
    • Generating Ngspice netlist for the subcircuit.
    • Editing the Half Adder Subcircuit in the Part Library Editor using Library Editor tool.
    • Savingthe modified symbol to eSim_subckt libraries.
    • Brief Introduction on 'Updating a current component' , 'Delete' and 'Creating a new component' tools in the Part Library Editor.
    • Verifying the modified subcircuit and its component symbol with Half Adder example
  5. Uploading a spice Subcircuit file
    • Introduction to subcircuit.
    • Introduction to Upload feature in the Subcircuit Builder.
    • Downloading and saving the 'FA using NAND. sub' file on Desktop
    • Uploading the subcircuit 'FA using NAND.sub' file using ‘Upload’ option.
    • Directing to Subcircuit library of eSim and verifying the created subcircuit and its sch file.
    • Opening the 'Fulladder' example form eSim.
    • Performing KiCad to Ngspice conversion.
    • Generating the Ngspice and Python plots.
    • Brief introduction on '.include' statement in the UJT subcircuit file.
    • Explaination on how the model 'RMOD' and 'Emitter' is defined in the UJT subcircuit file.

Contributors and Content Editors

Nancyvarkey, PoojaMoolya, Pratik kamble, Vineeta