MicroPython integrated into Jupyter notebooks
MIT License
These Jupyter magic methods allow MicroPython to be used from within any Jupyter Notebook or JupyterLab (formerly IPython Notebook) The magics make use of the mpremote tool to enable communication with the MCUs
This allows:
For the source please refer to the samples folder
create and activate a venv python3 -m venv .venv
pip install -U "micropython-magic"
or install directly into your notbook environment/kernel using the '%pip' magic by running
%pip install -U "micropython-magic"
Recommended : install stubs for your MCU of choice
pip install micropython-rp2-stubs
(or your port of choise)1) Create a notebook
install your desired notebook environment:
create a new notebook
2) Load the magic
%load_ext micropython_magic
This can also be configured once to always load automatically ( see below)
3) add a cell with some code to run on the MCU
# %%micropython
from machine import Pin
led = Pin(25, Pin.OUT)
led.value(1)
The %%micropython
cell magic will instruct Jupyter to run the code on the connected MCU
4) enable code highlighting for MicroPython
%pip install micropython-esp32-stubs==1.20.0.*
# installs the stubs for MicroPython syntax checking (one time install per environment)
# %%micropython
from machine import Pin
led = Pin(25, Pin.OUT)
led.value(1)
This allows for syntax highlighting and code completion of MicroPython code. Tested in VSCode with
Please refer to the samples folder for more examples
In order to automatically load the magic on startup, you can add the following to your ipython_config.py
file:
ipython profile create
add the following to the configuration file (.../.ipython/profile_default/ipython_config.py
)
c = get_config()
c.InteractiveShellApp.extensions = [
'micropython_magic'
]
Configuration can be done via the %config
magic
%config MicroPythonMagic
MicroPythonMagic(Magics) options
------------------------------
MicroPythonMagic.loglevel=<UseEnum>
Choices: any of ['TRACE', 'DEBUG', 'INFO', 'WARNING', 'ERROR']
Current: <LogLevel.WARNING: 'WARNING'>
MicroPythonMagic.timeout=<Float>
Current: 300.0
# example
%config MicroPythonMagic.loglevel = 'TRACE'
The most welcome contributions are :
See current status and on Github