Socket servers for Pico Technology instruments allowing remote access via libscopehal.
- Install the Pico SDK (https://picotech.com/downloads)
- Compile scopehal-apps
- Compile scopehal-pico-bridge (see below for instructions)
- Connect your PicoScope to the computer.
- Start the scopehal-pico-bridge (ps6000d.exe). It should open a console window and read "Successfully opened instrument", listing some info about the device like model and serial number.
- Now start ngscopeclient. Select Add / Oscilloscope / Connect... from the top menu. Enter or select the following values:
- Nickname: (choose a display name for your scope.)
- Driver: pico
- Transport: twinlan
- Path: localhost:5025:5026
- Click Add.
- If this is your first time using ngscopeclient, continue reading the tutorial here.
Currently supported are these six APIs from Pico Technology: ps2000a, ps3000a, ps4000a, ps5000a, ps6000a, psospa. Note that these are all "A APIs" and thus do not support some older and discontinued models. As of January 2026 there should be a total of 98 individual devices supported, listed here for reference:
| ps2000aApi | ps3000aApi | psospaApi | ps4000aApi | ps5000aApi | ps6000aApi |
|---|---|---|---|---|---|
| 2205 MSO | 3203D | 3415E | 4224A | 5242A | 6403E |
| 2205A MSO | 3203D MSO | 3415E MSO | 4424A | 5242B | 6404E |
| 2206 | 3204A | 3416E | 4444 | 5242D | 6405E |
| 2206A | 3204B | 3416E MSO | 4824 | 5242D MSO | 6406E |
| 2206B | 3204 MSO | 3417E | 4824A | 5243A | 6424E |
| 2206B MSO | 3204D | 3417E MSO | 5243B | 6425E | |
| 2207 | 3204D MSO | 3418E | 5243D | 6426E | |
| 2207A | 3205A | 3418E MSO | 5243D MSO | 6428E-D | |
| 2207B | 3205B | 5244A | 6804E | ||
| 2207B MSO | 3205 MSO | 5244B | 6824E | ||
| 2208 | 3205D | 5244D | |||
| 2208A | 3205D MSO | 5244D MSO | |||
| 2208B | 3206A | 5442A | |||
| 2208B MSO | 3206B | 5442B | |||
| 2405A | 3206 MSO | 5442D | |||
| 2406B | 3206D | 5442D MSO | |||
| 2407B | 3206D MSO | 5443A | |||
| 2408B | 3207A | 5443B | |||
| 3207B | 5443D | ||||
| 3403D | 5443D MSO | ||||
| 3403D MSO | 5444A | ||||
| 3404A | 5444B | ||||
| 3404B | 5444D | ||||
| 3404D | 5444D MSO | ||||
| 3404D MSO | |||||
| 3405A | |||||
| 3405B | |||||
| 3405D | |||||
| 3405D MSO | |||||
| 3406A | |||||
| 3406B | |||||
| 3406D | |||||
| 3406D MSO |
Models shown in bold were used for, and tested during, the development of the pico-bridge.
The process to build from source is basically the same as for ngscopeclient, shown here for Windows:
-
Download and install MSYS2. You can download it from msys2.org or github.com/msys2/msys2-installer/releases. The following steps can be done in any MSYS-provided shell (it will start up with a UCRT64 shell after installation).
-
Install git and the toolchain:
pacman -S git wget mingw-w64-ucrt-x86_64-cmake mingw-w64-ucrt-x86_64-toolchain -
Install general dependencies:
pacman -S mingw-w64-ucrt-x86_64-libsigc++ mingw-w64-ucrt-x86_64-yaml-cpp mingw-w64-ucrt-x86_64-glfw mingw-w64-ucrt-x86_64-catch mingw-w64-ucrt-x86_64-hidapi mingw-w64-ucrt-x86_64-libpng -
Install Vulkan dependencies:
pacman -S mingw-w64-ucrt-x86_64-vulkan-headers mingw-w64-ucrt-x86_64-vulkan-loader mingw-w64-ucrt-x86_64-shaderc mingw-w64-ucrt-x86_64-glslang mingw-w64-ucrt-x86_64-spirv-tools -
Check out the code
cd ~ git clone --recursive https://github.com/ngscopeclient/scopehal-pico-bridgeAll following steps are to be done in a UCRT64 shell.
-
Build manually:
cd scopehal-pico-bridge mkdir build cd build cmake .. ninja -j4If the build fails with a lot of missing files, try adding your MSYS2 bin folder to your $PATH variable, i.e. "C:\msys64\ucrt64\bin" if you installed it to "C:\msys64".
-
To run scopehal-pico-bridge: The binary can be found in the build directory, such as $HOME\scopehal-pico-bridge\build\src\ps6000d.