An interactive decorative lamp inspired by Thor’s hammer, Mjölnir, developed in the course ADA525 – Rapid Prototyping. The project combines digital fabrication and physical computing to create a unique lamp with motion-based light control and cloud-based remote operation.
- Aesthetic design: 3D-printed hammer with a “cracked” pattern that lets light through.
- Motion-based lighting: Accelerometer detects movements (lifting, shaking, etc.) and triggers different LED effects.
- Remote control: Connected to Arduino IoT Cloud – turn on/off and change colors via dashboard.
- Two modes:
- Motion mode: Lights change automatically based on motion.
- Manual mode: Users select colors and brightness via the dashboard.
- Battery-powered: More portable and responsive than USB-powered operation.
- Microcontroller: Arduino Uno R4 Wi-Fi
- Sensor: Accelerometer (3-axis motion sensor)
- Output: LED strip (controlled via FastLED library)
- Cloud: Arduino IoT Cloud for dashboard and remote control
- Programming: Arduino C++ (connecting sensor data, LEDs, and IoT Cloud)
- Digital fabrication:
- CAD modeling through multiple iterations
- 3D printing of hammer in sections with pegs and slots
The project began with the goal of creating an interactive lamp that functions as both a decorative object and a practical light source.
Initial design sketches featured a transparent panel, but this exposed too much of the interior. The solution was a “cracked” pattern that allows light to shine through while concealing the components. The hammer was split into multiple parts (head in two, handle in two) for easier 3D printing and assembly. The pattern was manually applied to each surface in CAD, using an SVG imported from an iPad drawing.
During 3D printing and assembly, test prints were used to check dimensions and fit. Pegs and slots were primarily used to connect the parts, with glue added for additional strength. End caps were initially printed incorrectly, with temporary fixes applied. The interior included a board to mount the Arduino, accelerometer, and breadboard, while an LED strip was wrapped around it to ensure even light distribution.
Electronics and programming involved connecting an Arduino Uno R4 (for built-in Wi-Fi) to the accelerometer and LED strip. Accelerometer readings were normalized to RGB values to control the LED strip using the FastLED library.
The Arduino IoT Cloud dashboard displays real-time sensor data, allowing users to change colors, turn the lamp on or off, and switch between motion and manual modes.
Throughout development, several issues were resolved:
- Sensor noise:
- Initially unstable signals → resolved by soldering and battery operation (more stable power).
- CAD challenges:
- Difficult to project pattern onto square surfaces → solved by drawing one face at a time.
- Color conversion
- Dashboard used HSV, LED strip required RGB → conversion implemented in code.
- Testing
- Movements like lift/shake → triggered different light patterns.
- Dashboard control worked with minimal delay.
- An Arduino with wifi, I used UnoR4
- LED-strip
- Accelerometer
- Set up an arduino cloud account and click into "Things"
- Add a thing and call it ThorsHammer
- Set up the device you want to use by clicking "Select Device" under "Associated Device". Follow the instructions for setting up a new device.
- Add cloud variables according to the picture:
- Go into sketch and add the code in ThorsHammer.ino into the .ino file.
- Add a "Secrets Tab" and fill in sketch secrets which will be the wifi connection settings:
- SECRET_OPTIONAL_PASS
- SECRET_SSID
When you are connected to the microcontroller and set up the code you can run the code onto the controller. To get a dashboard you need to go to "Dashboards" in menu. Here you can add different widgets based on the associated cloud variables of the things. I added:
- A switch for UserOrAutomatic variable
- A Colored light widget for the LED variable
- A chart for each of the accelerometer variables (x,y,z)











