Headless SBC (Single Board Computer)
Definition: headless is when an SBC (single board computer) is installed in a robot without a monitor, keyboard, or mouse.
Mounting an SBC (single board computer) on the robot, such as a LattePanda, Rock Pi X, Up Board, Atomic Pi, etc., provides the freedom for your robot to roam autonomously. The computer will most likely not have a monitor, keyboard, or mouse when running headless. Meaning you have to interact with the computer remotely over a remote desktop connection. There are a few things to consider when setting up a computer for a headless robot.
*Note: We recommend reviewing our Windows 10 Performance Tips before continuing these steps.
Do Not Disconnect Power to Shutdown
This is a note that should be addressed for robots with embedded computers. Called "flipping the switch," it disconnects power to a robot computer while running to shut it down. Never flip the switch on a robot computer when it is running. If you flip the switch a few times, it'll eventually corrupt the file system. The computer will cache files in its memory for operating systems to run quickly. This is because writing and reading from the file system are slower than memory. When you flip the switch, any unwritten data is lost. This will be specifically bad if the ARC project file gets corrupted.
It is a good habit always to make sure to save your project file to the cloud in ARC. This will prevent any chance of corruption or damage to the robot hard drive. The Synthiam cloud also provides revision history so that you can load projects from backup at any stage.
- Use the Windows Shutdown option in the start menu to shut down the computer properly
- Or, you can use a JavaScript or Python shutdown command. You can add a speech recognition command or a button on the ARC interface that shuts the computer down by calling this command in ARC ShutdownPC().
Disable Windows Password
When installing windows on your SBC, you can press "ENTER" when prompted for a password when creating the account. That will set an empty password, which means the computer will boot directly into Windows logged in as your specified account. However, if you have already set a password for your Windows account, you can disable the password.
Press the Windows key or Start Menu and type "Change Password."
Press the Change Password option. Enter your current password and leave the new password field blank.
Tight VNC - Remote Terminal Connection
To connect remotely to the SBC, we recommend using Tight VNC. This desktop sharing program allows a secure remote connection, and the program is free to use. By default, the program uses TCP port 5900, which means you can open a redirection port in your firewall and connect to the robot from anywhere in the world - given that you use your router's public IP address. Installing Tight VNC is relatively straightforward. Download the installer for your operating system (32 or 64 bit) and run the installer - select COMPLETE to install the server & viewer. Following the installation, the program will prompt for passwords to assign to the computer.
Now, you may install the Tight VNC program on another computer, your laptop, for instance, and connect to the robot SBC. There is no need to install the server when installing on your computer, so select CUSTOMIZE and deselect the server option. Only install the viewer on your laptop.
Connecting to Headless Robot by IP Address
When you are connecting to the robot's SBC, you do so by the IP Address of the robot. If you're on the same network, say your home network, the IP address will be on the robot SBC. Use a command shell and type IPCONFIG to view the IP address. However, if you are connecting from a remote public IP address through your router, you will need to know the PUBLIC IP address of your router.
Speak IP Address
An excellent robot skill can be used to speak the IP address when a network connection is established. This is useful when running headless to know the IP when connecting to your network. The robot skill is the Network Change and has a short manual that explains how to use it.
Get Local IP Address
Get Remote IP Address
Just remember if you want to connect remotely over the internet, your router will need to forward the port 5900 TCP to the local IP address of the robot.
Headless HDMI Resolution
When computers do not connect a monitor, the screen resolution is not set. This usually means the screen resolution will be small, or the desktop will not be visible from a remote VNC connection. Even if you attempt to change the screen resolution in Windows, you will notice the drop-down will be disabled in grey. The video card cannot report the supported resolutions due to not having a monitor connected and thus defaulting to a low resolution. The solution is to use an HDMI Dummy Emulator. You can find them all over from Amazon to AliExpress. Here is an example of what you would be looking for: HDMI DDC EDID Dummy Plug Headless Ghost Display Emulator Fit Headless-1920x1080@60Hz-3Pack.
Once the HDMI Dummy Emulator is connected to your SBC, connect to it via VNC and configure your desired resolution. The HDMI emulator will pretend to be a monitor and thus allowing Windows to set the desired screen resolution for your VNC connection.