Signed-off-by: YoungSoo Shin <shinys000114@gmail.com>
ODROID Power Mate
A web-based remote power and monitoring tool for ODROID Single Board Computers (SBCs), powered by an ESP32-C3.
This project provides a comprehensive web interface to control power, monitor real-time metrics, and access the serial console of your ODROID from any web browser on your local network.
Features
- Web-Based UI: Modern, responsive interface built with Bootstrap and vanilla JavaScript.
- Power Control: Independently toggle Main (e.g., 12V) and USB (5V) power supplies.
- Power Actions: Remotely trigger Reset and Power On/Off actions.
- Real-time Metrics: Monitor voltage, current, and power consumption with a live-updating graph.
- Interactive Serial Terminal: Access your ODROID's serial console directly from the web UI via WebSockets.
- Wi-Fi Management:
- Scan and connect to Wi-Fi networks (STA mode).
- Enable Access Point mode (AP+STA) to connect directly to the device.
- Configure static IP settings.
Prerequisites
Before you begin, ensure you have the following installed and configured on your system:
- ESP-IDF (Espressif IoT Development Framework): This project is developed and tested with ESP-IDF v5.4 or later.
- Node.js and npm: Required to build the web application. Node.js LTS version (e.g., 18.x or later) is recommended.
- Nanopb: Required to build for protobuf.
Install dependencies (Ubuntu)
sudo apt install nodejs npm nanopb
How to Build and Flash
-
Clone the repository:
git clone https://git.sys114.com/shinys000114/odroid-power-mate.git cd odroid-power-mate -
Set up the ESP-IDF environment: Open a terminal and source the ESP-IDF export script. The path may vary depending on your installation location.
. $HOME/esp/esp-idf/export.sh -
(Optional) Configure the project: You can configure project-specific settings, such as default Wi-Fi credentials, by running
menuconfig.idf.py menuconfig -
Build the project: This command compiles the application, bootloader, partition table, and web page data.
idf.py build -
Flash the firmware: Connect your
ODROID Power Mateboard to your computer and replace/dev/ttyACM0with your device's serial port.idf.py -p /dev/ttyACM0 flash -
Monitor the output: To view the serial logs from the device, use the
monitorcommand. This is useful for finding the device's IP address after it connects to your Wi-Fi.idf.py -p /dev/ttyACM0 monitorTo exit the monitor, press
Ctrl+].Otherwise, you can use minicom
minicom -D /dev/ttyACM0 -b 115200
Usage
- After flashing, the ESP32 will either connect to the pre-configured Wi-Fi network or start an Access Point (APSTA).
- Check the serial monitor logs to find the IP address assigned to the device in STA mode, or the default AP address (usually
192.168.4.1). - Open a web browser and navigate to the device's IP address.
- You should now see the ODROID Remote control panel.
Docs
- Hardkernel WiKi: https://wiki.odroid.com/accessory/powermate
Repo
- Hardkernel Github: https://github.com/hardkernel/odroid-powermate
- Original Repo: https://github.com/shinys000114/odroid-powermate