The EspoTek Labrador is an open-source board that turns your PC, Raspberry Pi, or Android Smartphone into a full-featured electronics lab bench, complete with oscilloscope, signal generator, and more.
This repo hosts all of the software and hardware that makes Labrador possible.
If you're new to Labrador or oscilloscopes in general, I strongly recommend checking out the fantastic tutorial series produced by Lief Koepsel. It features well-written, rich articles as well as video content that explains everything more clearly than I ever could!
Binary (executable) versions of the software are available for download for several platforms.
For the documentation, please visit the wiki.
If you're looking to build from source but don't know where to start, Qt Creator is the easiest way to get your toes wet! https://www.qt.io/download-open-source/ When installing, make sure you tick the box to install Qt 5.15 or later.
Once it's installed, open Desktop_Interface/Labrador.pro, then Clean All -> Run qmake -> Build All.
Alternatively, you can build on the command line. The process will consist of a subset of the commands present in the build scripts in the .github/workflows/ directory of this repo. These are run by Github to produce the packages on the releases page, but include app deployment commands that can be skipped for individual users.
Streamlined build scripts for individual Linux (including Raspberry Pi) and macOS users are described in the Building the desktop interface section of the wiki. As shown there, following installation of prerequisite packages, the Linux build simplifies to the following sequence of commands run within the /Desktop_Interface directory,
QT_SELECT=qt5 qmake
make
sudo make install
sudo ldconfig
after which the command labrador launches the app.
To build the AVR software, I use Atmel Studio 7. Just load up the .atsln located in the /AVR_Code directory and push F7. You can alternatively use open-source command-line AVR tools from GNU if you don't want to install a full IDE. Instructions for doing so are given in the Building the firmware section of the wiki. If you already have the GNU AVR tools installed, you can jump straight to the firmware Makefile, set AVRDIR in it appropriately, and start building. The wiki includes troubleshooting tips in case you run into issues.
The PCB files can be edited in KiCAD 5.0 or later.
A flake.nix is provided for NixOS and Nix users:
# Build the package directly (recommended)
nix build
./result/bin/labrador
# Or enter development shell for hacking
nix develop
cd Desktop_Interface
qmake PREFIX=$PWD/_install
make -j$(nproc)
make install
./_install/bin/labradorudev rules: To access the USB device without root, add these rules to your system. On NixOS, add to your configuration.nix:
services.udev.extraRules = ''
ENV{ID_VENDOR_ID}=="03eb", ENV{ID_MODEL_ID}=="ba94", MODE="0666"
ENV{ID_VENDOR_ID}=="03eb", ENV{ID_MODEL_ID}=="a000", MODE="0666"
ENV{ID_VENDOR_ID}=="03eb", ENV{ID_MODEL_ID}=="2fe4", MODE="0666"
'';On other distros, copy Desktop_Interface/build_linux/69-labrador.rules to /etc/udev/rules.d/ and run sudo udevadm control --reload-rules. Unplug and replug the device after applying rules.
There are community contributed 3D printable cases available at Thingiverse, courtesy of SpaceBex and Bostwickenator:
Dave Messink has designed a case that can be laser cut from 3mm plywood. The binding posts and cables he used are from Amazon.

All Desktop software files are licenced under GNU GPL v3.
All Microcontroller software files, with the exception of those provided by Atmel, are licenced under the 3-Clause BSD License.
All hardware files (schematics, PCB) are licenced under Creative Commons 4.0 (CC BY-NC-SA).
If you want to submit a Pull Request, bug report, or feature request, please feel free to do so here at GitHub. If you just want to say hello and remind me that people are actually using my product (or if you just don't want to make a GitHub account), please email [email protected]
Thanks to all. ~Chris