Software Factory
Micropython, ESP8266 and VSCode
29 Aug 2019
by
Olivier Robert
The Internet of Things virus got me too 😉
I wanted to play and bought an ESP8266 development board, a temperature and humidity sensor and a small display. I had plenty of breadboards from my Raspberry Pi experiments. I was ready to follow Miguel Grinberg's excellent tutorial. I highly recommend this tutorial if you want to start playing with microcontrollers and micropyhton.
I'm not going to talk about the microcontroller or micropyhton here. But I will talk about VSCode and how you can make your life easier when programming with micropython and a firmware with baked classes you don't have locally on your development host.
First few lessons, first import, and pylint is already complaining. This gets out of hand very quickly. Not to mention, no Intellisense. Not cool.
As always, I start to google around and finally find an issue on Github that has a valid solution: micropy-cli.
New virtualenv, micro-cli installed, I install the stubs I need and create a new project.
~/Dev/micropy-cli via .env
➜ micropy stubs search esp8266
MicroPy Searching Stub Repositories...
MicroPy Results for esp8266:
MicroPy esp8266-micropython-1.10.0
MicroPy esp8266-micropython-1.11.0 (Installed)
MicroPy esp8266-micropython-1.9.3
MicroPy esp8266-micropython-1.9.4
MicroPy esp8266-pycopy-1.11.0
MicroPy esp8266-pycopy-2.11.0
MicroPy esp8266-pycopy-2.11.0.1
~/Dev/micropy-cli via .env
➜ micropy init esp8266
MicroPy Creating New Project
? Choose any Templates to Generate (Use arrow keys to move, to select, to toggle, to invert)
● VSCode Settings for Autocompletion/Intellisense
○ Pymakr Configuration
» ● Pylint Micropython Settings
○ main.py & boot.py files
(next step)
MicroPy Creating New Project
? Choose any Templates to Generate done (2 selections)
? Which stubs would you like to use? (Use arrow keys to move, to select, to toggle, to invert)
» ● esp8266-micropython-1.11.0
(next step)
MicroPy Creating New Project
? Choose any Templates to Generate done (2 selections)
? Which stubs would you like to use? [esp8266-micropython-1.11.0]
MicroPy Initiating esp8266
MicroPy Stubs: esp8266-micropython-1.11.0
MicroPy Rendering Templates
MicroPy Populating Stub info...
MicroPy Vscode template generated!
MicroPy Pylint template generated!
MicroPy ✔ Stubs Injected!
MicroPy ✔ Project Created!
MicroPy Created esp8266 at ./esp8266
I moved all the project files to my new esp8266 directory, launched VSCode, open main.py and ...
Dev/micropy-cli/esp8266 via .env
➜ cp -r ../../micropython/chapter6/* .
Dev/micropy-cli/esp8266 via .env
➜ code .
Expected, the linter is less permissive than with the defautl VSCode settings. But this can be easily fixed. And Voilà! Pylint is happy, and Intellisense is working with the stubs.