Fork me on GitHub

Project Notes

#324 Labrador

First look at the EspoTek Labrador USB “lab-on-a-board” hardware and software.



The EspoTek Labrador is a crowd-funded lab-on-a-board that includes an oscilloscope, waveform generator, power supply, logic analyzer, and multimeter. I was drawn to the project specifically because it promised open hardware, and multi-platform open source software.

I just received a Labrador board, and this project is an initial test and review.

Board Inspection

I have the “backer edition batch 1” version of the board, which has the same layout as shown in this pinout diagram:


With a few liberties (slight bend in the underside PSU pins), I was able to mount the board pretty conveniently on a breadboard. The PSU pins connect to the breadboard rail (see below: the default 4.5V output reading as 4.69V on my multimeter).

With a few minor modifications, the board could probably be made much more breadboard compatible.


Software Install and Power Up

After connecting the USB cable, the board was detected without any issue by the MacOSX USB subsystem. This is how it appers in System Information:


First a first test, I’m using a precompiled MacOSX 64 bit binary provided in the pre-release software and documentation kit.

On initial startup, it appeared to “freeze” but I gather it was probably just taking some time to update the firmware on the board. Now the device is detected immediately by the software, and I was able to test all the major functions of the software without any problem.

A ran the calibration routine (Menu: Oscilloscope > Calibrate) before running the tests.

Testing the Features


Showing an external 1kHz 4V peak-to-peak signal connected to channel 1 in the software. I even figured out how to place horizontal and vertical cursors to make convenient readings.


Signal Generator

Configuring the signal generator:

  • CH1: 1kHz Sine 1V peak-to-peak
  • CH2: 2kHz Sawtooth 1V peak-to-peak

Here’s the capture on an external scope:


Some slight adjustments:

  • CH1: 1kHz Sine 2V peak-to-peak
  • CH2: 4kHz Sawtooth 2V peak-to-peak

Here’s the capture as fed back to the board’s own scope:


Power Supply

I could control the power supply in software from 4.5 to 12V. My multimeter doesn’t quite agree with the output levels; I will need to make some more measurements with properly calibrated equipment. I also haven’t put the power supply under any load. According to specs it should be able to provide up to ~1.5W.


The oscilloscope channels are used to support multimeter functions.

Measuring Voltage

The load is connected between Oscilloscope CH1 pin 1 and Oscilloscope CH2 pin 1. Few things to note:

  • positive voltage is measured as CH2 with respect to CH1.
  • Must disable both oscilloscope channels in the software before the multimeter mode can be enabled

For a quick test, I’m measuring the PSU output with the voltmeter:


With the PSU dialed into 6V, the voltmeter measures 6.4V. This actually agrees with my standalone voltmeter, and seems to indicate the PSU output regulation is pretty poor (at least when unloaded).


Logic Analyxer

Not tested this yet..

Quick Look: Software

The software for both the AVR and the desktop application are open source and available on GitHub.

The desktop application is developed with Qt Creator. I haven’t tried to build the software yet.

Here are my notes from a quick scan of the source:

  • libusb and Linux/Windows/Mac/Android specifics are wrapped in a generic USB model as the main bridge for communicating with the board
  • an isoBuffer class that enables O(1) performance for read/write operations, while maintaining a huge buffer size
  • most of the rest of the code is UI related

Quick Look: Schematic

The design files are open source and available on GitHub. There is a KiCAD project that I was able to open with only a single warning (a missing custom component library, I haven’t determined what this impacts yet).

The design appears to breakdown into these main subsystems:

  • ATXMEGA32A4U-AU Low power, high performance 8/16-bit AVR microcontroller
  • analog scope front end, with signals buffered with LM324 opamps
  • 78L05 3.3V regulated power from USB
  • boost converter directly controlled by PWM from the AVR processor
  • heavily filtered/smoothed AVCC from the regulated 3.3 supply
  • logic analyzer input via n-channel MOSFETs (DMN63D8LDW)
  • DAC ouput direct from AVR buffered with LM324 opamps


Quick Look: PCB

The batch 1 backer edition of the board is a nice compact board. With a slight bend on the PSU pins, it can even fit quite nicely on a standard MB105 breadboard.

Here’s a 3D render of the board in kicad:


Digital Out

The board includes pinouts for 4 GPIO ports (PE0-3). However it appears these are not given any specific fucntion in the current AVR code.

Credits and References

Project Source on GitHub Project Gallery Return to the LEAP Catalog

This page is a web-friendly rendering of my project notes shared in the LEAP GitHub repository.

LEAP is just my personal collection of projects. Two main themes have emerged in recent years, sometimes combined:

  • electronics - usually involving an Arduino or other microprocessor in one way or another. Some are full-blown projects, while many are trivial breadboard experiments, intended to learn and explore something interesting
  • scale modelling - I caught the bug after deciding to build a Harrier during covid to demonstrate an electronic jet engine simulation. Let the fun begin..
To be honest, I haven't quite figured out if these two interests belong in the same GitHub repo or not. But for now - they are all here!

Projects are often inspired by things found wild on the net, or ideas from the many great electronics and scale modelling podcasts and YouTube channels. Feel free to borrow liberally, and if you spot any issues do let me know (or send a PR!). See the individual projects for credits where due.