3Dprinted Lunar Phase Clock

by galile0 Nov 14, 2016
Download All Files

Thing Apps Enabled

Please Login to Comment

hi please help im stuck all works except the light im using neopix all i get is two white lights and one yellow

Do you happen to have the led_support_v2.8b model with out the holes cut out? I am trying to build one that uses RGB LED's that are round instead of square. Would be a great help. I can post a remix afterwards.

The moon could be made darker by using some black (or a dark grey) spray paint to lightly dust the surface. The idea is to permit much of the light from the LEDs to shine through, but give a dark appearance when the non-illuminated areas are viewed from the outside. The brightness of the LEDs should be increased to compensate.

I think this will greatly improve the look of the model.

Thanks Joe, effect sure will be great, but It will be difficult to choose the quantity or type of spray, another user suggested to add an inner "moon" or semi sphere to blur the light from the led, to create a shadow halo.

I am not certain what you want the internal sphere to accomplish by blurring the light. You already have some internal baffles. Perhaps they should be colored black, to prevent light getting through a baffle, and illuminating the adjacent area.

As for doing the dusting with black; As it is now, the darkest the moon can be, is what it looks like non-illuminated. In total darkness, that may be acceptable. But, if there is any ambient light, that wold detract from the look of the moon. That is why a dusting of dark grey, or even black spray paint is a good solution. It makes the outside look darker when the outside is hit by ambient light. If you have ever seen a grey or dark grey rear-projection screen, this is the concept.

Artists who use an air brush have great control over the density of the spray. It certainly takes a bit of practice, but it is not that hard to learn. Even using canned air spray is not that hard. To do this, you aim the spray to the side, and then depress the button. Wave the spray over and then past the moon before releasing the button. Move fast enough that it would take a several passes to get the darkness you want. For something spherical, you need to change your angle of approach, or rotate the moon underneath you. But, never hold the spray in one area.

People who do automotive painting will perhaps be the most experienced with this technique. Even a hobbyist car body repair guy has probably studied the technique. But, if you practice just a few times, I suspect you will find it fairly easy to master.

Hello galile0 - Thanks for excellent project! I make my own, but I have a little problem.

All the project working perfectly (phase – demo’s – temperature etc) but when change the Bright from default value of 150 to 50 for example, after a while change again to 150. Any suggestion?



Hi Fotis,
Bright value is stored in the arduino ram, if there is a power cut, it will reset to the default value.
I will release a new version that store these values (Alarm, Bright, status.....) in the RTC's NVRAM
Will be great if you publish a make of your own moon clock :)

Thanks for reply galile0,

I'm already publish my own :)

I need to print again moon because in the top not printed fine

Keep update your great project!

Hello galile0 - thank you very much for posting this, as well as the Instructable that walks through the build. I am 90% there, but when I try to compile and upload the sketch lunar_clock_v3.ino I get a "sketch too big" error.

To see if it would help I removed the DHT library reference and all the portions of the code that reference the temperature in all the subroutines, but I still get the error. Any ideas?

My next thought is to use an Uno instead of the Nano as I am not really space limited.

Hi, Maybe you are using the Nano v2 ( ATmega168) that only have 1kb, you will need the Nano v3.x (ATmega328) with 2kb of flash.
If you have the Nano V3.x be sure to select the "Arduino Duemilanove or Nano w/ ATmega328" from the Tools > Board menu.

Good luck!

Hi galile0,

Thank you for your quick response. I am using a Nano V3, and I followed your advice. As is, the lunar_clock_v3.ino from Github compiles at 32,570 bytes when specifying the Duemilanove with ATmega328. If I remove all the DHT components of the sketch, it compiles at 30,958 bytes. As I am 238 bytes away from where I need to be, I may remove some of your other subroutines to see if I can't get it to compile. By chance did you bypass the bootloader when you programmed your nano?

Thanks again for any help, and getting this to work will be great.

Try to use the Arduino Sdk 1.6.12, as when I use this version to compile it, the sketch uses 29.952 bytes (97%) of program storage space, global variables use 55% of dynamic memory.

Anyway, I created a lite version without support of the DHT and some modification to shrink the program a bit, now it will use 26.258 bytes (85%) and global variables use 42% of dynamic memory.
Hope it will help.

Wow! galile0 -- thank you very much. Your lite version did the trick (was compiling with 1.6.3, I went ahead and tried your revised sketch before reverting to 1.6.12) -- compiles at 28,080 bytes -- everything is now working perfectly on the breadboard - time to start assembling.

Very gracious of you to supply this version of your code - unexpected but very welcome...I expect Christmas delivery will not be a problem for BigLazyB Jr's clock!

Great to know that the lite version did the trick.
I'm still surprised with the difference of size, maybe is related to the libraries. ( I have a copy of them on me github)
it would be great if you could post a photo of your finish model on thingiverse :) and also if you could subscribe to the youtube channel .
I'm sure it will be ready for Christmas delivery :)

Me encanta!!!! Impresionante!!!!

Comments deleted.

For orientation of the rows of LED strips, should it start left or right? Then top to bottom or bottom to top?

Based on what I see from running the code now and comparing a lunar phase calendar, the strip starts on the right when facing the moon, then every 3 is a row over. http://www.shinzoo.com/images001/012/01-moon-calendar-2016.jpg

This is the orientation, seen from the back of the moon.

1 6 7 12 13 18
2 5 8 11 14 17
3 4 9 10 15 16

I just added a new photo, for further clarification.

FYI I ran into an issue using the stock libraries from Adafruit for the graphics. This hint will help http://forum.arduino.cc/index.php?topic=364400.0 You just have to go in and configure the library for the 128x64 display.

Just as a quick note, I added cut version of both the moon and the LED support/light guide part http://www.thingiverse.com/thing:1929844
I deserve no credit, I just used Netfabb to make the cuts and export the version of the file.
Great project and hope that others enjoy it.

3Dprinted Lunar Phase Clock Moon cut in half
by Unknown

Thanks a lot Jetguy, sure it will be very useful :)

Thanks for posting this. How do you make the moon shell, and what wall thickness do you use?

No need of support for any of the parts.

Layer Height = 0.2 mm
Wall Thickness = 1 mm
Top Thickness = 1 mm
Bottom Thickness = 0.2 mm

For the Moon Infill Density = 0% , for the rest of the parts infill Density = 100%
Check the screen-shoots of Cura that I just added.

So, I had a thought: you've already got some craters on the moon, did these come from an actual lunar survey?

If they did, you might consider using some real lunar images to create an albedo map, and make the lunar shell thicker in the places where the actual moon is darker (backside texture to determine total thickness matching the true lunar image...)

Just a geeky thought, it's already cool how it is.

Really good idea!!
The current Moon is a design from by Dexter_New_Materials, you can check how is created here:

With your idea the Moon would look much more real!
Thanks :)

Hello galile0, thank you for posting this. I am putting this together from the information you posted on github -- would it be possible for you to post a revision of TinyRTC.jpg that includes a complete wiring diagram? A high resolution photograph of your setup would work too. If not can you please verify:

IC1 = Nano
IC2 = Clock
U$1 = DTH11? or DS18B20?
Where is the SSD1306?
Where is the APA102C?
JP1 = ?
P1 = ?

Any help would be appreciated. I have a young son who is a big fan of the moon, and I'd like to make this for him for Christmas.
Thank you

Note, i just did some quick searches on Amazon Prime. You might be able to find cheaper or different shipping options, I just grabbed these quick because I have Prime.

DTH11 is a typo, it's a humidity and temp sensor DHT11 https://www.amazon.com/gp/product/B01DKC2GQ0

SSD1306 is the type of OLED display driver ic inside the module

The APA102C is the type of LEDs cut up to make the display

The Arduino Nano 328P (3 pack of them for other projects) https://www.amazon.com/gp/product/B00SGMEH7G

The Real Time Clock RTC and EEPROM https://www.amazon.com/gp/product/B00UUR8GJU

not 100% sure on JP1 and P1

What I do know is that you need a buzzer for sound and the pushbuttons, but there are specific hole sizes in the housing for them so more research is required to get perfectly fitting ones.

Thanks Jetguy.. almost all correct.. just APA102C should be from a 60 pixel per meter strip, to fit on the holes when you divide them 3 by 3.

JP1 and P1 are related to the TinyRTC circuit.. must be careful with it. as if it contains a 3V battery, you should made this little modification: https://www.youtube.com/watch?v=3fTSZN03fd8

For the push buttons I used RAFI but any with a diameter of 15.1 mm, and not deeper than 20mm should work.

Regarding the buzzer, I recycled it adding the appropriate resistor.

Clear details on why you are modifying the RTC module. If you buy it with a rechargeable LIR2032 and you ensure the battery says on it "rechargeable" then no modifications are required. This module I linked does ship with a correct rechargeable battery per the description and pictures https://www.amazon.com/gp/product/B00UUR8GJU

If you buy a module without a battery and/or plug in a standard non-rechargeable CR2032, then follow a description I found here.
The reason is, you are removing the charging diode and the resistor network, and just directly connecting a non-rechargeable battery by shorting R6

Again, just trying to clear up your statement. You have to know what battery you have and if it's rechargeable. They all would/could be labeled 3V batteries. If you are not sure, then for safety, just follow the modification and use a non-rechargeable battery. What you do not want to do is charge a non-rechargeable battery.

I would add more details soon, with the schematics, photos of the components, and may even add a video with the" making of" on my YouTube channel.

The TinyRTC.jgp it's only related to the Real Time Clock component, as it normally doesn't include the DS18B20, I'm preferred to use the DTH11 to measure the temperature and the relative humidity of the air.

Fantastic work ! i just could say awesome !

Is there any sort of parts list for this? Would love to make one but have no idea what electronics I need to get to do this.

Awesome Job !!
Thank-you for Sharing