From 58904b7d9b781c9a7eb18183392b3a565fdbcd51 Mon Sep 17 00:00:00 2001 From: Mitja Felicijan Date: Sat, 8 Jul 2023 23:26:39 +0200 Subject: Removed public folder --- public/esp8266-and-micropython-guide.html | 96 ------------------------------- 1 file changed, 96 deletions(-) delete mode 100755 public/esp8266-and-micropython-guide.html (limited to 'public/esp8266-and-micropython-guide.html') diff --git a/public/esp8266-and-micropython-guide.html b/public/esp8266-and-micropython-guide.html deleted file mode 100755 index 6054a2b..0000000 --- a/public/esp8266-and-micropython-guide.html +++ /dev/null @@ -1,96 +0,0 @@ -Getting started with MicroPython and ESP8266

Getting started with MicroPython and ESP8266

Sep 6, 2020

Introduction

A while ago I bought some -ESP8266 and -ESP32 dev boards to play -around with and I finally found a project to try it out.

For my project, I used ESP32 -but I could easily choose -ESP8266. This guide -contains which tools I use and how I prepared my workspace to code for -ESP8266.

ESP8266 and ESP32 boards

This guide covers:

  • flashing SOC
  • install proper tooling
  • deploying a simple script

Make sure that you are using a good USB cable. I had some problems with -mine and once I replaced it everything started to work.

Flashing the SOC

Plug your ESP8266 to USB port and check if the device was recognized with -executing dmesg | grep ch341-uart.

Then check if the device is available under /dev/ by running ls /dev/ttyUSB*.

Linux users: if a device is not available be sure you are in dialout -group. You can check this by executing groups $USER. You can add a user to -dialout group with sudo adduser $USER dialout.

After these conditions are meet go to the navigate to -https://micropython.org/download/esp8266/ -and download esp8266-20200902-v1.13.bin.

mkdir esp8266-test
-cd esp8266-test
-
-wget https://micropython.org/resources/firmware/esp8266-20200902-v1.13.bin
-

After obtaining firmware we will need some tooling to flash the firmware to the -board.

sudo pip3 install esptool
-

You can read more about esptool at -https://github.com/espressif/esptool/.

Before flashing the firmware we need to erase the flash on device. Substitute -USB0 with the device listed in output of ls /dev/ttyUSB*.

esptool.py --port /dev/ttyUSB0 erase_flash
-

If flash was successfully erased it is now time to flash the new firmware to it.

esptool.py --port /dev/ttyUSB0 --baud 460800 write_flash --flash_size=detect 0 esp8266-20200902-v1.13.bin
-

If everything went ok you can try accessing MicroPython REPL with screen /dev/ttyUSB0 115200 or picocom /dev/ttyUSB0 -b115200.

Sometimes you will need to press ENTER in screen or picocom to access -REPL.

When you are in REPL you can test if all is working properly following steps.

> import machine
-> machine.freq()
-

This should output a number representing a frequency of the CPU (mine was -80000000).

When you are in screen or picocom these can help you a bit.
KeyCommand
CTRL+dpreforms soft reboot
CTRL+a xexits picocom
CTRL+a \exits screen

Install better tooling

Now, to make our lives a little bit easier there are couple of additional tools -that will make this whole experience a little more bearable.

There are twq cool ways of uploading local files to SOC flash.

ampy

# installing ampy
-sudo pip3 install adafruit-ampy
-

Listed below are some common commands I used.


-# uploads file to flash
-ampy --delay 2 --port /dev/ttyUSB0 put boot.py
-
-# lists file on flash
-ampy --delay 2 --port /dev/ttyUSB0 ls
-
-# outputs contents of file on flash
-ampy --delay 2 --port /dev/ttyUSB0 cat boot.py
-

I added delay of 2 seconds because I had problems with executing commands.

rshell

Even though ampy is a cool tool I opted with rshell in the end since it's -much more polished and feature rich.

# installing ampy
-sudo pip3 install rshell
-

Now that rshell is installed we can connect to the board.

rshell --buffer-size=30 -p /dev/ttyUSB0 -a
-

This will open a shell inside bash and from here you can execute multiple -commands. You can check what is supported with help once you are inside of a -shell.

m@turing ~/Junk/esp8266-test
-$ rshell --buffer-size=30 -p /dev/ttyUSB0 -a
-
-Using buffer-size of 30
-Connecting to /dev/ttyUSB0 (buffer-size 30)...
-Trying to connect to REPL  connected
-Testing if ubinascii.unhexlify exists ... Y
-Retrieving root directories ... /boot.py/
-Setting time ... Sep 06, 2020 23:54:28
-Evaluating board_name ... pyboard
-Retrieving time epoch ... Jan 01, 2000
-Welcome to rshell. Use Control-D (or the exit command) to exit rshell.
-/home/m/Junk/esp8266-test> help
-
-Documented commands (type help <topic>):
-========================================
-args    cat  connect  date  edit  filesize  help  mkdir  rm     shell
-boards  cd   cp       echo  exit  filetype  ls    repl   rsync
-
-Use Control-D (or the exit command) to exit rshell.
-

Inside a shell ls will display list of files on your machine. To get list -of files on flash folder /pyboard is remapped inside the shell. To list files -on flash you must perform ls /pyboard.

Moving files to flash

To avoid copying files all the time I used rsync function from the inside of -rshell.

rsync . /pyboard
-

Executing scripts

It is a pain to continuously reboot the device to trigger /pyboard/boot.py and -there is a better way of testing local scripts on remote device.

Lets assume we have src/freq.py file that displays CPU frequency of a remote -device.

# src/freq.py
-
-import machine
-print(machine.freq())
-

Now lets upload this and execute it.

# syncs files to remove device
-rsync ./src /pyboard
-
-# goes into REPL
-repl
-
-# we import file by importing it without .py extension and this will run the script
-> import freq
-
-# CTRL+x will exit REPL
-

Additional resources

\ No newline at end of file -- cgit v1.2.3