Skip to content

Releases: tinydesk-project/tinydesk

TinyDesk 0.1.5

TinyDesk 0.1.5 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 06 Oct 08:43

TinyDesk developer preview

A mouse-operated desktop running on an ESP32, displayed in your terminal.
Drag and resize windows, browse files, edit and save text, and use the
embedded shell. MQTT and Modbus apps connect the desktop to real projects.

This release is a developer preview: expect rough edges, and please report
what breaks.

New in 0.1.5

  • New home: the code is at github.com/tinydesk-project and the
    documentation, installer and update information at
    https://tinydesk-project.github.io/. Boards running 0.1.3 or 0.1.4
    still find this update at the old address; from 0.1.5 on they check
    the new one.
  • Update information can move: should the site move again, the old
    update information can name the new address (moved), and boards
    follow it from then on (HTTPS only; your own update.url still comes
    first). ota feed shows the address in use and why, ota feed reset
    forgets a moved one.
  • Only root changes the network policy: network mode and
    network autowifi with a value need root; any user still sees them.
  • Board configuration numbers are decimal or 0x hexadecimal; a
    leading zero no longer means octal.
  • For contributors: STANDARDS.md in TinyDesk Shell sets out names,
    code style, commands, board keys and release rules, also for
    community ports.

Also since 0.1.0: Software Update offers to save built-in pins before
an official update, non-ASCII names line up, long command lines wrap
(0.1.4); official updates in Software Update and fixes for boards
without PSRAM (0.1.3); the SD card at /sd and in Files (0.1.2);
ping -c, MQTT over TLS in the PC programs, and tdsh.exe for Windows.

Install

  • ESP boards, from the browser: https://tinydesk-project.github.io/install/
    (Chrome or Edge on a computer). Pick the edition and your exact board.
  • Open the board in the browser: https://tinydesk-project.github.io/console/
    (a real terminal with mouse support; the installer's own Logs & Console
    cannot show the desktop).
  • Without the browser: each *-factory.bin below is flashed at offset 0
    with esptool; see the installer page for the commands.
  • PC programs: tinydesk-desktop-windows-x64.zip and
    tinydesk-shell-windows-x64.zip (Windows 10 or later, run them in Windows
    Terminal), tinydesk-desktop-linux-x86_64.tar.gz and
    tinydesk-shell-linux-x86_64.tar.gz (x86_64, built on Ubuntu 22.04).

Check the files against SHA256SUMS.txt. The firmware is not signed.
Factory flashing can erase user data: back up an existing board first.

Before connecting

Use a UTF-8 terminal with ANSI/VT cursor control and xterm mouse reporting,
or the web terminal above. ESP32-C6 uses its built-in USB port (any speed);
the classic ESP32 Desktop edition uses 921600 baud, the Shell edition
115200. On the local console, run passwd as root (initial password:
TinyDesk). Remote access is blocked until that password changes. Telnet
starts disabled; enable it explicitly in Network only on a trusted network.
It is unencrypted and root-only because it takes over the existing desktop.
SSH provides a separate encrypted shell, not the windowed desktop (the 4 MB
ESP32 Desktop build has no SSH server).

Physical password recovery is unavailable after a Telnet takeover until the
board reboots. Remote takeover is refused while physical recovery is active.

Choose the exact board

Desktop target Required hardware Screen Limits
ESP32-C6 8 MB flash, built-in USB Serial/JTAG up to 80×25
ESP32 with PSRAM 16 MB flash plus PSRAM (e.g. WROVER-IE N16R8) up to 256×96
ESP32 4 MB 4 MB flash, no PSRAM needed (e.g. WROOM-32) up to 80×25 no SSH server, no over-the-air updates
Windows, Linux x86_64 PC up to 400×150 no Wi-Fi, OTA or users (the PC's network is used)

Measured on our boards with this firmware (About → Free RAM, idle desktop
after start-up, Wi-Fi connected unless noted):

Board Firmware size (app slot) Free RAM
ESP32-C6 1.83 MB (2.5 MB slot, 27 % free) about 167 KB
ESP32 with PSRAM 1.73 MB (3 MB slot, 42 % free) about 155 KB internal + 3.2 MB PSRAM
ESP32 4 MB 1.66 MB (2.5 MB slot, 34 % free) about 96 KB, Wi-Fi not connected

What is in this preview

  • Desktop: overlapping windows (move, resize, minimise, maximise, full
    screen), taskbar, start menu, desktop icons, drag and drop, copy and paste
    with the PC; Dark theme by default; the screen follows the terminal's size.
  • Apps: Terminal (TinyDesk Shell), Files, Editor, Network, MQTT (TLS),
    Modbus TCP/RTU with a TCP server, System Monitor, Task Manager, Log Viewer,
    Settings, Software Update (OTA with rollback), About.
  • Shell scripts (.tdsh): variables, if/while/for, functions, pipes
    and redirection; right-click → Run on the desktop.
  • Two editions: TinyDesk Desktop, and TinyDesk Shell on its own.
  • Security: physical recovery uses a transport trust policy, not just shell
    task identity; Telnet is opt-in; Telnet, SSH and FTP reject the factory
    password.
  • PC programs: the Windows desktop follows Windows Terminal when it is
    resized or maximised, and its shell has ifconfig, ping, date, cal
    and tz.
  • Board pins come from a configuration file (board command), not from
    the code.
  • Tests gate release builds; every release starts as a draft pre-release.

TinyDesk 0.1.4

TinyDesk 0.1.4 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 05 Oct 06:38

TinyDesk developer preview

A mouse-operated desktop running on an ESP32, displayed in your terminal.
Drag and resize windows, browse files, edit and save text, and use the
embedded shell. MQTT and Modbus apps connect the desktop to real projects.

This release is a developer preview: expect rough edges, and please report
what breaks.

New in 0.1.4

  • The first update you can install from Software Update: boards
    running 0.1.3 (ESP32-C6, ESP32 with PSRAM) find 0.1.4 with Check for
    official updates
    , or tell you about it within a day.
  • Your pins survive an official update. If you built the firmware
    with your own board.conf, its pins are built in, and an official
    update (built without them) would start without Ethernet, SD card or
    RS-485. Software Update now asks first: Save and install copies them
    to /etc/board.conf (as board save does in the shell); ota install
    refuses until they are saved.
  • Non-ASCII names line up and stay whole: Wi-Fi networks, files and
    window titles with characters such as é, ☕ or 中 no longer push the
    columns after them out of line (the signal bars overlapped the name),
    and desktop icon labels, titles and dialogs never cut a character in
    half.
  • Long command lines in the Terminal (and over SSH and serial)
    wrap over several rows and stay editable; before, text was left behind
    or doubled.
  • Editor: a file keeps its name when saved (on Linux the second Ctrl+S
    asked for a name). mqtt status names the TLS handshake. Both are
    contributions, with new tests for the widgets and the Editor.
  • For contributors and people who build from source: the ESP code
    shared by the boards is in ports/esp_idf; the C sources are formatted
    with clang-format 16, with a pre-commit hook (pip install pre-commit,
    then pre-commit install); see CONTRIBUTING.md.

Also since 0.1.0: official updates in Software Update and fixes for
boards without PSRAM (0.1.3), the SD card at /sd and in Files (0.1.2),
ping -c, MQTT over TLS in the PC programs, and tdsh.exe for Windows.

Install

  • ESP boards, from the browser: https://schikani.github.io/tinydesk-docs/install/
    (Chrome or Edge on a computer). Pick the edition and your exact board.
  • Open the board in the browser: https://schikani.github.io/tinydesk-docs/console/
    (a real terminal with mouse support; the installer's own Logs & Console
    cannot show the desktop).
  • Without the browser: each *-factory.bin below is flashed at offset 0
    with esptool; see the installer page for the commands.
  • PC programs: tinydesk-desktop-windows-x64.zip and
    tinydesk-shell-windows-x64.zip (Windows 10 or later, run them in Windows
    Terminal), tinydesk-desktop-linux-x86_64.tar.gz and
    tinydesk-shell-linux-x86_64.tar.gz (x86_64, built on Ubuntu 22.04).

Check the files against SHA256SUMS.txt. The firmware is not signed.
Factory flashing can erase user data: back up an existing board first.

Before connecting

Use a UTF-8 terminal with ANSI/VT cursor control and xterm mouse reporting,
or the web terminal above. ESP32-C6 uses its built-in USB port (any speed);
the classic ESP32 Desktop edition uses 921600 baud, the Shell edition
115200. On the local console, run passwd as root (initial password:
TinyDesk). Remote access is blocked until that password changes. Telnet
starts disabled; enable it explicitly in Network only on a trusted network.
It is unencrypted and root-only because it takes over the existing desktop.
SSH provides a separate encrypted shell, not the windowed desktop (the 4 MB
ESP32 Desktop build has no SSH server).

Physical password recovery is unavailable after a Telnet takeover until the
board reboots. Remote takeover is refused while physical recovery is active.

Choose the exact board

Desktop target Required hardware Screen Limits
ESP32-C6 8 MB flash, built-in USB Serial/JTAG up to 80×25
ESP32 with PSRAM 16 MB flash plus PSRAM (e.g. WROVER-IE N16R8) up to 256×96
ESP32 4 MB 4 MB flash, no PSRAM needed (e.g. WROOM-32) up to 80×25 no SSH server, no over-the-air updates
Windows, Linux x86_64 PC up to 400×150 no Wi-Fi, OTA or users (the PC's network is used)

Measured on our boards with this firmware (About → Free RAM, idle desktop
after start-up, Wi-Fi connected unless noted):

Board Firmware size (app slot) Free RAM
ESP32-C6 1.83 MB (2.5 MB slot, 27 % free) about 167 KB
ESP32 with PSRAM 1.73 MB (3 MB slot, 42 % free) about 155 KB internal + 3.2 MB PSRAM
ESP32 4 MB 1.66 MB (2.5 MB slot, 34 % free) about 96 KB, Wi-Fi not connected

What is in this preview

  • Desktop: overlapping windows (move, resize, minimise, maximise, full
    screen), taskbar, start menu, desktop icons, drag and drop, copy and paste
    with the PC; Dark theme by default; the screen follows the terminal's size.
  • Apps: Terminal (TinyDesk Shell), Files, Editor, Network, MQTT (TLS),
    Modbus TCP/RTU with a TCP server, System Monitor, Task Manager, Log Viewer,
    Settings, Software Update (OTA with rollback), About.
  • Shell scripts (.tdsh): variables, if/while/for, functions, pipes
    and redirection; right-click → Run on the desktop.
  • Two editions: TinyDesk Desktop, and TinyDesk Shell on its own.
  • Security: physical recovery uses a transport trust policy, not just shell
    task identity; Telnet is opt-in; Telnet, SSH and FTP reject the factory
    password.
  • PC programs: the Windows desktop follows Windows Terminal when it is
    resized or maximised, and its shell has ifconfig, ping, date, cal
    and tz.
  • Board pins come from a configuration file (board command), not from
    the code.
  • Tests gate release builds; every release starts as a draft pre-release.

TinyDesk 0.1.3

TinyDesk 0.1.3 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 01 Oct 15:54

TinyDesk developer preview

A mouse-operated desktop running on an ESP32, displayed in your terminal.
Drag and resize windows, browse files, edit and save text, and use the
embedded shell. MQTT and Modbus apps connect the desktop to real projects.

This release is a developer preview: expect rough edges, and please report
what breaks.

New in 0.1.3

  • Official updates: Software Update has Check for official updates
    (it fills in the newest release's image and shows its version, date and
    size; Install installs it) and Check daily and notify me, which tells
    you once when a newer version is out. Shell: ota official. From this
    release on, each release carries what the ESP32-C6 and ESP32 (PSRAM)
    boards need for it; the 4 MB ESP32 cannot update over the air.

Fixes for problems reported on an ESP32-2432S028R (4 MB, no PSRAM):

  • No more restart with many windows open. Opening the Log Viewer (or
    another app) with several windows open could restart a board without
    PSRAM. Now an app that does not fit says Too many windows are open.
    Close one, then try again.
    , and more fits: 16 windows, 96 widgets on
    boards without PSRAM (was 40), 128 with it. With every app opened one
    after another: all 13 fit on the ESP32 with PSRAM, 12 on the 4 MB ESP32,
    11 on the ESP32-C6.
  • Task Manager lists the tasks with many windows open (it could stay
    empty); the Task Manager, MQTT and Modbus say Not enough memory instead
    of not opening.
  • nano in the Terminal window shows its status line and help (Ctrl+C:
    the cursor position); it assumed an 80x24 screen.
  • The factory password is named: passwd says the old password is
    TinyDesk (capital T and D) while root still has it, and the Network app
    and ssh start say so when they keep remote access off.
  • Software Update on the 4 MB ESP32 explains that it cannot update over
    the air and how to update instead.

Also since 0.1.0: the SD card at /sd and in Files (0.1.2), ping -c,
MQTT over TLS in the PC programs, and tdsh.exe for Windows.

Install

  • ESP boards, from the browser: https://schikani.github.io/tinydesk-docs/install/
    (Chrome or Edge on a computer). Pick the edition and your exact board.
  • Open the board in the browser: https://schikani.github.io/tinydesk-docs/console/
    (a real terminal with mouse support; the installer's own Logs & Console
    cannot show the desktop).
  • Without the browser: each *-factory.bin below is flashed at offset 0
    with esptool; see the installer page for the commands.
  • PC programs: tinydesk-desktop-windows-x64.zip and
    tinydesk-shell-windows-x64.zip (Windows 10 or later, run them in Windows
    Terminal), tinydesk-desktop-linux-x86_64.tar.gz and
    tinydesk-shell-linux-x86_64.tar.gz (x86_64, built on Ubuntu 22.04).

Check the files against SHA256SUMS.txt. The firmware is not signed.
Factory flashing can erase user data: back up an existing board first.

Before connecting

Use a UTF-8 terminal with ANSI/VT cursor control and xterm mouse reporting,
or the web terminal above. ESP32-C6 uses its built-in USB port (any speed);
the classic ESP32 Desktop edition uses 921600 baud, the Shell edition
115200. On the local console, run passwd as root (initial password:
TinyDesk). Remote access is blocked until that password changes. Telnet
starts disabled; enable it explicitly in Network only on a trusted network.
It is unencrypted and root-only because it takes over the existing desktop.
SSH provides a separate encrypted shell, not the windowed desktop (the 4 MB
ESP32 Desktop build has no SSH server).

Physical password recovery is unavailable after a Telnet takeover until the
board reboots. Remote takeover is refused while physical recovery is active.

Choose the exact board

Desktop target Required hardware Screen Limits
ESP32-C6 8 MB flash, built-in USB Serial/JTAG up to 80×25
ESP32 with PSRAM 16 MB flash plus PSRAM (e.g. WROVER-IE N16R8) up to 256×96
ESP32 4 MB 4 MB flash, no PSRAM needed (e.g. WROOM-32) up to 80×25 no SSH server, no over-the-air updates
Windows, Linux x86_64 PC up to 400×150 no Wi-Fi, OTA or users (the PC's network is used)

Measured on our boards with this firmware (About → Free RAM, idle desktop,
Wi-Fi connected):

Board Firmware size (app slot) Free RAM
ESP32-C6 1.80 MB (2.5 MB slot, 28 % free) about 179 KB
ESP32 with PSRAM 1.71 MB (3 MB slot, 43 % free) about 155 KB internal + 3.2 MB PSRAM
ESP32 4 MB 1.64 MB (2.5 MB slot, 35 % free) about 71 KB

What is in this preview

  • Desktop: overlapping windows (move, resize, minimise, maximise, full
    screen), taskbar, start menu, desktop icons, drag and drop, copy and paste
    with the PC; Dark theme by default; the screen follows the terminal's size.
  • Apps: Terminal (TinyDesk Shell), Files, Editor, Network, MQTT (TLS),
    Modbus TCP/RTU with a TCP server, System Monitor, Task Manager, Log Viewer,
    Settings, Software Update (OTA with rollback), About.
  • Shell scripts (.tdsh): variables, if/while/for, functions, pipes
    and redirection; right-click → Run on the desktop.
  • Two editions: TinyDesk Desktop, and TinyDesk Shell on its own.
  • Security: physical recovery uses a transport trust policy, not just shell
    task identity; Telnet is opt-in; Telnet, SSH and FTP reject the factory
    password.
  • PC programs: the Windows desktop follows Windows Terminal when it is
    resized or maximised, and its shell has ifconfig, ping, date, cal
    and tz.
  • Board pins come from a configuration file (board command), not from
    the code.
  • Tests gate release builds; every release starts as a draft pre-release.

TinyDesk 0.1.2

TinyDesk 0.1.2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 28 Sep 16:41

TinyDesk developer preview

A mouse-operated desktop running on an ESP32, displayed in your terminal.
Drag and resize windows, browse files, edit and save text, and use the
embedded shell. MQTT and Modbus apps connect the desktop to real projects.

This release is a developer preview: expect rough edges, and please report
what breaks.

New in 0.1.2

  • SD card: with TinyDesk Shell 0.1.2's sd command a FAT card on the
    SPI bus is /sd in the Terminal, FTP and SFTP, and the folder sd in
    Files; long file names work. sd mount / sd umount (root), or
    board set sd.automount 1 to mount it at every boot. The release
    firmware has no pins built in: set them once, for example
    board set sd.cs 22 when the card shares the W6100's eth.* bus, or
    also sd.miso, sd.mosi and sd.sclk, then restart.
  • ping in the Terminal window shows the replies and the statistics
    (only its first line appeared), and takes -c <count>.

Also since 0.1.0: MQTT over TLS in the Windows and Linux programs (mbedTLS
v3.6.7), and tinydesk-shell-windows-x64.zip with tdsh.exe.

Install

  • ESP boards, from the browser: https://schikani.github.io/tinydesk-docs/install/
    (Chrome or Edge on a computer). Pick the edition and your exact board.
  • Open the board in the browser: https://schikani.github.io/tinydesk-docs/console/
    (a real terminal with mouse support; the installer's own Logs & Console
    cannot show the desktop).
  • Without the browser: each *-factory.bin below is flashed at offset 0
    with esptool; see the installer page for the commands.
  • PC programs: tinydesk-desktop-windows-x64.zip and
    tinydesk-shell-windows-x64.zip (Windows 10 or later, run them in Windows
    Terminal), tinydesk-desktop-linux-x86_64.tar.gz and
    tinydesk-shell-linux-x86_64.tar.gz (x86_64, built on Ubuntu 22.04).

Check the files against SHA256SUMS.txt. The firmware is not signed.
Factory flashing can erase user data: back up an existing board first.

Before connecting

Use a UTF-8 terminal with ANSI/VT cursor control and xterm mouse reporting,
or the web terminal above. ESP32-C6 uses its built-in USB port (any speed);
the classic ESP32 Desktop edition uses 921600 baud, the Shell edition
115200. On the local console, run passwd as root (initial password:
TinyDesk). Remote access is blocked until that password changes. Telnet
starts disabled; enable it explicitly in Network only on a trusted network.
It is unencrypted and root-only because it takes over the existing desktop.
SSH provides a separate encrypted shell, not the windowed desktop (the 4 MB
ESP32 Desktop build has no SSH server).

Physical password recovery is unavailable after a Telnet takeover until the
board reboots. Remote takeover is refused while physical recovery is active.

Choose the exact board

Desktop target Required hardware Screen Limits
ESP32-C6 8 MB flash, built-in USB Serial/JTAG up to 80×25
ESP32 with PSRAM 16 MB flash plus PSRAM (e.g. WROVER-IE N16R8) up to 256×96
ESP32 4 MB 4 MB flash, no PSRAM needed (e.g. WROOM-32) up to 80×25 no SSH server, no over-the-air updates
Windows, Linux x86_64 PC up to 400×150 no Wi-Fi, OTA or users (the PC's network is used)

Measured on our boards with this firmware (About → Free RAM, idle desktop,
Wi-Fi connected):

Board Firmware size (app slot) Free RAM
ESP32-C6 1.80 MB (2.5 MB slot, 28 % free) about 179 KB
ESP32 with PSRAM 1.71 MB (3 MB slot, 43 % free) about 155 KB internal + 3.2 MB PSRAM
ESP32 4 MB 1.64 MB (2.5 MB slot, 35 % free) about 71 KB

What is in this preview

  • Desktop: overlapping windows (move, resize, minimise, maximise, full
    screen), taskbar, start menu, desktop icons, drag and drop, copy and paste
    with the PC; Dark theme by default; the screen follows the terminal's size.
  • Apps: Terminal (TinyDesk Shell), Files, Editor, Network, MQTT (TLS),
    Modbus TCP/RTU with a TCP server, System Monitor, Task Manager, Log Viewer,
    Settings, Software Update (OTA with rollback), About.
  • Shell scripts (.tdsh): variables, if/while/for, functions, pipes
    and redirection; right-click → Run on the desktop.
  • Two editions: TinyDesk Desktop, and TinyDesk Shell on its own.
  • Security: physical recovery uses a transport trust policy, not just shell
    task identity; Telnet is opt-in; Telnet, SSH and FTP reject the factory
    password.
  • PC programs: the Windows desktop follows Windows Terminal when it is
    resized or maximised, and its shell has ifconfig, ping, date, cal
    and tz.
  • Board pins come from a configuration file (board command), not from
    the code.
  • Tests gate release builds; every release starts as a draft pre-release.

TinyDesk 0.1.1

TinyDesk 0.1.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 28 Sep 09:26

TinyDesk developer preview

A mouse-operated desktop running on an ESP32, displayed in your terminal.
Drag and resize windows, browse files, edit and save text, and use the
embedded shell. MQTT and Modbus apps connect the desktop to real projects.

This release is a developer preview: expect rough edges, and please report
what breaks.

New in 0.1.1

  • MQTT over TLS in the PC programs. The Windows and Linux programs of
    0.1.0 were built without mbedTLS and refused mqtts:// ("not available in
    this build"). They are now built against mbedTLS v3.6.7, and a release
    build without TLS fails.
  • TinyDesk Shell for Windows: tinydesk-shell-windows-x64.zip has
    tdsh.exe, the Shell edition as a native Windows program (TinyDesk Shell
    0.1.1). The Desktop edition's Windows program uses the same Windows port.
  • Messages say "TinyDesk" throughout; the firmware is otherwise unchanged
    from 0.1.0.

Install

  • ESP boards, from the browser: https://schikani.github.io/tinydesk-docs/install/
    (Chrome or Edge on a computer). Pick the edition and your exact board.
  • Open the board in the browser: https://schikani.github.io/tinydesk-docs/console/
    (a real terminal with mouse support; the installer's own Logs & Console
    cannot show the desktop).
  • Without the browser: each *-factory.bin below is flashed at offset 0
    with esptool; see the installer page for the commands.
  • PC programs: tinydesk-desktop-windows-x64.zip and
    tinydesk-shell-windows-x64.zip (Windows 10 or later, run them in Windows
    Terminal), tinydesk-desktop-linux-x86_64.tar.gz and
    tinydesk-shell-linux-x86_64.tar.gz (x86_64, built on Ubuntu 22.04).

Check the files against SHA256SUMS.txt. The firmware is not signed.
Factory flashing can erase user data: back up an existing board first.

Before connecting

Use a UTF-8 terminal with ANSI/VT cursor control and xterm mouse reporting,
or the web terminal above. ESP32-C6 uses its built-in USB port (any speed);
the classic ESP32 Desktop edition uses 921600 baud, the Shell edition
115200. On the local console, run passwd as root (initial password:
TinyDesk). Remote access is blocked until that password changes. Telnet
starts disabled; enable it explicitly in Network only on a trusted network.
It is unencrypted and root-only because it takes over the existing desktop.
SSH provides a separate encrypted shell, not the windowed desktop.

Physical password recovery is unavailable after a Telnet takeover until the
board reboots. Remote takeover is refused while physical recovery is active.

Choose the exact board

Desktop target Required hardware Screen Limits
ESP32-C6 8 MB flash, built-in USB Serial/JTAG up to 80×25
ESP32 with PSRAM 16 MB flash plus PSRAM (e.g. WROVER-IE N16R8) up to 256×96
ESP32 4 MB 4 MB flash, no PSRAM needed (e.g. WROOM-32) up to 80×25 no SSH server, no over-the-air updates
Windows, Linux x86_64 PC up to 400×150 no Wi-Fi, OTA or users (the PC's network is used)

Measured on our boards with this firmware (About → Free RAM, idle desktop,
Wi-Fi connected):

Board Firmware size (app slot) Free RAM
ESP32-C6 1.80 MB (2.5 MB slot, 28 % free) about 179 KB
ESP32 with PSRAM 1.71 MB (3 MB slot, 43 % free) about 155 KB internal + 3.2 MB PSRAM
ESP32 4 MB 1.64 MB (2.5 MB slot, 35 % free) about 71 KB

What is in this preview

  • Desktop: overlapping windows (move, resize, minimise, maximise, full
    screen), taskbar, start menu, desktop icons, drag and drop, copy and paste
    with the PC; Dark theme by default; the screen follows the terminal's size.
  • Apps: Terminal (TinyDesk Shell), Files, Editor, Network, MQTT (TLS),
    Modbus TCP/RTU with a TCP server, System Monitor, Task Manager, Log Viewer,
    Settings, Software Update (OTA with rollback), About.
  • Shell scripts (.tdsh): variables, if/while/for, functions, pipes
    and redirection; right-click → Run on the desktop.
  • Two editions: TinyDesk Desktop, and TinyDesk Shell on its own.
  • Security: physical recovery uses a transport trust policy, not just shell
    task identity; Telnet is opt-in; Telnet, SSH and FTP reject the factory
    password.
  • PC programs: the Windows desktop follows Windows Terminal when it is
    resized or maximised, and its shell has ifconfig, ping, date, cal
    and tz.
  • Board pins come from a configuration file (board command), not from
    the code.
  • Tests gate release builds; every release starts as a draft pre-release.

TinyDesk 0.1.0

TinyDesk 0.1.0 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 28 Sep 06:27

TinyDesk developer preview

A mouse-operated desktop running on an ESP32, displayed in your terminal.
Drag and resize windows, browse files, edit and save text, and use the
embedded shell. MQTT and Modbus apps connect the desktop to real projects.

This release is a developer preview: expect rough edges, and please report
what breaks.

Install

  • ESP boards, from the browser: https://schikani.github.io/tinydesk-docs/install/
    (Chrome or Edge on a computer). Pick the edition and your exact board.
  • Open the board in the browser: https://schikani.github.io/tinydesk-docs/console/
    (a real terminal with mouse support; the installer's own Logs & Console
    cannot show the desktop).
  • Without the browser: each *-factory.bin below is flashed at offset 0
    with esptool; see the installer page for the commands.
  • PC programs: tinydesk-desktop-windows-x64.zip (Windows 10 or later, run
    it in Windows Terminal), tinydesk-desktop-linux-x86_64.tar.gz and
    tinydesk-shell-linux-x86_64.tar.gz (x86_64, built on Ubuntu 22.04).

Check the files against SHA256SUMS.txt. The firmware is not signed.
Factory flashing can erase user data: back up an existing board first.

Before connecting

Use a UTF-8 terminal with ANSI/VT cursor control and xterm mouse reporting,
or the web terminal above. ESP32-C6 uses its built-in USB port (any speed);
the classic ESP32 Desktop edition uses 921600 baud, the Shell edition
115200. On the local console, run passwd as root (initial password:
TinyDesk). Remote access is blocked until that password changes. Telnet
starts disabled; enable it explicitly in Network only on a trusted network.
It is unencrypted and root-only because it takes over the existing desktop.
SSH provides a separate encrypted shell, not the windowed desktop.

Physical password recovery is unavailable after a Telnet takeover until the
board reboots. Remote takeover is refused while physical recovery is active.

Choose the exact board

Desktop target Required hardware Screen Limits
ESP32-C6 8 MB flash, built-in USB Serial/JTAG up to 80×25
ESP32 with PSRAM 16 MB flash plus PSRAM (e.g. WROVER-IE N16R8) up to 256×96
ESP32 4 MB 4 MB flash, no PSRAM needed (e.g. WROOM-32) up to 80×25 no SSH server, no over-the-air updates
Windows, Linux x86_64 PC up to 400×150 no Wi-Fi, OTA or users (the PC's network is used)

Measured on our boards with this firmware (About → Free RAM, idle desktop,
Wi-Fi connected):

Board Firmware size (app slot) Free RAM
ESP32-C6 1.80 MB (2.5 MB slot, 28 % free) about 179 KB
ESP32 with PSRAM 1.71 MB (3 MB slot, 43 % free) about 155 KB internal + 3.2 MB PSRAM
ESP32 4 MB 1.64 MB (2.5 MB slot, 35 % free) about 71 KB

What is in this preview

  • Desktop: overlapping windows (move, resize, minimise, maximise, full
    screen), taskbar, start menu, desktop icons, drag and drop, copy and paste
    with the PC; Dark theme by default; the screen follows the terminal's size.
  • Apps: Terminal (TinyDesk Shell), Files, Editor, Network, MQTT (TLS),
    Modbus TCP/RTU with a TCP server, System Monitor, Task Manager, Log Viewer,
    Settings, Software Update (OTA with rollback), About.
  • Shell scripts (.tdsh): variables, if/while/for, functions, pipes
    and redirection; right-click → Run on the desktop.
  • Two editions: TinyDesk Desktop, and TinyDesk Shell on its own.
  • Security: physical recovery uses a transport trust policy, not just shell
    task identity; Telnet is opt-in; Telnet, SSH and FTP reject the factory
    password.
  • PC programs: the Windows desktop follows Windows Terminal when it is
    resized or maximised, and its shell has ifconfig, ping, date, cal
    and tz.
  • Board pins come from a configuration file (board command), not from
    the code.
  • Tests gate release builds; every release starts as a draft pre-release.