Skip to content

Repository files navigation

CrowPanel AI Assistant

A simple local-first AI assistant built for the CrowPanel Advance 7-inch ESP32-S3 display. The panel connects over Wi-Fi to an Ollama server running on the local network, sends prompts to the Ollama API, and displays the generated response directly on the 800x480 screen.

The project is intentionally small and represents the first working stage of a private home AI assistant.

Video

I Built Local Offline AI Assistant with ESP32 & Ollama

YouTube: https://www.youtube.com/watch?v=YXOzE8Rg--g

What it does

  • Runs on CrowPanel Advance with ESP32-S3 and an 800x480 display.
  • Connects to a local Wi-Fi network.
  • Sends HTTP POST requests to the Ollama /api/generate endpoint.
  • Uses smollm2:135m in the current sketch.
  • Displays the user question and AI response on the CrowPanel screen.
  • Generates a short joke periodically when the assistant is idle.
  • Keeps the AI processing on your own local server instead of using a cloud AI API.

How it works

CrowPanel Advance (ESP32-S3)
          |
          | Wi-Fi / HTTP
          v
   Local Ollama server
          |
          v
     Local AI model

The ESP32-S3 handles the display and communication. The language model itself runs on another machine on the same network, for example an old laptop running Ollama.

Requirements

Hardware

  • CrowPanel Advance 7-inch ESP32-S3
  • Wi-Fi network
  • Computer, laptop, Raspberry Pi, or another machine capable of running Ollama

Software

  • Arduino IDE with ESP32 support
  • LovyanGFX
  • Ollama
  • Ollama model used by the sketch: smollm2:135m

Configuration

Open AIassistant_CrowPanel_ESP32_Advance.ino and set your Wi-Fi credentials:

const char* ssid = "YOUR_WIFI_NAME";
const char* password = "YOUR_WIFI_PASSWORD";

Then set the address of the Ollama server:

const char* invoke_url = "http://192.168.1.100:11434/api/generate";

Replace 192.168.1.100 with the local IP address of the machine running Ollama.

The model used by the current code is configured in the request as:

"model": "smollm2:135m"

Make sure that model is available on your Ollama server before running the sketch.

Upload

  1. Open AIassistant_CrowPanel_ESP32_Advance.ino in Arduino IDE.
  2. Keep LovyanGFX_Driver.h and pins_config.h in the same sketch directory.
  3. Configure Wi-Fi and the Ollama server address.
  4. Select the correct ESP32-S3 board/settings for your CrowPanel Advance.
  5. Compile and upload the sketch.

Current stage

This repository contains the first proof-of-concept version of the assistant. The current sketch starts with a predefined question (Why is the sky blue?) and then periodically requests jokes from the local model.

The GT911 touch controller is configured in the display driver, but this version does not yet provide an on-screen keyboard or interactive prompt entry.

Planned next steps include a more complete GUI, touch-based interaction, speech-to-text, text-to-speech, and local smart-home control.

Files

AIassistant_CrowPanel_ESP32_Advance.ino  Main Arduino sketch
LovyanGFX_Driver.h                       CrowPanel display and touch configuration
pins_config.h                            Display resolution configuration
README.md                                Project documentation
LICENSE                                  MIT license
.gitignore                               Git ignore rules

License

This project is released under the MIT License. See LICENSE.

Third-party libraries used by the project remain subject to their respective licenses.

About

Local-first AI assistant for CrowPanel Advance (ESP32-S3) using Ollama over Wi-Fi. Private AI running inside your local network.

Topics

Resources

Stars

6 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages