How did we design and build such a complex device in such a short period of time? Lot's of hard work, late nights, and YouTube videos. Beyond brute force, though, it took a lot of careful planning and skill-development to make the M&M machine happen. We also made use of several useful skills and strategies, detailed below.


At the start of the project, we split up based on our learning goals and interests. Liv and Justin, who both wanted to improve their mechanical skills, worked primarily on the dispenser and gantry. Ariana, Anne, and Lydia, who were more interested in the electrical and software side of things, worked on motors, image processing, and laptop-computer interaction.


This seven-week project was divided into three two-week sprints and one abbreviated one. Each sprint, we decided on a level of completeness and pushed to meet that goal. At the end of each sprint, we presented our process to a group of students and instructors, who gave us feedback and suggestions for the next sprint.


The entire system was CADed in SolidWorks, and files were shared through GrabCAD. Since the dispenser and the gantry were such disparate systems, Justin primarily CADed the gantry and Liv primarily CADed the dispenser.


With the exception of a few bearings and motors, the vast majority of the machine is made of laser-cut MDF and 3D-printed PLA. Laser-cutting proved a useful tool for building the gantry, and 3D-priiting made prototyping the dispenser quick and easy.


Much of our code was written in a pair-programming format, making bugs less common and easier to fix. We wrote all of the image processing in Python and all actuation code in Arduino.

Learn More


From humble cardboard and paper beginnings, the gantry and dispenser advanced through the sprints to become the marvels of engineering they are today.

Electrical and Computer

The electrical and computer components continuously advanced and incorporated more parts, becoming one of the most complex parts of this project.