I've always loved the Championship Thresh figure, as soon as mine came i
figured out that the head can be lighted with a led because it's semitransparent, so i've designed and 3d-printed a base for it, housing the battery and the circuitry needed, with a tube that holds the led so that it projects light straight into thresh's head. I also wanted to make the light glow like fire, so i programmed a microcontroller, the ATTiny85, to endlessly dim the led to a random light amount. The result is pretty neat, and i think it looks awesome when the statue glows in the dark.
Step 1: Material Needed
The following are needed only if you want the flame effect:
- ATTiny85 (other tiny avrs might work but the code was written specifically for this chip. If you have a similar one you'll need to adapt my source code to it)
- LM7805: this is a common 5v voltage regulator, It's needed because the microcontroller used requires 5v (or less).
- Arduino Uno (just to program the attiny, if you have other programmers
(e.g. usbtinyisp) and you know how to use them you don't need this)
NOTE: If you don't have an Arduino / you're not practical working with microcontrollers you can buy this tiny board:
it features an attiny85, a 5v regulator and a usb port to program it, so you don't even need to buy the Uno or other programmers (which are a waste of money if you buy them just for this project), and you can skip a big part of the soldering.
- a small piece of perfboard
- 9v battery
- 5mm bright white LED
- 9v battery clip
- a resistor (value depends on the LED you have, i'll further explain this later. Mine is a 220 ohm one)
- some wire
- soldering iron
Step 2: 3D Print the Base
First of all you need to print the base where the circuitry is contained, it act like a pedestal for the statue too. I've also designed a leaning cave pillar on the back where the led is housed, to have it project its light right into Thresh's head. I've uploaded the stl files along with some tips for printing here on Thingiverse
Step 3: Program the ATTiny85 - Arduino As ISP
[Skip this step if you don't want the flame effect]
First, you need to install Atmel studio, the development evironment for Atmel products. Once done create a new avr libc project as shown here. Make sure to select attiny85 as the target device in step 4!
Now replace the default start code with the source code from my GitHub repo (ctrl+c on my code, ctrl+a on the editor, ctrl+v and it's done).
Find the line
#define F_CPU 1000000
This is used to specify the clock frequency. By default attinys run at 1 MHz, but if you've "recycling" the chip and you've previously reprogrammed the fuses to run at a different speed change this value accordingly (it's unlikely you've done so unless you're an advanced user, don't worry).
Once you've wired everything up according to that tutorial go back to Atmel studio, click on Tools > External tools...
In the window that shows up click Add and paste these strings in the title, command and arguments fields:
C:\Program Files (x86)\Arduino\hardware\tools\avr\bin\avrdude.exe
-C"C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf" -v -pattiny85 -cstk500v1 -PCOM19 -b19200 -Uflash:w:"$(ProjectDir)Debug\$(TargetName).hex":i
In the last string look for "-PCOM19". This specifies the serial port the Uno is connected to. On my pc it's COM19, you can check yours in the Arduino Ide, under Tools > Port (there may be many ports listed but only one will have "Arduino/Genuino Uno" written beside, use that one). Change 19 in the parameter to match yours. The final result should be like in the second picture.
Now we're ready to compile & upload the source code: click Build > Build solution, connect the Uno (if you have disconnected it) and click on Tools > AVRDUDE85. A console window will pop up. DO NOT DISCONNECT ANYTHING WHILE AVRDUDE IS RUNNING!
Three progress bars made of #s should appear, one after another. Once you see "avrdude.exe done. Thank you." you can close the terminal. The source code has been uploaded to the attiny. Disconnect the Uno and remove the attiny from the breadboard.
Step 4: Prepare the Circuit - Part 1
[Skip this step if you don't want the flame effect]
Now you need to solder the attiny and the regulator on a perfboard, according to the circuit diagram.
First of all, stretch the regulator legs so that there is an empty hole between each one when you insert it on the perfboard, this will help you avoid creating unintended connections with the soldering tin later on. Make sure the copper plated side of the perfboard is facing away from the regulator, and that the regulator is oriented like in the second picture. Now solder the three legs in place to their respective copper pads. The regulator is now positioned.
Now solder the 9v clip to the regulator: the red wire to the input leg and the black one to the ground leg, as seen on the third image.
Next, insert the attiny as you see in the second picture: the bottom left pin aligned with and facing towards the regulator output pin. Make sure the dot on the surface of the attiny marking pin 1 is at
the bottom right corner. If it is at the top left one, rotate the chip by 180 degrees. The bottom left pin is indeed the VCC, by placing it this way you can easily solder a track of tin from it to the regulator output leg. (do it on the plated side obviously).
Lastly, solder a piece of wire from the ground pin of the regulator to pin 4 on the attiny (pins are counted counterclockwise starting from the dot marking pin 1, so pin 4 is the top right one).
The microcontroller is now connected to its power supply, time to connect the led.
Step 5: Prepare the Circuit - Part 2
Now you need to install and connect the led.
Start by soldering two 7-8 cm long wires to the led legs. Be sure to remember which wire is connected to the anode ( the positive leg).
Cover one of the legs with insulating tape so that even if the they will touch when housed inside the tube no short circuit will happen
Insert the wires from the top hole of the tube down to the base. Pull them out of the bottom hole.
Now gently push the led inside its the top hole. Don't worry if you can't push it all inside and the tip is out, it's fine, you just need to make sure the led stays in place and doesnt fall down. If the led doesn't fit at all (this shouldn't happen) you can soften the plastic heating it with a hairdryer, this will make it easier to push the led inside.
[The following only if you opted for the flame effect]
Now solder one leg of the resistor to the attiny pin 5, the one on the top left corner. This pin will output the pwm wave to dim the led. To make sure you're using the correct resistor value, use this online current limiting resistor calculator. Supply voltage is 5v, voltage drop is usually 3v for bright white leds, desired current between 20 and 30 mA, leds connected is just one. Hit calculate and it will tell you the resistor needed.
Next solder the negative led wire to the attiny ground pin (pin 4) and the other wire to the other resistor leg.
[The following only if you don't want the flame effect]
Now solder one leg of the resistor to the negative wire of the battery clip, and the other leg to the led negative wire. To make sure you're using the correct resistor value, use this online current limiting resistor calculator.
Supply voltage is 9v, voltage drop is usually 3v for bright white leds, desired current between 20 and 30 mA, leds connected is just one. Hit calculate and it will tell you the resistor needed.
The circuit is now complete. If you want you can cut one of the cables
coming from the 9v clip and insert a switch to turn the statue on and off without detaching the battery, like in figure
Step 6: Close It
Now put the battery in place: I designed four square angles on the cavity floor that will hold it still. Gently push the perfboard and the cables in the remaining space. I covered everything that could cause a short circuit with some insulating tape as you can see. Lastly, put the Thresh statue on the top and you're ready to go.
Step 7: Enjoy!
If you've made it through, go have your favourite drink! Jokes aside, it's not an easy project if you aren't used to the Arduino and Atmel software toolchain. I'm planning to write the code directly inside the Arduino toolchain, using the attiny cores for the Arduino IDE, so that Atmel Studio isn't needed at all, thus simplifying the process. I will update this guide once I've done it. (why didn't I think of this before?)
Now you have a glowing Championship Thresh staue. Oh, the eternity you shall spend together...