Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
This wiki is licensed under the Creative Commons 4.0 BY-SA licence. You are free to download it, share it, and use it for any purpose (including commercial purposes), as long as any edits you make are shared back to the community, and that proper credit is given (a link back to espotek.com or github.com/espotek/labrador will suffice).
Welcome to the documentation for the EspoTek Labrador!
You're probably aware of what Labrador is by now, but just in case... It's a neat little board that connects to your computer, Raspberry Pi or Android smartphone and turns it into an all-in-one electronics lab bench, complete with oscilloscope, signal generator and all.
If you’re familiar with electronics lab equipment, you can also skip most of the "Using the Interface" section, but I do recommend reading the section on “buffers” and everything in bold!
Apart from that, enjoy! Let’s move on.
Firmware and Bootloader Mode
Each version of the software interface is compatible with a specific version version of the board firmware. If there is a mismatch, then the software will automatically flash the required firmware and continue.
In case this goes wrong, you can enter bootloader mode and flash manually.
Bootloader mode is accessed by shorting Digital Out 1 to GND before connecting your board. While in bootloader mode, you can update the board’s firmware and recover from potentially bad firmware updates.
There is a tool to do so in the later versions of the software ("Update 2" and onwards). Just go to help->firmware recovery in the software interface.
A Note on Buffers
Labrador uses on-board buffers to store data for transmission to and from the host computer. Unfortunately, due to on-board RAM and USB bandwidth limitations, each board has only two buffer resources available. Below is a table showing how many buffer resources each of Labrador's tools uses.
|Oscilloscope (375ksps, per channel)||1|
|Logic Analyzer (3Msps, per channel)||1|
|All other devices||0|
This limits what can be turned on simultaneously. For example, the Multimeter and Oscilloscope cannot be turned on at the same time since this would require 3 buffer resources. One would need to be switched off.
The number of remaining buffer resources is displayed graphically in the bottom right hand corner of the screen. To free up buffer resources, devices can be switched off by unticking the box next to their name.
Using the Interface
It’s for an old version of the software. I need to make a new one.
The oscilloscope was designed to be beginner friendly. For this reason, settings such as volts/div and attenuation have been replaced by a simpler interface.
To zoom in and out: point the mouse cursor at the area of interest and scroll. If no key is pressed, it will affect the voltage axis. If the Ctrl key is pressed, it will affect the time axis. If you’re on a laptop, you can use the up/down arrows in place of the mouse wheel. Alternatively, press the "M" key and then manually enter your preferred time and voltage range.
To add cursors: click and drag. Left-click drops horizontal cursors and right-click drops vertical cursors. Relevant stats are displayed automatically, and you can focus on the area inside the cursors by selecting Oscilloscope>Range>Snap to Cursors or pressing Z.
To measure stats such as the waveform max, min, mean and RMS: enable them from the Oscilloscope>CHn Stats menu at the top. They are disabled by default because they cause display issues at low resolutions.
To AC couple: ensure that the input is connected to the AC pin on the board, and that the "AC Coupled" option is selected in the interface.
To enable 750ksps: on channel 1, select "double sample rate". The default is 375ksps.
All references shown are relative to GND.
This is fairly self-explanatory. Select your wave shape, frequency, amplitude, offset and you’re done. One thing that should be noted to engineers is that the offset refers to the difference between the lowest point of the wave and zero, and NOT the DC component from the Fourier series. This is to avoid confusing new users, since the positioning of this component changes depending on wave shape.
A waveform of type sin with frequency, amplitude and offset all set to 1 will produce a 1V sine wave oscillating between 1V and 2V at a frequency of 1Hz.
The logic analyzer uses the oscilloscope display to show a waveform, and can decode serial streams too. At the moment, 8-bit UART (with or without parity) is supported, and I2C is in beta. Baudrate and parity settings for serial decoding can be set by selecting Logic Analyzer > UART CHn in the top menu.
Unlock, drag the slider, re-lock. Big display at the bottom will tell you how many volts are being output. Too easy.
Hardware-wise, the multimeter is just an alternative configuration of the oscilloscope with some additional software added. It measures the difference between the oscilloscope CH1 and CH2 pins, and uses 12-bit samples at 375ksps. The normal oscilloscope uses 8-bit samples only, so sometimes the multimeter will function as a better oscilloscope than the oscilloscope will!
**To measure voltage: **set the mode to "V" and connect the load in parallel to Oscilloscope CH1 DC and Oscilloscope CH2 DC.
To measure current: set the mode to "I" and connect the load in series to Oscilloscope CH1 DC and Oscilloscope CH2 DC. Add a reference resistor across Oscilloscope CH1 DC (Duplicate) and Oscilloscope CH2 DC (Duplicate) that:
Is at most 10% of the load resistance.
Will have a drop of at least 50mV.
Then type in the reference resistance used into the box.
As an example, if you are measuring the current through a circuit that you suspect draws 50mA from a 3.3V source, you can guesstimate its load resistance to be 66Ω (as per V=IR). 10% of this is 6.6Ω. To drop 50mV, you’ll need to use at least a 1Ω resistor. So the reference resistor you’ll need for this circuit should be in the range of 1Ω-6.6Ω Ohms. A 2.8Ω or 3.3Ω resistor will be ideal in this case.
**To measure resistance/capacitance: **connect your load to Oscilloscope CH1 DC (Duplicate) and Oscilloscope CH2 DC (Duplicate). Connect Oscilloscope CH1 DC to Signal Gen CH1. Connect your reference resistor between Oscilloscope CH2 DC and GND.
For resistance, you’ll want to aim for a reference resistor as close to the load resistance as possible. To be more accurate, you may want to take multiple measurements.
For capacitance, you’ll want to choose a reference resistor that gives you an RC time constant of about 1ms.
Some shortcuts may be different on Mac OS X.
Try pressing Command instead of Ctrl.
|Ctrl-B||Cycles logic analyzer CH1 baudrate forward|
|Ctrl-Shift-B||Cycles logic analyzer CH1 baudrate backward|
|Ctrl-Alt-B||Cycles logic analyzer CH2 baudrate forward|
|Ctrl-Alt-Shift-B||Cycles logic analyzer CH2 baudrate backward|
|Z||Snaps display to vertical/horizontal cursors|
|M||Brings up window to directly type in oscilloscope range|
|C||Takes snapshot of CH1 (CSV file)|
|V||Takes snapshot of CH2 (CSV file)|
|Up Arrow||Scroll in (useful for laptop users w/o mouse)|
|Down Arrow||Scroll out (useful for laptop users w/o mouse)|
|Left Arrow||Shift trace left by 10% (add delay)|
|Right Arrow||Shift trace right by 10% (reduce delay)|
|Ctrl-Left Arrow||Shift trace left by 50% (add delay)|
|Ctrl-Right Arrow||Shift trace right by 50% (reduce delay)|
|W||Alias of up arrow key|
|A||Alias of left arrow key|
|S||Alias of down arrow key|
|D||Alias of right arrow key|