Releases: os-vector/wire-os
Releases Β· os-vector/wire-os
WireOS 3.0.1.31
Changelog
- update-engine C++ rewrite
- No more Python
- python3 taken out
- rebooter and update-engine rewritten
- Latest Yocto base as of October 21st, 2025
- Merge vic-cloud and vic-gateway
- The Go binaries are huge because of the inclusion of gRPC. vic-cloud and vic-gateway were carrying their own copies of the module separately. Now vic-gateway is embedded into vic-cloud, and runs in a goroutine
- Thanks to these changes, smaller OTA (now 153M)
- Things done by @Switch-modder
- Fix pet detection animation sounds (@Switch-modder did long ago, just now pulled latest EXTERNALS)
- Customizable backpack lights and Anki backpack light files
- Instructions: os-vector/wire-os-victor#30
- Age is now gotten from /data/persist rather than from the age of the onboardingState.json file, so setting the bot up with wire-pod won't reset the age. Now clearing the bot's user data is what resets it.
- He now says his age in years if he's that old
WireOS 3.0.1.30
Note
- 3.0.1.29 had to be pulled due to consistent crashing on some bots
- The changelog will include the changes made in 3.0.1.29
Changelog
- Mics should be OK now
- In 3.0.1.28, mics were too quiet for wire-pod to understand sometimes
- New victor compiler - Clang 20.1.8 rather than 18.1.8
- Cleaned up a couple things, mainly got rid of some unnecessary OpenCV libs
- Slightly smaller OTA - about 169MB
- vic-engine crashing fix
- Was due to a protobuf race condition which presented itself after the Clang upgrade. A copy is now made before serialization
- Some added commands:
mrw: shortcut formount -o rw,remount /voff: shuts down the robotrebootnow accepts arguments while still exiting the SSH session
- libpvictor is now installed
- :8080 now includes an option to set temperature units
WireOS 3.0.1.29
Changelog
- Mics should be OK now
- In 3.0.1.28, mics were too quiet for wire-pod to understand sometimes
- New victor compiler - Clang 20.1.8 rather than 18.1.8
- Cleaned up a couple things, mainly got rid of some unnecessary OpenCV libs
- Slightly smaller OTA - about 169MB
WireOS 3.0.1.28
Changelog
- Yocto Whinlatter upgrade
- glibc 2.41 -> glibc 2.42
- newer Python 3.13 version
- everything is built with GCC 15 rather than 14
- Revert my force-enabling of mic data processing
- should fix overly-sensitive mics
WireOS 3.0.1.27
Changelog
- Tone down the Balanced performance profile significantly, potentially fixing the overheat issue
- Involved a kernel change to add a new CPU frequency
- Undo the undoing of an Anki change - make sure the CPU isn't using a big.LITTLE scheduler
- While this gave us better performances in certain scenarios, it seemed to make the SoC hotter
- Add
temperscript which shows you CPU temps over SSH - Fix
vmesgso it follows the logs
WireOS 3.0.1.26
Changelog
- Face overlay - initial support
- If enabled, an image will overlay his eyes. It'll move along with the eyes. Think of it like a fancy, more complicated eye color
- Still needs improvement. This will be an easier experience in the future
- To enable:
-
- head to :8889/consolevars
-
- click the Face tab
-
- enable "ProcFace_CustomEyes"
-
- choose whichever one you want in the dropdown "ProcFace_FlavorOfGay"
-
- click "LOOK_LoadFaceOverlay" at the bottom of the ParameterizedFace section to load the new thing you selected in the dropdown
-
- if you want a custom one, put a jpg at /data/data/customFaceOverlay.jpg, and select Custom in the dropdown
-
- OpenCV 3.4.0 -> 4.12.0 upgrade
- SIGNIFICANTLY faster camera streaming to the SDK
- Make mm-anki-camera provide 30FPS rather than 15
- Ensure frequency profile is set to Balanced by default upon every boot (sometimes ankiinit would set it back to 533MHz)
- New cool PS1 variable (
[root@Vector-P6V3 ]#color) - Remove body overheating check because WHO CARES
WireOS 3.0.1.25
Changelog
- Picovoice 1.3.0 -> Picovoice 1.5.0 upgrade
- More accurate, less false positives in my experience
- Default sensitivity bumped to 0.77, still configurable in :8080
- If you had a custom wakeword, you'll have to regenerate it
- Custom wakewords are now generated on a cloud server rather than my personal home server
- New tab in :8080 for setting location and time zone, useful when using WireOS servers
reonboardSSH command for putting him back into onboarding mode without clearing user data- No BLE commands need
anki-authanymore - Fix
wifi-forget !allBLE command (there was a missing script) - The whole OS is now compiling with Yocto's GCC 14 - that+time64-build-flag removal resulted in a smaller OTA
- 167M dev OTA. Anki dev OTAs were usually in the 180-200M range
- There are exceptions - ankibluetoothd, hci-qcomm-init, mm-anki-camera, and mm-qcamera-daemon. Prebuilts are copied in in these instances
Reminder
- If the :8080 webserver looks the same, do CTRL+SHIFT+R to reload all cached elements (or whatever keyboard shortcut does it for your browser)
WireOS 3.0.1.24
Changelog
- Pet detection
- Pretty basic
- If he sees a pet while exploring or observing, he will play an animation
- Works with cats and dogs - there are different animations for each
- Kernel upgrade - 3.18.68 -> 3.18.120
- Results in a slightly smaller OTA, probably more stable drivers
- COMPAT = 205 due to change in vic-cloud and vic-gateway build system
- They are re-integrated into
victor, not built inoelinuxanymore
- They are re-integrated into
- New WLAN driver
- More performant for me
- New tabbed interface in :8080
- Picovoice sensitivity can be changed in :8080
- Maintenance reboot fix - now he won't randomly wake up in the middle of the night
NOTE: if the :8080 webserver isn't working properly, do a CTRL+SHIFT+R to reload all cached elements (if non-Chrome, try SHIFT+F5)
WireOS 3.0.1.23
Changelog
- Petting lights
- Inspired by Viccyware (@Switch-modder)
- The lights pulse when the bot is touched
- Automatic nightly reboots work again
- He will clear out the cobwebs at night
- Some reported memory leaks after a couple days of operation, this should mitigate that
- The eyes now go away when
systemctl stop anki-robot.targetis run- Previously, the eyes would stay frozen on screen - unsettling
- update-engine is substantially faster
- Using a curl pipe rather than urllib2
- update-os increases CPU+RAM frequencies and stops
anki-robot.targetbefore updating - Update TensorFlow Lite from v1.9 -> v2.19.0 (latest tag available)
- Embeds XNNPACK, models probably run faster on CPU now
- Allows us to eventually use the GPU OpenCL-based delegate in the future
- (We aren't using the GPU delegate yet, but I have tested it and it does work. It just doesn't provide much of a performance benefit with the super tiny Anki-created models bundled in Vector)
- Include OpenCL libs
- Will allow us to embed GPU acceleration into some things
- This inflates the OTA size from 177M to 192M, but I think the possibilites outweigh this
vmesgscript- Details in README.md of this repo
- Get rid of coreutils in main image
- We now just have busybox + a couple real programs installed if the busybox versions aren't good enough
dmesg,ps,netstat
- We now just have busybox + a couple real programs installed if the busybox versions aren't good enough
dmesgis now from util-linux- Allows
-wto follow - All nice and colorful
- Allows
- Onboarding wakeup animation is different
- I am using the one from VicOS 1.0.0 now
- Will be seen in the future once I get a Vector app recreation (including onboarding process recreation) made
- Fix bug in
wiredwhich made the "Auto Updates" section blank if the build is self-built
Reminder of my mistake
- 3.0.1.21 (two versions ago) is broken. If you are running that, SSH in and run
sysswitchto bring your bot back to 3.0.1.20. From there, your bot will auto-update to 3.0.1.23.
WireOS 3.0.1.22/3.0.1.21
Mistake
- I made a mistake in 3.0.1.21 - the robot boots, but many core utilities like
grepare missing. Please runsysswitchto boot back to 3.0.1.20. From there, your bot will auto-update to 3.0.1.22.
3.0.1.22:
- Hotfix to re-add busybox to main image
- update-engine was broken in the previous build
3.0.1.21
- 915 error fix
- vic-engine likes to somewhat randomly set the timezone, especially after SDK use. My
set-timezonescript which allows the timezone data to exist in /data was too slow sometimes, which caused engine to crash. This was becausetimedatectl list-timezoneswas being run in the script to make sure the given time zone exists
- vic-engine likes to somewhat randomly set the timezone, especially after SDK use. My
- Reduce default wakeword sensitivity
- Wakeword sensitivity can be customized:
mkdir -p /data/data/com.anki.victor/persistent/picovoice && echo 0.01 > /data/data/com.anki.victor/persistent/picovoice/sensitivity- Replace 0.01 with whatever sensitivity value you want to try.
- Any float between 0-1. Default is 0.10.
- After running, reboot the robot or run
systemctl stop anki-robot.target && sleep 1 && systemctl start anki-robot.target
- Replace 0.01 with whatever sensitivity value you want to try.
- A lot of work on the Yocto code which is kinda imperceptible to the user
- Yocto now actually compiles a lot of the proprietary Qualcomm code
- Previously, I was just copying prebuilt binaries in
- This means I was able to get rid of /usr/qtiroot, which is where those prebuilts lived
- This was a whole tiny sysroot with its own libc and such
- Kernel, Qualcomm HAL programs, and ALSA are now compiled with GCC 7.5.0 rather than 4.9.3
- Everything else - Linux programs,
victor- are compiled with either GCC 14 or Clang 18.1.8 (this was always the case in new wire-os)
- Everything else - Linux programs,
- Camera programs are still being copied in, but they have been fixed to work in the new sysroot so they don't need qtiroot
- Use only busybox in ramdisk, only coreutils in main sysroot
- Originally, both included both
- Due to all of this, OTA size is now 179MB (down from 187MB)
- Yocto now actually compiles a lot of the proprietary Qualcomm code
- Now includes a wire-pod-ready vic-cloud, so wire-pod doesn't have to replace it
- Just means that Vector's rootfs remains untouched after wire-pod's "Configure an OSKR/dev-unlocked bot"
- You still need to perform that part of the setup process
- If wire-pod is set up, it uses wire-pod. If not, it uses my WireOS server
wireutils- Right now, this just adds two scripts:
anki-debug- makes the Anki programs run as root which allows debuggerd to trace them- This means whenever they crash, it is much easier to see why
ddn <on/off>- turns on/off DevDoNothing, which makes the robot sit still until shaken
- Right now, this just adds two scripts: