Skip to main content

Cloudmanager esp8266 flash image

Project description

Micropython ESP8266 Flash image with cloudmanager

This package provides a utility to flash an esp8266 board such as a nodemcu or wemos d1 board with Micropython. It will optionally configure networking and set up the board to run cloudmanager or webrepl at start.

Requirements

This Utility requires python 2.7.9+ and is installed using the python pip package manager.

Mac OSX requirements

On Mac OSX you may need to install the device driver for the usb to serial converter chip to interface with your board.

For NodeMCU boards, you will need to install the SiLabs [serial driver for the chip](https://www.silabs.com/products/mcu/Pages/USBtoUARTBridgeVCPDrivers.aspx) ([direct link](https://www.silabs.com/Support%20Documents/Software/Mac_OSX_VCP_Driver.zip))

For Wemos D1 boards, you will need to intall the [CH340 USB to UART driver](https://www.wemos.cc/downloads) ([direct link](https://www.wemos.cc/downloads/CH34x_Install_mac.zip))

Installation

Install the package using the python pip tool

$ pip install cloudmanager_micropython_esp8266

Flashing a board

The flash_esp_image utility will flash a micropython image to the board and optionally configure it.

To just flash the image to the board, if the are no other serial devices installed

This is the simplest option, the utility will attempt to guess the serial port the device is on and flash it.

  1. Plug the board into the usb port

  2. Run the flash_esp_image utility without arguments.

$ flash_esp_image
esptool.py --port /dev/ttyUSB0 --baud 115200 erase_flash
esptool.py v1.2.1
Connecting...
Running Cesanta flasher stub...
Erasing flash (this may take a while)...
Erase took 9.1 seconds
esptool.py --port /dev/ttyUSB0 --baud 115200 write_flash --verify --flash_size=32m --flash_mode=qio 0 /home/dwight/.virtualenvs/cloudmanager-micropython-esp8266/local/lib/python2.7/site-packages/cloudmanager_micropython_esp8266/firmware/firmware-combined.bin
esptool.py v1.2.1
Connecting...
Running Cesanta flasher stub...
Flash params set to 0x0040
Writing 557056 @ 0x0... 19456 (3 %)
557056 (100 %)
Wrote 557056 bytes at 0x0 in 48.3 seconds (92.3 kbit/s)...
Leaving...
Verifying just-written flash...
Verifying 0x8734c (553804) bytes @ 0x00000000 in flash against /home/dwight/.virtualenvs/cloudmanager-micropython-esp8266/local/lib/python2.7/site-packages/cloudmanager_micropython_esp8266/firmware/firmware-combined.bin...
-- verify OK (digest matched)
$

The board should now be flashed with micropython and the micropython repl prompt will be available on the serial port.

Flash the board and configure it to automatically start as a cloudmanager client

  1. Plug the board into the usb port

  2. Run the flash_esp_image utility with the arguments to configure the network and cloudmanager.

The following example starts a cloudmanager server on the default port and tells the board to connect to wifi network “mywifi” using wpa password of “wifipassword” and register with a cloudmanager server at our address “192.168.1.127” running on the default port of “18266” as a device named “nodemcu1”

$ mbm server-start
$ mbm board-list
$ flash_esp_image --wifi_ssid mywifi --wifi_password mywifipassword --cloudmanager_server 192.168.1.127 --cloudmanager_port 18266 --name nodemcu1
esptool.py --port /dev/ttyUSB0 --baud 115200 erase_flash
esptool.py v1.2.1
Connecting...
Running Cesanta flasher stub...
Erasing flash (this may take a while)...
Erase took 9.0 seconds
esptool.py --port /dev/ttyUSB0 --baud 115200 write_flash --verify --flash_size=32m --flash_mode=qio 0 /home/dwight/.virtualenvs/cloudmanager-micropython-esp8266/local/lib/python2.7/site-packages/cloudmanager_micropython_esp8266/firmware/firmware-combined.bin
esptool.py v1.2.1
Connecting...
Running Cesanta flasher stub...
Flash params set to 0x0040
Writing 557056 @ 0x0... 557056 (100 %)
Wrote 557056 bytes at 0x0 in 48.3 seconds (92.3 kbit/s)...
Leaving...
Verifying just-written flash...
Verifying 0x8734c (553804) bytes @ 0x00000000 in flash against /home/dwight/.virtualenvs/cloudmanager-micropython-esp8266/local/lib/python2.7/site-packages/cloudmanager_micropython_esp8266/firmware/firmware-combined.bin...
-- verify OK (digest matched)
>>>
>>> import os
>>> os.mkdir('etc')
>>> from bootconfig.config import get, set
>>> set('wifi_ssid', 'mywifi')
>>> set('wifi_password', 'mywifipassword')
>>> set('redis_server', '192.168.1.127')
>>> set('redis_port', '18266')
>>> set('name', 'nodemcu1')
>>> import bootconfig.service
>>> bootconfig.service.autostart()
>>> import redis_cloudclient.service
>>> redis_cloudclient.service.autostart()
>>> import machine
>>> machine.reset()
$ mbm board-list
Platform   Name                                               State
esp8266    nodemcu1                                           idle
$

It’s now possible to use the mbm utility to upload/run code on the board.

Connecting to the serial terminal

The esp_terminal command is a simple terminal program that will automatically connect the the micropython repl over usb/serial using the same device and port as the flash_esp_image utility.

$ esp_terminal
MicroPython v1.8.5-124-gbc4441a on 2016-11-06; ESP module with ESP8266
Type "help()" for more information.
>>>

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cloudmanager-micropython-esp8266-0.0.17.tar.gz (366.4 kB view details)

Uploaded Source

File details

Details for the file cloudmanager-micropython-esp8266-0.0.17.tar.gz.

File metadata

File hashes

Hashes for cloudmanager-micropython-esp8266-0.0.17.tar.gz
Algorithm Hash digest
SHA256 524df453aa652c02c900e4501c5af43283445cc991080d7e7611741a82cf6514
MD5 e348fadb40a7f64452a38258471b6ef3
BLAKE2b-256 b7a69d25cac1deb41c571194223c267ce3da1dd5b0692ff9b19e666afc599c59

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page