Setting up your NUC


Your team should be given an unopened NUC box, a stick of 8GB RAM, a pre-imaged 120GB SSD, and a HDMI to DVI video cable. To put it together:

  1. Unscrew the four phillips screws on the bottom of the NUC unit
  2. Slide in the SSD to the drive bay attached to the bottom panel. Make sure the SATA and power connectors are connected
  3. Load the 8GB ram stick. There should be only one way to plug it in
  4. Screw the bottom panel back on
  5. Plug in the AC adapter, connect the NUC to your station's monitor, a mouse, and a keyboard
  6. Boot it up

Initial boot repair

To boot into ubuntu initially:

  1. Press F2 upon boot to enter the UEFI bios
  2. Go under Advanced > Boot > Boot Configuration > Boot Devices and check Internal UEFI Shell
  3. Press F10 to save settings and exit. On the next reboot, press F10 again to enter the boot device selection menu and select the EFI shell
  4. In the shell, immediately press a key to avoid the default boot sequence
  5. blk0:
  6. cd EFI
  7. cd ubuntu
  8. grubx64.efi

Now you should be booted into ubuntu. To avoid doing this every time:

  1. Install boot-repair in the terminal with these instructions
  2. Run the recommended sequence (this may take a while) Once it's complete the NUC should be able to boot off the SSD automatically

How the NUC is set up

The hard drive should have Ubuntu 16.04 installed, along with ROS, TAMProxy (a staff microcontroller library), and a git repository set up. The default user is named maslab with the password balsam (feel free to change this). The maslab user has superuser permissions.

Your team should do most of your work in the home/maslab/Code/teamX folder, where there is a skeleton git repository already set up. We've also defined some shortcut commands (starting with ml) for you to navigate the filesystem quicker, and they should display whenever you open a terminal window or SSH into the machine.

Inside your team's repository there should be a catkin_ws folder, which is an empty ROS workspace, should you opt to use ROS. In the /home/maslab/Code folder, the TAMProxy staff libraries are cloned (don't worry about this before Wednesday's lecure)


The majority of the time, your NUC will be mounted to your robot, powered by a LiPo battery, and connected to who knows which MIT WiFi routers around campus. As a result, one will need to find the NUC's IP address to SSH into the NUC and control it that way.

All the NUCs are preconfigured to report their current IP address to PollMeMaybe, a rudimentary webservice we built to solve this problem. Once your NUC comes online it will poll the site every minute so you can copy the IP and SSH in.

Pushing git commits from the NUC

The NUC has an SSH key that's configured as a deploy key with write access to your team's github repo. Basically this means you can push from the NUC without doing any funky authentication things (This is how the initial commits were pushed)