I had a four day weekend this weekend, so this gave me a good opportunity to get more work done on this costume. I finished the Fusion360 design of the sword on Thursday and started printing parts on Friday. By Saturday evening, all the parts were printed and I had even done some quick painting. No sandpaper was harmed in the making of this production (well, almost none). The hilt print isn't perfect and the paint and masking were done hastily. It still looks great unless you go in and look closely (or have a good eye for fine detail). The nice thing is that it's a completely separate part, so if I'm not happy with it, I can print & paint as many more as I like.
I went to see Get Out while one of the blade parts was printing and one coat of paint was drying. It's probably the best way for me prevent myself from ruining a perfectly good piece by painting it too quickly. I don't have a good space for painting & sanding, so I have to go outside or in the common basement. Definitely a weak point for me.
The hilt has one coat of silver paint, which was then partly masked over and two coats of black paint with the mask in place and one very light coat of matte black with the masking tape removed. I used a silver gel pen to fix some of the masking issues (worked surprisingly well).
I started working on the wiring after I had walked my dog, so it was probably 10PM. I figured it wouldn't take too long to do. (Famous last words.) I had a good flow state going, so I decided to keep on working until the electronics inside the hilt were completely built. This would allow me to verify that the build was working as designed, but the connections to the NeoPixels in the blade could wait until the next day.
The space inside the hilt is really tight and the wiring goes through some really narrow passages. I think that's why it took so long. Once all the wiring was in place, the 3.3V trinket soldered in to the wiring and mounted on top of the wiring space in no time at all. All along, I knew there was a chance the whole thing would just go up in smoke if I plugged in the 3400mAh 18650 Lithium Ion battery. I measured the resistance across the +/- contacts for the battery and it seemed quite reasonable (about 10kΩ), so I plugged in the battery and found to my amazement that every single component worked flawlessly. (There was smoke the next day, but it was from dropping a kitchen towel on a hot halogen lamp.)
The teaser photo from last night is of the sword with all the electronics except the blade neopixels.
On Sunday, I woke up earlier than intended when a *** flew in through an open window and needed help to find his way out. The NeoPixel installation went better than expected and I was actually able to make a connector (using some headers etc) between the blade neopixel strip and the guard/hilt. I can just pull out the NeoPixel strip and roll it up, if I need to.
Here are some photos I took tonight. For these photos, the blade pixels were set to brightness 32/255 with only the green LEDs. The hefty battery can handle ~100 NeoPixels at full 255/255/255 RGB, but there's a little bit of a voltage dip. You can pretty much light up a room with the sword when it's at full power. At 32, my camera still had difficulties with the dynamic range, so the deep green light is overexposed and looks a lot whiter than in real life. Look at the reflecitons on the table and you get an idea of what the color is really like.
OK, I definitely didn't go with a minimum viable product with this build. As you can see from the photo above, the hilt actually has its own NeoPixels (6 of them, 3 on each side) as indicator lights for the UI. Oh wait, it needs a UI because the knob with the House of El symbol (not accurate to the TV show sword, but it looks lovely and it's easily replaced) is actually a rotary encoder controller - the same type many 3D printers use. You can twist it or press the button. The software currently doesn't do much with it beyond just testing that it works and allowing me to change the color of the hilt pixels. The hilt pixels are set to 8/255 brightness in these photos, so they can be a bit mroe more subtle, but can also light up the back of the hilt really brightly through the layers of paint. I used translucent PETG on the hilt cover so that the LEDs would shine through as much as possible - mission accomplished.
The battery is easy to access. The hilt cover unlocks with a small twist counter-clockwise and then pulls out easily to reveal the batter. Only two pixels are lit on this side and it's because the current software version is set to display the battery voltage using the six NeoPixels on the hilt. That battery is still almost fully charged up (5/6 pixels lit). The Trinket has 5 I/O pins, one of which was needed for the NeoPixels, three were used for the rotary encoder & button, leaving just one pin for two more things... And since I could use the pin as an analog input, I made it measure the Lithium Ion charge level by using a 50%/50% voltage divider (two 47kΩ resistors). I think being able to read the battery level of the sword is going to be super helpful. Also, with a bit of software, the sword can be used as a battery conditioner to discharge LiIon batteries to ~60% charge for long term storage.
The other function on that pin is hidden inside the spine of the sword just past the guard. There's a reed switch hidden in there, which will trigger when it is close to a magnet. The sheath will have a magnet in that spot, allowing the sword to detect when it is sheathed. I could have added another resistor, but decided it wasn't important to know the battery level when the reed switch was closed, so currently the reed switch just drops the measured battery voltage to 0V.
Pulling the hilt shell all the way out reveals the indicator NeoPixels, the 3.3V Trinket and a bit of ugly hot glue. There' s a lot of wires and connections just under the Trinket. I kept the wire lengths a bit long just in case I had to go and debug the hardware, but it turns out that wasn't really necessary. As it is, the two empty spaces I created for wiring are pretty much filled with a bird's nest of interconnected wires (and 3 resistors).
Twisting the knob slightly changes the NeoPixels to other colors. Technically the hilt isn't 100% accurate, but I wanted to build a cool toy more than I wanted an accurate prop. How did I do?
Next up for this build is the software. The sword sheath should be pretty easy to do and I have a plan, but it needs a few detail changes based on some small print experiments I made today: Turns out a 3D printed sword unsheathing from a 3D printed sheath can be quite loud. I don't mind the sound, but I'm worried about the paint on the sword spine (just a bit of silver & black paint on top of the bare shiny black PETG). In parallel with those, depending on what I feel like working, I will have to get going on the exoskeleton. Whereas the sword was nearly 100% PETG, I think the suit will be largely PLA with some PETG and possibly ABS used for parts that need a bit of flexibility & strength.
Thanks for reading. Apparently I was in a writing moood tonight - I hope this wasn't too long. If you have any questions, feel free to ask.