Skip to content

Carmoruda/Jarvis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Jarvis: Desk Buddy

An open-source desk buddy that blinks, tells the time, and notices when you're near.

Status PlatformIO Firmware
MIT

Jarvis Screenshots

Overview

Jarvis is an open-source desktop companion built on an ESP32. It shows a pair of animated eyes on an OLED display, keeps the time synced over WiFi, and uses an ultrasonic sensor to notice when you get close, looking up and reacting when you're near.

Timekeeping is handled over the network: the ESP32 connects to WiFi and syncs to an NTP server on boot, with automatic daylight-saving handling for the local timezone, so there's no dedicated RTC to keep set. The eyes are driven by the FluxGarage RoboEyes library, and a button lets you switch between moods and views.

The project is designed to be:

  • Expressive, with animated eyes that blink, glance around, and react to presence.
  • Easy to read, with a crisp OLED display and a WiFi-synced clock.
  • Simple to build, on a single USB-C-powered board.
  • Hackable and well-documented, as a learning reference for embedded projects.

Pinout

The table below maps each component to its ESP32 GPIO. For the full wiring, the complete schematic is available as a PDF, and the entire KiCad project is included too, with the BOM and component details across several distributors.

Component Component Pin ESP32 GPIO Notes
OLED Display (SSD1306, I²C) VCC 3V3 Do not use 5V / VIN
GND GND Common ground
SDA GPIO21 I²C data
SCL GPIO22 I²C clock
Next Screen Button Pin 1 GPIO32 INPUT_PULLUP; pressed = LOW
Pin 2 GND Other leg to ground
Previous Screen Button Pin 1 GPIO27 INPUT_PULLUP; pressed = LOW
Pin 2 GND Other leg to ground

Getting Started

Prerequisites

  • PlatformIO (VS Code extension or CLI).
  • An ESP32 board, an SSD1306 OLED and two push buttons (or just the Wokwi simulator, see below).

Configuration

Wi-Fi credentials are kept out of version control. Copy the template and fill in your own:

cp secrets.h.example secrets.h

Then edit secrets.h with your network details:

#define WIFI_SSID "your_wifi"
#define WIFI_PASS "your_password"

Build & Flash

pio run              # compile
pio run -t upload    # flash to the board
pio device monitor   # open the serial monitor

Run in the simulator (no hardware needed)

You can run Jarvis entirely in VS Code without any physical hardware using the Wokwi simulator.

  1. Install the Wokwi Simulator extension for VS Code.

  2. Create a wokwi.toml file in the project root with the following content:

      [wokwi]
      version = 1
      firmware = ".pio/build/jarvis/firmware.bin"
      elf = ".pio/build/jarvis/firmware.elf"
  3. Add a diagram.json in the project root describing the circuit. You can copy it from the public Wokwi project here: wokwi.com/projects/469374163665964033.

  4. Set your credentials to Wokwi's guest network in secrets.h:

    #define WIFI_SSID "Wokwi-GUEST"
    #define WIFI_PASS ""
  5. Build the firmware with pio run, then open diagram.json and start the simulator.


License

Copyright © 2026 Carmen

Jarvis is open-source and released under the MIT License.

See LICENSE.md for the full details.

Credits & Team

Built and maintained by Carmen :)

About

Tiny ESP32 desk buddy that blinks, tells the time, and notices when you're near.

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors