Home

Awesome

ESPTerm - ESP8266 Serial Port Terminal

Screenshot

Archlinux Screenshot

Description

If you are using the ESP8266 with Linux as your development environment, you propably know the annoyances of manually pressing buttons or connecting jumpers just to get the SoC to boot from its flash chip, of using many different tools to flash your program and of AT commands that just don't work when entered because of some line ending problems. It doesn't have to be that way! ESPTerm is a minimalistic, yet powerful serial port terminal for ESP8266 development in GNOME and other Linux desktop environments. ESPTerm automatically sets up the ESP8266 so that it boots from the flash chip and has an option to automatically disconnect, flash your project to the ESP8266 and connect to it again in normal boot mode. No more switching between applications or manually placing jumpers required!

Hardware setup

ESPTerm is compatible with esptool's setup, using RTS and DTR to toggle CH_PD and GPIO0.

ESP8266 PinSerial Port Pin
CH_PDRTS
GPIO0DTR
GPIO15GND / Low (directly)
GPIO2VCC / High (Resistor)
TX (send)RX (receive)
RX (receive)TX (send)

Usage

Shortcuts

Installation

Preparation

ESPTerm requires GTK 3.16 or later!

Archlinux / Antergos (up to date)

Ubuntu (15.10 or later)

Fedora (23 or later)

Compilation

esp-open-sdk Integration

PATH setup

If you want to use ESPTerm's download functionality you must make sure that your esp-open-sdk compiler setup is in your PATH variable. It is not enough to just add the compiler path to your .bashrc, you will need to add it to /etc/profile.d/espterm.sh, so that espterm also works when it was not started from your bash prompt. Use the util/sdkpath.sh script to take care of the profile setup for you, or alternatively

#/bin/bash
export PATH=/opt/esp-open-sdk/xtensa-lx106-elf/bin:$PATH

Makefile / Project setup

An example project for use with espterm is provided in util/sampleproject.

When clicking the flash button and choosing the project directory, espterm executes make flash in that directory. Therefore, your Makefile must provide a flash target that takes care of somehow uploading the code to the ESP8266. ESPTerm provides PORT as an environment variable that contains the currently selected port in the UI, e.g. /dev/ttyUSB0. You can make use of this feature by parsing that parameter in your Makefile and passing it on to e.g. esptool:

PORT ?= /dev/ttyUSB0 # If PORT is set as environment variable, use that value

Implementation

ESPTerm is written in vala (and a tiny bit of C). serial.vala is completely independent of ESPTerm and may also be useful for other applications. If you want to use serial.vala for your application, but don't want to License it under the GPLv3, feel free to contact me and I may consider relicensing it to whatever your project uses.

License

ESPTerm is licensed under the GPLv3, see the LICENSE file.