Blog - Sketching with Hardware

Unboxing the Bandit Box

Published on: | Author: Alexander Schmidt | Categories: 2017b, Projects

Greetings, dear reader! In the following paragraphs we will journey together through a summary of our idea, learnings and results, displaying our one week long progress of creating the infamous Bandit Box.


 

TL;DR: Some key tips

So I know there’s lots of interesting stuff on this blog and maybe you are just skimming through it all. In that case let me at least share some small but key things we learned with you, because those might be useful for your future projects.

  • Write down your key features in order of priority and don’t let yourself get distracted too much from that order. (We enabled our box to be able to Rick Roll people and implemented our own music library which didn’t even get used in the end because we struggled with the physical mechanics.)
  • But also don’t be afraid to swap up your game plan. Sometimes you just hit a wall and continually trying to get around it might cost lots of valuable time and motivation. If you are feeling your current task is destined to fail, the odds are, there might be a different approach that makes better use of your personal skills. So take a step back, clear your head for a moment, and think of other ways you could handle the problem. (I for example was able to solve frustrating soldering problems with tiny LEDs by using big LEDs instead and reflecting them with a handmade mirror-cage to where the tiny LEDs should’ve been. More on that later.)
  • Use tape and a marker to label your different cable ends, that don’t end up in GND. Might seem tedious at first but safes an amazing amount of time sorting through that mess.
  • Properly isolate everything as soon as you’re done soldering it. You don’t wanna search for the one piece that shorts out the entire circuit in a mountain of cables. And it will only get worse as soon as you try fitting all the cables and circuit boards with their exposed pins into the tiny space you allocated for them.
  • Don’t forget to have fun! It might become stressful as the deadline edges closer and closer, but tinkering with electronics is still awesome and you will learn a lot from every mistake. So try to enjoy it while it lasts! 🙂

 

The Idea: A physical safe – for digital goods?

Now back to our project. Once the topic was announced as “something old, something new, something powered, something woo-hoo!”, which urged us to find something interesting but antique and pimp it up with some interactive electronics in order to create something cool, we wanted to keep an open mind. So we started to browse any antiquity shops we could reach in our break to get some inspiration for old stuff that could use some top notch electro-wizardry from the upcoming century.

After carefully considering things like the “cane-remote” we found one of those beautiful old lock boxes and found it the most promising idea to have it’s physical unlocking mechanism unlock something digital.

 

Our set of goals

After refining the idea and finding a suitable object, that wouldn’t have our wallets crying out in anguish (big thanks to my teammate Michael for sponsoring that amazing plastic china box) we defined a set of goals that did fit the framework of this course and would work well together with our newly acquired silver treasure chest.

Main features:

  • Using the silver knob on top as some sort of secretive password input device with hidden LEDs as indicators
  • Automatic physical opening of the box upon entering of the correct password
  • Locking mechanism, that keeps the box shut when it should be.
  • Alarm upon entering of a wrong password

Bonus features (to be implemented as time allows):

  • WLAN-connection in order to unlock digital systems and send intrusion detection alerts via email.
  • Password forgotten button, that would also make the box angry upon pressing
  • Mysterious smoke upon opening
  • more haptic, acoustic and optic feedback for improved usability
  • On-/Off-Button + battery operation

day0

 

The result

While we progressed through our project we became more and more glad, that we formulated a big chunk of the features as optional, as unforeseen problems arose and haunted us until the end. But the feature of the box becoming angry (upon attempting to reset its password) was the thing we looked forward to the most and cutting it from the first prototype broke a piece of our hearts. In the end we were still happy with the resulting Bandit Box v1 though.

So take a seat, grab some popcorn and a drink as SWH 2017B – Team 4 proudly presents the Bandit Box Prototype:

 

The following features were implemented in the first prototype:

  • Reading of the rotation of the silver knob and if it is pressed down via a button below
  • Indication of the current program and I/O state via the hidden LEDs around the knob (including a self made, small library of lightweight functions for various display functions)
  • Sound interface for playing any melodies on one or more piezos
  • Haptic Feedback (currently via vibration) (unfortunately the vibrator failed us)
  • Opening mechanism via a stepper motor that turns a screw-like shaft
  • Locking mechanism via a linear solenoid

We unfortunately melted through multiple motors minutes before our presentation. (If your popcorn wasn’t done before, our box could probably handle it at that point!) This resulted in it not really opening, but I promise it did when it was suffering less stage fright.

 

Forging the digital age’s Fort Knox – a progress rundown

Day 1:

  • Planning of the input device and drilling & laser-printing of its fittings.
  • Getting confused by lots of rotary encoders and getting our favorite one to work.

day1

Day 2:

  • Splitting our two man team into Team Mecha (Michael), figuring out how to open the box, and Team Lightbringer (Alex), figuring out how to handle I/O of the password input.
  • Short term crisis on both sides about soldering those devilish tiny LEDs and about every motor device not being able to lift the surprisingly heavy box lid. Restructuring our idea as a result of that:
    • Bigger LED Strips will be reflected from rings on the side by a circular 45° mirror upwards instead of soldering tiny LEDs directly below the display ring. This solved the space-problem just as well and added a little more diffusion to the whole thing.
    • Instead of using motors to push the lid directly, it now spins a 3D-printed screw inside a threaded shaft, that lifts the lid where it is attached to. This helped to relieve a lot of stress from the motor.

day2

Day 3:

  • Implementation of our new Day 2 solutions

day3

Day 4&5 (Weekend – Work from home):

  • Coding and Artwork
  • Trying to foresee potential problems

200w_d

Day 6:

  • Locking mechanism
  • Combining of the separate parts
  • Overwhelming amounts of troubleshooting

day6

Day 7 (presentation day):

  • getting surprised by old problems that were fixed the day before
  • only small amounts of crying
  • praising the savior duct tape and hot glue
  • enjoying the awesome presentations of all our fellow teams and the project wrap-up.

 

We choose you to continue our legacy! (Resources for this build)

If our first attempt at this concept intrigued you just as much as us, the following specific details might be of interest to you. Feel free to join us in trying to develop this thing further. 

The code: https://hastebin.com/qasujiluqi.cpp

The parts used:

  • Arduino Uno Rev3
  • Rotary Encoder De2-0-1-32 (Datasheet: https://goo.gl/FWPbJx)
  • Vibrator FF180-SH (Datasheet: https://goo.gl/sfavF9)
  • LED Strips WS2812 30LEDs/m (Detailed guide: https://goo.gl/87u2zp)
  • External 12V (for the stepper), 5V (for the LEDs and vibration) and 3,3V (for the Encoder) Power Sources
  • 5V Phone Charger to power the Arduino
  • Stepper Motor (I cannot recommend ours as it was too weak, any motor with a good amount of torque should do)
  • Any linear solenoid for locking
  • Random Arcade Button (Any button with a good amount of resistance will do)

Libraries used:

  • AdaFruit NeoPixel
  • AccelStepper

The circuit:

… was actually kept pretty simple, so a short writeup of the connections should be easier to rebuild than a drawn circuit.

  • Arduino Ports (digital):
    • 2 – Input – Pin 4 of Rotary Encoder
    • 3 – Input – Pin 3 of Rotary Encoder
    • 4 – Output – Pin 1 of Stepper driver
    • 5 – Output – Control Pin of LED Strip
    • 6 – Output – Pin 2 of Stepper driver
    • 7 – Input (Pull Up) – Button (+)
    • 8 – Output – Vibrator (+)
    • 10 – Output – Piezo (+)
    • 11 – Output – Pin 3 of Stepper driver
    • 12 – Output – Pin 4 of Stepper driver
  • Power:
    • Arduino – 5V
    • LED-Strips – 5V
    • Rotary Encoder – 3,3V or 5V
    • Stepper – 12V (depends on which one you will use)
    • Linear Solenoid – 5V
    • Vibrator – 5V
  • GND: just connect them all together
  • other: you might want to use a 1000uF capacitor between (+) and GND at the beginning of your LED Strip and an ~400 Ohm resistor at its control pin for burnout safety.
linked categories 2017b, Projects

|

Write a comment

Comment