Introduction: Dreamcatcher With Arduino Rainbow
A few weeks ago, my daughter asked me about dreamcatchers and as most dad's do...I overwelmed her with fantastic stories about the power of dreamcatchers ....well..I might have overdone it a little because she was so impressed that she decided that she needs one! So, why not let her make one....well....that has something to do with the story I told her. True or not, but I kind of told her that a dreamcatcher is something that you will get as a gift. You can make one for a friend but if you make one for yourself, it will be a lot less powerfull. Duh, why did I say that? Now, I had to make her one! No, problem but, being an Electronic Engineer, it had to be special and it should include some sort of electronics!
As I starting point on how to build a Dreamcatcher, I used the following instructable:
So, I happen to have some smart leds and arduino laying on my desk doing nothing. So I decided to design a pcb for it that can be used to embed into you dreamcatcher. That way your dreamcatcher will have some lights that you can program. Using my arduino sketch she lights on the dreamcatcher will light up in various rainbow colors. It's a beautiful sight.
- 1 PCB ( You can buy it at tinder store or build your own, schematics are provided)
- Components on pcb ( Attiny85 and mostly leds, resistors, diodes and capacitors)
- In circuit programmer or extra arduino to upload the Arduino bootloader to the microcontroller)
- Some steel wire or rod to make an outer ring for the dreamcatcher
- Wire or wool to be used to make the dreamcatcher's web.
- A 9V Battery
Step 1: Learn About Dreamcatchers
A lot of information regarding dreamcatchers can by found online, for example:
If this is to much information to read, here is the short version in my own interpretation:
A dreamcatcher is a small handmade web made of (whool) wire and it 's main purpose ( other then decoration) is to keep away bad spirits while one is sleeping. Bad dreams will be caught in the web and therefore the dreamcatcher is often hanged above a cradle or bed. A dreamcatcher should be given to others. you can make one for a friend or family or anyone as long as it's not you.( That last part might be absolute nonsense but it gives is somewhat of an extra touch)
Step 2: Design Your Dreamcatcher
There are two templates available that you can use to design your Arduino Dreamcatcher.
There is a blank form that you can use to design your own or you can use the one I already designed for you.
Once you designed ( or used the already designed one) and printed what you want to create,you can move one to the next step
Step 3: Assemble Your PCB
If you purchased a PCB without components, you'll need to buy them and assemble all yourself.
Start assembling the SMD components and solder the headers and USB connector last.
If you don't have any experience soldering SMD, you could choose to buy a assembled PCB.
The components in the BOM list are from my library. Components like resistors and capacitors may be replaced with different brands etc. No need to stick to the list as long as the value of the components is the same.
You can purchase a PCB from my Tindie store:
or you can make one yourself. PCB gerber files can be downloaded here:
Step 4: Program the Bootloader
To us the ATTINY85 with the Arduino user interface you will need to install a bootloader onto the microcontroller first. Without a bootloader installed, communication between the microcontroller and the Arduino interface is not possible.
A bootloader is a little program that, when installed, will monitor some in/output lines of your microcontroller to see if the Arduino interface is trying to talk to it. It can be used for uploading a new sketch to your microcontroller without the use of a ISP programmer. It uses USB instead.
Basicly, the Arduino dreamcatcher uses the Micronucleus bootloader.
Installing the Bootloader
To install this bootloader onto your ATTINT85 microcontroller, follow the steps below:
Connect your programmer to the ISP Header on the DreamCatcher board. I used an Atmel AVRISP MKII that I operate with the frealy available AtmelStudio. See the link below:
Maybe you prefer to use a different programmer and software or an Arduino UNO in "In Circuit Programmer" mode...All is fine as long as it gets the job done. For those of you who don't have a programmer and like to use that UNO as a programmer; take a look at other instructables.
However, I prefer using my AVR programmer in combination with the free AtmelStudio. So, lets start!
Open Atmel Studio, go to the TOOLS menu and select Device Programming.
Select your programmer, device, and interface and click Apply. If everything is wired up correctly and there are no driver issues etc. then you should be able to read your device signature by clicking read. Depending on the type of programmer, you will also see the on board voltage of your dreamcatcher. Which brings me to the following important reminder: Make sure the power to your dreamcatcher is on! one way of doing this is to connect the USB cable. Most ISP programmers will not power up your board so you need to power it for them in order for the programmer to work!
Now it is time to program it. Upload the bootloader t85_default.hex
Don't forget to program the fuse bits while you are at it.
SELFPRGEN = [X]
RSTDISBL = [ ]
DWEN = [ ]
SPIEN = [X]
WDTON = [ ]
EESAVE = [ ]
BODLEVEL = 2V7
CKDIV8 = [ ]
CKOUT = [ ]
SUT_CKSEL = PLLCLK_1KCK_14CK_64MS
EXTENDED = 0xFE (valid) HIGH = 0xDD (valid) LOW = 0xE1 (valid)
Now that the microchip is prepared and ready to receive our first sketch we’re almost good to go. There is one more thing that needs to be done. We need to install the windows driver.
Installing the driver for this board.
Actually, the driver for this board is the same as for the Digispark HW-18 board that was used as a starting point for my PCB design. The driver files are included or can be downloaded here:
If you need help installing this driver, look at this video:
Step 5: Upload the Firmware (sketch) to Arduino
The sketch V1.0
The first version of this sketch doesn't support the power button. This will be implemented in the next release.
The idea behind the power button is that you can wake up the controller from sleeping mode to start the program. The program will run for 5 mins after which the controller goes back to sleeping mode. ( battery saving )
However in the first release V1.0, it is not yet implemented.
Installed Arduino libraries
you'll need to install Adafruit_Neopixel library
If you haven't already, you will need to install the Arduino compiler. You can find it at Arduino.cc or find it with google.
You will also need to install the Adafruit_Neopixel libary. In my sketch I used version 1.5.0. You can install it by using the menu item: 'Library Manager'.
Step 6: Wire the Web
1.Print your design or use mine.
2. Create the outer ring.
You can use some thick electric wire or metal rod. you can make it round by bending it around a big jar or round pipe.
3. Add wool to the outer ring and make sure the whole ring is covered
3. Place the outer ring and PCB on the template to give you an idea on what it's going to look like.
4. add with wires one by one to complete your web. You can add beats or other decoration in this process
5. If you like, you can add feathers or other decorations as well.
Step 7: Show , Dream and Tell Your Community
Try not to stare to long to this beautiful designed dreamcatcher. It's enchanting isn't it? Enjoy the beautiful lights. Remember, if the lights are too bright, you migh want to adjust the Sketch( firmware) to dimm the lights to you likings.
Don't forget to tell you friends about this wonderful dreamcatcher. Enjoy it while you can because, remember, you have to give it away or it will not work to it's full extent ;-) The good news is that you can always build another one!
Participated in the