Python Powered Party Popper Puller


After reading about a number of wireless consumer devices having security issues I had the idea to create a workshop that introduced people to some of the concepts behind penetration testing. It was only after reading about the failure of Tapplock that I was finally spurred into action.

Steering clear of using an actual product seemed like a sensible idea so I needed to create something I could authorize people to do attacks on. It wanted it to be something that would result in a reaction a little more dramatic than an LED flashing on. As exciting at that can be, I wanted something that could compete with those chemistry science communicators and their explosions.

After experimenting with a couple of other ideas I came up with the idea of using a micro:bit to pull a party popper. Having it controlled over the radio module would allow for different attack vectors.

The Beginning

Struggling to get started on what the machine should look like, I turned to Twitter for inspiration:

Help! Looking for some inspiration on how I can get a #microbit to pull the string on my party poppers. Any ideas?

— Barry Byford (@uk_baz) July 12, 2018

Suggestions came flooding in and Brian's caught my attention.

Hmmm a weight attached to the string and a release mechanism

— Brian Welsby (@TheFlyingKipper) July 12, 2018

Using a Weight

A bit of research had revealed that it took 20 newtons (or a 2kg stationary weight) to pull a party popper. Time for some experiments to see what that might look like as a machine...

Project #remotepopper has started

— Barry Byford (@uk_baz) July 13, 2018

and test some different weights:

After @TheFlyingKipper suggested a "weight on string" as the release mechanism for project #remotepopper some experimentation was called for. First up, 600g weight

— Barry Byford (@uk_baz) July 13, 2018

As 600g worked so well for #remotepopper it is 300g up next

— Barry Byford (@uk_baz) July 13, 2018

With 300g weight working well for #remotepopper it was 100g up next

— Barry Byford (@uk_baz) July 13, 2018

While this had worked. It didn't feel like it was going to be reliable. As these were going to be used for a workshop they were going to have to be easy to build, store and transport. This solution didn't feel like it was going in the right direction so time to look at something else.

Using Servos

One of the other solutions I'd had on Twitter was using servos. But what about the small problem of pulling 2kg? A fair bit of searching later and I found a database that listed lots of servos. But what did all that data mean? Clearly I was not the first person to think this as had done a very good write-up explaining how to decide on the right servo for your project.

Looking for servos for project #remotepopper. Found great database of
RC servo.
But where to start? modulation, weight, torque, motor type, rotation Argh!
This helped a lot

— Barry Byford (@uk_baz) July 15, 2018

With a servo selected the next challenge was how to hold the party poppers and servos etc. A friend said I could use their 3D printer if I provided the filament. So time to get designing...

Trying to learn TinkerCAD for project #remotepopper

— Barry Byford (@uk_baz) July 17, 2018

The 3D printer had a live feed so I could see how things were progressing:

Status right now... Watching this via the live feed...

— Barry Byford (@uk_baz) July 18, 2018

The result looked better than I could have hoped for:

Pretty happy with the way the print of #remotepopper came out. However it is turning out a lot harder to pull a party popper than you might think. We are going to need bigger batteries!

— Barry Byford (@uk_baz) July 18, 2018

There were however a few problems when trying to use the machine. Attaching the string from the party popper to the servo arm was fiddly. If I didn't have enough slack in the string the servo would stall and be damaged.

If only I could find a better way of grabbing the string... Back to the drawing board...

Project #remotepopper takes a new direction...

— Barry Byford (@uk_baz) July 20, 2018

The idea was that the string would get caught in the gears and get pulled. However it turns out printing gear wheels is trickier than I thought. I still like the idea but it was difficult to execute.

All the gear, no idea! #RemotePopper

— Barry Byford (@uk_baz) July 23, 2018

Time for another rethink...

Motors and LEGO

Time to break out the Micro Metal Gearmotors. There are a lot to choose from! With a choice made it was time for some more testing.

The problem of how to have a quick attach mechanism for the party popper string was still playing on my mind.

Testing continues for #RemotePopper

— Barry Byford (@uk_baz) July 27, 2018

The idea was to attach the motors to some LEGO. The first attempt look good and held the party popper nicely over the motor. It was the old problem of how to attach the string that proved to be the weak link.

Yep, #RemotePopper isn't going to work with a crocodile clip on the end

— Barry Byford (@uk_baz) July 27, 2018

Solving that problem just brought another familiar problem in to play. It appears the force to pull a party popper is more than the force to pull LEGO apart...

And now the motor and party popper are stronger that the LEGO fixing. Time to redesign the fixing... #RemotePopper

— Barry Byford (@uk_baz) July 28, 2018

Improving the structure of the LEGO around the motor and turning the crocodile clip around brought a step forward although results were still not reliable although greatly improve!!!

We have a #RemotePopper !!!!! (Sometimes)

— Barry Byford (@uk_baz) July 30, 2018

Buying a bag of mixed LEGO Technic for eBay allowed for some gearing and attaching the axle at both ends which brought big improvements.

New and improved #RemotePopper deserves the slo-mo treatment

— Barry Byford (@uk_baz) July 31, 2018

Designing out the croc clip

The crocodile clip had to go. It was not reliably at grabbing the string on the party popper. Looking through the bag of LOGO Technic I had bought I found a few items that looked like they might be helpful. The "connecting bush" seemed to grab the string reliably and hold it when put in the hole of a beam.

The crocodile clip has gone as we have a new contended for quickly attaching the string to #RemotePopper

— Barry Byford (@uk_baz) August 11, 2018

A beam was not a great item to be spinning around so I changed it to a pulley wheel. The first time I tried this I had forgotten to put some of the vital bricks back in place which resulted in a familiar outcome.

Still don't have 100% reliability with #RemotePopper

— Barry Byford (@uk_baz) August 11, 2018

Replicating the design

LEGO have a Pick A Brick service that allows you to buy only the bricks you need. The plan had been to use this service once I had a design I was happy with using the assortment of LEGO I already had.

What I had not thought about was that some of the items I had used might not be available through Pick A Brick. For example "6133119: Gear Wheel Z24" is not available. Now, there are other sites where these are available. However they do not have other bits or the quantity I need.

For now I'll continue to work on the design with this in mind...

Next Steps

There are still a number of issues to resolve: