EL Headbands done!

TL;DR: I finished the EL headbands I’ve been working on :D.

I finished up the electroluminescent headbands I described in my post a few weeks ago here. Since my prototype was close to the final product, completing the production was fast after I received the custom fabric components.

As in the prototype, EL wire was passed through the printed channels and connected to a DC to AC inverter for power. I found nifty coin battery sized inverters, which fit directly on the bands without too much interference. The most time consuming portion of the build was attachment of the plastic to the fabric, since I’m bad at hand sewing.

Here’s the build gallery:

Here’s a bonus gif, with a little preview of a flag project I’ve been working on as well…

Thanks Sara and Vi for demo’ing 😀

Faux-Neon Signage

TL;DR: For my friend Gina’s birthday, I made her a faux-neon sign to decorate her new condo with. I ended up making a few different versions of this sign and through the process, I learned several useful tricks to speed up vector image modifications, which will definitely make it easier for me going forward. 

I continued playing with el wire since I bought so much for my headband project. Since my friend’s birthday was coming up, I figured it was a great opportunity to make something cool with it. I decided to make a faux-neon sign reading “Mama G’s House”.

I started by searching for neon sign fonts on google and downloaded a few to try out including “Warnes”, “La Patio Script”, “I am online with u”, and “Fenotype Neon”. All of them were free to download, but not all of them were free for commercial usage, which is fine for this project as I’m not selling it.

The first prototype I made used Warnes as the base font. I really liked how the letters all connect at the bottom. However, I needed to do a bit of surgery in Inkscape to connect the disparate words after vectorization:

The main modifications I made to this first font were just around connecting the letters and adjusting some of the spacing

I imported the SVG directly into a sketch Fusion 360 and resized it to ensure I had a ~3mm wide channel all over. Next, I modified the sketch to remove areas near the bottom where the lettering overlapped. In a fashion similar to what I did for the EL headbands, I extruded a positive model of the letters. Next, I needed to move the apostrophe body and combine it with the rest of the lettering. Then, I created a sketch, offset the entire object, and cleaned up the line overlapping lines created by the offset tool. After extruding the outlined body, I cut the positive lettering model out:

I reused the technique I discovered while making the EL headbands of cutting the positive channel from the main body

After slicing the STL in Cura, and waiting about 3 hours for production, the print came out pretty well:

However, with the physical model in front of me, I saw the font I used had a few issues. Primarily, although the channels I made fit the el wire, there were too many places where stringing it required a double back, which was not accounted for. Oops. Luckily, I hadn’t spent a lot of time on this, and I figured Gina could still use it as a nice decoration even without lighting effects.

The next font I tried was called “I am online with u” which had the advantage of being a single connected line. Although this font was more ideal out of the box, I still needed to tweak the vector version to make it work properly. Essentially, I just modified the “corners” of the letters to allow for more space wherever they changed direction, I adjusted the spacing between words and letters, and I moved and combined the apostrophe to overlap with the letters.

I modified this font a bit more heavily to ensure a good print. The biggest tweak was widening the letters where they changed direction so the EL wire could bend around.

My workflow in Fusion 360 was essentially identical to the one I used for the previous version of the sign: import svg, scale, and clean up sketch -> extrude a positive channel -> offset the body and extrude the outline -> use the combine tool to cut the positive channel away from the outlined body. Unfortunately, this part was a bit too big to fit on my printer in one piece, so I needed to split it into two. The split created a physical weakness which I shored up by creating a small base to hold it together and help the entire assembly stand upright.

The split was unfortunate but necessary to allow me to actually manufacture the sign. The base I made fit very well and helps keep the assembly standing too.

The print didn’t take very long—maybe about 4 hours in total for all the pieces. I was pretty happy with the results, and I think she was too 🙂

El Wire Lighted Headbands

TL;DR: My friends asked me to make custom light up costume headbands for them in the style of Naruto… so I did. I 3D printed channels through which I fed electroluminescent wire to make logos of their favorite DJ’s. While the project is simple in concept, I needed to dust off a bunch of tools I hadn’t utilized in a while to complete it. While I’m not quite finished with these, I’m too excited about how the project is looking NOT to share.

In the anime Naruto, the characters wear headbands to protect their foreheads while they fight. My friends wanted ones that light up for their costumes, and asked if I could help. If you want to skip over a lot of unnecessary detail, just go to the gallery at the bottom where I put the build photos 😛

El wire is a fantastic way to add lighting effects to projects since it is very bendable, easy to install, and does not require any programming at all (just add power!). Before this project, I hadn’t played with electroluminescent (el) wire for years, so I was excited to jump back in. The technology has become a lot more common and widely available than I remember—there’re tons of vendors for wire and the requisite DC to AC inverters. Unfortunately, the inverters still make an annoying high pitched buzz whenever they’re on.

In terms of the mechanical design, the headband was very simple. I created a base in Fusion 360 CAD to reuse in each version with a different logo. The majority of my time has actually been spent optimizing the image preparation pipeline. To go from a 2D-logo to a cut channel, the process I went through was as follows:

  • Prepare an outline image in Gimp (a free Photoshop competitor). The easiest way I found to do this was by using the fuzzy select tool to select the outline of the image I wanted to convert, then using the stroke selection tool.
Using stroke was key to getting a nice solid outline to begin my vector image with
  • After saving the image as a bitmap in Gimp, I imported the file in Inkscape (similar to Adobe Illustrator) and stroked the bitmap to a path. I resized the vector image to fit my headband base, and manually edited the nodes until all parts of the path were approximately 2.5mm in width to fit my el wire.
I ended up doing quite a bit of manual manipulation to change the logo shape such that the 2.5mm channels would fit and still look somewhat like what I started with. Simple automatic offsetting didn’t work well at all.
  • Initially, I was exporting vector images as 2D CAD-friendly DXF files. However, I made the groundbreaking discovery that Fusion 360 actually lets you directly import and use SVG files. Using the vector files (svg) directly is a lot more computationally friendly and MUCH easier to work with. For example, the dxf version of the Illenium logo had upwards of 670 line elements, whereas the svg file had two curves.
I can’t believe it took me so long to realize I could use SVG’s directly in Fusion 360… this was a gamechanger for my speed of productivity.
  • Within Fusion 360, I directly extruded the imported drawing. Next, I did a few manipulations with the combine and move bodies menu to create a “positive” model of the channel I wanted to CUT from the headband.
It’s a bit difficult to see, but I moved the positive cut out forward so it only intersects the model for the last 2.5mm of its extruded depth.
  • One of the limitations of working with el wire is that there is a minimum bend radius before you can actually break the wire and cause shorts. Unfortunately, since I was making headbands most of the detailed bends weren’t physically possible to make in a single piece. To maintain sharp edges required for the logo designs, I created pass through holes. This allows me to bend the wire in an unsightly loop where it can’t be seen in the final product. Positive models of the pass through holes were created by extruding cylinders from behind the headband up to the channel model.
Thru holes were simple extruded cylinders
  • Lastly, I created some “channels” on the back of the headbands to accommodate the loops. In an early prototype, I created actual channels out of spline sketches, but that proved to be a lot of work for no reason. Now, I’ve simply created large inset areas that can fit the el wire loops. It’s much less effort to achieve the same result. The positives for this were extruded initially as separate bodies to the channels so I could shift them backward about 0.8mm before joining to the rest of the positive channel model.
I cut the positive channel model away from the base headband shape
  • A simple combine, export as STL, and slicing in Cura resulted in a pretty decent print, if I do say so myself ;).
Here’s my first prototype blinking 😀

The first prototype I printed was in black PLA before I received this gorgeous silk silver shiny PLA made by Hatchbox on Amazon. I quickly realized that I didn’t have a great way of making the fabric for the bands since I don’t have any sewing skills. I am incredibly lucky to have super talented parents (check out my dad’s website here… he’s much more artistically talented than I am: www.bounsaypipathsouk.com) who are always willing to help. I Facetime called them to explain what I was making and mailed them my first sample. A few days later, I received some photos of my prototype solidly attached to a custom headband they made, and should receive them next week :D.

My parents were able to deliver!!

While there are still a few improvements left for me to make before I deliver my final product, I’m pretty stoked at how well the project has turned out so far, and just couldn’t wait to share.

As promised, here’s a gallery of the build:

Lithophane

TL;DR: For Valentines Day, I made a lithophane—a 3D object which reveals an image when light is shined through it. The operating principle is basic—different “pixels” are created since thicker areas block more light.

Lithophanes are really cool. Essentially, they’re 3D photos that physically encode pixels of an image by varying the amount of material. Thinner sections of the lithophane allow more light to pass through. I discovered a simple to use, yet highly customizable online lithophane generator at http://3dp.rocks/lithophane/. Upon making this discovery, my mind immediately went to the perler project I worked on last year… I saw I could reuse most of the components (back plate, switch, LED backlight), only making a new front plate. Since I designed the perler project housing in Onshape using top-down design principles, all the modifications only took a few minutes to complete and export for printing.

It took me three tries to finetune my print settings. In the first print, I inadvertently made the image inverted:

My first attempt resulted in a scary looking inverted image… oops!

For the second print, I ended with a lot of blobs on our faces. Clearly this was because the nozzle dwelled a bit too long on the top surfaces since I printed this part flat on the bed:

My second attempt turned out nicer looking with the proper color inversion… but the blobs all over the place were less than ideal.

To correct for this, I reoriented the part on the print bed. I was worried about the part falling over (hence my original print orientation), so I added a really large brim to keep it rooted:

The 12mm brim I added, along with copious glue, helped keep the print from falling over

The third time really did turn out to be the charm, and I was very pleased with how it turned out:

Success! Third time’s the charm 🙂

There’s a ton of ways in which the lithophane idea can be expanded and improved upon. First, I need to redesign the housing unit to incorporate the switch and battery. Others on the internet have wrapped lithophanes around objects like cylinders to make custom lamps, trophies, and other neat projects. The possibilities are endless… as you can see in the summary photo below, you can use pretty much any light source and have the images turn out well:

It was very easy to progress pretty quickly since the parts were fast to print.

I’m excited to play around more with this type of stuff!

Star Wars Joycon Holders

TL;DR: I made custom Nintendo Switch Joycon Controller holders in the shape of Star Wars Y-Wing and A-Wings.

I’ve been traveling quite a bit this year, and my Switch has been a great companion surprisingly easy to bring around. However, the biggest gripe I and everybody else has with the device is that it is no fun to use the controllers in single joy-con mode. I found and printed some neat grips that make it a bit easier to use them in this mode, but I’ll cover them in a future post.

In this project, I made some ridiculously tardy birthday presents for two of my Switch-owning friends: Y-Wing and A-Wing Joycon holders. Honestly they aren’t that practical, but they technically *are* functional, and I think they look pretty cool. I started by downloading STL files from thingiverse of various Star Wars ships and a simple dual-joycon holder.

In Fusion 360, I chopped off the joycon rails and saved the bodies as separate components so I can reuse them in multiple projects. Next, I started processing the Y-Wing by simplifying a lot of unnecessary mesh details, cutting off the engines, then making the mesh into a solid body. I inserted the joycon rails where the engines used to be and played around with the scaling of the Y-Wing body to fit well. From there, it was a simple merge bodies, slice, and print… or so I thought.

Unfortunately, I messed up some of my slicing settings in my first attempt, and part of the print fell over. Even though part of the print had failed, I was still able to do a geometry check, and I was pleased with how well the joycon and strap both fit into this model.

My slicing error was in a boneheaded misconfiguration of adaptive layer settings. Using adaptive layers in slicing software allows for faster prints since the printer is programmed to use larger z-steps if it is safe to preserve model details. The base layer height for this was 0.12mm, and by entering the deviation to 0.2mm, for some reason I thought I was setting the absolute height limit for the print to 0.2mm, but this was not the case, and my printer was trying to print with 0.32mm layers, which it just was not able to do. On my subsequent attempts, I dialed the deviation back and was able to get a really nice print.

Y-Wing gallery here:

The A-Wing model took a bit more pre-print processing. First, I noticed a small hole in the surface, so I used meshmixer to mirror the better half of the model. Second, the model I had was hollow (there was an internal surface), which would have caused issues later on in combining with joycon holders and printing. The hollow body was simple to rectify—I created a block larger than the A-Wing then used combine to cut the A-Wing from the block. This left several bodies, including one that was the ship model cavity, which was added back into the main ship model. Just as for the Y-Wing model, I imported the Joycon rails, scaled the Awing body, and moved everything in place before combining the bodies.

I’ll admit the joycons on the A-Wing are less than ideal, but I still think it looks cool. 😛

Codebreaker (Game on Google Sheets)

I discovered the game Codenames a few weeks ago through my friend Sabrina. It’s a really simple and fun word association game that has kinda caught fire among a few of my disparate friend groups here in SF. It’s a great party game for 6 or more people, that I’ve found myself playing quite a bit recently. I figured it would be nice to build an online version so we don’t have to worry about bringing the box everywhere, spills on the cards, etc.

Each team chooses a captain who will be giving clues to their teammates. A 5×5 grid of random words is created, for example:

blankboard

A hidden key pattern is also created, but is shown only to the captains:

captainboard

In the version I made, red and blue are the colors for the teams, gray is neutral, and orange is the instant-loss square.

The goal of the game is for the captains to give one-word associative clues to help their team identify their team’s words on the board (while trying to avoid words of all other colors) along with a number of words to be guessed. For example, if it is the red team’s turn, the captain could say “Princess for 2” in an attempt to get their team to pick Barbie and Daisy.

Their team then discusses for a reasonable amount of time and starts picking squares to check. During the discussion, the captain should not give any visual hints or reactions, but he or she should definitely be listening to where their team’s groupthink is headed. If the team reveals a square that isn’t one for their team, their turn ends immediately. Each team can pass at any time during their turn, and can guess one word more than the number their captain says (in case they passed earlier). There’re also other minor rules like restricting rhymes, proper nouns, parts of speech, etc. but I prefer to leave these as house rules.

If anything isn’t clear on the gameplay, this video is a bit long (10 min) but seems to do a decent job explaining:

https://youtu.be/J8RWBooJivg?t=209

Anyway, I buried the lead a bit I guess, but here’s the link to my sheet… feel free to make a copy to play (File -> Make a copy). The idea is that you connect a computer to a projector or TV, and the captains access the captain board on their phones, or a separate computer.

https://docs.google.com/spreadsheets/d/1M1MUI_OdSNOG6JAKn1uEQlfDbqWbcHSuOeSztsa5ymM/edit?usp=sharing

Everything is controlled through the “Codebreaker” menu. “Generate new board” reshuffles the words in the wordlist tab, “Generate captain board” creates a new hidden pattern, “Check selected cell” reveals the hidden color for the selected cell, and “Clear board” clears the colors from the board.

Codebreaker Menu

I used Google Sheets because everybody has access, and I’ve wanted to play around with Google Apps Script for a while. It’s actually pretty well documented, and examples were easy to find. The project overall was pretty simple and only took a few hours for me to complete, most of which was spent inefficiently, typing out 500 words into the word bank while watching movies.

https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet-app

EDIT: Speaking of words though, I’ve had a few friends ask me how to add/edit the word library… It’s pretty simple, just be sure to make your own copy of the spreadsheet, or anybody accessing the original will be able to mess up your game.

save

To edit the wordlist, just go to the wordlist tab and add words into column A. Just be sure to drag the formula from column B down to cover any words you add, just like in excel. Alternatively you can just type the function “=rand()” into column B next to any words you add. In this example, I’ve added the word Slipper, and to complete the addition process, I can just drag the bottom right corner of B500 into B501.

wordlist

I don’t plan on really maintaining or further developing this because it’s pretty functional for what my friends and I need, but there’s just a couple of things I’ll try to complete sometime:

    – Randomize red/blue team starts. Right now, the red team always goes first (and has an extra word to guess)
    – Keep track of points scored by each team
    – Make a better UI experience via having control buttons on the sheet.
    – I would like to create a better way to get the link to the captains’ phones, and maybe make it easier to not accidentally show the captain board, maybe via a password protect.
    – I could also include the instructions for how to use the sheet, but ehh I think it’s pretty self-explanatory.

Have fun!