Skip to content
Shopping from United States? (prices in USD)
Free US shipping over $50 (lower 48)
Ship to
Electron Plus
← All manuals

SPA100 Source Picoammeter


title: "SPA100 User Manual" subtitle: "Source Picoammeter" version: "V26301" date: "April 2026" lang: "English"

Notices

Copyright

© Electron Plus 2024-2026

This manual (or part thereof) may not be reproduced by any means (electronic or photographic, including translation into a foreign language) without prior written consent and agreement from Electron Plus as set-out in United Kingdom and international copyright laws.

Electron Plus is a trading style of Electron Plus Instruments Limited.

Part Number

SPA100_V26301_EN.PDF

Issue

V26301, April 2026

Location

The latest version of this document can be found on our website:

www.electron.plus/manuals

Published By

Electron Plus Instruments Limited
Unit 8 Manor Farm Business Centre
Manor Lane
Stutton
Suffolk
IP9 2TD
UK

Hereafter referred to as Electron Plus.

Notes

  • We frequently update our manuals and add new features and improvements as they become available, please ensure that you check our website for an updated version of this document, especially if updating your Electron Plus software.
  • We make every effort to ensure the accuracy of this manual's contents. If you find any errors, have suggestions for expanding on a feature, or feel that we can improve its contents then please contact us at support@electron.plus
  • Copying or reproducing this document or any part of this document without written permission of Electron Plus is strictly prohibited.

Trademark Acknowledgement

Electron Plus fully recognises and acknowledges any trademark(s) of the respective trademark holder.

Windows™ is a trademark of Microsoft Corporation.

Purpose of Manual

The purpose of this manual is to enable you to safely setup, configure and operate your Electron Plus instrument, associated software and/or accessories.

Please pay particular attention to any section with a warning symbol.

Safety Warnings

Warnings, cautions and notes are colour coded through-out this manual. These are divided into several categories and are described below:

::: warning WARNING - Pay special attention to anything written here - this is for your safety and continued protection and is critical information! :::

::: caution CAUTION - Damage may occur to your equipment or any DUT (device under test). :::

::: note NOTE - General text, with useful information or tips. :::

REACH / CLP Compliance Statement

Statement on Safety Data Sheet (SDS) for product:
SPA100 Source Picoammeter

According to EU Regulation (EC) N° 1907/2006 (REACH) and Regulation (EC) N° 1272/2008 (CLP), no Safety Data Sheet is required for this product.

This product is classified as an article under REACH and:

  • has no hazardous classification under CLP
  • contains no Substances of Very High Concern (SVHC) in concentrations above 0.1% w/w and no intentional released under normal or reasonably foreseeable conditions of use (REACH Article 33)
  • complies with Directive 2011/65/EU (RoHS) as amended by Directive (EU) 2015/863 (RoHS 3)

For safe use, please refer to the user manual and product labelling.

Should any changes occur in product composition or regulations, we will notify affected customers promptly.

Issued by:
Electron Plus Instruments Limited

Issue date:
March 2026


Getting Started

Welcome to the EPIC software for the SPA100 Source Picoammeter by Electron Plus. This manual covers every aspect of operating the instrument and software.

What is the SPA100?

The SPA100 is a single-channel Source Picoammeter designed for measuring ultra-low currents from 2mA down to 200pA. It includes a programmable bias voltage source providing 0V to +40V (or -40V) with polarity control, making it ideal for characterising high-resistance materials, leakage currents, photodetectors, sensors, and semiconductor devices. The SPA100 combines a precision current measurement instrument with a programmable voltage source in a compact, USB-powered unit.

Key Specifications

ParameterSpecification
Current measurement ranges2mA, 200uA, 20uA, 2uA, 200nA, 20nA, 2nA, 200pA
Number of ranges8
Bias voltage supply0V to +40V (or -40V)
Polarity controlPositive / Negative
Sample rates2Hz, 10Hz, 20Hz
Rolling averaging1x, 2x, 4x, 8x, 10x, 16x, 20x, 32x, 40x, 64x
Channels1
InterfaceUSB 2.0
SoftwareEPIC (free updates)

What's New in V26301

EPIC V26301 is a ground-up rewrite of the SPA100 software, matching the CTL503 Curve Tracer rewrite. Key improvements:

  • Modern dark-themed UI with professional instrument-panel appearance
  • Configurable measurement displays — right-click any measurement box to change its data source, decimal places, format, colours, and size. Add up to 16 displays, arrange in full or half width
  • Data Processing Engine — live, averaged, max+, max-, mean, RMS, peak-to-peak, and resistance values computed from the measurement stream
  • Auto-ranging — toggle between manual and automatic range selection
  • X axis navigation — elapsed/local/UTC time formats, rolling/manual mode, jump and step navigation
  • Y axis modes — AUTO, CENTRE, POS, NEG with invert option, plus manual +/- scale control
  • Graph text size — four sizes (XS/S/M/L) via the Aa button
  • Box zoom — draw a selection rectangle to zoom into a region, with Back to unzoom
  • X and Y cursors with slope — measure values at specific positions on the strip chart
  • Graph title — click to edit, saved with setup
  • Right-click graph settings — adjust graticule divisions (X/Y major, minor per major)
  • Info overlay — shows input range, source voltage, sample rate, and averaging
  • Sub-graph overview — miniature view of the entire recording
  • Context-sensitive help — clicking Help opens the relevant section of this manual

System Requirements

  • Windows 10 or later
  • USB 2.0 port for instrument connection
  • Minimum 1440x900 display resolution (1920x1080 recommended)
  • EPIC software (free download from www.electron.plus)

What is in the Box

SPA100:

  • 1x SPA100 Source Picoammeter
  • 1x USB cable

Instrument Indicators

The SPA100 has one LED indicator:

  • GREEN LED — Indicates the unit is connected and communicating with the EPIC software.

The source output state is shown by the Source button indicator in the EPIC software. There is no physical LED for source status.


Quick Start

  1. Connect the SPA to your computer via the USB cable
  2. Launch the EPIC software
  3. Select SPA100 as the active instrument (if not already selected)
  4. Click the Connect button to establish communication
  5. Select the desired current measurement range
  6. Set the bias voltage and polarity as required
  7. Connect your device or circuit to the input terminals
  8. Enable the Source output by clicking the Source button
  9. Click Run to begin recording and observe the live current on the graph

::: warning Always ensure the source output is disabled in EPIC before connecting or disconnecting devices from the input terminals. The Source button indicator must show OFF before handling the input connections. :::


Introduction

Welcome

Congratulations and thank you for purchasing an Electron Plus product.

Please take a few minutes to read the 'Before you start' section of this manual, especially as misusing this product can result in damage to it, your device-under-test or potentially place you in danger.

Before You Start

General

The SPA100 is a USB-powered instrument and does not require an external power supply under normal operating conditions.

Handle the input terminals and connectors with care. Do not force connections or over-tighten terminal posts.

::: caution The SPA100 can generate bias voltages up to 40V at the output terminals. Users are expected to be fully aware of the risks posed by these voltages and the precautions required to maintain safety. :::

::: warning If the Source button in EPIC shows ON, assume that a bias voltage is present at the output terminals and act accordingly! :::

Safety and Handling

::: warning WARNING - Read this section carefully before operating your Source Picoammeter :::

Maximum Ratings

The SPA100 has the following absolute maximum ratings that must never be exceeded:

ParameterMaximum Rating
Bias voltage output0V to ±40V DC
Input current (measurement terminal)Do not exceed selected range full-scale
Operating temperature0°C to 40°C
Storage temperature-20°C to 60°C
Humidity20% to 70% RH, non-condensing

::: caution Exceeding these limits may permanently damage the instrument and void your warranty. :::

Electrostatic Discharge (ESD) Precautions

The SPA100 contains sensitive electronic components that can be damaged by electrostatic discharge. When handling the instrument:

  • Use an anti-static wrist strap when connecting/disconnecting measurement leads
  • Store the instrument in its anti-static packaging when not in use
  • Avoid touching the input connector centre pins directly
  • Discharge yourself by touching a grounded metal object before handling

Package Contents

Your SPA100 package should contain:

  • 1x SPA100 Source Picoammeter
  • 1x USB 2.0 cable

::: caution If any items are missing or damaged, please contact Electron Plus immediately at support@electron.plus :::

Initial Inspection

Before use, inspect your instrument for any damage that may have occurred during shipping:

  1. Check the enclosure for cracks, dents, or other physical damage
  2. Inspect the input connectors for bent pins or damage
  3. Examine the USB connector for damage
  4. Verify the instrument label shows your serial number

::: caution If you notice any damage, do not operate the instrument. Contact Electron Plus or your distributor immediately. :::

Measurement Best Practices

For accurate low-current measurements, follow these guidelines:

  • Allow the instrument to warm up for a few minutes before precision measurements
  • Use the Null/Zero function to cancel offset currents before taking critical readings
  • Keep measurement cables as short as practical
  • Use shielded cables for measurements below 20nA to minimise noise pickup
  • Use guarded connections where possible for measurements below 2nA to reduce leakage paths
  • Avoid fluorescent lighting and other sources of electromagnetic interference near the measurement area
  • Ensure all connections are clean and free from oxidation or contamination
  • Allow the measurement to stabilise — settling time increases for lower current ranges
  • For ultra-low current measurements (200pA range), use a Faraday cage or shielded enclosure

Operating Environment

  • Temperature: 0°C to 40°C (32°F to 104°F) operating, -20°C to 60°C storage
  • Humidity: 20% to 70% relative humidity, non-condensing
  • Altitude: Up to 2000m above sea level
  • Location: Indoor use only, in a clean, dry environment
  • Ventilation: Ensure adequate airflow around the instrument

What You Will Need

To operate the SPA100, you will require:

Installation Sequence

Please install the EPIC software BEFORE connecting your instrument to a computer for the first time.

You do not need to remove a previous copy of EPIC, the new copy will overwrite the necessary existing file(s). The "settings.txt" file will only be created if it is not present.

When EPIC is first started, it will build a number of files (unless they are already there from a previous installation) in the installation directory.

EPIC software is specifically for the Electron Plus range of products including curve tracers, source picoammeters, analog signature analysers, and power analysers ONLY.

::: note If upgrading from an earlier version of EPIC please be aware that the program EXE is named after the version (e.g. EPIC26_64.EXE). Previous desktop shortcuts may not work or may link to the previous version. :::

Installing EPIC Software

Electron Plus products require a USB connection to a PC running EPIC (our proprietary software) in order to function.

You can download the latest copy of EPIC for free from www.electron.plus/software. EPIC is being constantly revised with new features, updates and bug fixes.

  1. Download the installer ZIP file from the software page (e.g. Install_EPIC26007_64.ZIP)
  2. Open the downloaded file (Windows will recognise the ZIP format and display the contents like a folder), then double click the EXE installer inside
  3. Follow the on screen instructions to complete the installation

Before starting EPIC, we recommend installing the USB driver — see next section for details.

::: note This manual MAY NOT represent the most up-to-date features and screen-shots, if something is unclear, please contact support@electron.plus and we will promptly try to assist you. :::

Installing the USB Driver

This product communicates with the host PC via USB using a CH340 bridge IC made by WCH.

A copy of the official WCH device driver is available from the SOFTWARE section of our website www.electron.plus/software, device drivers can also be downloaded directly from WCH's website.

The driver we use with Windows machines is: CH341SER and is available as .EXE or a .ZIP


Connecting Your Instrument

USB Connection

The SPA connects to your computer via a USB 2.0 cable. The instrument uses a CH340 USB-to-serial bridge which creates a virtual COM port.

The SPA100 is USB-powered and does not require an external power supply for normal operation.

COM Port Selection

The software will attempt to auto-detect the SPA on startup. If auto-detection fails:

  1. Open Settings by clicking the Settings button
  2. Navigate to the Comms tab
  3. Use the Scan button to search for available COM ports
  4. Select the correct COM port from the dropdown list
  5. Click Set to confirm

Connection Status

The connection status is displayed in two places:

  • Connect button in the top bar - shows the current connection state
  • Comms Status widget (if enabled via the Advanced panel) - shows detailed communication statistics including TX, RX, and Errors
StatusMeaning
ConnectedInstrument is communicating normally
DisconnectedNo communication with instrument
SearchingSoftware is attempting to find the instrument
ErrorCommunication error detected

Troubleshooting Connection Issues

  • Ensure the USB cable is firmly connected at both ends
  • Check that the GREEN LED on the SPA is lit (indicates power and USB connection)
  • Try a different USB port on your computer
  • Check that the correct COM port is selected in Settings
  • Ensure no other software is using the same COM port
  • Check Windows Device Manager for the COM port listing
  • Try restarting both the software and the instrument

Input Settings

The input settings control how the SPA measures current from the device under test. These controls are located in the left-hand ribbon of the main display.

Range Selection

The SPA provides eight current measurement ranges, each optimised for a specific decade of current. Select the range using the Range control in the left ribbon. Use the + and - buttons to step through the available ranges.

RangeFull ScaleBest For
2mA2 milliampsGeneral-purpose current measurement, LED testing
200uA200 microampsModerate leakage currents, sensor characterisation
20uA20 microampsLow-current device testing, photodetector characterisation
2uA2 microampsInsulation resistance testing, low-leakage semiconductors
200nA200 nanoampsHigh-resistance material characterisation
20nA20 nanoampsUltra-low leakage measurement, capacitor leakage
2nA2 nanoampsPicoammeter-grade measurement, thin-film characterisation
200pA200 picoampsUltra-low current measurement, guard-ring structures

Choosing the correct range: Select the lowest range that can accommodate the expected current without over-ranging. A lower range provides finer resolution and lower noise. If the measured current exceeds the selected range, the display will indicate an over-range condition.

::: note For best accuracy at very low currents (2nA and 200pA ranges), allow the instrument to warm up for a few minutes and use the Null/Zero function to cancel any offset before taking measurements. :::

Sample Rate

The sample rate determines how frequently the instrument acquires current readings. Select the sample rate using the Sample Rate control.

Sample RateDescription
2HzSlowest rate. Provides the lowest noise and best accuracy. Ideal for stable, low-current measurements where speed is not critical.
10HzBalanced rate. Good compromise between noise performance and update speed. Suitable for most general-purpose measurements.
20HzFastest rate. Best for capturing rapidly changing currents or for fast data logging. Higher noise floor than slower rates.

A slower sample rate allows the instrument to average over a longer integration period, reducing noise and improving measurement stability. Use 2Hz for the most demanding low-current measurements and 20Hz when you need to capture transient behaviour.

Null / Zero

The Null (also called Zero) function cancels residual offset current in the measurement path. This is essential for low-current measurements where offsets from cables, connectors, and the instrument's input circuitry can be significant.

To perform a null/zero:

  1. Disconnect the device under test (or ensure zero current is flowing)
  2. Allow the reading to stabilise
  3. Click the Null button
  4. The instrument captures the current offset and subtracts it from all subsequent readings

The null offset is stored for the currently selected range. If you change ranges, you may need to perform the null procedure again.

::: note Null/zero is particularly important when measuring on the 200pA, 2nA, and 20nA ranges, where input offset currents can be a significant fraction of the full-scale reading. :::

Rolling Averaging

Rolling averaging reduces noise by computing a moving average of multiple consecutive readings. Select the averaging factor using the Averaging control.

Averaging FactorEffect
1xNo averaging. Each displayed reading is a single sample.
2xAverage of 2 consecutive readings
4xAverage of 4 consecutive readings
8xAverage of 8 consecutive readings
10xAverage of 10 consecutive readings
16xAverage of 16 consecutive readings
20xAverage of 20 consecutive readings
32xAverage of 32 consecutive readings
40xAverage of 40 consecutive readings
64xAverage of 64 consecutive readings. Maximum smoothing.

Trade-off: Higher averaging factors produce a smoother, more stable reading but increase the response time. With 64x averaging at 2Hz sample rate, the displayed reading reflects the average over 32 seconds of data. For fast-changing signals, use a lower averaging factor or no averaging (1x).

Typical usage:

  • 1x to 4x - Fast-changing signals, transient capture, initial setup
  • 8x to 20x - General-purpose measurement, moderate noise reduction
  • 32x to 64x - Stable DC measurements where maximum noise rejection is needed

Source Supply

The SPA includes a programmable bias voltage source for applying a controlled voltage to the device under test. The source supply controls are located in the left-hand ribbon of the main display.

Voltage Control

The source supply provides a continuously adjustable output from 0V to +40V (or -40V when negative polarity is selected). Use the + and - buttons to step through preset voltage levels, or click the centre of the control to enter a custom voltage value directly via a dialog.

The voltage output is suitable for biasing semiconductors, driving sensors, characterising high-resistance materials, and measuring insulation resistance.

::: caution Always start with a low voltage when testing an unknown device and increase gradually to avoid damage. :::

Polarity

The source supply polarity determines whether a positive or negative voltage is applied to the output terminals. Click the polarity toggle to switch between Positive and Negative.

  • Positive: Applies a positive bias voltage (0V to +40V)
  • Negative: Applies a negative bias voltage (0V to -40V)

Select the polarity appropriate for your device under test and measurement configuration.

Source On/Off

The Source button enables or disables the bias voltage output.

  • Click Source to toggle the voltage output on or off
  • The Source button indicator in EPIC shows the current state
  • The source will automatically disable if a communication error occurs

::: warning Always ensure the device under test is properly connected before enabling the source output. The Source button must show OFF before connecting or disconnecting devices. :::


Graph Display

The main graph area plots measured current against time.

Main Graph

Current (Y-axis) is plotted against time (X-axis). The display updates continuously as new readings are acquired, showing stability, transient events, drift, and the effect of voltage changes on current.

Graph Title

Click the graph title at the top of the main graph to edit it. The title is saved with setup files.

Bottom Information Text

Below the main graph, configuration information is displayed:

  • Ch.1 (yellow text): Shows the current input range, null status, source voltage, sample rate, and averaging factor

This information updates in real-time as you change settings, providing an at-a-glance summary of the measurement configuration.

Sub-Graph Overview

Below the main graph, a sub-graph overview provides a miniature view of the entire recording. This is particularly useful for long recordings where only a portion of the data fits in the main graph view.

Key features of the sub-graph:

  • Shows the complete recording at all times, giving context for where the current view sits within the full dataset
  • C and D markers (vertical dashed lines with drag handles) indicate which portion of the recording is currently displayed in the main graph. These are labelled C and D to distinguish them from the main graph's A and B measurement cursors
  • Drag the C or D markers to manually scroll through the recording. Dragging either marker moves the entire view window — C marks the left (start) edge and D marks the right (end) edge
  • Click within the sub-graph to reposition the view

Auto-follow mode: When first started, the D marker automatically tracks the right edge of the incoming data so the main graph always shows the latest measurements. This is indicated by the D marker turning green. If you drag either C or D marker to browse earlier data, auto-follow disengages and the D marker returns to the normal grid colour. To re-engage auto-follow, simply drag the D marker back to the right edge of the sub-graph — it will snap to auto-follow mode and turn green again

Trace dimming: Click on a column of the sub-graph to dim that trace, useful for focusing on specific time regions or comparing before/after segments.

Splitter bar: The boundary between the main graph and sub-graph can be dragged vertically to adjust the relative sizes of each graph. Drag up to give more space to the sub-graph, or down to enlarge the main graph. The splitter position is saved with setups.

Timebase

The Timebase control in the left ribbon sets the horizontal time scale (seconds per division) for the main graph. Use the + and - buttons to zoom the time axis in or out. The timebase determines how much time is visible in the main graph window at once. Smaller timebase values show finer detail; larger values show more data.

Y-Axis Scale

The Y-Scale control sets the vertical current scale (amps per division) for the main graph. Use the + and - buttons to adjust the vertical zoom. The Y-axis scale determines how much current range is visible in the main graph.

Y-Axis Mode

Below the Y-Scale control, mode buttons control how the Y-axis is positioned:

ModeDescription
AUTOAutomatically adjusts the Y-axis range to fit all visible data. Click again to switch to manual mode with +/- buttons for stepping through fixed Y-axis ranges.
CENTRESymmetric around zero — the Y-axis range is set so that zero is always centred on the graph, with equal positive and negative extent.
POSForces the Y-axis from 0 to the full-scale of the current range. Zero is at the bottom.
NEGForces the Y-axis from -full-scale to 0.
INV(Appears when NEG is selected) Inverts the negative axis so that zero is at the bottom and magnitude increases upward. This matches the CTL503 convention for negative polarity curves.

Recording {#recording}

The Run button on the toolbar controls recording. It cycles through three states:

StateButton LabelAction
IdleRunPress to start recording. Graph clears and begins capturing new data.
RecordingPausePress to pause. Data is preserved, no new samples are added.
PausedResumePress to resume recording. New data appends to the existing session.

A separate Stop action ends the recording session entirely. When stopped, the session can be saved to CSV and the session number increments automatically if configured.

Pause and Resume {#pause-resume}

When recording is paused, a shaded region appears on the graph marking the pause period. This makes it clear where gaps in the data exist.

Click Pause again (or Run) to resume recording. New data is appended to the existing session. The boundary between paused and resumed segments is marked on the graph.

Pause Markers

In Local Time and UTC display modes, pause boundaries appear as a filled gap on the graph with a rotated text label showing the duration of the pause (e.g. "RECORDING PAUSED FOR 00:01:23.456").

Range Change Markers {#range-change-markers}

When the input range changes (manually or via auto-ranging), an orange dashed vertical line is drawn on the graph at the point of change, with the text "Range change" displayed vertically along the line. This alerts you that data either side of the marker was measured with different sensitivity — readings across the boundary may not be directly comparable.

The rolling average is automatically reset at each range change to prevent old-range data from contaminating new-range readings.

This alerts you that data either side of the pause was measured with different sensitivity, so readings across that boundary are not directly comparable.


Results Display {#results-display}

The right-hand ribbon displays live numerical data from the instrument using configurable measurement display widgets.

Measurement Display Widgets

Each display box on the right ribbon is independently configurable. The default layout shows:

DisplayData SourceDescription
CURRENTCh.1 AveragedLive averaged current reading
MAXIMUM +Ch.1 Max+Highest reading since reset
MAXIMUM -Ch.1 Max-Most negative reading since reset
RESISTANCECh.1 ResistanceCalculated R = V/I (requires bias source on)

Configuring a Display

Right-click any measurement display to open the configuration flyout:

  • Label Override — type a custom label, or leave blank to auto-generate from the data source
  • Data Source — select what the display shows. Available sources include:
    • Ch.1 Current Live, Ch.1 Current Averaged
    • Ch.1 Current Max+, Ch.1 Current Max-
    • Ch.1 Current Mean, Ch.1 Current RMS
    • Ch.1 Current Peak-Peak
    • Ch.1 Resistance, Ch.1 Null Current
  • Decimal Places — 0 to 6 (default 4)
  • Format — Normal (range-locked units: mA/µA/nA/pA) or Scientific notation
  • Text Size — Small, Normal, Large, Extra Large
  • Background Colour — choose from preset colours
  • Text Colour — choose from preset colours
  • Width — Full (288px) or Half (144px). Two half-width displays sit side by side.
  • Move Up / Move Down — reorder displays
  • Remove — delete this display (minimum 1 must remain)
  • Reset to Default — restore factory settings for this display

Adding Displays

Click + Add Display at the bottom of the right ribbon to add a new measurement display (up to 16 maximum).

RESET Button

Displays bound to resettable data sources (Max+, Max-, Mean, RMS, Peak-Peak) show a RESET button. Click it to reset the tracked value. The button is styled to match the display's colours — it appears subtly, with an outline appearing on hover.

Display Persistence

All display configurations (data source, colours, sizes, positions) are saved to system_settings.json and persist across sessions.

Units

The displayed unit is locked to the current input range — when on the 200nA range, the unit is always nA regardless of the magnitude of the reading. The number of decimal places is user-configurable via the right-click flyout.

Max/Min tracking identifies peak and trough values during a session.

Resistance Calculation

The SPA calculates and displays the resistance of the device under test using Ohm's law:

R = V / I

Where V is the applied bias voltage and I is the measured current. This provides a real-time resistance reading that updates as the voltage or current changes.

::: note The resistance reading requires a non-zero bias voltage. :::


Session Browser

The Session Browser provides access to previously recorded measurement sessions.

Browsing Sessions

Use the < > arrow buttons to step through saved session files. The session data is loaded and displayed on the graph, allowing you to review historical measurements.

Opening a Specific Session

Click the centre of the Session Browser panel (where the session name is displayed) to open a file chooser dialog. This lets you navigate directly to any session JSON file in the sessions folder without stepping through files one at a time.

Returning to Live Data

After browsing session files, start a new recording to return to live data display.


Cursors

The SPA provides a full cursor measurement system for making precise measurements on recorded graph data.

X Cursors

Click the X Cursor button on the toolbar to enable horizontal (time) cursors. Two vertical cursor lines (A and B) appear on the main graph.

  • Drag cursor A or B directly on the graph to position them
  • Use the +/- fine-adjust buttons in the cursor controls to nudge cursors by small increments
  • Cursor values are displayed in absolute time (seconds from the start of recording), regardless of the current view position

Y Cursors

Click the Y Cursor button on the toolbar to enable vertical (current) cursors. Two horizontal cursor lines (A and B) appear on the main graph.

  • Drag cursor A or B directly on the graph to position them
  • Use the +/- fine-adjust buttons to nudge cursors by small increments
  • Cursor values are displayed with the correct current units (A, with appropriate SI prefix)

Slope Measurement

Click the Slope button to enable slope measurement between the cursor positions:

Slope = (XB - XA) / (YB - YA)

Cursor Results

Toggle the cursor results table using the Cursor Measurements button. When visible, the table appears in the right-hand ribbon and displays:

MeasurementDescription
XATime position of cursor A
XBTime position of cursor B
XB-XATime difference between cursors (delta time)
YACurrent value at cursor A
YBCurrent value at cursor B
YB-YACurrent difference between cursors (delta current)
SlopeRate of change (when slope measurement is enabled)

Activating Slope mode automatically enables the cursor results table.


Metadata Overlay

The Metadata Overlay displays key settings as a semi-transparent table on the graph. Toggle it using the Info button on the top ribbon or via the Advanced panel. Each click cycles through four corner positions before turning off.

Displayed Information

FieldDescription
Input RangeCurrent measurement range (e.g. 200 pA, 2 nA, 20 nA)
NullNull offset value, shown only when Null is active (e.g. 1.9546 pA)
Source VoltageBias supply voltage; displays "0 V" when the source is switched off
Sample RateCurrent sample rate (2 Hz, 10 Hz, or 20 Hz)
AveragingRolling average multiplier (e.g. 10x)

::: note The Null row only appears when Null is enabled. It shows the captured offset value in engineering notation with 5 significant digits. :::

Draw Order

By default the INFO box is drawn in front of the traces, which may obscure parts of the measurement data. To draw the INFO box behind the traces instead, go to Settings > Graph Tab and change the INFO Box Draw Order to "Behind Traces". This allows traces to be drawn over the INFO box, keeping the measurement data fully visible.


CSV Export

The CSV export feature saves measurement data in comma-separated values format, suitable for opening in spreadsheet applications (such as Microsoft Excel or LibreOffice Calc) or importing into analysis software.

Saving CSV Data

Click the CSV button on the toolbar to save the current recorded data. A file save dialog will appear allowing you to choose the filename and location.

CSV File Format

The SPA CSV file contains 6 columns with one row per recorded sample:

ColumnDescription
SampleSample number (sequential from 0)
Time (s)Time in seconds from the start of recording
UTC TimeUTC timestamp for each sample (YYYY-MM-DD HH:MM:SS format)
Ch1 Current (A)Channel 1 measured current in Amps
Input Range Ch1Channel 1 input range setting text
Source Ch1 (V)Channel 1 source voltage setting

Configuration Options

Configure CSV export in the Settings window under the File Export tab:

SettingDescription
Save LocationFolder where CSV files are saved
Auto-NameAutomatically generate sequential filenames
PrefixText prefix for auto-named files

Auto-Naming

When auto-naming is enabled, files are saved with a sequential counter:

[Prefix]_001.csv, [Prefix]_002.csv, [Prefix]_003.csv...

The counter can be reset or preset to a specific value in Settings.


PNG Capture

The PNG capture feature saves the current graph display as a PNG image file.

Saving a PNG

Click the PNG button on the toolbar to save the current display as a PNG image.

Configuration Options

Configure PNG capture in the Settings window under the File Export tab:

SettingDescription
Save LocationFolder where PNG files are saved
Auto-NameAutomatically generate sequential filenames
PrefixText prefix for auto-named files
Include Sub-GraphInclude the sub-graph area in the capture (checked by default)
Include Top RibbonInclude the top ribbon (toolbar) in the capture
Include Left RibbonInclude the left ribbon (controls) in the capture
Include Right RibbonInclude the right ribbon (results) in the capture
Use CSV NameMatch the PNG filename to the CSV filename

::: note The capture always includes the main graph area. Use the checkboxes to extend the capture to include surrounding ribbons. By default only the sub-graph is included. :::

Auto-Naming

When auto-naming is enabled, files are saved with a sequential counter:

[Prefix]_001.png, [Prefix]_002.png, [Prefix]_003.png...

The counter can be reset or preset to a specific value in Settings.


Data Streaming

Planned feature — not yet available. Data streaming (CSV write, HTTP POST, MQTT) is planned for a future software release and is not available in the current shipping version. This section is provided for reference only.

Data Streaming provides continuous, unlimited data output from EPIC to external files and services. Unlike the standard CSV export (which saves a snapshot of the in-memory recording), Data Streaming writes data as it is acquired — there is no row limit and no dependency on the in-memory graph buffer.

Data Streaming is configured in the Settings window under the Data Streaming tab.

Overview

When one or more streaming outputs are enabled, every measurement sample is buffered internally and periodically dispatched to the enabled outputs. The dispatch interval is configurable and shared across all outputs — it can be set in samples (e.g. every 100 samples) or seconds (e.g. every 10 seconds).

Three output types are available:

OutputDescriptionStatus
CSV WriteWrites batches of samples to timestamped CSV files in a chosen directoryAvailable
HTTP POSTSends batches of samples as JSON to a remote URLAvailable
MQTT SendPublishes sample data to an MQTT brokerFuture

Each output is independently enabled — you can use any combination simultaneously.

CSV Streaming

When CSV Write is enabled, EPIC creates a new CSV file for each batch of samples. Files are written to the configured directory (default: stream\) and named using the UTC timestamp of the first sample in the batch:

stream_20260308_142345_123.csv

CSV File Format

Each CSV file contains a header row followed by one row per sample:

ColumnDescription
SampleMonotonic sample counter (never resets during a session)
InstrumentInstrument and serial number, e.g. SPA100:1X1X1X
UTC TimeISO 8601 timestamp with milliseconds, e.g. 2026-03-08T14:23:45.123Z
Ch1 Value (A)Channel 1 measured current in Amps (scientific notation, full precision)
Ch1 Range (A)Channel 1 input range in Amps (scientific notation)
Ch1 Source (V)Channel 1 source supply voltage (scientific notation)
Ch1 Source EnableChannel 1 source on/off state (1 = On, 0 = Off)
Ch1 Null Offset (A)Channel 1 null/zero offset value in Amps (scientific notation)
Ch1 Null EnableChannel 1 null engaged (1 = On, 0 = Off)
Ch1 AveragingChannel 1 rolling averager count (e.g. 1, 2, 4, 8, 10, 16, 20, 32)
Ch1 Short EnableChannel 1 input short engaged (1 = On, 0 = Off)

::: note All current and voltage values are output in scientific notation at full IEEE 754 double precision (15 significant digits), e.g. 1.85123456789012e-09. This avoids any rounding that could affect post-processing. :::

CSV Streaming vs Standard CSV Export

FeatureStandard CSV ExportCSV Streaming
TriggerManual (click CSV button)Automatic (continuous)
Row limitLimited by in-memory bufferUnlimited — writes directly to disk
File countSingle fileOne file per batch
PrecisionFixed decimalFull scientific notation
TimestampsRelative seconds + basic UTCISO 8601 with milliseconds

HTTP POST

When HTTP POST is enabled, EPIC sends each batch of samples as a JSON payload to the configured URL. This enables real-time data collection by remote servers, cloud dashboards, or automation systems.

JSON Payload Format

{
    "version": "V26007",
    "instrument": "SPA100:1X1X1X",
    "pushTime": "2026-03-08 14:23:45",
    "sampleCount": 100,
    "status": {
        "recording": 1
    },
    "samples": [
        {
            "sample": 1,
            "instrument": "SPA100:1X1X1X",
            "utcTime": "2026-03-08T14:23:35.767Z",
            "ch1Value": -1.79719729476114e-12,
            "ch1Range": 0.002,
            "ch1Source": 0.0,
            "ch1SourceEnable": 0,
            "ch1NullOffset": 0.0,
            "ch1NullEnable": 0,
            "ch1Averaging": 1,
            "ch1ShortEnable": 0
        }
    ]
}

Authentication

If your endpoint requires authentication, enter a Bearer token in the Auth Token field. EPIC will include it in the HTTP Authorization header:

Authorization: Bearer <your-token>

HTTP POST runs on a background thread

The HTTP request is performed on a separate thread so that the main EPIC display and measurement loop are never blocked, even if the server is slow to respond or unreachable.

Testing HTTP POST with webhook.site

The easiest way to verify that HTTP POST is working is to use webhook.site, a free online service that gives you a temporary URL and displays all incoming requests in real time.

Step-by-step

  1. Open your web browser and go to https://webhook.site
  2. The site will display a unique URL at the top of the page, for example:
    https://webhook.site/abc12345-6789-def0-1234-abcdef567890
    
  3. Copy this URL to the clipboard
  4. In EPIC, open Settings and select the Data Streaming tab
  5. Tick the HTTP POST checkbox under Output Enables
  6. Paste the webhook.site URL into the URL field
  7. Set the streaming interval as desired (e.g. 100 samples or 10 seconds)
  8. Close the Settings window
  9. Start recording on the SPA100 — click Run
  10. Switch back to your web browser — you should see JSON payloads appearing on the webhook.site page within a few seconds

Each incoming request will show:

  • The full JSON body containing your measurement samples
  • HTTP headers including Content-Type: application/json
  • The timestamp of each request

::: note webhook.site URLs are temporary and the free tier typically accepts only 50 requests before requiring a new URL. Use a low dispatch interval (e.g. 1000 samples) or short test runs to stay within this limit. For permanent data collection, set up your own HTTP endpoint or use a cloud service. :::

Alternative test endpoints

  • Postman Echohttps://postman-echo.com/post — echoes your payload back as a JSON response
  • Local Python server — for offline testing, save this as postserver.py and run with python postserver.py:
from http.server import HTTPServer, BaseHTTPRequestHandler
import json

class Handler(BaseHTTPRequestHandler):
    def do_POST(self):
        length = int(self.headers.get('Content-Length', 0))
        body = self.rfile.read(length)
        print(json.dumps(json.loads(body), indent=2))
        self.send_response(200)
        self.end_headers()
        self.wfile.write(b'OK')

HTTPServer(('', 8080), Handler).serve_forever()

Then set the EPIC HTTP POST URL to http://localhost:8080.

Streaming Interval

The streaming interval controls how often buffered samples are dispatched to all enabled outputs. It is a single shared setting — CSV and HTTP POST both use the same interval.

Two modes are available:

ModeDescriptionExample
SamplesDispatch after a fixed number of samples have been collected100 samples at 10 Hz = every 10 seconds
SecondsDispatch after a fixed time period has elapsedEvery 30 seconds, regardless of sample rate

::: note In Samples mode, the dispatch is triggered immediately when the sample count is reached. In Seconds mode, the dispatch is checked once per main loop iteration (typically 20–50 times per second) so the actual timing is accurate to within ~50 ms. :::

Available presets:

Samples modeSeconds mode
505
10010
20030
50060
1000300

Save / Load Setups

Saving a Setup

  1. Click the Save Setup button (in the Advanced panel or top bar)
  2. Choose a filename and location in the save dialog
  3. The current configuration is saved as a JSON file

What is saved:

  • Current measurement range
  • Bias voltage and polarity settings
  • Source on/off state
  • Sample rate and rolling averaging factor
  • Null/zero offset values
  • Export settings (CSV/PNG paths, auto-naming, prefixes)
  • Display settings (graph title, trace colours)
  • Graph configuration (sub-graph height, time display mode, UTC offset)
  • Cursor positions and enable states

Loading a Setup

  1. Click the Load Setup button
  2. Select a previously saved setup file (.json)
  3. All settings are restored from the file

::: note The setup file includes the instrument type. A setup saved for SPA100 cannot be loaded on a different instrument type, and vice versa. :::


Settings

The Settings window provides access to all application configuration options. Open it by clicking the Settings button.

When an SPA instrument is selected, the settings window displays only the tabs relevant to SPA operation. CTL503-specific tabs (Test/Graph Mode, Collector Supply, Step Generator, Sweep/Live Values, Key/Measurement, Sweep Settings) are automatically hidden.

The available settings tabs for SPA instruments are:

Language Tab

Select the display language for the software interface. EPIC supports a wide range of languages including English, French, German, Spanish, Italian, Portuguese, Japanese, Chinese, Korean, Arabic, Hindi, Russian, and many more.

Instrument Tab

Select which instrument the software should communicate with. The instrument selection is organised by instrument family:

  • Row 1: CTL503 (Curve Tracer) - with COM port displayed
  • Row 2: SPA100 (Source Picoammeter) - with COM port displayed

The currently active instrument is highlighted in green. Each instrument button shows the assigned COM port number below it.

Comms Tab

Configure communication settings:

  • COM port selection and scanning
  • Connection method (auto-detect or manual)
  • Manual COM port entry

File Export Tab

Configure CSV and PNG export settings:

  • File save locations
  • Auto-naming options and prefixes
  • PNG capture area (full window or graph only)
  • Sequential counter management

Graph Tab

Configure graph display options including trace colours and display preferences:

  • Display Decimation Algorithm - Choose between Min/Max (preserves peaks) or LTTB (preserves shape) for trace rendering
  • INFO Box Draw Order - Controls whether the Metadata Overlay (INFO box) is drawn in front of or behind the measured traces. When set to "Behind Traces", the traces are drawn on top of the INFO box, making them more visible. The default is "In Front of Traces"

Cursors Tab

Configure cursor behaviour and display options.

Calibration Tab

Instrument calibration management. The SPA100 is factory-calibrated and adjusted during production testing at Electron+ facilities. Recalibration can be performed via the EPIC calibration utility. The calibration data is stored in settings/SPA100_cal.JSON.

Colours Tab

Customise the display colours for traces, backgrounds, and UI elements. Trace colours can be independently set using RGB values with real-time preview.

Setups Tab

Manage instrument setup files, including save/load configuration presets.

Data Streaming Tab

Configure continuous data output to external files and services. Enable or disable each output independently (CSV Write, HTTP POST, MQTT Send), set the shared streaming interval in samples or seconds, configure the CSV output directory, and enter the HTTP POST URL and optional authentication token. A live status display shows the total samples streamed, last CSV file written, and most recent HTTP response code.


Calibration

The SPA100 is factory-calibrated and adjusted during production testing at Electron+ facilities. If recalibration is required:

  1. Open Settings and navigate to the Calibration tab
  2. Follow the on-screen calibration procedure
  3. The calibration data is stored in settings/SPA100_cal.JSON

Calibration ensures accuracy across all eight current measurement ranges and the voltage source output.


Advanced Panel (Smorgasbord)

The Advanced panel (also known as the Smorgasbord) allows you to toggle the visibility of various toolbar buttons and controls. Click the Advanced button to open the panel.

Each button on the smorgasbord panel has a small blue ring indicator in its top-left corner. A filled blue circle means the button is currently enabled and visible in the main ribbon. A hollow blue ring means the button is hidden. Click the blue ring to toggle a button's visibility without changing its function — this lets you keep the main ribbon uncluttered by hiding controls you don't use frequently.

Export Functions

  • PNG - Show/hide the PNG capture button
  • CSV - Show/hide the CSV export button

Cursor/Measurement Functions

  • X Cursors - Show/hide X-axis (time) cursors
  • Y Cursors - Show/hide Y-axis (current) cursors
  • Slope - Show/hide slope measurement
  • Cursor Measurements - Show/hide the cursor results table

Graph Functions

  • Metadata Overlay - Toggle the metadata overlay on the graph area (see Metadata Overlay section)

Miscellaneous

  • Save Setup - Save current configuration
  • Load Setup - Restore saved configuration

This is useful for simplifying the interface by hiding controls you don't regularly use, or for maximising the graph display area.


Safety Information

::: warning The SPA100 can generate voltages up to 40V at the output terminals. Always observe the following safety precautions: :::

  • Never touch the output terminals while the source is enabled (Source button shows ON)
  • Always disable the source before connecting or disconnecting devices from the input terminals
  • Use appropriate voltage settings to protect devices under test
  • Ensure proper grounding of the instrument and test setup
  • Do not operate the instrument with damaged cables or connectors
  • Keep the instrument in a dry environment away from liquids
  • Use shielded cables for ultra-low current measurements to minimise noise pickup
  • Guard connections should be used where possible for measurements below 2nA to reduce leakage paths

Troubleshooting

Connection Problems

Symptom: Cannot connect to the instrument

  • Check USB cable is firmly connected at both ends
  • Verify the GREEN LED on the SPA is lit
  • Check that the correct COM port is selected in Settings
  • Try scanning for COM ports again
  • Restart the instrument and software
  • Check Windows Device Manager for the COM port

Symptom: Connection drops intermittently

  • Use a shorter USB cable
  • Avoid USB hubs - connect directly to the computer
  • Check for electromagnetic interference near the USB cable

Measurement Problems

Symptom: Readings are noisy or unstable

  • Select a slower sample rate (2Hz) for lower noise
  • Increase the rolling averaging factor
  • Use the Null/Zero function to cancel offsets
  • Use shielded cables and keep leads short
  • Ensure the test environment is free from vibration and air currents (important for ultra-low current measurements)
  • Allow the instrument to warm up for a few minutes before taking critical measurements

Symptom: Readings are zero or very small

  • Verify that the source output is enabled (Source button shows ON in EPIC)
  • Check that the bias voltage is set to a non-zero value
  • Verify that the device under test is properly connected
  • Ensure the correct polarity is selected for your device
  • Try a more sensitive (lower) current range

Symptom: Over-range indication (OVR displayed)

  • Switch to a higher current range
  • Reduce the bias voltage if the current is too high
  • Check for short circuits in the test setup
  • If MAX+ or MAX- shows OVR, this indicates the tracked peak value exceeded 4 digits; click the individual display to reset its tracking

Symptom: Large offset current on sensitive ranges

  • Perform a Null/Zero calibration with no device connected
  • Allow the instrument to warm up before nulling
  • Check for contamination or moisture on connectors and cables
  • Use guarded connections to minimise leakage paths

Display Issues

Symptom: Graph is not updating

  • Verify that recording is active (Run button pressed)
  • Check that the instrument is connected (GREEN LED lit)
  • Ensure the correct instrument type is selected in Settings

Symptom: Sub-graph not visible

  • Check that the splitter bar has not been dragged fully to the bottom
  • Drag the splitter bar upward to reveal the sub-graph overview

Symptom: Cursors not responding to clicks or drags

  • Ensure X or Y cursors are enabled via the toolbar buttons
  • Click directly on the cursor line to initiate a drag
  • Use the +/- fine-adjust buttons as an alternative to dragging

File Export Issues

Symptom: Cannot save CSV or PNG files

  • Check that the save location exists and is writable
  • Verify there is sufficient disk space
  • Check file permissions on the save directory
  • Try changing the save location in Settings

Data Streaming Issues

Symptom: CSV streaming files are not being created

  • Check that CSV Write is ticked in Settings → Data Streaming → Output Enables
  • Verify the streaming directory exists and is writable
  • Confirm that recording is active (click Run) — streaming only outputs data while the instrument is acquiring samples
  • Check the Status section at the bottom of the Data Streaming tab — the "Samples streamed" counter should be increasing

Symptom: HTTP POST is not sending data

  • Check that HTTP POST is ticked in Settings → Data Streaming → Output Enables
  • Verify the URL is correct and reachable from your computer
  • Check the HTTP last status field in the Status section — a value of 200 indicates success
  • If the status shows an error message, check your network connection and firewall settings
  • Ensure the URL begins with http:// or https://
  • If using an Auth Token, verify it is correct and has not expired

Symptom: Data appears in CSV files but not in HTTP POST (or vice versa)

  • Each output is independently enabled — check that both are ticked under Output Enables
  • Both outputs share the same streaming interval — data is dispatched to all enabled outputs simultaneously

Support & Contact

If you need further assistance:

Electron+ provides free software updates for all instruments. Check the website regularly for the latest version of EPIC.