Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 

Repository files navigation

ESP32 Web & Serial Shell

A lightweight, Unix-like interactive shell and firmware for the ESP32 built on top of FreeRTOS, LittleFS, and the Duktape JavaScript engine.

Developed in the Arduino IDE, this project provides a universal, zero-hassle way to get a functional command-line interface and script execution environment running on your microcontroller in under two minutes.

Created as part of a Master's Dissertation in Informatics & Computer Engineering.


Key Features

  • Universal Arduino Setup: Easy to build, customize, and flash via the standard Arduino IDE.
  • Dual Interface: Full shell access via standard Serial CLI or over a lightweight Web Interface.
  • Embedded JS Engine: Run JavaScript scripts directly on the hardware powered by Duktape.
  • File System Support: Native LittleFS integration for managing files and scripts on flash memory.
  • Multi-tasking Core: Built on FreeRTOS for responsive multitasking.

Flashing & Quickstart

1. Requirements & Board Setup

  • IDE: Arduino IDE (with ESP32 board support installed)
  • Target Board: ESP32 (e.g., select Node32S or standard ESP32 Dev Module)

2. Flashing the Firmware

  1. Clone or download this repository.
  2. Open ESP32-web-shell.ino in the Arduino IDE.
  3. Select your board and COM port.
  4. Set the Serial Monitor baud rate to 115200.
  5. Upload the sketch to your ESP32.

Enabling the Web Interface

By default, the system operates over the Serial Monitor. To switch on the Web Shell:

  1. Open the configuration file located at init/config.txt.
  2. Change the web_interface variable to 1.
  3. Re-upload or save to your LittleFS image.
  4. Connect to the ESP32 Access Point from your Wi-Fi settings:
    • SSID: ESP32-Shell (or your configured AP name)
    • Default Password: 12345678
  5. Open your browser and navigate to:
    [http://192.168.4.1](http://192.168.4.1)
    

About

This project is an aproach on the development of an ESP32 shell that can work both on serial and web. It acts as a way to use the microcontroller with a UNIX like experience, hence most of the experience will seem familiar to a lot of users.

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages