Requirements
- ESP8266 board with CH340 serial interface (allows USB connection without programmer)
- ESP8266 board without CH340 serial interface
- Programming Cable / Jumpers
- Linux Compatible Serial Interface Adaptor with 3.3V output - e.g. CP2102 compatible DSD TECH USB to TTL Converter
Step 1: Download
Download Arduino IDE 2 AppImage and launch - the version I ended up using was:
# wget https://downloads.arduino.cc/arduino-ide/arduino-ide_2.1.0_Linux_64bit.AppImage
Or download the previous 1.8.19 version:
Unpack as root in /opt/arduino-1.8.19
Run /opt/arduino-1.8.19/install.sh as root
Run /opt/arduino-1.8.19/linux-user-install.sh <username>
Step 2a: Launch IDE V2
Change the permissions so that the AppImage is executable, and launch it:
# chmod u+x arduino-ide_2.1.0_Linux_64bit.AppImage
# ./arduino-ide_2.1.0_Linux_64bit.AppImage
Step 2b: Launch IDE V1
Step 3: Install ESP8266 Board Info
Select File/Preferences and add the following URL to the "Additional Board Manager URLS" and select OK.
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Launch Board Manager and search for "Generic" and install the "esp8266" board.
When it appears in Board Manager, select the desired version (I'm using the latest 3.12) and Install
In the board select drop-down, pick "Generic ESP8266"
Step 4: Select the board
In a new design, select Tools/Board/ESP8266 Boards/NodeMCU (ESP 12E Module)
Step3b: Install ESP8266 Board Info from Git
https://arduino-esp8266.readthedocs.io/en/3.0.0/installing.html
mkdir ~/Arduino/hardware
cd ~/Arduino/hardware
git clone https://github.com/esp8266/Arduino.git esp8266
Step 4: Add some Code
Select some code (e.g. https://randomnerdtutorials.com/esp8266-web-server/) and paste into the main edit window
Step 5: Plug in the Device to the USB Port
I found that the brltty driver was taking over the serial device and needed disabling
# dmesg | tail
159425.909714] ch341 3-1:1.0: ch341-uart converter detected
[159425.910391] ch341-uart ttyUSB0: break control not supported, using simulated break
[159425.910515] usb 3-1: ch341-uart converter now attached to ttyUSB0
[159426.484288] input: BRLTTY 6.4 Linux Screen Driver Keyboard as /devices/virtual/input/input22
[159426.604333] usb 3-1: usbfs: interface 0 claimed by ch341 while 'brltty' sets config #1
[159426.604766] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0
[159426.604796] ch341 3-1:1.0: device disconnected
# systemctl stop brltty-udev.service
# sudo systemctl mask brltty-udev.service
# systemctl stop brltty.service
# systemctl disable brltty.service
Following this, unplugging and re-plugging the board allows /dev/ttyUSB0 to be created.
# ls -la /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 0 May 20 16:07 /dev/ttyUSB0
Step 6: Download the Code
Step 7: Add some Tools
Add the "Arduino ESP8266 filesystem uploader" tool from https://github.com/esp8266/arduino-esp8266fs-plugin
Or the "ESP8266 LittleFS Data Upload" tool from https://github.com/earlephilhower/arduino-esp8266littlefs-plugin/releases
Unpack into ~/Arduino/hardware/esp8266/tools
Step 8: Check Dependencies
No comments:
Post a Comment