Skip to content
Vaughn Kottler edited this page May 26, 2023 · 10 revisions

Getting Started

Ubuntu Desktop (or Server)

Note: It's recommended to run Ubuntu on the most CPU-capable machine you have access to. If you're currently running Windows on it, the best path forward would be to get an additional SSD or NVMe drive installed and install Ubuntu on it.

I've personally had trouble installing Ubuntu Desktop directly on some computers with graphics cards installed.

What I typically do is install Ubuntu Server, get through an initial boot, run a sudo apt-get update && sudo apt-get upgrade -y, reboot, then install the graphical environment with sudo apt-get install ubuntu-desktop -y (which takes a long time).

From there, if you have an Nvidia graphics card, the installer doesn't install the proprietary driver(s) for it from Nvidia.

I normally just Google "ubuntu install latest nvidia driver" and follow something like this (sudo apt install nvidia-driver-525 nvidia-dkms-525, then reboot).

Initial Bootstrapping

  1. Get your GitHub account and SSH key set up (see also: these docs).

  2. Get the workspace checked out:

cd

mkdir -p src/project-81
cd src/project-81

git clone [email protected]:project-81/workspace.git
cd workspace
git submodule update --init

cd
ln -s ./src/project-81/workspace
  1. (Optional) Add your git information to the config repository:
cd
cd workspace/config/rcmpy/configs
mkdir $USER
cd $USER
touch git.yaml

Then edit git.yaml to have the correct contents (see this example).

Next, you can specify the name of your computer in a computers.yaml in the same directory:

touch computers.yaml

See this example.

These steps control a few minor things during bootstrapping, that can always be performed easily later (with just ra which will be an alias installed for rcmpy apply).

  1. Run the bootstrapping script:
cd
cd workspace
./scripts/bootstrap.sh

You will be prompted for a sudo password.

Building Firmware

  1. The repository should be checked out by the bootstrapping script to ~/src/project-81/firmware, but having a convenient symbolic link is nice:
cd
ln -s ./src/project-81/firmware
  1. Run mk to build everything (including the initial toolchain):
cd
cd firmware
mk
  1. The firmware repository's README should have further instructions for development workflow.

Board Support

Pro's

  • Using it at work, so continuing to build familiarity with it is handy
  • Board has RJ45 and PHY ready for 10/100 Ethernet
  • Board has on-board J-Link, so no external J-Link is needed

Con's

  • Doesn't appear to be stocked, so probably the supply-chain story doesn't hold up

Pro's

Con's

  • At $40 a board, would maybe make sense if that SAMD51 / other SAM processors would be used heavily

Raspberry Pi Pico (and "W" variant)

Pro's

  • Cheap and seemingly good supply-chain for time to come
  • PIO peripheral could make it a great candidate for real-time control problems
  • Compatible with a lot of different debugging options (Raspberry Pi itself, another Pi Pico, J-Link, etc.)
  • A surprising amount of memory + flash + processor capability in a cheap and small package

Con's

  • IO count potentially, no Ethernet but not really an issue

Pro's

  • Shares pretty much all of the pro's that the regular Pi Pico's share

Con's

  • No native SWD debug interface (appears to be on the bottom of the board as a few pads)