Before I continue, may I just get something out there now? I. Hate. Fancy. Dress.
I rarely see the point of it. Does anyone actually care what or who you come to a party as? Do I really have to spend time and money finding a suitable costume, either by scrabbling things together, buying new, or even renting?
You can imagine these thoughts coming to mind, then, when I and my husband were asked to attend a fancy dress 40th birthday party this November. Granted, we were given plenty of time, and a reasonably open category: superheroes and villains.
After about two months of thinking "ugh, what on Earth am I going to wear?" I hit upon something that could combine some science fiction and my love for tinkering with an electronics project. I could become a Borg drone.
A few years ago, I had taken apart an old Sky HD box and salvaged a load of components and circuit boards. If you've seen a Sky HD box in action, you'll know the circular LED array on the front that lights up when watching a recording. That array, I thought, would make an excellent eyepiece.
Now, I'm not going for a 'realistic' on-screen drone clone, I want to apply some artistic licence, combine elements I liked from the various on-screen Borg, and add some of my own.
I found some other Borg costume designs that other people had created - perfect for getting some further inspiration.
My shopping / components list
Electronics
- Raspberry Pi Pico - although I went with a Pimoroni Pico LiPo and a LiPo battery
- Pico breakout board with screw terminals
- Ultrasonic distance sensor
- Reclaimed components, - I used the circular LED array from a Sky HD box, parts from a broken dehumidifier, WiFi lightbulb and other old electronics
- Black flexible split cable conduit
- Ethernet cable
- Ethernet cable jacks without magnetics (that's important, as I discovered!)
- 16/0.20mm black equipment wire
- USB-C cable for programming and charging the Pico LiPo (if using a normal Pico, you'll need a Micro USB cable)
- An enclosure - I used an old electric toothbrush travel case, roughly 200 x 55 x 30mm
Costume pieces
- Friday 13th-style hockey mask - eBay
- Elasticated lightweight motocross chest armour - eBay
- Hockey shin pads - eBay
- Elbow protectors
- Gloves with knuckle protection
Other materials and equipment
- Soldering iron, solder, desoldering pump, desoldering braid
- Glue gun and sticks
- Matt black spray paint
- Isopropyl alcohol
- Black electrical tape
- Releasable cable ties
- Fine sandpaper
- Long-sleeve black top, black jeans, black boots
- Face paints and application sponges
Programming the Pico
Programming the Pico was my first task, purely to make sure I could pull off what I wanted to do. People who know me know that if I'm going to do a project, it may take some time, but I'll add all the bells, whistles, and finesse that I can. So, when I was planning out my script for the Pico, it wasn't going to be the basic 'blink LED' test script, I wanted it to do much more:
- Sequence the eyepiece in a circular motion (by default, but also choose to be static, or off completely).
- Move a servo motor as if scanning the room.
- Use a distance sensor to detect close people/objects, then move the servo to a forward position, as if fixated on the person in front.
- Accept input from a matrix button pad, reclaimed from the Sky box, to adjust brightness levels, eyepiece functionality, and perform a battery level check.
- Blink any other connected LEDs randomly, similar to that seen with hard drive activity lights.
I used MicroPython to code the Pico. Being as I've already got a little Python experience, that seemed the logical language to use. The code isn't professional by any standards - I'm a hobby coder - but it's on GitHub Gists if you want a copy. It's a patchwork of ideas that have been cobbled together with the help of numerous tutorials.
The servo
I started with the servo using a tutorial - and, as expected, getting it to work was dead easy. After working out the min and max limits, as well as a good 'front' position, I have it so that the servo moves to a random position every ¾ of a second. The idea here is that a small red LED will be attached to servo arm. Other projects use a red laser module; I thought that was a little overkill.
LED circle
The LEDs in the eyepiece circle are wired in opposite pairs, so this was just a case of activating one GPIO pin at a time to get them to light up in a rotating animation. I wanted to replicate the style of a Sky box in playback, where there's like a 'leader' light and a fading tail behind it. I achieved this by making the first LED the brightest, the second half as bright, and the third half as bright again.
I also set up options for having no 'tail', so it's just the one pair lit at a time, being fully on, and fully off. These can be user set through presses of the appropriate button on the front panel.
Near object detection
The servo LED looks kinda impressive enough, but to add to the drama of the Borg locking on to its prey or an object, an ultrasonic sensor mounted to the chest plate. When a person or object is detected up to ~50cm ahead, the servo moves to a forward-facing position and the red LED in the centre of the eyepiece lights.
Button inputs
Six push buttons were reclaimed from the Sky box, mounted on a PCB. I thought these could be useful for some basic control whilst wearing the costume. The PCB was wired with just 5 wires, two of them serving as a common positive to three of the buttons each.
I found an online tutorial for programming a 4x4 matrix keypad and was able to use a similar approach here. By setting the pins to the two common positive wires high, the Pico can then use the three other pins to listen and work out where the input voltage is coming from.
With six buttons available, I programmed them to:
- Change the eyepiece animation (with tails, without tails, all on, all off).
- Change the eyepiece brightness (low, mid, high) through adjusting the PWM duty cycle.
- Turn the servo on and off, just in case having a little motor moving around got too annoying. When off, it moves to the forward-facing position.
- Unused.
- Unused.
- Show the battery level. By reading the system voltage, you can calculate a rough battery level percentage. I display this through lighting the eyepiece (4 segments available, lit in 25% steps), and also flash the onboard LED (once for 0-25%, up to 4 times for 75-100%).
After compiling and uploading to the Pico it had to be disconnected ... meaning it could only be tested again once soldering and construction was kinda complete...
Construction
I started with the mask. I chose the full face-type mask, rather than a Phantom of the Opera-style half mask, as I wanted to ensure I had forehead space to attach components to. I did, though, use strong scissors to cut from the cheek of one side over to the eye hole of the other. This gave enough space to work with whilst keeping the support of the elastic straps. An offcut piece of plastic was retained to become a backing support for the eyepiece.
I used fine, 100 grit, sandpaper on the face of the mask to roughen it up a little and to allow the spray paint to adhere. Before applying the first layer of paint, though, I attached the first of the components, these coming from a broken WiFi light bulb, using the hot glue gun. Once cooled, I gave these the first layer of black paint.
I also took this opportunity to apply the first layer of paint to the red, white, blue, and silver shin pads, and the logos on the elbow protectors and gloves. Look closely and you can still see the Adidas, Bodyprox, and MadBike logos but, meh, they're not stand-out white anymore.
I ideally wanted the outfit to be a bit modular. I didn't want everything hard-soldered in to place, making it difficult to store, transport, and put on. After thinking about where to place the Pico, and how to get the various components all connected, I decided to use an Ethernet cable. With 8 wires and a nice, easy to use connector, it was a great choice.
Here is where, though, I learned something about some Ethernet jacks. To reduce interference, some of them have 'magnetics' in the back of them. After discovering this, I ordered some non-magnetic versions which gave the expected connectivity.
The eyepiece, servo, and mask wiring
As mentioned before, the basis of the eyepiece is a circular LED array from the front panel of an old Sky HD box. Normally it's mounted to a PCB, but I wanted a more 'chunky' look to it. By desoldering the LEDs from the board and then wiring them individually, with a common negative, the bunch of 20-gauge wires give a solid core when taped together with black electrical tape.
This, however, made it difficult to mount to the mask. I had hoped to glue the eyepiece to the plastic offcut, then that to the mask, however the shape of the final piece made it difficult to glue without using excessive amounts of hot glue. Instead, I went with using the black electrical tape to hold the eyepiece in place. I was concerned about the tape being visible, however it actually ended up looking reasonably good. It also had the benefit of not entirely covering my right eye, meaning I still have some peripheral vision.
The other working electronic component on the mask is the scanning servo. Like an electronic eye, scanning the room for targets, a servo with a red LED attached was glued to the side of the mask, the same side as the eyepiece. This positioning helps make the link between that and the eyepiece, and makes it easier to connect by linking the +3.3V and ground lines to the eyepiece wiring loom.
This loom curves towards my right ear, then back up and along my forehead, terminating in one of the ethernet connectors. With a lot of (my!) soldering in such a small vicinity with closely-packed pins to the connector, each one was covered with heat shrink.
The chest plate
The chest plate I found on eBay was chosen mainly because it was pretty much the cheapest option available that'd look right. When worn, and without the conduit pipework adding to the bulk of the costume, it looks quite comical - this big guy wearing what appears to be such a small piece of elasticated equipment, it's almost like it's a child's size. The listing did say 'adult size', honest.
If I was going to really go for it, my best option would be to get a full upper body motorcycling armour, complete with arm and back protection. The arm and spine protection especially looks much more 'Borg'-like.
However, even on eBay and Amazon, you're looking at around a £50 starting price - something that I just can't justify for this. It's very unlikely that I'll be wearing the costume again. Best case, it'll end up on a mannequin on display, more likely going into a storage box, so there's no point in spending that kind of money on a single element of the costume.
As mentioned before, the electronics side of things were going to be constructed in two modules - the mask and the chest plate controller - connected via an ethernet cable. As you've already seen, building the mask was relatively straightforward, and the final result being pretty much as I'd imagined it to be.
However, with the chest and controller, I didn't have anything exact in mind. I had no real idea how things would look, what would be placed where, whether the board and its wiring would be exposed and visible or enclosed away... It was all going to be a case of just going with the flow. Not very efficient.
The biggest challenge I needed to get my head around was how to mount and protect the Pico, battery and the remaining components. I considered just having the Pico kinda surface mounted to the chest plate (read: glued, or possibly screwed), and something similar for the battery. This, though, would leave them open to damage. It is a party, after all, and there's a possibility a drink could get spilled on it, and I definitely wouldn't want a shorted out LiPo battery attached to me!
I could buy a basic enclosure online, but they seem to either be too small or too big and blocky. Hunting around the house, I found an old electric toothbrush travel case. Wide enough to hold the Pico and its wiring, just the perfect size to hold the battery securely, and even enough space to accommodate the other ethernet connector.
Once all the components were safely fixed in place - using hot glue for the ethernet connector, electrical tape for the Pico board, and the battery just held in by the weight and pressure of the wiring loom - I attached the box vertically down the middle of the chest plate using hot glue, making sure the Oral B logo was facing inwards! This would allow me to pop it open to charge the battery, give it some protection, and neaten up the wiring. You can see some globules of glue oozing out of the side, but it's not too bad and I can live with it. A quick spritz of black paint and they're not so obvious.
Annoyingly, really annoyingly, just a day after I glued the components in place, I was offered a box of unwanted electronics. Amongst them was this old BT USB ADSL modem with a shape that is a perfect look. All the pieces would (just) fit inside and would look more in keeping with the outfit than the long toothbrush case does. As a bonus, it's also from the Voyager line of modems - I mean, it couldn't be more perfect.
I could move everything across but, quite honestly, I don't want to break it! It's all working now just as I'd like it to, and I don't want to risk it for a bit of aesthetics. I'm building a Ghostbusters Proton Pack for Lee's outfit, so I can repurpose it there.
The rest of the chest plate needed some added extras. As I've already mentioned, it looks tiny on me. For Lee's Ghostbusters costume I ripped apart an old school backpack I found in a charity shop - that had some great back padding that fitted with the Borg's front armour style. With a bit of hot glue, glue gun on its cooler setting, I glued the two pieces together and that whole thing to the bottom edge of the chest plate. As well as looking better lengthwise, it also gave me instant abs. Kinda.
Finishing the look
The conduit was probably the hardest thing to work with, especially the larger one. I really struggled with how I was going to attach it to the costume. At one point I considered plastic bottle tops glued into the ends, to then give me a suitable surface to then glue in place. That might've worked, but getting the right size of screw top was difficult. In the end I just went with good ol' cable ties.
I chose a releasable cable tie, as that would allow me to remove or replace parts if needed - again, having the 'modular' theory in mind. Larger conduit was used between the chest plate and the shin pads, and smaller cable tidies for the rest. Most of it was just decorative, but one would carry the ethernet cable from the Pico up to the mask.
A long-sleeved plain black top and some grey-green face paint to give me a bit of a dead look finished things off.
In my trial runs of wearing the costume, I was getting noticeably warm. I'm a hot person anyway, but with a layer of non-breathable plastic on my chest, shinpads, a plastic mask, and weighed down by conduit, I don't know how much dancing this drone would be doing!
A friend then suggested a little costume change for later in the evening. As we're staying in the hotel where the party is, I can sneak off to change and become a disconnected Borg. I rummaged through my salvaged components box and found a few small pieces that could look like Borg implants and ordered some skin-safe special effects glue that could be stuck to my face where the mask was.
As it turned out, it wasn't too bad. The only time I had to remove the costume was to nip to the loo! I guess drones wouldn't normally have that problem. I wasn't too warm at all and the extra pieces weren't needed.
The result
How much did it all cost?
There's an old Victoria Wood sketch, McConomy, where suggestions are made for what to do with all those free bricks that get thrown through your window. When asked how much this "attractive" lamp - "a marvellous and inexpensive present for a newlywed or a blind person" - cost, the reply is:
"Well, once I'd bought the drill for the wiring, I'd only to pay for the shade, the bulb, the flex, and the plug, so the whole thing came in at under £55."
And, I have to admit, it was kind of very much the same for this project. In total, I've spent £219 over the build of the costume. Some of that were electronics starter kits with components I'd be able to use in future, consumables like nylon gloves, and clothing items I can wear again.
Just counting what I've actually used in the outfit, the spend was £167. That doesn't really sound much better, does it? Biggest spend was on all the flexible conduit, and the clothing parts. Do I have regrets? No. Absolutely not. I could've spent more (by buying that full armoured jacket instead), and I loved building it, programming the Pico and bringing it all to life.
Now to start assimilating people...
What about the Ghostbusters Proton Pack?
Making the Proton Pack wasn't as complicated, and was definitely more of a 'let's see if this works'-type scenario, reusing random items I found lying around the house.
The main backpack is a cardboard box and its inner tray that my broadband router came in. Most of the LEDs is WS2812b strip, with a few reclaimed 'normal' red LEDs for the Neutrona Wand box. The two boxes are joined together with a metal shower hose.
I was originally going to have two instances of the Neopixels code running to allow the wiring for the Proton Pack and Neutrona Wand to be separate, but I just couldn't get it to work. With time running out, I had add a wire that ran out of the tip of the wand, back through the box and through to the Proton Pack. It worked, if a little messy.
When powered up (the Pico is running off a £3 USB powerbank from Poundland - they don't have a lower limit on current draw, and power up as soon as a load is applied), there's a short sequence where the 'power meter' on the back and on the wand box light up before going in to the normal, sequential routine. The cyclotron (four pixels underneath a flower pot coaster with large holes drilled into it and red plastic film) runs at a speed of about 1 move a second. When the power button is pressed, this speeds up and the power meter changes from white to red. Additionally, the wand itself lights in random mixes of white, blue, orange, and yellow LEDS for a 'fire' effect.