2.3.2. Jupyter Notebook
Note
Jupyter Notebook application is currently being updated (OS 2.00) and will be available in one of the next OS updates.
The Jupyter Notebook is an open-source web application that allows you to create and share documents that contain live code, equations, visualizations, explanatory text, and direct control or monitor hardware. Uses include: data cleaning and transformation, numerical simulation, statistical modeling, machine learning, and much more.
2.3.2.1. Features
In-browser editing of code, with automatic syntax highlighting, indentation, and tab completion/introspection.
The ability to execute code from the browser, with the results of computations attached to the code which generated them.
Displaying the result of computation using rich media representations, such as HTML, LaTeX, PNG, SVG, etc. For example, publication-quality figures rendered by the matplotlib library can be included inline.
In-browser editing for rich text using the Markdown markup language, which can provide commentary for the code, is not limited to plain text.
The ability to easily include mathematical notation within markdown cells using LaTeX, and rendered natively by MathJax
2.3.2.1.1. Notebook documents
Notebook documents contain the inputs and outputs of an interactive session as well as additional text that accompanies the code but is not meant for execution. In this way, notebook files can serve as a complete computational record of a session, interleaving executable code with explanatory text, mathematics, and rich representations of resulting objects. These documents are internal JSON files and are saved with the .ipynb extension. Since JSON is a plain text format, they can be version-controlled and shared with colleagues.
Notebooks may be exported to a range of static formats, including HTML (for example, for blog posts), reStructuredText, LaTeX, PDF, and slide shows, via the nbconvert command.
Furthermore, any .ipynb notebook document available from a public URL can be shared via the Jupyter Notebook Viewer (nbviewer). This service loads the notebook document from the URL and renders it as a static web page. The results may thus be shared with a colleague, or as a public blog post, without other users needing to install the Jupyter notebook themselves. In effect, nbviewer is simply nbconvert as a web service, so you can do your own static conversions with nbconvert without relying on nbviewer.
2.3.2.2. Hardware – Extension module
Although the usage of the Jupyter notebook does not require any additional hardware except the RedPitaya board, getting started with electronics is way more fun and interesting when you have loads of sensors that you can put to good use straight away. Whether you want to measure temperature, vibration, movement, etc., we have an extension module compatible with Grove modules from Seeed®. All you need to do is to select the desired module, find the correct connector, and get going with your project. We have also placed the Arduino shield headers on the extension module.

The headers enable you to directly connect a variety of different Arduino Uno shields. There is a wide range of Arduino Uno shields. The extension module can be powered from the external power supply via a micro USB connector. A set of nine JUMPERS is used for reconnecting certain extension module connectors to different E1 or E2 pins or changing power supply settings. For example, with J1 and J3, you can set the source of VCC-external or from Red Pitaya. A full schematic of the extension module is available on our website.
Note
The extension module is available for purchase from Red Pitaya store.
2.3.2.2.1. Connectors
The black connectors on the sides are compatible with Arduino. The white connectors on the front provide analog inputs, and there are two rows of grey connectors at the centre which provide digital I/O, UART, I2C, or analog outputs. On the bottom, there are connectors to the Red Pitaya board.

2.3.2.2.1.1. Grove module connectors
These are dedicated connectors compatible with Grove modules.
There are six connector types available:
AI Analog input (0 - 3.3 V)
AO Analog output
I2C (3.3 V)
UART (3.3 V)
DIO Digital input/output (3.3 V, not 5 V tolerant)
conn. |
CN0 |
CN1 |
CN2 |
CN3 |
CN4 |
CN5 |
CN6 |
CN7 |
CN8 |
CN9 |
CN10 |
CN11 |
CN12 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
type |
AI |
AI |
AI |
AO |
I2C |
I2C |
I2C |
UART |
DIO |
DIO |
DIO |
DIO |
DIO |
|
AI0 |
AI1 |
AI2 |
AO0 |
SCL |
SCL |
SCL |
RX |
IO8 |
IO6 |
IO4 |
IO2 |
IO0 |
|
AI1 |
AI2 |
AI3 |
AO1 |
SDA |
SDA |
SDA |
TX |
IO9 |
IO7 |
IO5 |
IO3 |
IO1 |
|
VCC |
VCC |
VCC |
VCC |
VCC |
VCC |
VCC |
VCC |
VCC |
VCC |
VCC |
VCC |
VCC |
|
GND |
GND |
GND |
GND |
GND |
GND |
GND |
GND |
GND |
GND |
GND |
GND |
GND |
2.3.2.2.1.2. Arduino shield compatible connectors
This set of connectors is partially compatible with the Arduino shield connector.
function |
pin |
comment |
---|---|---|
IO0 |
|
D[0] |
IO1 |
|
D[1] |
IO2 |
|
D[2] |
IO3 |
|
D[3] |
IO4 |
|
D[4] |
IO5 |
|
D[5] |
IO6 |
|
D[6] |
IO7 |
|
D[7] |
function |
pin |
comment |
---|---|---|
IO8 |
|
D[8] |
IO9 |
|
D[9] |
IO10 |
|
D[10] |
IO11 |
|
D[11] |
IO12 |
|
D[12] |
IO13 |
|
D[13] |
GND |
|
|
AREF |
|
not connected |
SDA |
|
I2C_SDA |
SCL |
|
I2C_SCL |
function |
pin |
comment |
---|---|---|
A6 |
|
not connected |
A7 |
|
not connected |
Reset |
|
not connected |
+3.3 V |
|
|
+5.0 V |
|
|
GND |
|
|
GND |
|
|
+VIN |
|
not connected |
2.3.2.3. Sensors
Sensor information |
Connector |
---|---|
AI |
|
DIO |
|
DIO |
|
DIO |
|
DIO |
|
Digital |
|
DIO |
|
AI |
|
AI |
|
AI |
|
AI |
|
AI |
|
AI |
|
AI |
|
Barometer |
I2C |
AI |
|
AI |
|
Accelerometer |
I2C |
Actuators |
Connector |
---|---|
DIO |
Indicators |
Connector |
---|---|
DIO |
|
DIO |
|
Digital pins |
|
Digital pins |
|
Digital pins |
|
LCD |
Digital pins |
2.3.2.4. Examples
Note
Please note that we have updated the backend of the Jupyter Notebook application with the 2.00 OS, so some of these examples will not work with OS versions 2.00 or higher. We are preparing a new set of examples which will function almost the same as the SCPI examples.
Generator:
Oscilloscope:
Demo applications using widgets:
Grove sensors