Close
0%
0%

Sushi IoT Framework

Sushi IoT is a firmware framework for ESP32-based boards that combines solid system management with the flexibility of MicroPython

Similar projects worth following
0 followers
It is useful for students and makers to accelerate projects by using reliable building blocks to manage core functions, allowing you to focus on application development without getting lost in low-level system details. APPLICATIONS * Student experiments * Home automation systems * IoT hubs * Alarm systems * Domotics servers * Remote monitoring and data logging systems (e.g., weather stations) * Local and remote control systems (via local interface, web interface, or modem)

Overview

Features

Works on very common commercial boards based on ESP32 SoC, widely available online for DIY electronics projects.

It simplifies development:

  • Hardware management: Wi-Fi, LCD, keyboard, modem, I/O expansion, relays, power detection, battery level, buzzer.
  • Software features: System management via web UI (network and system settings, logs, status, etc.) and a physical interface for on-device menus.
  • Embedded MicroPython environment: Users can run their own scripts freely, while built-in libraries provide optional system management features.
  • Embedded high-level MicroPython libraries for rapid access to hardware and software functions (custom menus, web pages, I/O expansion, SMS, HTTP requests, etc.).

Manages all essential components typically present in an IoT system, regardless of the specific application:

  • Physical interface management (keyboard, display, status LEDs)
  • Wireless connection as client or access point
  • Drivers for all hardware components present on the board (I/O expander, modem, etc.)
  • Web interface with user-level access (web server and UI)
  • Modular menu management for physical interface
  • High-level API for many typical functions: HTTP requests, SMS, GSM calls, web server extension, I2C communication, etc.

Code Demo

Manage relays via a custom menu

Custom menu integration

Custom menu 1 Custom menu 2

Workflow

Typical Sushi IoT Project Workflow

Workflow-1


Workflow-2

Workflow-3 Workflow-4

Credits

This project embeds MicroPython, a lean and efficient implementation of Python 3 optimized for microcontrollers. We acknowledge and thank the MicroPython developers and contributors for their outstanding work. MicroPython is released under the MIT License.

Next Steps Roadmap

  • Extend MicroPython libraries with complete example projects showing real IoT applications.
  • Add support for additional ESP32 boards and modules.
  • Provide step-by-step tutorials for beginners and makers.

  • Example with ESP32DevKitC Board to add a custom menu to UI to switch ON/OFF a relay OUTPUT

    Marco16 hours ago 0 comments

    Sushi - IoT MicroPython example

    • Project: Menu example
    • Description: Add a custom menu to physical user interface to switch ON/OFF a relay OUTPUT
    • Video demo : Sushi IoT on instagram

    Source files

    • "menu_example.py" : main example code
    • "menu_example_config.py" : sushi IoT configuration

    Source files on GitHub : dkc_menu example

    Instructions

    • Connect the components on the breadboard.
    • Download and flash the Sushi IoT Firmware onto the board.
    • Connect ESP32DevKitC to your PC by the USB connector (or use WebREPL if you prefer).
    • If you are new to MicroPython see this basic MicroPython guide.
    • Transfer the '.py' example source files to the board using your favourite MicroPython interface.
    • Run the main script file. Note that it's normal on the first run (and in general, if the device configuration has changed): the device will store the settings and restart itself.

    Hardware components

    This project uses the following hardware:

    In each component overview file there are some brief info. All components can be found widely on the web, so just as example it's provided some link where can be bought.

    Overview

    Hardware connections table

    PinConnected ToTypeNote
    ESP32.USBUSB Power suppplier5V PowerPowers the board and peripherals
    ESP32.GNDBB.GNDGNDCommon ground network (1)
    ESP32.5VBB.VCC5VShared power rail (1)
    Relay.VCCBB.VCC5VPower supply for relay module
    Relay.GNDBB.GNDGNDCommon ground
    Relay.INESP32.GPIO15DigitalRelay control signal
    Keypad.GNDBB.GNDGNDCommon ground
    Keypad.K1ESP32.GPIO19DigitalButton 1
    Keypad.K2ESP32.GPIO18DigitalButton 2
    Keypad.K3ESP32.GPIO5DigitalButton 3
    Keypad.K4ESP32.GPIO4DigitalButton 4
    OLED.VCCBB.VCC5VPower supply (2)
    OLED.GNDBB.GNDGNDCommon ground
    OLED.SDAESP32.GPIO21SDAI2C data
    OLED.SCLESP32.GPIO22SCLI2C clock

    Notes:

    • (1) “BB.VCC” & “BB.GND” indicates a connection to the breadboard power or ground rails.
    • (2) Some OLED may require 3.3V, in this case connect to ESP32.3V3 pin.

    Resources

    Sushi IoT Firmware download
    Online coding manual
    Sushi IoT project overview

    Quick reference
    In the REPL, run:

     sushi.help()

    or see the result directly here.

View project log

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates