Software Installation
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
- 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
- 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
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:
- Go to github.mit.edu
- On the menu on the top right, go to Settings and then to SSH and GPG Keys
- 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
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
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. "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:

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:

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.

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.)

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.