iPython Console

The iPython app contains an embedded iPython console that comes with several handy features such as easy access to function documentation, and the ability to export code into HTML files.

Launch the utility from SEELablet – > Test and Measurement -> iPython
ipython example

Seelablet: Accessory Set

The standard accessory set includes various carefully chosen passive and active components .

Electronics Standard Accessory set

Physics Standard Accessory set


Optional Components :

Plug And Play Sensors


SEELablet : Source and Installation

For beginners to ubuntu

  • Download the communication library and applications packages from the following links
  • Install the gdebi package manager from the ubuntu software centre
  • Right click on the libseelablet-1.0.0.deb package located in the Downloads directory , and open with gdebi . Click on install
  • Right click on the seelablet-1.0.0.deb package located in the Downloads directory , and open with gdebi . Click on install
  • Navigate to the Education menu, and launch the SEELablet program.

* In Ubuntu versions < 14.04  , the pyqtgraph plotting library might not be up to date. In which case download it from here , and install it using gdebi

Installing Debian packages (Automatic Script)

SEELablet packages will be available in the nextDebian release , but for now the packages can be automatically set-up using the following script

wget $URL$LIBNAME -q --show-progress -O lib.deb 
if wget $URL$APPNAME -q --show-progress -O apps.deb ; then
	echo "Fetched Apps... removing previous installation"
	sudo apt-get remove -y libseelablet
	sudo rm -rf /usr/lib/python2.7/dist-packages/SEEL*
	sudo rm -rf /usr/share/seelablet/

    echo "Fetching Apps Failed"

sudo gdebi --n lib.deb
rm lib.deb

sudo gdebi --n apps.deb
rm apps.deb

Create an empty file called install.sh in the home folder, and copy the contents of the above script into it

Open a terminal, and execute the following commands.

sudo chmod +x install.sh
sudo apt-get install gdebi

This automatically downloads the source packages as well as associated dependencies

Installation from Source

git clone https://github.com/jithinbp/SEELablet
git clone https://github.com/jithinbp/SEELablet-Apps
cd SEELablet
sudo make install
cd ../SEELablet-Apps
sudo make
sudo make install


Source links : The communication library and applications package source is available on github

Communication Library : https://github.com/jithinbp/SEELablet

Graphical utilities : https://github.com/jithinbp/SEELablet-Apps

Design files and schematics : https://github.com/jithinbp/SEELablet-designs

RC phase shift experiment

Aim: To observe the phase shift produced by a simple RC network and view the corresponding Lissajous figure on an oscilloscope.

CH1 monitors the input waveform, and CH2 monitors the phase shifted output of the RC network.

The GUI is located at SEELablet -> Electrical -> RC Phase Shift

Figure : Schematic. The connections are made according to the schematic.

Results : The resulting Lissajous figure is a tilted ellipse.

Response time of an LDR

Light dependent resistors are known to be slow to respond. We’ll find out just how slow they are by using an LED connected to a square wave, and measuring the resistance of the LDR using the oscilloscope utility ( Test and Measurement -> Oscilloscope  ).

Response of an LDR to an LED driven by a 47Hz square wave.

The resistance is measured by connecting the LDR, and a 5K1 resistor in series between 3.3V and Ground. By monitoring the midpoint of the two, and using the known values of either ends(3.3 , 0 ) as well as 1 resistor(5K1), one can calculate the resistance of the LDR.

From the graph, it is evident that the LDR just about manages to reach the expected voltage values at either ends within 10mS.
Increase the frequency, and note that the LDR fails to reach the expected resistance before the input signal from SQR1 changes polarity

– Repeat this study using a phototransistor, and characterise its response time.

BJT as an amplifier

Learn to use a BJT as an amplifier in the common emitter configuration. The GUI for this is located at Electronics -> Transistor -> Transistor amplifier

The input and output waveforms are traced on the oscilloscope using two channels. The gain can be calculated directly using the measure gain button. This experiment can be modified to calculate the bandwidth of the amplifier by varying the frequency of the input waveform and noting the corresponding gains as a function of the frequency.

Resultant Data:

from SEEL import interface

#fetch 5000 points each from CH1, CH2 with 2uS between each
x,y1,y2 = I.capture2(5000,2)

from SEEL.analyticsClass import analytics
math = analytics()
amp1,freq,phase,offset = math.sineFit(x,y1) #Calculate parameters of input waveform
amp2,freq2,phase2,offset2 = math.sineFit(x,y2) #calculate parameters of output
print (amp1,amp2,'gain = %.3e'%(amp2/amp1)) #calculate and print gain

from pylab import *


Output characteristics of a Bipolar Junction Transistor (BJT)

Launch BJT Output Characteristics GUI from SEELablet – > Electronics -> Transistors -> Transistor CE

Prepare the experiment based on the schematic and instructions available in the help section.

Resultant Data:  The base voltage (thereby base current) is varied and the corresponding I-V curves are plotted.

from SEEL import interface

pv2 = I.set_pv2( 1.0)   #  Bias the base via a 200K resistor.
base_voltage = I.get_voltage('CH3')
base_current = (pv2-base_voltage)/200e3 # Use Ohm's law to determine current
CollectorCurrent = []
CollectorVoltage = []
for a in np.linspace(0,5,100):
  pv1 = I.set_pv1(a)
  CollectorCurrent .append( (pv1 - I.get_voltage('CH1') )/1e3 )

from pylab import *
plot(CollectorVoltage,CollectorCurrent ) #Plot and try a different base current


Design -> Acquire -> Visualize

The experiment designer interface allows users  to quickly put together a study of phenomena using the control and readback elements that have been incorporated into a common interface.

Consider the example of a curve tracer for transistor CE output characteristics. It requires :
A ) Base current setting : A parameter that only needs to be set once per curve
B) Collector voltage setting : A parameter that needs to be swept from Voltage A to voltage B
C) Collector current monitoring : A parameter that needs to be read for each value of B
In addition, the user may require plotting and analytics.

Diode IV
Diode IV is being plotted based on the following schematic. CH3 monitors the voltage drop across the diode, and (PV1-CH3)/1K is the current flowing through it.

The derived channel section can also be used to add I2C sensors.

An analytics section is under active development.

The following screenshots illustrate the use of the experiment designer :

Tab #1

Tab#2 Consider the Diode IV experiment.  We will need :

  • A voltage source that will sweep the biasing voltage in a range that includes the expected knee voltage
  • A Voltmeter that will measure the voltage drop across the diode
  • A derived channel that uses
    • Known Value of PV1
    • Measured value of CH3
    • Known resistance 1K
      And Calculates the current flowing through the diode. I = (PV1 – CH3)/1000


Click on evaluate all rows to obtain readings for all values of PV1 voltage that we specified.

Select the channels to be plotted , and click on Plot


View the plots

Save the Data as either a text file, or an image



Stepper Motor Control

4-wire, 2-phase stepper motors can be controlled via digital outputs SQR1,2,3,4 .
Since these outputs can only drive currents up to 20mA reliably, users must use push-pull drivers such as the L293B

from SEEL import interface
I = interface.connect()

I.stepForward(20,10)  #20 clockwise steps with 10mS delay between each step
I.stepBackward(20,50)  #20 anti-clockwise steps with 50mS delay between each step

Micro stepper motors shown below consume low amounts of current, and can be driven directly via the SQR outputs.






They’re 4-wire, 2-phase steppers, and can be driven in half/full step modes using 4 push-pull digital I/O.