The main repo for building Viccyware otas.
This builds the OS, the /anki programs (victor
), and creates a final OTA.
- /poky/poky -> yoctoproject/poky (master)
- /poky/meta-openembedded -> openembedded/meta-openembedded (master)
- /anki/victor -> Viccyware (Viccyware-tester)
- Where all the personality code lives - the README there has more info
- /anki/wired -> wired (main)
- Little webserver with configuration options
Viccyware is in the dropdown box in https://devsetup.froggitti.net/. Put your unlocked bot into recovery mode (hold the button for 15 seconds on the charger), head to the site, choose Viccyware, then go through the process.
- Note: you will need a somewhat beefy x86_64 Linux machine with at least 16GB of RAM and 100GB of free space.
-
Install Docker, git, and wget.
-
Configure Docker so a regular user can use it:
sudo groupadd docker
sudo gpasswd -a $USER docker
newgrp docker
sudo chown root:docker /var/run/docker.sock
sudo chmod 660 /var/run/docker.sock
- Clone and build:
git clone --recursive https://github.com/The-Viccyware-Group/Viccyware-oelinux/
cd Viccyware-oelinux
./build/build.sh -bt <dev/oskr> -bp <boot-passwd> -v <build-increment>
# boot password not required for dev
# example: ./build/build.sh -bt dev -v 1
# <build-increment> is what the last number of the version string will be - if it's 1, it will be 3.0.1.1.ota
./_build/Viccyware-0.5.(x).ota
- New OS base
- Yocto Whinlatter rather than Jethro
- glibc 2.42 (latest as of 08-2025)
- Yocto Whinlatter rather than Jethro
victor
software compiled with Clang 18.1.8 rather than 5.0.1- The code is properly fixed so there are no compile warnings
- Rainbow eye color
- Can be activated in :8888/demo.html
- Some Anki-era PRs have been merged
- Performances
- He will somewhat randomly do loosepixel and binaryeyes
- Better camera gamma correction
- He handles too-bright situations much better now
- Performances
- Picovoice Porcupine (1.5) wakeword engine
- Custom wake words in :8080 webserver!
htop
andrsync
are embedded- Python 3.13 rather than Python 2
- General bug fixes - for instance, now he won't read the EMR partition upon every single screen draw (DDL bug)
- :8080 webserver for configuring things I don't want to integrate into a normal app
- Cat and dog detection (basic, similar to Cozmo)
- Smaller OTA size - a dev OTA is 171M somehow
- New Anki boot animation, new pre-boot-anim splash screen, rainbow backpack light animations
- TensorFlow Lite has been updated to v2.19.0 (latest as of 07-2025)
- This means we can maybe leverage the GPU delegate at some point
- XNNPACK - the CPU delegate - is faster than what was there before
- OpenCV has been updated to 4.12.0 (latest as of 07-2025)
- Much better SDK streaming performance
- Face overlays - How to activate: wire-os-victor PR #17
- Global SSH key: (ssh_root_key)
anki-debug
- If you are debugging
victor
and want to see backtraces in /var/log/messages, run this to enable those.
- If you are debugging
ddn [on/off]
- Turns on/off DevDoNothing, which makes the bot stand still until shaken.
reonboard
- Puts him back into onboarding mode without fully clearing user data
vmesg [-c|-t] <grep args>
- A wrapper for cat/tail /var/log/messages:
temper
- Simple script which tells you CPU temps
usage: vmesg [-t|-c] <grep args>
this is a helper tool for viewing Vector's /var/log/messages
if no grep args are provided, the tailed/whole log will be given
-t = tail (-f), -c = cat
example for searching: vmesg -t -i "tflite\|gpu"
example for whole log: vmesg -c
- This repo contains lots of proprietary Qualcomm code and prebuilt software.
- After a stupid amount of work, I have most HAL programs compiling with Yocto's GCC 15. It wasn't terribly difficult since it's generally all autotools, but some jank is still involved, and it was still time-consuming.
- The camera programs and some of the BLE programs are being copied in rather than compiled.
- Why not compile camera programs? Because I would have to add 2GB to the repo and figure out how to use the weird Qualcomm-specific toolchain.
- Why not compile those BLE programs?
ankibluetoothd
andhci_qcomm_init
are able to compile under GCC 15, but there is some weird low-level issue which makes them unable to properly communicate with a BLE library. So, for now, I am just copying pre-compiled ones in. I will probably try to fix this at some point.
- Much work upgrading Yocto recipes.
- All of the software is compiling with Yocto's GCC 15 or the Clang 18.1.8 vicos-sdk toolchain, with a couple of tiny exceptions.
- Some recipes are still somewhat old - these include wpa_supplicant and connman (I had issues with SAE - he's able to recognize SAE networks, but his WLAN driver and kernel don't know how to actually connect to it, and I was unable to disable it in modern wpa_supplicant and connman)
Made with contrib.rocks.