BreatheDot: A Portable Meditation Aid

A small battery-powered meditation aid to keep you focused and refreshed wherever you go.

Similar projects worth following
This is a small battery-powered meditation aid that is powered off a CR2032 battery. It uses an ATTiny85 and a single blue LED. By matching your breathing with the LED, you should feel the effects after 3 to 5 minutes.

The benefit of having a piece of hardware is that you can use it quickly and you don't have to strain your eyes looking at a screen.

It uses the box-breathing method used in yoga and the Navy Seals. Hopefully this project can help in promoting better health and well being.

I discovered the box breathing method on and I decided to make this device because I didn't want to stare at a screen with possible distractions around. I wanted to be able to pull something out of my pocket and begin the cycle immediately.

I reduced it from a 4 LED design because it was drawing too much power, and I realized that running a single LED can be quite pretty too.

It is fun to fiddle with and nice to look at. A case of white plastic helps to soften the glow of the blue LED and keeps the electronics safe.

The LED follows a cycle of brighten (breathe in), lit (hold), dim (breathe out), off (hold). The challenge is to indicate when it is time to release your breath because it is hard to visually tell the exact point when the LED starts to dim because the human eye is not sensitive to changes in bright lights. So the changes in brightness levels are programmatic. I am also experimenting with the use of RGB LEDs to provide a a more pleasing array of colours.

I believe this project can be a potential aid for anxiety and can provide a touchstone object in a convenient and useful manner.

Once this project is complete I will release the files and show you how to put the project together yourself with just a soldering iron. However do note that these are SMD parts so you might have to salvage a few parts yourself like resistors and LEDs. You can also buy them from Digikey for a few cents each.

Comments? Questions? Ideas on how to improve? I'm always happy to talk in further detail about the design considerations. Just leave a comment below.

If there is interest I am open to making a few. Just drop a line in the comments below.

Currently I am working on a new version. There is an option of purchasing some on Tindie for those who want to experiment with one without going through the hassle of putting one together.


Using a WS2812b LED/Neopixel for a more captivating display but a shorter run time.

sch - 85.57 kB - 09/02/2017 at 14:42



Using a WS2812b LED/Neopixel

brd - 41.24 kB - 09/02/2017 at 14:42


ino - 2.25 kB - 08/02/2017 at 14:48



Original design with LED placement

x-kicad-schematic - 100.49 kB - 05/17/2017 at 13:43


x-kicad-pcbnew - 40.58 kB - 05/17/2017 at 13:42


View all 7 components

  • Instructions not saving

    Lim Han Yang08/02/2017 at 15:13 0 comments

    I meant to write up a list of instructions, but at the moment it appears that hackaday is not saving these instructions. So the instructions on how to program the ATTiny85 using the micronucleus firmware will be hosted on the link posted in the Instructions portion. 

  • More lights, all the lights

    Lim Han Yang05/26/2017 at 13:30 0 comments

    I designed a new board that uses 2 CR2032 batteries and a WS2812b/Neopixel. I had my concern about how much the power draw will be, but I have been playing with it for over 3 days and it seems to work fine. I forgot to add a diode to drop the voltage to the ATTINY85 (safe levels are 5.5V), but there are no glitches.

    There are programming headers now for easier reprogramming. However it is not compatible with a breadboard yet. I used one of my headless Digispark devices to program the Breathedot.

    The nice thing about his new Breathedot (or BreathePixel?) is that the RGB colors are really pretty and the board provides more space to add other things like sensors or a IR receiver or light sensor.

  • Wow!

    Lim Han Yang05/10/2017 at 01:28 0 comments

    Hello! This is quite an unexpected piece of good news. This project was chosen as one of the top twenty for the Hackaday Design Your Concept Entry! Thank you all for your support and comments.

    Moving forward there are a few changes that I want to explore, adding a graphic for people who like the PCB as it is, and switching out the LED for a WS2812b or a Neopixel. This will test the battery life however, and it remains to be seen what the current draw will be. I have been able to successfully power 10 neopixels off 2 CR2032 batteries over an hour of usage, so this might be a promising avenue to look down.

  • New Boards

    Lim Han Yang05/08/2017 at 22:55 0 comments


    New boards are in, and they will be available on the Tindie page!

    They are black, white and silver, as promised.

  • Making Boards

    Lim Han Yang04/19/2017 at 20:20 0 comments

    So I have had some interest in people wanting to buy boards/finished BreatheDots so I am currently making a few of them, they should be here within the next two weeks!

    In honor of Hackaday, these boards will be in black, white and silver. A pretty classy combination I think. If you'd like one, just make a note on my Tindie page and I'll let you know as soon as they are done.

  • New boards! Better patterns!

    Lim Han Yang04/15/2017 at 14:35 0 comments

    After more user testing it turns out that the blink at the end of a cycle disrupts how the light is perceived. The word 'jarring' came up many times. So I changed it to a smooth fade, and it seems like people like it better!

    The new boards from OSH Park came in and I've finally soldered them up. Since these new chips are the low voltage ATTINYs they should be able to get a longer run time on the same batteries. I've also added debugging outputs to the chip so that I can change some code if I really have to. It beats desoldering the ATTINY85s just to reprogram.

    I figured out a nice way to hook the end is to use a craft earring and bend it into a looped shape.

    I did some mechanical stress testing on some of the my older versions and I found that if I dropped it many times from chest level the battery pad has a tendency to come off. To fix this I have weakened the holders so that they don't push against the battery as hard.

  • More LED testing

    Lim Han Yang04/06/2017 at 20:10 0 comments

    I did more LED testing the other day and I concluded that the current supply can only reliably sustain 1 LED of draw current. Any higher than that the microcontroller is not able to boot. I have a few new boards that are coming in a few days and I look forward to putting them together.

    I also put together a programming jig because I've had a few people who are interested in obtaining one. This will allow me to program the SMD chips easier than hooking the board up to test points, although I've included them to enable me to update the code.

  • Covers and Diffusers

    Lim Han Yang03/31/2017 at 18:03 0 comments

    While I like the board itself, some people might want a cover to diffuse the LED. After some experimentation, I found that white PLA plastic that has the LED flush to the surface actually provides the best diffusion. If there is a dome, the light doesn't diffuse that well, causing uneven brightness as seen in the gallery. Transparent plastic doesn't work that well either when it is printed. If you want to use a clear cover, try using a glass dome meant for circular DIY pendants.

    I used 1mm thickness for the plastic.

  • Battery Stress Test Complete!

    Lim Han Yang03/31/2017 at 01:26 0 comments

    Battery stress tests currently show that the device is capable of up to 26 hours of continuous usage. A total of 4 reboots occurred during this period. Under normal usage, this is projected to last about a year.

    Currently the device is still blinking. However, since the duration of the reboots was 2 hours, I decided to stop the tests there.

  • Version 1.1

    Lim Han Yang03/29/2017 at 13:28 0 comments

      Some potential updates to the algorithm used to simulate breathing:

      1. Fade in - blink - lit - blink - fade out
      2. Fade in - lit - fade out
      3. Fade in - lit - blink - fade out

      Some changes to the design include adding breakouts for all pins so that the program can be updated, and testing with a second LED for alternative patterns of light. By adding breakouts I will have to rotate the ATTiny85 so that the leads don't cross. Because the battery is on the other side, I am unable to put vias in the center of the board because I don't want it to short.

View all 11 project logs

View all instructions

Enjoy this project?



Wilpe wrote 08/02/2017 at 14:17 point

Do you have a rough date when you will be able to release the code?

  Are you sure? yes | no

Lim Han Yang wrote 08/02/2017 at 14:51 point

Woah! I thought I uploaded it. I placed the latest code that is working in the files. It doesn't have the blink. Sorry for the delay. Working on a few new ideas on improving the project

  Are you sure? yes | no

Michael Stoiko wrote 07/31/2017 at 13:06 point

A suggestion I was mentioning to Ted: Adding a bi-color LED to indicate inhalation and exhalation (or two, or whatever). The other thing that might be helpful could be a "count" led that keeps time to help the breaths stay even (pulses every second)

It depends on the aesthetic you are going for, however.

  Are you sure? yes | no

Michael Stoiko wrote 07/31/2017 at 15:24 point

Reading back, I see the issue with draw. For some reason I couldn't see the earlier logs. Since your MCU has plenty of capacity available, add a PIN photodiode (to be energy neutral) and have the ADC read the value at startup and use that to adjust the brightness to ambient conditions?

IE Scale the top and bottom PWM values using the coefficient you derive from that ADC read.

  Are you sure? yes | no

Lim Han Yang wrote 07/31/2017 at 15:33 point

That makes sense. I will experiment with the bicolor LED, as well as using the PIN photodiode for ambient detection. Thanks for the comments!

  Are you sure? yes | no

Ted Yapo wrote 07/28/2017 at 13:42 point

I really like this concept.  I think it would just be a matter of software changes to implement this on a  #TritiLED , which would run for years on the same battery.  Would you mind if I borrowed the idea and implemented it on my hardware as part of my project?  I'd like to make a sealed one that just works for 10 years or more.

  Are you sure? yes | no

Lim Han Yang wrote 07/29/2017 at 08:26 point

Hi Ted, sure thing! Could you perhaps keep me in the loop? I'd like to see one that can last that long as well. I saw your project, it is very cool. Do you mind if I adapted some of your designs to lower the current draw as well?

  Are you sure? yes | no

Ted Yapo wrote 07/29/2017 at 13:03 point

Yes, go for it!  See also #ATtiny45 EverLED  for an implementation of the low-power ideas on an Atmel part.

I'll be sure to let you know what I come up with.

  Are you sure? yes | no

Alyssa wrote 05/12/2017 at 15:21 point

This is so lovely!! So proud of you C:  also i lowkey want/need one hehe

  Are you sure? yes | no

Lim Han Yang wrote 05/13/2017 at 12:48 point

Thank you!

  Are you sure? yes | no

Frank Buss wrote 05/10/2017 at 07:02 point

How did you implement the fading? If you use PWM, then you need bigger steps the brighter it gets, because the human eye perceives changes much better when it is dark, but not when it is bright. I did some tests and provided an Arduino example with the logarithmic formula to make a smooth fading, see here:

This might solve your problem, that the users can't see when it starts to fade.

  Are you sure? yes | no

Lim Han Yang wrote 05/10/2017 at 12:52 point

Oh wow thank you! This is super helpful.

I'll take a look at the code.

  Are you sure? yes | no

Frank Buss wrote 05/10/2017 at 13:18 point

You can see it in this script:

in the initFadingTable function. The explanation for the formula is here:

Sorry, it is in German, but Google translate should help, if you don't speak German. But I can try to explain it, too, if you need help with it.

  Are you sure? yes | no

Lim Han Yang wrote 05/10/2017 at 13:57 point

Oh nice! 

Thank you for providing the additional explanation!

  Are you sure? yes | no

Wilpe wrote 05/10/2017 at 05:00 point

Will the boards also be available in Europe? I wanted to buy one from tindie but they are only shipped in the US.

  Are you sure? yes | no

Lim Han Yang wrote 05/10/2017 at 12:46 point

Shipping to Europe costs quite a bit currently. The last time I tried it was about $13.50 for a single package. However, I am open to digging around to find a cheaper option if you are!

  Are you sure? yes | no

Wilpe wrote 05/10/2017 at 13:50 point

I know.. shipping is realy expansiv from the US to Europe. You could get similar big items from China for under 1$ :(

I would order two boards if shipping was cheaper..

I would also collect orders from fellow Germans and forward it to them. But I guess this might be the wrong place to collect orders..

  Are you sure? yes | no

Lim Han Yang wrote 05/10/2017 at 14:03 point

Actually the additional costs of shipping one or more is around the same cost. It is just the base cost that costs $13.50 because how much one packet costs. 3~4 can probably fit into the same package if that helps!

  Are you sure? yes | no

Wilpe wrote 05/10/2017 at 14:08 point

If its allowed and possible..

A First-Class Mail® International Large Envelope** is only around 5$.

  Are you sure? yes | no

Lim Han Yang wrote 05/10/2017 at 14:15 point

I think that might be worth attempting! I'll have to check with the local post office for the rate however. At the moment I'll set the shipping option to what I have experienced.

  Are you sure? yes | no

Wilpe wrote 05/16/2017 at 07:12 point

Did you have a chance to check with your post office?

  Are you sure? yes | no

Lim Han Yang wrote 05/16/2017 at 13:45 point

I did. However because the product is electronic and I want to ship it in a bubble wrap envelope, it is classified as a package and not a large envelope.

At this price it doesn't make sense to ship the product. I would encourage you to build your own, since I suspect it'll be much cheaper. I have posted the board layout and you can get it made at a pcb manufacturer.

I am currently waiting for a improved board that uses a RGB led, and if it works out I'll share the schematic here!

  Are you sure? yes | no

Wilpe wrote 05/17/2017 at 07:19 point

You are right. I will try to make it myself. Could you please upload the layout as a pdf, brd or png?

  Are you sure? yes | no

Lim Han Yang wrote 05/17/2017 at 13:44 point

Oops! I thought I uploaded the board. Both the new board and schematic are uploaded! 

  Are you sure? yes | no

cabalist wrote 04/16/2017 at 01:29 point

Just got one off your tindie page.  Looking forward to seeing the code and files.  :)

  Are you sure? yes | no

Lim Han Yang wrote 04/18/2017 at 18:06 point

Thank you!

  Are you sure? yes | no

Youlian Troyanov wrote 04/15/2017 at 05:18 point

this is really cool. how much will it cost to build a  dozen and ship it to, say, toronto, canada?

  Are you sure? yes | no

Lim Han Yang wrote 04/15/2017 at 14:24 point

It is available on my Tindie page! Currently it is $9.95 for a single item. However, if you're interested in buying more we can definitely work something out. 

  Are you sure? yes | no

qquuiinn wrote 04/10/2017 at 07:39 point

This is a really cool project. Wish I thought of it first :D Perhaps add a pushbutton with interrupt to turn the attiny on and off? Otherwise best of luck and I'll keep an eye out on Tindie for you.

  Are you sure? yes | no

Lim Han Yang wrote 04/10/2017 at 17:26 point

Hi qquuiinn! Thank you!

The board actually has a switch to cut off the power entirely, so there is no need for sleep modes and interrupts. 

  Are you sure? yes | no

Wilpe wrote 05/17/2017 at 18:11 point

  Are you sure? yes | no

Lim Han Yang wrote 05/18/2017 at 03:21 point This is the one that I use. Yours might fit, but I'm not sure the footprint is the same.

  Are you sure? yes | no

Lim Han Yang wrote 05/18/2017 at 03:21 point

I can look around a little if you can point me to any German websites that are like Digikey or Arrow

  Are you sure? yes | no

Wilpe wrote 05/19/2017 at 05:46 point

I thonk the second one i posted should work. It has a similar footprint as yours:

And what switch where you refering to, in the reply to qquuiinn?

  Are you sure? yes | no

Lim Han Yang wrote 05/19/2017 at 12:53 point

I posted the model of the switch on the BOM.

Great! The pads on the side might be a little larger than what I have on my PCB layout so you might want to switch in the actual footprint on the board.

  Are you sure? yes | no

Ember Leona wrote 03/31/2017 at 15:42 point

Can either of you explain an orgone pyramid to me?

  Are you sure? yes | no

openInvent wrote 03/31/2017 at 03:56 point

you should combine this with my zork glowstone project. I really wish that would detect radiation levels and be a pocket zorkstone

  Are you sure? yes | no

Lim Han Yang wrote 03/31/2017 at 13:48 point

Hello! That would be a pretty cool project, however a radiation detector requires high voltages. The components would not be able to fit on the footprint of a coin cell battery. Can I suggest a light sensor instead? That way the glowstone reacts to the environment as well.

  Are you sure? yes | no

Ember Leona wrote 03/31/2017 at 15:40 point

Thanks for the feedback on the highvoltage thing dont thing i can have a microscopic tesla coild just yet... 

  Are you sure? yes | no

Richard Hogben wrote 03/31/2017 at 14:46 point

What is the zork project?

  Are you sure? yes | no

Ember Leona wrote 03/31/2017 at 15:41 point

a UV led with glow ing the dark paint in a toy case from those coin vending machines.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates