Skip to main content

Setup a C.H.I.P in Headless mode (no screen)

So you got your C.H.I.P but unfortunately you can’t connect to a Display and you don’t have a keyboard available? This guide should help you to get started. You will connect the C.H.I.P to your wi-fi, update the software and install a vnc server to use the gui.

Initial connection

Connect you C.H.I.P via USB to your Computer.

Open your favourite terminal program and connect to the comport with 115200 baud. For windows you can use putty. On OSX i suggest using cu.

On OSX i am using this command sudo cu -l /dev/cu.usbmodem1423 -s 115200

If you’re connected and you don’t see any login screen just hit enter once

Login with the default credentials (chip/chip)

Configure WiFi

WiFi configuration is very easy. Just start the NetworkManager by typing sudo nmtui

select “Activate connection”. In the new window you should see a list of wi-fi networks. Select yours and enter your password.

Exit the tool and check the connection sudo ifconfig

Now you can either connect via ssh or continue using the serial connection.

Update the system

It’s always a good idea to keep the system up to date.

Run sudo apt-get update to update the package repository, followed by sudo apt-get upgrade to upgrade the installed packages. Depending on your connection and the number of upgrades this process can take quite a while.

Install the VNC server

Install TightVNC Server by running sudo apt-get install tightvncserver

Then start the server by running /usr/bin/tightvncserver – it will ask you to set a password, this password will be needed later to connect to the vnc server.

Now you have to make sure that the server is started on boot.

Run sudo nano /etc/systemd/system/tightvncserver.service and add the following content

Save and exit.

Then set the propper access rights by running sudo chown root:root /etc/systemd/system/tightvncserver.service followed by sudo chmod 755 /etc/systemd/system/tightvncserver.service

Now make sure that the service is enabled by executing sudo systemctl enable tightvncserver.service