Skip to content

About

Proxmox, ntfy, nvtop, copilot spend apps for the Vobot USB mini-dock. This is public for anyone to download and learn/use from.

Topics

Resources

Stars

4 stars

Watchers

1 watching

Forks

Repository files navigation

Vobot Apps Monorepo

A collection of custom applications for the Vobot Mini Dock smart display.

What's a Vobot

Basically it's this sweet little computer dock (you know with all kinds of extra ports) that you can get for about $50 on Amazon but it has a display and a wheel that you can then install apps from their store (it's pretty sparse TBH). But the real reason I got it is so that I can write apps myself for it. Please to enjoy...

Repository Structure

vobot-apps/
├── ntfy/                    # ntfy project folder
│   ├── apps/
│   │   └── ntfy/           # app package for device
│   └── *.jpg               # screenshots
├── proxmox/                 # Proxmox dashboard project folder
│   ├── apps/
│   │   └── proxmox/        # app package for device
│   └── *.jpg               # screenshots
├── nvtop/                   # nvtop (NVIDIA GPU monitor) project folder
│   ├── apps/
│   │   └── nvtop/           # app package for device
│   └── *.jpg                # screenshots
├── nvtop-daemon/             # companion Linux daemon nvtop polls (not on-device)
│   ├── vobot_gpu_daemon.py
│   └── vobot-gpu-daemon.service
├── copilot/                  # GitHub Copilot billing dashboard project folder
│   ├── apps/
│   │   └── copilot/          # app package for device
│   └── *.jpg                 # screenshots
├── .venv/                   # workspace-level Python venv
├── .github/
│   ├── copilot-instructions.md
│   └── prompts/
└── README.md

Apps

All apps are enabled for "App Auto-Switch" under "Settings > Miscellaneous".

Every on-device app exposes a GIT_COMMIT build stamp (short git SHA, set at deploy time). nvtop and proxmox surface it on their dedicated Details/debug pages; ntfy and copilot keep their UI uncluttered and only print it to the serial log on boot.

ntfy

A notification viewer for self-hosted ntfy servers. Displays push notifications with message navigation via rotary encoder.

Features:

  • Real-time notification display
  • Message navigation with scroll wheel
  • Message counter (1/5 display)
  • Automatic periodic fetching
  • Timestamped messages

See ntfy/README.md for details.

proxmox

A two-page Proxmox dashboard showing CPU/RAM arcs, network in/out bars with arrows, and VM/LXC counts; includes a text debug page (uptime, swap, disk, metrics, app version/commit).

Features:

  • Rotary wheel navigation between dashboard and debug pages
  • CPU/RAM arc gauges; network KB/s bars; VM/LXC bars
  • Polls Proxmox every 10 seconds; shows uptime/swap/disk on debug page

See proxmox/README.md for details.

nvtop

A live NVIDIA GPU monitor (utilization, memory, temperature, power, clocks, top processes) sourced from our own companion daemon (nvtop-daemon/) running on whatever Linux box actually has the GPU.

Features:

  • 4-page UI: Gauges, History (with 25/50/75% gridlines), Details (clocks/PCIe/throttle + daemon & app build commit), Processes
  • Processes page shows full CLI args per process, one flag per line, with its own encoder-scroll mode (press ENTER to toggle)
  • Gauges/History auto-cycle; Details/Processes are manual-only detours

See nvtop/README.md for the app and nvtop-daemon/README.md for the companion daemon (not a Vobot app — runs on the GPU host).

copilot

A GitHub Copilot billing dashboard — spend/savings/credits gauges, daily usage charts, and a billing-cycle countdown, pulled from GitHub's REST billing API via a read-only fine-grained PAT.

Features:

  • 3-page UI: Gauges, Charts (daily + cumulative), Reset countdown
  • ENTER forces an immediate refresh

See copilot/README.md for details.

Vobot Mini Dock Platform

Overview

  • Hardware: ESP32-S3 with rotary encoder, buttons, and 320x240 display
  • Software: MicroPython with LVGL UI framework
  • Resources: 200KB per app, 900KB total app storage

Development Requirements

Hardware

  • Vobot Mini Dock device
  • USB-C data cable (not charge-only)
  • Computer (Windows/Linux/macOS)
  • Connect via the USB-C on the right side of the device (literally named "computer")

Software

  • Thonny IDE (recommended) or VS Code with ampy
  • ampy for command-line uploads
  • Python 3.7+ for development tools

Developer Mode

To install custom apps, enable Developer Mode:

  1. On Vobot: Settings → Miscellaneous → Experimental Features → Developer Mode
  2. Power cycle the device (disconnect and reconnect power)
  3. Developer mode is now active

Installing Apps

Using Thonny (Easiest):

  1. Connect Vobot via USB-C cable
  2. Open Thonny → Select ESP32 port
  3. View → Files → Navigate to /apps
  4. Upload app folder to /apps/<app_name>/
  5. Press Ctrl+D to restart

Using ampy (Command Line):

# Install ampy
pip install adafruit-ampy

# Upload app (Windows PowerShell example - run from repository root)
# Prefer module invocation to avoid Windows EXE shim issues
& ".\.venv\Scripts\python.exe" -m ampy.cli --port COM4 --baud 115200 --delay 2 put ntfy/apps/ntfy /apps/ntfy

Using VS Code Pymakr:

  1. Install Pymakr extension
  2. Connect to ESP32 device
  3. Use Pymakr commands to upload files
  4. Restart via REPL (Ctrl+D)

Uninstalling Apps

Thonny: View → Files → Right-click app folder → Delete → Ctrl+D

ampy: & ".\.venv\Scripts\ampy.exe" --port COM4 rmdir /apps/<app_name>

If ampy.exe returns "Failed to canonicalize script path", use the module entrypoint instead (recommended):

& ".\.venv\Scripts\python.exe" -m pip install --upgrade adafruit-ampy
& ".\.venv\Scripts\python.exe" -m ampy.cli --port COM4 --baud 115200 --delay 2 put ntfy/apps/ntfy /apps/ntfy

Debugging

Real-time logs (PowerShell):

$port = New-Object System.IO.Ports.SerialPort COM4, 115200, None, 8, One
$port.Open()
Write-Host "Monitoring COM4"
while($port.IsOpen) { 
    try { 
        $byte = $port.ReadChar()
        [Console]::Write([char]$byte)
    } catch { 
        Start-Sleep -Milliseconds 100 
    } 
}

Thonny logs: View Shell window for real-time output

Common Issues

Can't connect to device:

  • Check USB cable is data-capable (not charge-only)
  • Verify correct serial port (Device Manager on Windows)
  • Close other programs using the port
  • Try different USB port

App doesn't appear:

  • Ensure Developer Mode is enabled
  • Verify app is in /apps/<app_name>/ (not nested)
  • Restart device (Ctrl+D)

App crashes:

  • Check memory usage (MicroPython has limited RAM)
  • Review logs for error messages
  • Ensure proper cleanup in on_stop() method

Resources

Publishing

Use the dock-app-bundler-win.exe and choose D:\daevid\Code\Vobot\ntfy\apps\ntfy it will bundle up a ntfy.vbt file, save it in the parent folder: D:\daevid\Code\Vobot\ntfy\apps

Login to https://app.myvobot.com/profile

Contributing

This is a personal project repository. Feel free to fork and adapt for your own use or even make a PR if you want to contribute back to this and make it better.

My Vobot Community Forum Announcement

Git

This is for my own note to append to the last commit. Useful for minor changes I don't want to clutter up my history with...

git add -u
git commit --amend --no-edit
git push origin master:main --force
git status

Last Updated: July 20, 2026

About

Proxmox, ntfy, nvtop, copilot spend apps for the Vobot USB mini-dock. This is public for anyone to download and learn/use from.

Topics

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages