Pico Kit Puzzle Box

hero-image

Daniel Friedlander

Project Timeline

Sep 2025 - Dec-2025

OVERVIEW

My partner and I created an interactive escape room puzzle box that guides players through a series of challenges using a button keypad and an LCD display. The LCD screen serves as the gamemaster and presents clues for each puzzle. Players enter their answers by pressing on the colored buttons. When the correct combination of buttons is entered, the system activates a servo motor to unlock the next compartment and moves on to the next question. The puzzle has two lockable boxes. Solving the first puzzle causes the first servo motor to rotate and unlock the first box. Inside this box, players find a physical key and the second puzzle stage gets displayed on the LCD. Entering the correct sequence for the second stage triggers the second servo motor, which unlocks a larger box containing a 3D printed chest. The key from the first box opens this chest, which holds the final reward, such as a piece of candy. Throughout development we created a working model of the full puzzle system and 3D printed the chest that appears at the end of the game. We tested all wiring and confirmed that both servo motors and the LCD display can run from the same powered row connected to the Raspberry Pi Pico. This simplified our setup and prevented overloading any individual pin. For data collection, we recorded the time it took each user to complete each puzzle. The timer starts after each question is asked and ends once the correct sequence is inputted. We then used MATLAB to create a scatter plot of how long each user took to complete the first and second puzzle, as well as the total time. Then, the average, median, and standard deviation was calculated and plotted on a grouped bar graph. Overall, the project combines puzzle design, physical interaction, electronics, and user experience. It creates a compact escape room that moves players step by step through clues, button sequences, and mechanical reveals, ending with a final prize.

HighlightS

Brief Project Overview

Our project is an interactive escape room puzzle box that guides players through a series of challenges using a button keypad and an LCD display. The LCD screen serves as the gamemaster and presents clues for each puzzle. Players enter their answers by pressing on the colored buttons. When the correct combination of buttons is entered, the system activates a servo motor to unlock the next compartment and moves on to the next question.

The puzzle has two lockable boxes. Solving the first puzzle causes the first servo motor to rotate and unlock the first box. Inside this box, players find a physical key and the second puzzle stage gets displayed on the LCD. Entering the correct sequence for the second stage triggers the second servo motor, which unlocks a larger box containing a 3D printed chest. The key from the first box opens this chest, which holds the final reward, such as a piece of candy.

Throughout development we created a working model of the full puzzle system and 3D printed the chest that appears at the end of the game. We tested all wiring and confirmed that both servo motors and the LCD display can run from the same powered row connected to the Raspberry Pi Pico. This simplified our setup and prevented overloading any individual pin.

For data collection, we recorded the time it took each user to complete each puzzle.  The timer starts after each question is asked and ends once the correct sequence is inputted.  We then used MATLAB to create a scatter plot of how long each user took to complete the first and second puzzle, as well as the total time. Then, the average, median, and standard deviation was calculated and plotted on a grouped bar graph.

Overall, the project combines puzzle design, physical interaction, electronics, and user experience. It creates a compact escape room that moves players step by step through clues, button sequences, and mechanical reveals, ending with a final prize.


User Manual

Getting Started

Place the puzzle box on a flat surface. When the system turns on, the LCD screen will show a welcome message and instructions.

How to Play


  1. Read the instructions on the LCD screen.
  2. Read the clue on the LCD screen.
  3. Use the colored buttons to enter the correct combination.
  4. If the input is wrong, the LCD screen will not update.
  5. If the input is correct, the LCD screen will say 'Correct!’ and the system will turn the servo motor to unlock the drawer.  The user can open the drawer and obtain the item inside
  6. Then the LCD will display the next clue.
  7. Repeat steps 2-5
  8. Now the user should have both a key and a chest

Final Step

Your reward will appear when you use the key to open the chest by turning counterclockwise.

Safety Notes

Do not force the servo operated parts.

Do not force the drawers open.


Reflection on Challenges and Solutions

Throughout the project we faced technical and design challenges that shaped our final system. Our first challenge was deciding on the main interaction method. We originally planned to use sensors to create an alarm-style system with RFID tags, but this approach was complicated and did not support clear puzzle progression. Because of this, we shifted to a button keypad and LCD clues. This change made the experience more consistent and easier to control.

Powering all components was another concern. The two servo motors and the LCD screen draw more current than a single Pico pin can handle. At first we were unsure if they could share the same power source. After testing, we placed them on the same powered row and used jumper wires to distribute power. This solved the issue and kept the wiring simple.

Puzzle difficulty was also a challenge. Our early ideas seemed too confusing, but after testing the puzzles ourselves we realized that the clues made sense without being too easy. Testing helped us understand how players interpret the clues and what adjustments were needed.

We also had mechanical challenges. The servo motors needed to move smoothly, so we tested different angles and timings to ensure that the drawers could unlock and move without getting stuck. We also made sure they could relock properly after the game concluded. The chest that holds the final prize was 3D printed, and we had to make sure its design fit both the motors and the objects placed inside.

Finally, we discussed how to collect data about players and explored several options. We decided to use a time log within the code that records how long each puzzle takes, which became our method of data collection.


Workload Distribution

I worked on wiring the board, setting up the keypad, and connecting the LCD display. He also helped write, comment, and debug the game code.  He also wrote the matlab code and plotted the data.

My partner designed the puzzle box, completed the 3D printing, and created the website.

Both team members worked together on puzzle design, testing, troubleshooting code, installed and tested the servo motors, and documentation.





Commented Code

MicroPython Code:



Matlab Code:



Data Visualization

Data:


Matlab Graphs

SKILLS

ArduinoPythonMATLAB

ADDITIONAL CONTENTS


Home
Questions?
hero-image

Daniel Friedlander

Mechanical Engineering Student

I'm a Mechanical Engineering student at Northeastern University with a minor in Computer Science and a strong foundation in CAD design, embedded systems, and process optimization. I combine technical proficiency in Java, Python, and MATLAB with hands-on experience in manufacturing and mechanical repair. My co-op at TJX Companies strengthened my ability to foster and maintain business relations, while my projects demonstrate expertise in biomimetic design and real-time embedded systems development.

| lowinertia |
Engineering Portfolio in 15 minutes
Create Your Portfolio