ESPTerm - ESP8266 terminal emulator. Branches: [master] patches, [work] next release
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
espterm-firmware/README.md

86 lines
4.0 KiB

# esp-vt100-firmware
7 years ago
ESP8266 Remote Terminal project
7 years ago
This project is based on SpriteTM's esphttpd and libesphttpd, forked by MightyPork to
[MightyPork/esphttpd](https://github.com/MightyPork/esphttpd) and
[MightyPork/libesphttpd](https://github.com/MightyPork/libesphttpd) respectively.
Those forks include improvements not yet available upstream.
7 years ago
## Goals
7 years ago
This project aims to be a wireless terminal emulator that'll work with the likes of
7 years ago
Arduino, AVR, PIC, STM8, STM32, mbed etc, anything with UART, even your USB-serial dongle will work.
7 years ago
7 years ago
Connect it to the master device via UART and use the terminal (on your PC or phone) for debug logging,
remote control etc. It works like a simple LCD screen, in a way.
7 years ago
It lets you make simple UI (manipulating the screen with ANSI sequences) and receive input from buttons on
7 years ago
the webpage (and keyboard on PC). Touch input is a possibility but not currently implemented.
7 years ago
7 years ago
The screen size should be adjustable up to 25x80 (via a special control sequence) and uses 16 standard colors.
7 years ago
## Project status
*Still far from finished and also there's like zero documentation, but you can give it a spin if you wish.*
- We have a working **2-way terminal** (UART->ESP->Browser and vice versa) with real-time update via websocket.
7 years ago
This means that what you type in the browser is sent to UART0 and what's received on UART0 is processed by the
ANSI parser and applied to the internal screen buffer. You'll also immediately see the changes in your browser.
For a quick test, try connecting the UART0 Rx and Tx to make a loopback interface.
You should then see what you type & can even try out the ANSI sequences.
Arrow keys generate ANSI sequences, ESC sends literal ASCII code 27 - should be all you need to get started.
- All ANSI sequences that make sense, as well as control codes like Backspace and CR / LF are implemented.
Set colors with your usual `\e[31;1m` etc (see Wikipedia). `\e` is the ASCII code 27 (ESC).
7 years ago
- Buttons pressed in the browser UI send ASCII codes 1..5. Mouse clicks also send events to the server,
but currently don't generate any output in the terminal.
7 years ago
7 years ago
- There is also currently no way to set up the WiFi, so it'll use whatever you configured the ESP to
in your previous project. This'll be addressed later.
7 years ago
7 years ago
## Setting it all up
- Install [esp-open-sdk](https://github.com/pfalcon/esp-open-sdk/) and build it with
`make toolchain esptool libhal STANDALONE=n`. Make sure the `xtensa-lx106-elf/bin` folder is on $PATH.
- Install [esptool](https://github.com/espressif/esptool) (it's in Arch community repo and on AUR, too)
- Set up udev rules so you have access to ttyUSB0 without root, eg:
```
KERNEL=="tty[A-Z]*[0-9]*", GROUP="uucp", MODE="0666"
```
- Clone this project with `--recursive`, or afterwards run `git submodule init` and `git submodule update`.
## Development
The web resources are in `html_orig`. To prepare for a build, run `compress_html.sh`.
This should pack them and put in `html`.
If you're missing the compression tools, you can simply copy them there manually uncompressed and hope for the best.
serial comm is handled in `serial.c`, sockets etc in `user_main.c`.
Get the IoT SDK from one of:
```
ESP8266_NONOS_SDK_V2.0.0_16_08_10.zip:
wget --content-disposition "http://bbs.espressif.com/download/file.php?id=1690"
ESP8266_NONOS_SDK_V2.0.0_16_07_19.zip:
wget --content-disposition "http://bbs.espressif.com/download/file.php?id=1613"
ESP8266_NONOS_SDK_V1.5.4_16_05_20.zip:
wget --content-disposition "http://bbs.espressif.com/download/file.php?id=1469"
ESP8266_NONOS_SDK_V1.5.3_16_04_18.zip:
wget --content-disposition "http://bbs.espressif.com/download/file.php?id=1361"
ESP8266_NONOS_SDK_V1.5.2_16_01_29.zip:
wget --content-disposition "http://bbs.espressif.com/download/file.php?id=1079"
```
It's tested with 1.5.2, 2.0.0 won't work without adjusting the build scripts. Any 1.5.x could be fine.
To flash, just run `make flash`. First make sure your `esphttpdconfig.mk` is set up properly - link to sdk etc.