Step 15: [Appendix] Circuit Schematic

This section describes the design of the Jar o'Fireflies circuit and is meant to shed light on some of the design decisions made. It is not neccessary to read or understand this section in order to build your own fireflies. However it will hopefully be of use to anyone wanting to modify or improve the circuit.

The following schematic describes the Jar of Fireflies circuit. In particular, there are a few notes to make about its design:

VCC - the positive terminal of your 3V power supply (i.e. battery), for those unfamiliar with electronic schematic naming conventions.

GND - likewise, this goes to the negative terminal on your battery.

R1 - 22.0K Ohm resistor - This is used as a pull-up resistor to drive the voltage at the reset pin high during operation thus preventing the chip from being reset. The circuit would actually work just fine if this resistor was simply replaced by a wire. However there would be one critical difference: you wouldn't be able to reprogram the chip once it was soldered to the board. The reason for this is because the chip programmer wouldn't be able to drive the reset pin low without shorting to VCC at the same time. That's the sole purpose of R1, to allow a chip programmer to toggle the reset pin without shorting to VCC. As such, the value of R1 isn't actually important, so long as it's 'large enough' (without so large as to block the reset pin from seeing VCC at all). Any value between 5k-100k is probably just fine.

R2,R3 - 100 Ohm resistors - The value of these resistors dependent on the characteristics of the model of LED's you happen to be using. Different LED's, even of the same size and color, have widely different characteristics, particularly when it comes to how much current they draw and how much light they produce. For instance, the model of LED's that I wound up using are spec'd to draw around 20mA at 2.0V and 10mA at 3V through a 100 Ohm resistor.

Now had I this circuit to do all over again, I probably would have chosen a slightly larger value for R2,R3. The reason for this being that, were I to see a firefly in nature glow as brightly as one of these LED's do at 10mA, I would expect it to explode in a wet green mist a millisecond later. That is to say, at 10mA these LED's glow too brightly to be realistic fireflies. This is an issue that I addressed in software by limiting the maximum brightness that the LED's are ever driven at. If you use the same part # LED's that I used, you'll find the firefly software to already be tuned to an appropriate brightness. Otherwise, unless you intend to change the brightness scaling in the source code, you may find yourself going back and fiddling with the value of R2,R3 to find a value more appropriate to whatever LED's you end up using. Fortunately, this shouldn't take much effort as SMD resistors are easy to rework.

PIN_A,B,C,D,E - These are names that I arbitrarily gave to the pins in order to tell them apart and I refer to the pins by these names in the source code. Pins A and B I refer to as "master" pins. If you don't plan on reading the source code, then this distinction won't make any difference. If you do plan on reading the source code, hopefully the comments I've placed in it will sufficiently describe the role of the master pins and how the LED's are driven.

Irregardless, here is the executive summary of how the LED's are driven:

Before a firefly 'song' is played, a random decision is made as to what LED is to be driven. This decision starts with the selection of the 'master' pin, either PIN_A or PIN_B. This selection narrows down the choice of what actual LED's can be driven. If PIN_A is chosen, then we have a choice between LED1, LED2, or LED3. Likewise for PIN_B and the other LED's. Once the master pin is chosen, then we randomly choose the specific LED to drive from the reduced list of candidates.

For example, lets say that we've chosen PIN_A and LED2.

To turn LED2 on, we drive PIN_A high and drive PIN_D (the pin that the other side of LED2 is connected to) low. To turn LED2 off again while playing the song, we leave PIN_A high and drive PIN_D high as well, thus removing the potential difference between the two sides of LED2 and stopping the current through it, turning it off. Since we leave PIN_A driven high all the time, we can also choose to play either of the other two LED's, LED1 or LED3, completely independently. In practice, the code is written to play a maximum of two songs at the same time (two firelies glowing at the same time).

<p>Please save my sanity and tell me how I get the code into my arduino sketchbook. After much trial and error I have been able to download the basic &quot;blink&quot; code using the sparkfun progranmmer into my AtTiny45 but how do I get &quot;firefly.tgz&quot; downloaded. Arduino will not accept this suffix. What am I missing?</p>
<p>Nice project</p>
<p>Has anyone tried to make this with an Arduino?</p><p>I have digispark (<a rel="nofollow">http://digistump.com/products/1) </a> and a LED Charlieplex Shield (<a rel="nofollow">http://digistump.com/products/13) </a> lying around. driving 20 fireflies with one board would make an impressive lightshow.</p><p>Or are there more PWM ports needed?</p>
<p>I successfully used an Arduino Duemilanove; the Arduino Uno is not compatible (I had to trade the Uno with my brother to get his Duemilanove); the project was two years ago and I can't for the life of me remember why it wouldn't work, I'm not very tech-savvy. </p><p>I ended up making 10 jars in a matter of about two weeks for Christmas; it's a very time consuming, painful and rewarding project. Everyone seems to cherish them. Last night I swapped out the 3V battery holder for a USB connection. </p><p>I gave up trying to figure out if I needed a voltage <br>regulator (5V to 3V); 500mA max output from USB, and just soldered it on <br>because I have a death wish or something. In either case, I&rsquo;ve had it on for a <br>day now constantly; hasn&rsquo;t blown, doesn&rsquo;t overheat. I measured the amperage at <br>each leg; it&rsquo;s under the 20mA limit of the LED&hellip; not sure how the ATTINY45 ended <br>up managing that, but it did.</p><p>If anyone&rsquo;s interested, you take a USB cable, chop off one <br>end, expose the wires (should be red/black/white/green) connect RED +, BLACK -, <br>white and green are for data; just cut them back and they are not used. <br>Shielding and mesh can be twisted together and soldered under the lid (scrape <br>away any paint on the mason lid to expose the metal surface or just fry it to <br>death with some solder till it melts). </p><p>I drilled a 3/8&rdquo; hole in the lid and used a 3/8&rdquo; plastic <br>grommet to protect the cable going into the jar and keep it stationary.</p><p>~Fin. </p>
This project took me WEEKS to figure out (mostly in terms of programming the ATTINY45 &amp; the fact I've barely soldered before, let alone micro LED's and hair-thin wire), in the end I will make eight jars for this holiday season, I've completed three so far. This is an excellent instructable!!!
<p>Very sorry for the year late reply; I haven't been on instructables for a while apparently. :) IF it is still of any interest, I used an Arduino Duemilanove, for which your Pomona 5250 clip will work perfectly well. I had to literally solder each chip to a spare board with jumpers soldered to it, jam it into the Arduino to program and unsolder the chip/resolder it onto a finished board. :) I had a time constraint and I couldn't get the clip in time and was too stupid to buy a DIP socket solder tail :)</p><p>Last night I took my 2 year old jar and modded it with a USB connection. It's really a great project. :)</p>
<p>No, it cannot be random. This caught me up also, you really have to wire it exactly as the schematic describes or it won't work. You can read the specifics above, but basically:</p><p>PIN_A and PIN_B must each have three LEDs attached to them on the anode/positive side, so you have 2 &quot;bundles&quot; of LEDs, each with 3 LEDs.</p><p>PIN_C, PIN_D, and PIN_E must each have one LED from the PIN_A bundle, and one LED from the PIN_B bundle attached to them on the cathode/negative side.</p>
Fantastic ible -- I'm just now soldering some 0603 leds to magnet wire myself - its a nightmare! <br>My method of choice is based on this ible - mount led in tweezers, mount tweezers in clamping helping hands, but I hand-hold the magnet wire. by resting my hand mid-knuckle on the brace of the clamp, I can use just one knuckle of articulation to adjust the wire. I found it easier than manipulating a helping hand clamp with the wire mounted in it. Loosely free-handing the wire is near impossible while also wielding the soldering iron. <br> <br>Do you do anything special to insulate the bare ends of the leds? I'm thinking clear enamel or conformal coating to add some robustness.
Horrible late :) <br> <br>But i have done one now and it seems like its a big pause, about 30 seconds sometimes, can i shorten that? or can anyone good with codes send me a update? <br> <br>otherwise it works perfectly.. after that intense soldering, my god, it was a job for the hubble.. tel... microscope :)
Hi! <br>i'm doing a couple of jars for my balcony, i bought enough components for 10, so I did a trial run, and soldered everything on, programmed the attiny and just going to test it with one led, so i attached the batterypack and the led is lighting up, but its just on and off, no fading at all. <br> <br>What could be the problem? <br>
I have a couple of these boards for sale. ATTiny45 is per-programmed with the provided script. Email bgrablin at gmail.com, if anyone is interested.
You will need a simple boot regulator Polou has a 1.5 to 5V assembly for $5.45 http://www.pololu.com/catalog/product/798 It will supply enough current for this project. You could build it up from the NCP1402 for less but the Pololu board is so small and convent. I have used these for some LED projects and am seriously thinking of building a solar version of this project with the Polou board and a salvaged solar cell.
I realize I'm replying to an ancient thread (and the original questioner is long gone), but this is a very popular instructable. <br><br>The Polou boost circuit is a great suggestion. It is small, very efficient, and low cost. <br><br>An alternative (lower cost) idea is to use a MAX756. Should be noted though, in QTY 1 a max756 is almost $5, but Maxim is very liberal with free samples (I even put &quot;Hobbyist&quot; in as my company name, though I did use a business email address). An advantage is the 756 can be configured for 3V so you can use smaller resistors and power lasts longer.<br><br>But it may be easier to get the solar charger to charge 2 batteries...
I had an awesome time making these as a wedding decoration and put together a custom firefly PCB. You can check it out here:<br><br>http://www.instructables.com/id/Wedding-Firefly-Fishing-Floats/<br><br>Thanks Keso!<br><br>-Nick
Great project. Anyone willing to make me 2 and get paid ? I have an upset girlfriend (love of my life) . Sounds silly but little things arem what make her happy. Favorite new song The Band Perry All Your Life refrences catching fireflies. Anyway. I want to do something really special for her and I'm afraid it will take me a couple weeks to get parts and assemble. <br> <br>Don't want to sound desperate but I am. I relly love her and would like to give her a jar of sand from the edge of the ocean and a jar of firelies : ) <br> <br>I'll pay any fair price if someone has one made or would be willing to make. <br> <br>Thanks in advance to all <br>Mike ueiservice@yahoo.com
I FINALLY got this to work :)<br><br>Thanks so much for this instructable. It was a lot of fun to build and very rewarding once I got it to work.<br><br>If anyone needs help with the programming feel free to contact me
you need a programmer (for example avr dragon)<br><br>http://www.instructables.com/id/Help%3a-An-Absolute-Beginner-s-Guide-to-8-Bit-AVR-Pr/
Yay! I got it to work!
HOW!?!?!?!?! I still can't get it to work. What program did you used and what Programmer? My computers are running XP Pro, and I've got the Pocket AVR Programmer (http://www.sparkfun.com/commerce/product_info.php?products_id=9825) from Sparkfun.com Thanks ~Corry
&nbsp;hey I'm looking to make one of these, but Digikey is out of the Microcontrollers you suggest. Would <a href="http://search.digikey.com/scripts/DkSearch/dksus.dll?lang=en&amp;site=US&amp;WT.z_homepage_link=hp_go_button&amp;KeyWords=ATTINY45V-10SU-ND&amp;x=0&amp;y=0" rel="nofollow">this</a> one work instead of the ATTINY45V-10SU-ND? Could someone get back to me asap? I wanna make some of these for Christmas presents. Thanks! :)
Hi, Im not in the US and an unable to get the chip you have in your parts list. Would this work as a replacement ? http://www.mantech.co.za/ProductInfo.aspx?Item=128-8352 I have no programming or electronics experience so any help will be greatly appreciated Thanks
&nbsp;Yes, that chip should work fine
I'm trying to program the chip with the usbtiny from sparkfun and using programmers notepad, but it keeps coming up with &quot; &gt; &quot;make.exe&quot; program makefile:227: warning: overriding commands for target `.c.o' makefile:222: warning: ignoring old commands for target `.c.o' make.exe: *** No rule to make target `program'. Stop. &gt; Process Exit Code: 2 &gt; Time Taken: 00:01 &quot; I am new to programming and would appreciate any help, tryin to make this as a birthday present for my wife, if I get it working I'm gonna make three more for my nieces. Thanks ~Corry
My favorite instructable so far! For our wedding, my&nbsp;Fianc&eacute;e&nbsp;and I purchased glass floats (<a href="http://www.coldwatercreek.com/products/Detail.aspx?productid=46494&amp;ensembleid=52597&amp;bpid=96&amp;ci_src=14110944&amp;ci_sku=015069392" rel="nofollow">see here</a>, did not pay that much though!) and I have 20 of them. I'd like to make 20 firefly glass floats as decorations, and I have a few questions. <br /> <br /> First, digikey does not have any tiny45s in a 9081 footprint, are there other similar chips I can use (I know I'd have to modify the code slightly). A second option that I'm seriously considering is to use expressPCB and make a custom board.&nbsp;<br /> <br /> Second, I only have a 1&quot; hole to insert my firefly leads through. I need to find a way to distribute them throughout the sphere. Anyone have any ideas besides using double sided tape?<br /> <br /> Thanks!<br /> Nick<br />
This is a great idea, but how do you get the floats open? Do you drill the top of them? What kind of bit?<br />
1. Use an ATtiny85.&nbsp; It is pretty much identical, with twice the flash and only costs about 10% more ($2.15 instead of $1.94 in small quantities from digikey).&nbsp; You won't have to modify the code at all.<br /> <br />
very nice instructable, well explained and phgotographed
In my latest jar, I used a CR123 3V lithium battery. I wasn't too pleased with the life of the CR2450, and had AA's strapped to the top of my first jar. The CR123 fits nicely at the top of the jar.
I found it easier to attach the wire to the top side of the LED. I put the wire perpendicular to the LED, and rest it in the corner (see the picture for a close up of the LED.)
Too bad there is not a kit available for this...Any thoughts on putting one together and selling them?
Great project and amazing photographs. Thanks for taking the time to make non-blurry, well-composed, and detailed pictures!

About This Instructable




More by Keso:Jar of Fireflies
Add instructable to: