Software Install (Version 1)

This page is the checklist for the nova_cli and face_tracking Python scripts. It’s designed to be simple:

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_cli.py, face_tracking_0.3.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 (RealSense + tracking)

Command Prompt
pip install opencv-python mediapipe pyrealsense2

Common extras

Command Prompt
pip install requests

If you’re using a RealSense camera, you may also need Intel’s RealSense drivers installed on Windows.

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) RealSense + face tracking setup (Version 1)

Your nova_cli.py launches face tracking automatically. If you moved files/folders, update the path: FACE_TRACKING_SCRIPT = r"...\\face_tracking_0.3.py"

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

From your Nova folder:

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

Your Nova folder should contain: nova_cli.py, face_tracking_0.3.py, and an animations folder.

If you stored Nova somewhere else, update the paths inside nova_cli.py, especially: ANIM_DIR and FACE_TRACKING_SCRIPT.

Trouble?