Skip to content
Ye-A! edited this page Nov 13, 2025 · 1 revision

🧠 UnFi Bootloader / Logger by Sliz®

A universal, lightweight, and ultra-fast bootloader + system logger for Arduino & ESP devices.


🚀 What is UnFi?

UnFi (Universal Firmware Interface) is a compact, cross-platform bootloader and logging system designed for embedded developers who want control, speed, and visibility.

It supports:

  • Arduino Uno, Nano, Mega, Leonardo, Due, Micro, Pro Mini, MKR WiFi 1010, Esplora, Yun
  • ESP32 (WROOM)
  • ESP8266 (NodeMCU)

⚡ Features

Feature Description
Lightning Fast Boots your system in milliseconds — up to 70% faster than traditional bootloaders.
🔒 Secure by Sliz® Built-in integrity checks and protected startup sequence.
🌐 Universal Support Works seamlessly across Arduino, ESP32, and ESP8266 platforms.
🧠 Self-Diagnostics Performs intelligent system scans on every boot.
🔄 OTA Ready Over-the-air update support (planned in v2).
📦 Minimal Footprint Occupies less than 4KB of flash memory.

🧩 Selecting Your Device

UnFi is designed to be plug-and-play.
Choose your board folder according to this table:

Device Folder Notes
Arduino Uno Uno/ Classic Serial, LED on pin 13
Arduino Mega Mega/ Extended UART support
Arduino Due Due/ ARM-based SAM3X8E
ESP32 WROOM ESP32_WROOM/ LED on pin 2, no while (!Serial)
ESP8266 NodeMCU ESP8266_NodeMCU/ LED_BUILTIN (inverted logic)
MKR WiFi 1010 MKR_WiFi_1010/ OTA-ready hardware
Esplora Esplora/ Built-in sensors
Yun Yun/ Ethernet/WiFi bridge support

💡 Tip: For custom boards, copy the code from the closest architecture (e.g., use ESP32 for ESP32-S3).


🧭 Getting Started

To begin using UnFi Bootloader / Logger, open the main project folder and locate the UnFi/ directory.
Inside, you’ll find two main categories: Arduino and ESP.

🟦 For Arduino Boards

  1. Open the path: UnFi/Arduino/

  2. Choose your device folder — for example:

  • Uno/
  • Mega/
  • Nano/
  • Leonardo/
  • Due/
  • MKR_WiFi_1010/
  1. Inside the folder, open the file: boot.ino

  2. Launch Arduino IDE (or PlatformIO), select your board under
    Tools → Board → [Your Arduino Model], and upload the sketch.

After uploading, open Serial Monitor at 115200 baud.
You should see logs like:


[UnFi] Bootloader started.
[UnFi] Performing system checks...
[UnFi] System OK.
[UnFi] Bootloader completed.


🟩 For ESP Devices

  1. Navigate to: UnFi/ESP/

  2. Choose your device folder:

  • ESP32_WROOM/
  • ESP8266_NodeMCU/
  1. Open the file: boot.ino

  2. In Arduino IDE, go to:

  • Tools → Board → ESP32 Dev Module (or NodeMCU 1.0 for ESP8266)
  • Tools → Port → [Your COM Port]
  1. Upload the sketch and open Serial Monitor at 115200 baud.

You should see the same startup log confirming that the bootloader is active.


🧠 Custom Devices

If your device is not listed:

  • Copy the closest folder (for example, ESP32_WROOM or Uno)
  • Paste it into a new folder named after your board
  • Adjust the top header inside boot.ino:
/*
 UnFi Bootloader / Logger by Sliz®
 YourDeviceName
 Version 1.start.up
*/
  • Modify only the pin number if needed:

    #define LED_STATUS <your LED pin>

Once everything is uploaded, your board will boot faster, blink with status LEDs, perform diagnostics, and log results automatically. You’re now running UnFi 🚀


⚙️ Configuration

UnFi does not require external dependencies other than Arduino.h.

Key Definitions:

#define LOG Serial
#define LED_STATUS 13
bool bootCompleted = false;

Core Functions:

Function Description
blinkLED(times, delayMs) Blink the onboard LED
logBootStart() Log when bootloader starts
logBootEnd() Log when bootloader finishes
logError(msg) Print error message and flash LED
checkSystem() Perform hardware/system diagnostics
userSetup() Your own setup logic
userLoop() Your own loop logic

💻 Example Code

Basic Sensor Logger

void userSetup() {
  LOG.println("[INIT] Starting sensors...");
  pinMode(A0, INPUT);
}

void userLoop() {
  int value = analogRead(A0);
  LOG.print("[DATA] Sensor: ");
  LOG.println(value);
  delay(500);
}

LED Blinker

void userLoop() {
  blinkLED(1, 100);
  delay(900);
}

🚨 Common Issues

Problem Cause Fix
Serial Monitor shows nothing Missing Serial.begin(115200) or wrong baud rate Check setup() baud rate
LED not blinking Wrong LED pin Update LED_STATUS define
Sketch upload failed Incorrect board selected Select the correct board in Tools → Board

📅 Roadmap

v1.start.up

  • Core bootloader + logging
  • Support for Arduino, ESP32, ESP8266

🧩 v0.1 (in progress)

  • Error checking
  • Web dashboard with live logs
  • Flash recovery system
  • Smart Boot Analyzer

❤️ Credits

Author: Sliz® Project: UnFi Bootloader


🔥 “UnFi — because your device deserves a smart start.”