Software Installation

You are not logged in.

Please Log In for full access to the web site.
Note that this link will take you to an external site (https://shimmer.mit.edu) to authenticate, and then you will be redirected back to this page.

We'll be using several pieces of software for the course - Git for version control, Visual Studio Code for writing code for the microcontroller, KiCAD for PCB design, and Fusion 360 for mechanical CAD.

Git

We will be using git for version control and keeping track of everything from board designs to software. If you've taken any programming classes already, you most likely have it installed already. But to check:

macOS and Linux

Open a Terminal window and run: git version

If it turns out you don't have git installed, the installers can be found here

Windows

We recommend using either WSL or Git Bash as your terminal. I prefer WSL, but Git Bash is used in some other classes.

If you have neither of these and want to install one of them, you can do so from here:

Git Bash

If you have git bash, then by definition you have git.

WSL

  1. Open the WSL terminal and run: git version

If it turns out you don't have git installed, you can install via: sudo apt-get install git

And then you'll want to change how git handles line endings to be more compatible with MacOS/Linux: git config --global core.autocrlf true

  1. One other thing you'll want to do if using WSL is make it easy to find your Windows User directory, where you're probably storing all your class files. Your Windows C:\Users\ drive is /mnt/c/Users in WSL. So I like to set a simple alias to easily get to my desired Windows directory. Let's do that.
  • Figure out which folder you want to alias. Open the Window File Explorer and navigate to that folder. Then click in the title bar and you should see something like so:
Expanded windows file path
Expanded windows file path

You can see at the top that the path to this folder is:

C:\Users\Joel\MIT Dropbox\Joel Voldman\MIT

That will be translated in WSL to this:

/mnt/c/Users/Joel/"MIT Dropbox"/"Joel Voldman"/MIT

Basically, the backslashes go to forward slashes, and we add quotes around folders with spaces in the names. Note that the folder names are case sensitive. Figure out the path for the Windows folder that you wish to alias.

  • Next, let's test that path. Open a WSL terminal and type:

cd /mnt/c/Users/Joel/"MIT Dropbox"/"Joel Voldman"/MIT

where you've replaced the path with your own. If you end up in the desired directory, then you're almost there.

  • Now we're going to make an alias so it's easy to get to this folder each time. We'll do that by making an alias in .bashrc, which is a file that runs every time you start a WSL terminal. In the WSL terminal type:
cd ~
nano .bashrc

Nano is a liteweight text editor, though if you are partial to emacs or vim use that instead.

Scroll down to the end of the file.

Start a new line and type:

alias cdwin='cd /mnt/c/Users/Joel/"MIT Dropbox"/"Joel Voldman"/MIT'

where you've again replaced the directory path with your own desired one. Note that we enclose the entire cd command in single quotes.

Save and exit nano: Ctrl+S and then Ctrl+X.

Open a new WSL terminal and type: cdwin. If all is good, you should be in your desired Windows folder.

If you ever want to move back to your WSL home directory, you can use cd ~. So now it's easy to move back and forth.

Configuring Git

To help make our git commits nicer, we'll do some configurations. If you already have git installed run the below two commands and make sure the name and email are correct. For email, ideally use your mit.edu email but any email that reaches you is fine.

git config --get user.name
git config --get user.email

If the name and email are not looking right, or you just installed git and haven't configured them yet, use

git config --global user.name "your name"
git config --global user.email kerb@mit.edu

Setting Up github.mit.edu

To host our repositories, we will be using Github. More specifically, we will be using MIT's Github Enterprise installation at github.mit.edu. To set it up:

  1. Go to github.mit.edu
  2. On the menu on the top right, go to Settings and then to SSH and GPG Keys
  3. Follow Github's instructions on setting up SSH here

(macOS Only) Installing Homebrew

Homebrew is a package manager for macOS devices. It is similar to pip where you can install software with a single line and it comes pre-configured. The difference is pip installs Python packages and Homebrew installs standalone software. Before anything, let's just check that we don't have it installed already. In your terminal run:

brew -v

If this succeedes and tells you something like "Homebrew x.x.x", you're good, pat yourself on the back and continue. If not run this magical script ripped directly from Homebrew's web page:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Visual Studio Code

The first thing we need to do is download and install the software that we'll be using to work with our microcontroller. We could just use regular "Arduino" and its IDE, but it's not great. So instead we'll use Visual Studio Code with the PlatformIO extension. While less hand-holdy than the Arduino IDE, it is a far more usable development environment (minus a few annoyances), and essentially what is/could be used in industry.

Visual Studio Code (VS Code for short)

If you already have Visual Studio Code (note this is NOT the same thing as Visual Studio), you can skip to the Visual Studio Code Extensions section.

Since we'll be using PlatformIO via a Visual Studio Code extension, so we'll first need to download VS Code. Go here and select the option for your operating system. Download and install it.

Visual Studio Code Extensions

Mac with Apple Silicon (M1/M2/M3) Users!!

Before installing the VS Code extension PlatformIO, we need to install Rosetta first. Rosetta allows your M1/M2 Mac to use apps that are meant for Macs with an intell processor (PlatformIO being one of them).

Go into a terminal and run:

softwareupdate --install-rosetta

Before opening VSCode (if already opened, quit the app), find VS Code in Folder, right click on it and click Get Info. In the dialog box, tick the Open using Rosetta option.

Note: This should help fix any chardet or arm64 and x86\_64 error messages. Ensure you quit VSCode and reopen it after making this change.

VSCode Get Info dialog box
VSCode Get Info dialog box

Once it's installed, open up Visual Studio Code. You may be greeted with some optional setup steps, you can ignore these.

Take a look at the sidebar all the way to the left. Select the fifth one from the top (if you hover over it, it'll say "Extensions").

Visual Studio Code sidebar with Extensions Icon Highlighted
Visual Studio Code sidebar. "Extensions" is the last option from the top.

C/C++

When you click on that icon, a search bar should appear to the right of the sidebar. PlatformIO depends on Microsoft's C/C++ extension, so we need to install that. Type "C/C++" into the search bar and it should come up. It looks like this:

C Extension visual

Select it, then click the blue "Install" button to install it.

PlatformIO

PlatformIO is the development environment we'll be using when doing the labs. It's offered as a Visual Studio Code extension, so we'll install it like we did the C/C++ extension. Type "PlatformIO" into the extensions search bar and this should come up:

PlatformIO Extension visual

Select it and click "Install." Once it installs, restart Visual Studio Code (exit and reopen it). You should now have a new icon on your sidebar.

PlatformIO Extension visual
New PlatformIO Icon(!!)

Let's investigate. Click on the icon, and a menu should appear to the right of the sidebar. Click "Open" (the first option under the "PIO Home" section). Now, we should be on the PlatformIO home page! (If you are not, click on the little house in the bottom left corner of the screen, on the purple toolbar.)

Setup Tutorial Project
PlatformIO Homepage

To be able to run PlatformIO from the command line and the terminal we'll need some extra steps. These are optional but HEAVILY suggested.

macOS

Assuming you've installed Homebrew already (if not, you should. It's good for you) you can simply run

brew install platformio

And you're done.

KiCAD

To develop our own PCBs, we'll use KiCAD, which is a free and open-source schematic capture and PCB layout tool that is gaining in popularity.

For this class, we will be using KiCAD version 8.0+!

Installing KiCAD

Windows / macOS

Go here and select your operating system. This will bring to a page where you can click Github to download KiCAD.

Ubuntu/Fedora/Debian Linux

Follow the instructions found here for your appropriate version of Linux.

Fusion (rebranded from Fusion 360)

We'll be using Fusion for mechanical CAD. It's cross-platform-ish, and works on Windows and MacOS. If you're on a platform that isn't either of these, talk to us.

Register for an Autodesk Account

Run over here, and sign up for an Autodesk account with your MIT email/kerberos. This will make sure that you're eligible for the educational license.

Installing Fusion

Windows / macOS

Grab the appropriate installer for your OS from the Autodesk downloads page. If you don't have a license yet (which you probably don't) select the student one and fill out the institution information. If you are logged in with your account using your MIT email and fill out the address information, it should automatically verify your status. Run the installer with the default options, and you should be all set.

Everything Else

You can run Fusion in a browser! It's not as fast as the desktop, but if you sign in here you'll get the exact same interface as what you'd see if you were running it locally.