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:
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
| Parameter | Specification |
|---|---|
| Current measurement ranges | 2mA, 200uA, 20uA, 2uA, 200nA, 20nA, 2nA, 200pA |
| Number of ranges | 8 |
| Bias voltage supply | 0V to +40V (or -40V) |
| Polarity control | Positive / Negative |
| Sample rates | 2Hz, 10Hz, 20Hz |
| Rolling averaging | 1x, 2x, 4x, 8x, 10x, 16x, 20x, 32x, 40x, 64x |
| Channels | 1 |
| Interface | USB 2.0 |
| Software | EPIC (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
- Connect the SPA to your computer via the USB cable
- Launch the EPIC software
- Select SPA100 as the active instrument (if not already selected)
- Click the Connect button to establish communication
- Select the desired current measurement range
- Set the bias voltage and polarity as required
- Connect your device or circuit to the input terminals
- Enable the Source output by clicking the Source button
- 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:
| Parameter | Maximum Rating |
|---|---|
| Bias voltage output | 0V to ±40V DC |
| Input current (measurement terminal) | Do not exceed selected range full-scale |
| Operating temperature | 0°C to 40°C |
| Storage temperature | -20°C to 60°C |
| Humidity | 20% 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:
- Check the enclosure for cracks, dents, or other physical damage
- Inspect the input connectors for bent pins or damage
- Examine the USB connector for damage
- 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:
- A Windows PC meeting the system requirements
- Available USB 2.0 port
- EPIC software (free download from www.electron.plus/software)
- CH340 USB driver (free download from www.electron.plus/software)
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.
- Download the installer ZIP file from the software page (e.g. Install_EPIC26007_64.ZIP)
- Open the downloaded file (Windows will recognise the ZIP format and display the contents like a folder), then double click the EXE installer inside
- 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:
- Open Settings by clicking the Settings button
- Navigate to the Comms tab
- Use the Scan button to search for available COM ports
- Select the correct COM port from the dropdown list
- 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
| Status | Meaning |
|---|---|
| Connected | Instrument is communicating normally |
| Disconnected | No communication with instrument |
| Searching | Software is attempting to find the instrument |
| Error | Communication 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.
| Range | Full Scale | Best For |
|---|---|---|
| 2mA | 2 milliamps | General-purpose current measurement, LED testing |
| 200uA | 200 microamps | Moderate leakage currents, sensor characterisation |
| 20uA | 20 microamps | Low-current device testing, photodetector characterisation |
| 2uA | 2 microamps | Insulation resistance testing, low-leakage semiconductors |
| 200nA | 200 nanoamps | High-resistance material characterisation |
| 20nA | 20 nanoamps | Ultra-low leakage measurement, capacitor leakage |
| 2nA | 2 nanoamps | Picoammeter-grade measurement, thin-film characterisation |
| 200pA | 200 picoamps | Ultra-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 Rate | Description |
|---|---|
| 2Hz | Slowest rate. Provides the lowest noise and best accuracy. Ideal for stable, low-current measurements where speed is not critical. |
| 10Hz | Balanced rate. Good compromise between noise performance and update speed. Suitable for most general-purpose measurements. |
| 20Hz | Fastest 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:
- Disconnect the device under test (or ensure zero current is flowing)
- Allow the reading to stabilise
- Click the Null button
- 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 Factor | Effect |
|---|---|
| 1x | No averaging. Each displayed reading is a single sample. |
| 2x | Average of 2 consecutive readings |
| 4x | Average of 4 consecutive readings |
| 8x | Average of 8 consecutive readings |
| 10x | Average of 10 consecutive readings |
| 16x | Average of 16 consecutive readings |
| 20x | Average of 20 consecutive readings |
| 32x | Average of 32 consecutive readings |
| 40x | Average of 40 consecutive readings |
| 64x | Average 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:
| Mode | Description |
|---|---|
| AUTO | Automatically 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. |
| CENTRE | Symmetric around zero — the Y-axis range is set so that zero is always centred on the graph, with equal positive and negative extent. |
| POS | Forces the Y-axis from 0 to the full-scale of the current range. Zero is at the bottom. |
| NEG | Forces 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:
| State | Button Label | Action |
|---|---|---|
| Idle | Run | Press to start recording. Graph clears and begins capturing new data. |
| Recording | Pause | Press to pause. Data is preserved, no new samples are added. |
| Paused | Resume | Press 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:
| Display | Data Source | Description |
|---|---|---|
| CURRENT | Ch.1 Averaged | Live averaged current reading |
| MAXIMUM + | Ch.1 Max+ | Highest reading since reset |
| MAXIMUM - | Ch.1 Max- | Most negative reading since reset |
| RESISTANCE | Ch.1 Resistance | Calculated 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:
| Measurement | Description |
|---|---|
| XA | Time position of cursor A |
| XB | Time position of cursor B |
| XB-XA | Time difference between cursors (delta time) |
| YA | Current value at cursor A |
| YB | Current value at cursor B |
| YB-YA | Current difference between cursors (delta current) |
| Slope | Rate 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
| Field | Description |
|---|---|
| Input Range | Current measurement range (e.g. 200 pA, 2 nA, 20 nA) |
| Null | Null offset value, shown only when Null is active (e.g. 1.9546 pA) |
| Source Voltage | Bias supply voltage; displays "0 V" when the source is switched off |
| Sample Rate | Current sample rate (2 Hz, 10 Hz, or 20 Hz) |
| Averaging | Rolling 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:
| Column | Description |
|---|---|
| Sample | Sample number (sequential from 0) |
| Time (s) | Time in seconds from the start of recording |
| UTC Time | UTC timestamp for each sample (YYYY-MM-DD HH:MM:SS format) |
| Ch1 Current (A) | Channel 1 measured current in Amps |
| Input Range Ch1 | Channel 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:
| Setting | Description |
|---|---|
| Save Location | Folder where CSV files are saved |
| Auto-Name | Automatically generate sequential filenames |
| Prefix | Text 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:
| Setting | Description |
|---|---|
| Save Location | Folder where PNG files are saved |
| Auto-Name | Automatically generate sequential filenames |
| Prefix | Text prefix for auto-named files |
| Include Sub-Graph | Include the sub-graph area in the capture (checked by default) |
| Include Top Ribbon | Include the top ribbon (toolbar) in the capture |
| Include Left Ribbon | Include the left ribbon (controls) in the capture |
| Include Right Ribbon | Include the right ribbon (results) in the capture |
| Use CSV Name | Match 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:
| Output | Description | Status |
|---|---|---|
| CSV Write | Writes batches of samples to timestamped CSV files in a chosen directory | Available |
| HTTP POST | Sends batches of samples as JSON to a remote URL | Available |
| MQTT Send | Publishes sample data to an MQTT broker | Future |
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:
| Column | Description |
|---|---|
| Sample | Monotonic sample counter (never resets during a session) |
| Instrument | Instrument and serial number, e.g. SPA100:1X1X1X |
| UTC Time | ISO 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 Enable | Channel 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 Enable | Channel 1 null engaged (1 = On, 0 = Off) |
| Ch1 Averaging | Channel 1 rolling averager count (e.g. 1, 2, 4, 8, 10, 16, 20, 32) |
| Ch1 Short Enable | Channel 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
| Feature | Standard CSV Export | CSV Streaming |
|---|---|---|
| Trigger | Manual (click CSV button) | Automatic (continuous) |
| Row limit | Limited by in-memory buffer | Unlimited — writes directly to disk |
| File count | Single file | One file per batch |
| Precision | Fixed decimal | Full scientific notation |
| Timestamps | Relative seconds + basic UTC | ISO 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
- Open your web browser and go to https://webhook.site
- The site will display a unique URL at the top of the page, for example:
https://webhook.site/abc12345-6789-def0-1234-abcdef567890 - Copy this URL to the clipboard
- In EPIC, open Settings and select the Data Streaming tab
- Tick the HTTP POST checkbox under Output Enables
- Paste the webhook.site URL into the URL field
- Set the streaming interval as desired (e.g. 100 samples or 10 seconds)
- Close the Settings window
- Start recording on the SPA100 — click Run
- 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 Echo —
https://postman-echo.com/post— echoes your payload back as a JSON response - Local Python server — for offline testing, save this as
postserver.pyand run withpython 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:
| Mode | Description | Example |
|---|---|---|
| Samples | Dispatch after a fixed number of samples have been collected | 100 samples at 10 Hz = every 10 seconds |
| Seconds | Dispatch after a fixed time period has elapsed | Every 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 mode | Seconds mode |
|---|---|
| 50 | 5 |
| 100 | 10 |
| 200 | 30 |
| 500 | 60 |
| 1000 | 300 |
Save / Load Setups
Saving a Setup
- Click the Save Setup button (in the Advanced panel or top bar)
- Choose a filename and location in the save dialog
- 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
- Click the Load Setup button
- Select a previously saved setup file (.json)
- 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:
- Open Settings and navigate to the Calibration tab
- Follow the on-screen calibration procedure
- 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
200indicates success - If the status shows an error message, check your network connection and firewall settings
- Ensure the URL begins with
http://orhttps:// - 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:
- Email: support@electron.plus
- Website: www.electron.plus
- Manuals: Latest manuals are available for download from the Electron+ website under the Manuals section
Electron+ provides free software updates for all instruments. Check the website regularly for the latest version of EPIC.
