raspbian-ovos

Pre-built images are available at the OpenVoiceOS Downloads Site

OVOS on top of RaspberryPiOS Lite

Burning an image to SD card or USB drive

raspi-imager

It has been noted that there is issues when using raspi-imager to burn an image. This is how to eliminate those issues.

  • Do Not change the username
  • Do Not enter WiFi credentals
  • WiFi configuration is provided by the image itself.
    • On first boot, you will be prompted to connect to SSID OVOS and go to the website start.openvoiceos.com. This is not the official ovos website but a hotspot that the image has created.
    • From there, you enter your credentals for the WiFi network you want to connect to.
    • If for some reason this method does not work, sudo raspi-config is available to use and nmtui is also available

linux dd command

Be carefull with the dd command, you can render your computer useless very easy - Download the zipped image - Unzip the image to the directory of your choice unzip <path-to-zipped-image> - Check where your sd card or usb drive is located lsusb - It should be visable as sdx - Write the unzipped image to the disk sudo dd if=<path-to-unzipped-image> of=<path-to-sd-card> bs=4M status=progress

Upon completion, you should have a bootable image to use

First Login

This image comes with a predefined user, ovos with password ovos. It is recommended that you change your password on first login.

sudo passwd ovos

Enter your new password twice

This image on a RPi3B takes several minutes to boot before you hear the mentioned prompt, and several more minutes to finish booting. If you don't think it is working, please wait upto 3 minutes each time before thinking something went wrong.

The section below is for advanced usage and is NOT currently recommended

Purpose of this guide

This guide will provide you with a minimal HEADLESS ovos system sutable for running on a Raspberry Pi 3.

The RPi3 does not have the processing power to reliably run ovos-shell, the GUI system for OVOS, but has pleanty to run the rest of the stack.

By the end of the guide, you should have a running OVOS stack, (messagebus, phal, skills, voice, and speech), along with a "lite" version of RaspberryPiOS. Which means you have a package manager, (apt) available to you also.

Source files used by this guide can be found at raspbian-ovos. Any issues or pull requests should be made in this repository.

Step 1: Create the boot medium

Step 2: Setup the system

Boot your newly created medium and follow the prompts to create an user. - Create user ovos with password ovos - The system will reboot and ask you to log in. Log in with the above credentals

raspi-config

RaspberryPiOS comes with a great tool raspi-config. We need to access that to get started setting things up.

Run the command sudo raspi-config to enter the utility.

We will be running everything as a regular user, so we want to auto login.

Enter the System Options page

Enter the Boot / Autologin page - Use the second option in the menu. Console Autologin - This enables the ovos user to login to a console terminal on every boot

Now we will enable a few interface options. This will allow us to access our device from a ssh shell and prep the PI for other devices that may be used. Some microphone hats require SPI, or I2C (Respeaker, AIY-Voicebonnet, etc)

Go back to the main menu and enter the Interface Options page - Enable SSH, SPI, I2C - After SSH is enabled, the rest of the guide can be done from a remote computer

Back to the main menu and enter the Localisation Options page - Configure Locale, Timezone, WLAN Country

You will need an internet connection to complete the rest of the guide

Optional: Setup WIFI

Return to the main menu and enter System Options again.

Enter the Wireless LAN section and follow the prompts

Exit out of the raspi-config tool. And find your IP address. The command is the same if you used the WiFi setup, or have a LAN connected.

Enter the command ip addr

In the output,if things were configured correctly, there will be one or more lines that are relavant. Find the device that you used to connect, WiFi will start with something like wlan and a LAN connection should begin with eth or enp or something similar. In the device section, there is an inet entry. The number located there is your local IP address. It should be in the format 192.168.x.xxx or something similar. Write this down, or remember it. You will use it to log in with a SSH shell

Now the device setup is done. Reboot

sudo reboot now

From this point on, you should be able to access your device from any SSH terminal.

For guide for how to do this, see raspberrypi documentation remote-access

From a linux machine, open a terminal and enter the command ssh ovos@<your-remembered-IP-address>. There will be a warning making sure you want to connect to this device. Enter yes, and when asked, enter the password for ovos that you made earlier in the setup. ovos

First you need to make sure your system is up to date. It should be close as you just installed a new image.

sudo apt -y update && sudo apt -y upgrade

We should be done with the basic setup now. You should have a running RaspberryPiOS device with the user ovos

Step 3: Install OVOS-CORE

There are some recommendations to use a venv for ovos. This guide DOES NOT do that. The ovos headless stack on a RPi3 is about all it can handle. It is assumed that this is a dedicated ovos device, therefore no venv is required.

There are a few packages required for ovos, so we will install those first

sudo apt install build-essential python3-dev python3-pip swig libssl-dev libfann-dev portaudio19-dev libpulse-dev cmake git libncurses-dev pulseaudio-utils

We will be using pip to install ovos-core and other related software. We will also be installing everything to the user environment instead of system wide. As ovos is the only user, this should be fine.

We will assume that everything from here will be done in the home directory of ovos.

cd ~

Clone this repository

git clone https://github.com/OpenVoiceOS/raspbian-ovos.git

cd raspbian-ovos

Run the install script and follow the prompts

./manual_install.sh

You should now have a running ovos device!!

Check with this

systemctl --user status mycroft*

It takes a while to load, but they should all eventually say active (running), except for mycroft.service which should say active (exited)

Step 6: Final thoughts

A generic install of ovos-core does not have any default skills shipped with it.

Check this page for more information on skills.

Audio is also not covered here. Pulseaudio should be running, check with systemctl --user status pulseaudio, but each piece of hardware is different to setup. I am sure there is a guide somewhere for your hardware. One thing to mention, this is a full raspbian install, so installing drivers should work also.