Software Install (Version 2)

This page is the checklist for the Nova App Launcher (GUI), which runs Nova in one neat window. Under the hood it starts the same two scripts: nova_cli.py (voice + AI) and face_tracking.py (camera + tracking).

Before you start: create your Nova folder

Put everything inside one folder in your Documents, like: C:\Users\YourName\Documents\Nova Desktop\

You can create this folder either in Windows (right-click → New folder) or using Command Prompt:

Command Prompt
cd %USERPROFILE%\Documents
mkdir "Nova Desktop"

Your Nova folder should contain: nova_app_launcher.py, nova_cli.py, face_tracking.py, and an animations folder. (These come from the download pack.)

1) Install Python

Command Prompt
python --version
pip --version

If python doesn’t work, try py instead: py -3.10 --version

2) Install required libraries

These cover Nova CLI (speech + LLM + audio) and face tracking (camera + tracking + UDP).

Core (Nova CLI)

Command Prompt
pip install numpy sounddevice simpleaudio ollama faster-whisper pygrabber

Face tracking (camera + tracking)

Command Prompt
pip install opencv-python mediapipe

Common extras

Command Prompt
pip install requests

Version 2 uses a USB camera (not RealSense), so you don’t need pyrealsense2 or Intel drivers.

3) Install / run Ollama

Download Ollama (Windows)

Requires Windows 10 or later.

Command Prompt
ollama --version
ollama pull nova-phi4-mini
ollama list
ollama run nova-phi4-mini

Verify the model name in your script matches what you pulled (example: nova-phi4-mini). If your model name is different, update MODEL_NAME in your Python scripts.

Nova Modelfile (required for “Nova” behaviour + animations)

Nova uses a custom Modelfile so Ollama responds in Nova’s format (including animation/emotion tags). You’ll find the Modelfile in your download pack.

Command Prompt
cd %USERPROFILE%
ollama create nova-phi4-mini -f Modelfile

After that, ollama run nova-phi4-mini should behave like Nova, and your scripts can use MODEL_NAME = "nova-phi4-mini" for the correct responses.

4) Install Piper (TTS) (Windows)

Piper is Nova’s text-to-speech engine. nova_cli.py expects Piper in these exact locations by default:

This means you don’t need to add Piper to PATH — the script calls it by full path.

A) Create the Piper folders (Command Prompt)

Command Prompt
mkdir C:\piper
mkdir C:\piper\models

B) Download Piper (zip) + extract to C:\piper\

Download the Windows release zip from the official Piper releases page and extract it into: C:\piper\

Open Piper releases (GitHub)

After extracting, you should have piper.exe directly inside C:\piper\. If the zip extracts an extra folder layer (common), just move the contents so that piper.exe sits directly in C:\piper\.

C) Test Piper (Command Prompt)

Command Prompt
C:\piper\piper.exe --help

D) Download a voice model (put it in C:\piper\models\)

Piper needs a voice. Download both files for a voice: .onnx and the matching .onnx.json, and put them in: C:\piper\models\

Browse Piper voices Listen to voice samples

Example: if you choose en_GB-cori-high, you’ll typically download: en_GB-cori-high.onnx and en_GB-cori-high.onnx.json and place both into C:\piper\models\.

E) Generate a test WAV

Replace the voice filename with the one you downloaded:

Command Prompt
echo Hello, I am Nova. | C:\piper\piper.exe --model "C:\piper\models\en_GB-cori-high.onnx" --output_file "C:\piper\test.wav"

F) Confirm nova_cli.py matches your chosen voice

In nova_cli.py, the Piper command looks like this. Make sure the --model path matches the voice you picked:

Python (snippet from nova_cli.py)
command = (
    f'echo {safe_text} | '
    f'"C:\\piper\\piper.exe" '
    f'--model "C:\\piper\\models\\en_GB-cori-high.onnx" '
    f'--output_file "{wav_path}"'
)

If you picked a different voice, just change en_GB-cori-high.onnx to your chosen filename. Also make sure the matching .onnx.json file is in the same folder as the .onnx.

5) Audio setup (mic + speaker)

If sounddevice complains about devices, reinstall it and reboot. Audio drivers can be fussy on Windows.

6) USB camera + face tracking setup (Version 2)

The Nova App Launcher starts face tracking automatically. If you moved files/folders, update the face tracking path in nova_app_launcher.py / nova_cli.py (depending on your pack version), for example: FACE_TRACKING_SCRIPT = r"...\\face_tracking.py"

If your camera index is wrong (common): update the camera selection inside your face tracking script (usually cv2.VideoCapture(0) → try 1 or 2).

7) Networking / UDP (Nova servo boards)

Command Prompt
ipconfig

If you need to change board IPs, update these in nova_cli.py: ARM_IP, TORSO_IP, and ports.

When the ESP32 successfully connects to your router, the little white status LED will flash on and off.

8) Run Nova (App Launcher)

From your Nova folder:

Command Prompt
cd "%USERPROFILE%\Documents\Nova Desktop"
python nova_app_launcher.py

The App Launcher opens a simple GUI. Press Start to begin: it launches face tracking + the Nova voice/AI script together. Press Stop to end the session cleanly.

Nova App Launcher GUI — screenshot 1
Click the big image or any thumbnail to expand (3 screenshots).

Your Nova folder should contain: nova_app_launcher.py, nova_cli.py, face_tracking.py, and an animations folder.

If you stored Nova somewhere else, update the paths inside nova_app_launcher.py / nova_cli.py, especially: ANIM_DIR and any face tracking script path.

Trouble?