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.
 
 
 
 
 
 
Ondřej Hruška 521a00ce47 Fixed multi-part socket for long screen data 8 years ago
html Added messaging from browser to server, tap handling, improved resize on clientside 8 years ago
html_orig Added messaging from browser to server, tap handling, improved resize on clientside 8 years ago
include Removed example project junk & added UART drivers 8 years ago
libesphttpd@1a699948bb Fixed multi-part socket for long screen data 8 years ago
user Fixed multi-part socket for long screen data 8 years ago
.gitignore Foo 8 years ago
.gitmodules ,mmm 8 years ago
Makefile working terminal 8 years ago
Makefile.combined Make blankflash target automatically calculate pos to write to 9 years ago
Makefile.ota Add make httpflash command for commandline ota flashing 9 years ago
Makefile.separate Make blankflash target automatically calculate pos to write to 9 years ago
README.md readme 8 years ago
build_parser.sh working terminal 8 years ago
build_web.sh working terminal 8 years ago
esphttpdconfig.mk Lib bump 8 years ago

README.md

esp-vt100-firmware

ESP8266 Remote Terminal project

This project is based on SpriteTM's esphttpd and libesphttpd, forked by MightyPork to MightyPork/esphttpd and MightyPork/libesphttpd respectively.

Those forks include improvements not yet available upstream.

Goals

This project aims to be a wireless terminal emulator that'll work with the likes of Arduino, AVR, PIC, STM8, STM32, mbed etc, anything with UART, even your USB-serial dongle will work.

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.

It lets you make simple UI (manipulating the screen with ANSI sequences) and receive input from buttons on the webpage (and keyboard on PC). Touch input is a possibility but not currently implemented.

The screen size should be adjustable up to 25x80 (via a special control sequence) and uses 16 standard colors.

Project status

Still far from finished and also there's like zero documentation, but you can give it a spin if you wish.

  • Presently we have a working 1-way terminal (UART->ESP->Browser) with real-time update via websocket. The terminal should support multiple sockets at once (not tested).

  • 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 hex code 0x18 or dec 27, or ESC. This may be hard to type on a desktop terminal emulator, if you're trying it with a USB-serial dongle. It'll be easy with the microcontroller, of course.

  • The buttons or other input from the browser don't work yet.

  • 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.

Setting it all up

  • Install 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 (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.