MicroPython_ESP32_psRAM_LoBo icon indicating copy to clipboard operation
MicroPython_ESP32_psRAM_LoBo copied to clipboard

VT100 functionality for the SSH module

Open stroobandt opened this issue 6 years ago • 1 comments

This is an improvement request to extend the existing SSH module with (basic) VT100 terminal functionality.

Doing so, would allow seeing and interacting with ncurses programs running on the server to which the MicroPython client is connected. Examples of ncurses programs are htop, aptitude and numerous text editors, text web browsers and e-mail clients.

A testament to its feasibility are following Arduino projects; one of which runs on an ESP8266:

  • https://tech.scargill.net/vt100-terminal-for-hc2018/
  • https://tech.scargill.net/an-arduino-terminal/
  • https://hackaday.io/project/27359-tiny-wearable-8-bit-vt100-console
  • http://forum.arduino.cc/index.php?topic=275261.0
  • https://www.madresistor.com/diy-vt100/

There are also several Python VT100 libraries, of which pyte seems to be the most revered.

From its tutorial:

There are two important classes in pyte: Screen and Stream. The Screen is the terminal screen emulator. It maintains an in-memory buffer of text and text-attributes to display. The Stream is the stream processor. It processes the input and dispatches events. Events are things like LINEFEED, DRAW "a", or CURSOR_POSITION 10 10.

stroobandt avatar Feb 10 '19 23:02 stroobandt

The VT100 functions should be placed between (network, serial, pipe, ...) transport and a display. So it is not an add on specific to SSH.

drawkula avatar Feb 11 '19 01:02 drawkula