NAO Setup

Follow these instructions to prepare brand new NAOs and add them to the rUNSWift codebase.

Most of these instructions can be used to upgrade or reset robots as well.

The robots that return from repair will likely not need these instructions.


You do not need to do this if are just setting up your environment!

NAOqi OS is the OS for the NAO. It is a GNU/Linux distribution based on Yocto.

Download opn file

OpenNAO (opn) files are the image file for the NAO robot. Download then to your current working directory using

# 2.1 image (v4 and v5)
rsync -P .
# 2.8 image (v6)
rsync -P .


For passwords, please Contact us.


Due to software licensing between Softbank and RoboCup SPL, teams can’t publicly release the NAOqi OS provided by Softbank.

Create NAOqi USB

  1. Follow the instructions on Softbank’s Documentation


    The 2.1 flasher also works with the 2.8 opn. You can also just use dd on linux and mac.

Flashing the NAO

  1. Turn off the NAO
  2. Insert the USB stick into the back of the robots head
  3. Press and hold down the chest button on the NAO until it lights up blue
  4. Wait until it says Ognak gnuk! and starts looking around


If this step takes too long (>30 minutes) turn the robot off and retry flashing.

Robot Config, Name and Wifi Setup

If the robots are new you will need to:

  • Add <robot-name> to the list of robot names in $RUNSWIFT_CHECKOUT_DIR/bin/
  • Add <robot-name> and the ip address of the robot to utils/wifitools/
  • Create a copy of the default .cfg file called <robot-name>.cfg in $RUNSWIFT_CHECKOUT_DIR/image/home/nao/data/configs/
  • Create a copy of the default .cfg file called <robot-name>.cfg in $RUNSWIFT_CHECKOUT_DIR/image/home/nao/data/configs/body/

Patching the OS for rUNSWift

Finally, for all robots, run

nao_sync -s -h <hostname> <robot-name>


<hostname> is likely nao.local for new or factory reset robots.

Robots that are flashed without factory reset should retain their hostnames and you don’t need to specify -h <hostname> and <robot-name>.local will be used automatically.


Workaround: If this last step is causing trouble for you, try changing the hostname at the command line first, then syncing, for example:

PC$ ssh nao@nao.local
nao$ sudo nano /etc/hostname
# Agree, then change the hostname from 'nao' to for example 'treebeard'
# then reboot the robot and continue as normal, i.e.
PC$ nao_sync -s treebeard
PC$ nao_sync -rd treebeard
# reboot again