Introduction: The Complete Daft Punk Helmet Build (Arduino Style)
There have been others before me in making a Daft Punk helmet complete with electronics, however, I discovered that there few, if any, that provide a complete step by step instructional with the actual code to make the display work. Most do not go in depth on how the electronics was designed and built. Others have very thin vacuum formed helemts and / or inaccurate helmet designs. Lastly, there are many where there is far too much time spent on material choices (foam, etc.) that yields poor results.
After much searching, I thought it was time to make one, and provide an instructable will all the "parts" needed to get it done without endless searches - and have the quality proporationate to the effort invested! I wanted a good blend of quality without studio prices to get there.
Before we get started, you might be wondering...Who is, what is Daft Punk anyway ???
The musical team of Daft Punk are arguably pioneers in cross over of electronic based music and techno-cosplay! These guys were performing awesome concerts while wearing helmets with electronic displays for decades... long before anyone ever dreamed of an Arduino driving a helmet 20+ some years later! They did the musical score to Tron Legacy. Tune in a radio station and you just might hear their "Get Lucky" dance tune. Well, their popularity has created a number of people creating their very own helmets and they are available out on the internet for well over $400. Even those models are thin vacuum formed helmets that the price hardly seems worth it.
This helmet was made for $115 AND it has all the displays you can think of creating too! With a little patience and tenacity you can build a very high quality helmet for your very own.
Here's how I made it!
1 - 3D Print file from Thingverse or CGTrader. You pick the one you want as there are many free ones out there but beware of their accuracy to the real deal! I found a very accurate model as designed but it was 18% too small for even a kid to wear. Check the inside dimension on your CAD or Slicer software or... Test print a small one (say like a football minihelmet), check the dimension ratios, details and fit issues, then size up from there to not waste plastic and your valuable time. The cross dimension should be 175 - 200 mm wide (Ear to ear) for a 7 -3/8" head to fit in it comfortably. I used this file and thanks to the creator for a solid file but again... check the SCALE before printing it.
2 - One (1) kg Spools ABS filament plastic for toughness and thermal stability - SUNLU Brand. I ran this at 240C Nozzle and 105C bed temperature and it ran flawlessly. - $32
1 - sheet of 1/8" thick acrylic sheetClear and 1 sheet of smoke tinted. Amazon or local supply - $15
Smoke tinted is here.... https://www.amazon.com/gp/product/B071KGRGPP/ref=p...
Auto Body filler(Bondo) and /or Spot putty $10 - Any Walmart is the cheapest.
Rustoleum Spray Paint - Gray Auto Primer & Gloss White - $5 each Again... Walmart.
1 - Strand of WS2812B - 144 addressable LEDs. Get these ! Others can be really cheaply made and you wont want to have the string break continuity and stop working. Not all strands are created equal. - $17 Amazon
1 Strand of TV backlight string ... Music Driven w/ remote 144 LEDs - Monster Brand $10 - Walmart
Arduino nano - $5 Buy in mass quantity for future projects and you get a great price on a small but powerful controller. https://www.amazon.com/gp/product/B06XFSZW6C/ref=p...
Computer connectors / Multi-Pin connectors - Your choice here really, you might have some laying around or choose to direct wire to the helmet. I used these...
For helmet connector... https://www.amazon.com/gp/product/B07GZJ4VKF/ref=p...
For Controller connector ....https://www.amazon.com/gp/product/B07CWJCWRC/ref=p...
Helmet Pads (Bicycle type) - Or use any foam you might have from previous projects like I did.
USB Battery Pack - Long lasting 10,000 mAh - $10 (I got 2 for $20) so I guess I'll make the Guy Manuel helmet next! LOL!
Step 1: CAD to 3D Print
Now for a Public Service Announcement ---
If you haven't tried a 3D printed project yet, this is the perfect project to do it. Don't have a 3D printer??? Ask your friends on Social Media if they have a 3D printer to help you out. You will be surprized who has these things now. If you strike out... look online for a local printer who will do it for you. It is worth finding someone to do this for you to see what the results can be. EVA foam is good but once you try 3D printing... you might never go back to it. 3D printing can make the strongest cosplay helmets / parts with very little effort, and the best part is that they are super accurate and it makes itself!!!
SCALE before you Print - Again, check the scale of the model before printing. You do not want to waste 40 hours of print time and a $18 spool of plastic to find out it is too small. I have a 7-3/8 hat size (large) but not a supe huge melon. The distance across the bottom of the helmet was 200 mm and this was scaled just about right. After pads were installed, it still allowed a little room for air to circulate. This was NOT like a motorcycle helmet fit that is super tight. If you want that, then adjust down.
How to Print ABS - I chose ABS to get a really strong print but ABS can be tricky to print for inexperienced 3D printers. It definitely prints very hot (240C at the nozzle and 105C bed temp). I used painters tape (3M brand ONLY as others have an oily surface to the non-sticky side). I then paint the painters tape with a slurry of dissolved ABS in acetone as a "glue" for the first layer to bond to in order to prevent lifting of the print. To quote the Mandalorian... for ABS... THIS IS THE WAY! I tried and tried ABS to failure after failure, now it is the only filament I use for projects like this, as it sands really well, it is strong, and temperature resistant to hot sun, warpage, etc.
Orientation of the Print - See the photo of the model on the print bed. I orintated it this way to get a good build with minimal support structure to save plastic and speed of printing. Unfortunately... It led to some cracks along the layer lines that I have to reinforce. I layered at 0.6mm nozzle at a layer height of 0.2mm. It looked great once printed, quite smooth but then stressed cooled ad cracked. See later pics / discussion.
Step 2: Finishing the 3D Print / Painting
After the print comes off the bed, you should spend some time inspecting the print for defects such as cracks, chips, etc. to ensure you have a solid print. The nature of the layers will create a grain looking effect that you can remove with a skim coating of bondo / spot putty and some light sanding. Here's how I did it...
1. Remove the flashing, strands etc anything extraneous from the print. Use a deburring tool or a sharp utility knife and scrape the edges to a small chamfer.
2. Spot putty all cracks and imperfections, and bondo heavier support areas where needed. The bondo is super strong and hard when dry but very sloppy to control, so wherever you use it, it will require a lot of sanding effort to smooth out. Whatever you use be sure to let it completely dry.
3. Sand the putty smooth as possible 200 - 400 grit is good. Vacuum and wipe clean of dust, then wipe again with a rag dampened in rubbing alcohol to remove all the dust.
4. Prime with Rustoleum Auto primer following their instructions. Light coats to avoid drips and more sanding of drips!!!
5. Sand the primer with 600 grit and you shall see areas that are not exactly smooth or right. The primer will highlight areas needing attention. Reputty those areas, sand again, reprime the entire helmet.
6. Sand the helmet again with 600 grit and wipe completely clean for final paint. Get all the dust you can off of it. Use a dampened rag in rubbing alcohol again to get the last dust off.
7. String the helmet up by wire in a garage or area where you can gain access to all sides, top and bottom and lightly spray coats according to the paint can instructions. LET COMPLETELY DRY before handling... yes - 48 hours to avoid putting fingerprints in the glossy finish. If you want to chrome the helmet, get preparation instructions from the local chrome finisher as all chroming is not done the same way.
Step 3: Electrical Wiring the Main Visor
I provide a crude sketch from MSPaint to show how the entire project is wired. Follow the sketch but the key watch out areas are as follows:
1. Ensure the two USB power sources do NOT tie thier grounds together as this will cause the battery to think it is shorting internally and shut down.
2. Be sure to use the resistors for the Power On LED (100 Ohms) and the data wire going out to the visor LED string (470 Ohms). The pushbutton panel for the displaying the messages on the visor EACH need an 8K ohm reister to pull the input to ground when the button is not pressed.
3. Make a Power and ground bus to make all the tie points together to keep the wiring fairly neat without tie points all over the controller case. It will be easier to trouble shoot later.
4. Check your soldering for shorts to nearby contact points as you go. Quality first otherwise troubleshooting can be really difficult.
To string the visor LEDS into the 16 columns of 6 LEDs each, I carefully cut the strand at the lines indicated on the ribbon. I used a scissors versus an exacto knife to insure I did not pull the delicate copper traces apart.
Step 4: Programming Concepts
The data signal from the arduino through the entire string MUST flow in the direction of the arrows of the led segments. Do not solder them together with the arrows in conflict in direction.
This is important because the LEDS basically act like 144 people lined up at a train station, side by side. Each is assigned a box car to inspect when the train (data signal) arrives to the first person at the station. The train (string) pulls up to the first LED who opens the first boxcar (first hexadecimal packet) and looks for data on what to do (nothing - stay dark, or a hex code for color... then turn on that led to the brightness illustrated. Then it unloads the data, and the train (string goes to the second person (led) and that second boxcar (data packet is inspected. And so forth down the line until all leds get their information.
Example: Each LED is a RGB or a LED capable of glowing Red, Green AND Blue at the same time. By adjusting each internal R, G, or B part of each LED you can mix a multitude of colors. Hex code for one LED packet consists of 3 numbers for the intensity of the color desired... 0 -9, a,b,c,d,e,f with f is the brightest.
See some color mixes below...
White - 0xf f f f f f Red - 0xf f 0 0 0 0 Green 0x00 f f 00 Blue - 0x 000099
Note the 99 wont be as bright as the ff!
There are several website to help you develop your own desired color mixes... https://www.color-hex.com/
In writing the code, it was critical to remember that the leds are taking the data in a linear string and since the columns start at the top every 6th LED, it became handy to create an excel spreadsheet for me to get the pattern of the codes correct in the string array . See the photos for the "Winking eye" ans see how the "boxcars" do not look like a wink at all because they are sequential in the string versus graphically processed. If this doesn't make sense, play around with the arrays in the code and you will soon see how easy it is to mess up the geometry of your message.
Step 5: The Code
I used an Arduino Nano.
Look at the annotation in the code to understand how it works... Key areas are;
I used 96 LEDs (16 columns of 6 leds in each column and the data stream comes from pin 12 of the Nano:
// How many leds are connected?
#define NUM_LEDS 96 // TOTAL number of LEDs in Strip.
// Define the Data Pin #define DATA_PIN 12 // Connected to the data pin of the first LED strip // /
The pushbuttons are connected by a ribbon cable to Pins 3 - 10:
// Define the message input buttons.... //................Define the pushbutton panel Analog Inputs .................
const int but0 = 3; // Assign variable names of button numbers to inputs.
const int but1 = 4;
const int but2 = 5;
const int but3 = 6;
const int but4 = 7;
const int but5 = 8;
const int but6 = 9;
const int but7 = 10;
Program basically looks for a button being pushed and then it calls up a subroutine to go get THAT subroutine's array and run it through the data stream out to the LEDS. Note there are several arrays to get a message to show action like the scanner or the heart takes a lot of graphical strings to push through the led string.
See the arduino code attached and I'll be happy to answer any questions.
Step 6: Last Thoughts - the Control Box
I tried to make this compact as much as possible. The original Daft Punk helmets had a huge back pack back in the '90's so we have definitely come a long way technology wise. If I had to redesign the box again, I would definitely pay more attention to where it would be on my body and access to the buttons and cord routings. I got lucky as this worked fairly well with not a whole lot of forethought !!! As Daft Punk would say ...GET LUCKY!
Step 7: Conclusion
I hope I was able to provide the detail behind how to create what most would find hard to pull together. It really is just a group of smaller, and easier projects all rolled together to sum into one larger more impressive project.
It is all about taking small bites and keep pressing forward. If you take your time and ask your friends for help, you might find out a completely new way of doing things that will give you more enjoyment and a higher level of satisfaction with improved quality!
Runner Up in the