# Pairing codes


> What a pairing code is made of, which characters it never contains, how long it stays valid, and the reasons the dashboard refuses one.

A pairing code is what a device shows on its display when it is running Screenly but does not belong to a workspace yet. Typing it into the dashboard is what turns the device into a screen. [Connect a screen](/docs/screens/setup/connect-a-screen/) covers the steps; this page is the facts about the code itself.

## What it is made of

Eight lowercase characters, and it deliberately leaves out the ones people misread across a room.

| Never in a code | Because it is mistaken for |
| --- | --- |
| `0` | the letter `o` |
| `1` | the letters `l` and `i` |
| `i` `l` | each other, and the digit `1` |
| `m` `n` | each other |
| `o` | the digit `0` |
| `v` `w` | each other |

So if a character looks like one of those, it is something else. Read it again rather than guessing.

## How long it lasts

A code is good for 30 days. After that the device needs a fresh one, which it gets by being connected to the internet and left to pick one up. There is nothing to reset on the device, and rebooting it shows the current code.

## Why a code is refused

- It has expired, or a character was misread. Reboot the device and read the current code again.
- You are in the wrong workspace. You can belong to several, and a screen joins whichever one you are looking at when you enter the code.
- You have no license free. Connecting a screen takes one [license](/docs/billing/licenses/) from your pool, and the dashboard says so when the pool is empty.