7 Segment LED Clock

by leonardlee Jun 8, 2018
Download All Files

Thing Apps Enabled

Please Login to Comment

hi, I'm having problems with the timezone API, it seems that the clock doesn't connect to it

  • Posted with 3D Geeks Thingiverse Browser App

Are you seeing any errors in the serial monitor?

it says "connecting to maps.googleapis.com
connection failed
saving config"
While in the api monitor it says that it's getting request for the javascript api but not for the timezone api

I will have to confirm this later, but this probably has to do with the 2.5.0 release of esp8266 arduino. I am reading that you can resolve the issue by calling client.setInsecure() or you could try using an older 2.4.x version.

ok thanks, I'll try and I'll let you know how I solved it

  • Posted with 3D Geeks Thingiverse Browser App

ok, I've added client.setInsecure() and now it works fine, thank you very much

  • Posted with 3D Geeks Thingiverse Browser App

Hello. Is it possible to use an alarm with this model? I am looking for an alarm clock for my son.

There is not an alarm function with this clock. I'm sure it would be possible with some design/code changes though.

This is so amazing well designed !! thank you

any cheaper place to buy power barrel connector and the SN74AHCT125N? Something like aliexpress. I'm from Spain and the shipping costs are very expensive

You should be able to find the level shifter easily on places like ebay and aliexpress pretty cheap. I am not so sure about the barrel connector. Have you looked at all of the retailers listed here?: https://octopart.com/pj-037ah-cui-19052754?r=sp&s=ibga6B3lSgaPbC8W_554JA


I'm the guy that added a photoresistor to auto dim the clock when the lights are off. I was also having a problem with either flickering or wdt resets depending on what settings I used.

I decided to take a look at it again and I ended up switching from the FastLED library to the NeoPixelBus library because it uses DMA. This means you don't have to worry about wifi interrupts interfering with the led transmission and everything works great. The only thing is you have to turn the leds into one continuous strip by adding a wire from the end of the hour digits (far left) back to the center to the start of the minute digits.

I was wondering if you mind if I submit it as a remix?

GitHub Fork: https://github.com/RJFeddeler/7-segment-clock

RJFeddeler ,

Is this the wiring scheme you are referring to ?

That will work, but you can make it easier. You only need the data line (green wire) from the far left back to the middle. You can connect the power (black and red) from the center, just like the original.


Thanks for your reply

I have edited the image to show the full wiring (Wemos + Leds + Photoresistor) does this diagram reflect what you have in mind (or what you did with your circuit) ?

Of course, if you like, you could add it to your github repo to help others later.

Excuse my photo editing skills :)

Sorry for the late response, didn't see it. Yea that looks good!

Not at all. Thanks

Do you know how did the RX pin worked without logic level converter while the signal needs to be at least 3.5v to be detected as digital high?

Oh right! I completely forgot about that. I actually didn't need a logic level converter with my led strip, 3.3v worked fine. There is a lot of debate about this and it seems like you just gotta test it out and see if it will work with what you got. Luckily mine worked. I would like to guess that more often then not it will work but I'm just speculating... I'm not sure what the logic level converters use, optoisolation? You would have to check the response time/frequency of the IC to see if it will work or not. I would think it would be fast enough though.

You can submit a remix if you'd like. But are there actually any changes to the model? It sounds more like software and wiring changes. Perhaps there's a GitHub fork that I could just add a link to?

Also, I was not sure why everything had to be one continuous strip. The neopixel library should be able to support multiple strips as well, unless I'm missing something...

Good work!

From my research it seemed like the esp8266 only had dma on one pin (RX/GPIO3) . I'll fork it on github, you're right, that makes more sense.

GitHub Fork: https://github.com/RJFeddeler/7-segment-clock

Ah I see. It sounds like I'll have to read up more on DMA!

Do you know what I'm missing to get this error? (highlighted in red)

Are you using the latest version of the Arduino IDE (1.8.7)?

I think I might have fixed it but now I'm getting this.

I believe compilation errors should highlight the specific line that it is having a problem with. Are you seeing anything like that?

Out of curiosity, how was the last issue resolved?

When I compile the code nothing gets highlighted red. I changed the FastLED version to resolve the first issue.
Does it have to with the preferences for the sketchbook location or maybe the plugin?

Possibly... I checked my sketchbook location and it just points to my C:\Users\\Documents\Arduino directory. I'm assuming that was the default. I'll have to check my mac later, but I'm pretty sure I left that one to a default location as well. That strange "Not used" error in your screenshot is also suspect, as I'm not sure why WhareHauoraWifiManager would be nested under something named _Time.h. Either way, my code uses the main tzapu WifiManager library instead of the forked WhareHauoraWifiManager.

Does this look right? (sorry for the quality, my computer didn't let me take a screen shot)

Looks very similar to mine. Are you able to compile and upload the Blink example successfully? It's under File > Examples > ESP8266 > Blink

No doesn't seem to work.

This means there is a problem that is unrelated to my code. You will need to make sure to can at least get the blink example working first.

Have you selected the correct COM port? If you are on Windows, you can check the device manager to look for the COM port that says CH340. Are you actually uploading the code to a D1 mini chip?

Comments deleted.

Is possible to use an Arduino UNO for this project?

The Arduino Uno would not be able to fit inside of the clock. Also, it would not be able to take advantage of some features like NTP, DST, remote configuration.

You could probably still use the Uno if it sat outside of the clock, However, you might need a RTC module of some kind and a way to manually set the time.

Do happen to have the schematic for the clock shield so I could remake one?

On the oshpark page for the project (https://oshpark.com/shared_projects/qbrdUYXd), you can download an EAGLE brd file.

What pins do the 5V and GND connect to?
Are they all connected together just not shown?

The 5V and the GND connect to a power plane and a ground plane, respectively.

So how would I do this if I’m going to make my own Clock Shield using a piece of perf board? I’m using Autodesk Eagle but it’s not showing the planes. Sorry for all these questions. I’m relatively new to circuit design.

You should be able to see the planes if you click on Ratsnest in the board view (also under Tools > Ratsnest). After that, you will be able to see, for instance, that the top layer copper has connections to the 5V pin near the bottom. I've attached a screenshot as well.

As far as creating the shield on perf board, you would need to ensure that things that were connected on the brd file are also connected via your wiring. For example, the 5V pin needs to be connected to the D1 mini's 5V pin, the 5V pin of each LED strip, as well as pin 14 (VCC) on the level shifter. Hope that helps.

With that said, I would like to mention that ordering the board through oshpark is very reasonably priced. You get 3 copies for $4 USD, free shipping worldwide. If you would rather use a different PCB fab, you can just use the brd file with them or generate gerber files.

oh ok makes sense.Thank you very much!

Comments deleted.

Great Project! No problem with printing the 3d files.
I don't code, so, I'm a little stuck on the programming.
I followed all the way through to the sketch upload stage. The sketch successfully uploaded. Should the Lolin board show up on my router at this point? Mine does not.
Also, the last step, (Files directory) is confusing to me. The Github files are both HTML files. How should these be renamed so that they can be transferred?
BTW, I tested the board with the ledblinky sketch and it seems to upload and run fine.

When the sketch is first uploaded, it will not be able to connect to your router yet because it does not know which network to connect to or what password to use. Instead, it will go into access point mode. This means you will need to connect to the D1's own network using your phone or computer (it's name should start with "ESP", if I'm not mistaken). From there, you will configure the network and password that it should actually connect to. For more details, please see https://github.com/tzapu/WiFiManager#how-it-works

As far as the data directory goes, you should not need to rename anything. The data directory is a special directory that is used for storing files that will be uploaded to the SPIFFS, so they are not uploaded in the same way that the .ino sketch code is. For more details, please see https://github.com/esp8266/arduino-esp8266fs-plugin

The D1 is not visible on my network at all.

When I D/L the data files, they are both .html files with really long file names that the Sketch Data Upload program can't handle.

To clarify, the D1 initially runs its own network, separate of your router's network. Are you able to use the Arduino IDE's Serial Monitor (Tools > Serial Monitor)? I'd like to know what it is outputting. Before replying, be sure to remove any passwords or API keys from your response.

Can you try downloading the project as a .zip using this link https://github.com/leoclee/7-segment-clock/archive/master.zip ? It sounds like there is something getting messed up with the download process. The data directory should contain an index.html and a config.json file.

Thanks! Those files did the trick. I gave it my network password and got the IP address. Unfortunately, I didn't input the 2 API numbers at that time. How do I get the D1 to run its network again so i can input those numbers? It doesn't seem like I can do it from the web page it generates over my network.

You can modify the config.json file in the data directory with your API keys and upload the files again. This will overwrite the stored values.

Tried that. All I get is the output of the html. (the color adjustment sliders and 2 buttons)
Is there anything I need to know about the spacing or punctuation in the .json file?

To make sure everything is valid with your json file, you could copy its contents and validate it with https://jsonlint.com/

But yeah, manually configuring the config.json will NOT cause the wifi configuration screen to come back. However, if the map can load successfully on the page with the sliders and the buttons this means your Google Maps API key is successfully configured. If your clock gets the correct time, then this (probably) means the Maps API and the ipstack API are successfully configured. The best way to check is to see what is happening in the Arduino IDE's Serial Monitor tool.

Thanks! You've been very patient! Wouldn't removing my wifi password cause the config screen to return? Imagine that you wanted to move the clock to a different network (such as taking it from home to work). How would you erase the wifi password in order to replace it with a new one?

Yes it would. Here's how to erase the stored wifi info from the D1:

In the code, you'll notice a line that is commented out here:

If you uncomment this line (by removing the // from the beginning) and reupload the sketch, it should clear out your stored wifi settings on startup. You will want to add the //s back later and upload once more so that it doesn't keep clearing things out.

Thanks! I reset the wifi settings and put in the proper codes. On the adjustment web page the left button does nothing. The location button gives an error message "Oops! Something went wrong" "See Javascript console..."
I also tried the serial monitor. It gives a couple lines of garbage, pauses and gives 2 more.
I wired the first couple LEDs. No lights on powerup. (the D1 is running)
This doesn't look like it's going to work out!

I suspect the problem with the serial monitor output is a baud rate mismatch. Make sure this is set to 115200 in the dropdown at the bottom of the Serial Monitor window. The baud rate is established in the setup() function of the code, for future reference. Once you get the Serial Monitor working, I'm sure we'll be able to figure out what is going on, if you want to continue troubleshooting.

Serial monitor is working. I'm getting a Google map with my correct location. Should I send you the output of the monitor some how?

If you have the google map loading up correctly, that is a great sign that the code is working like it should. However, if you are not seeing any LEDs light up, I am starting to wonder about the wiring. As a test to ensure that everything is working correctly, you can run load a test LED program and see if that works:

  • In the Arduino IDE, open up the FastLED Blink example (File > Examples > FastLED > Blink)
  • Change the DATA_PIN value from 3 to either D2 (hours pin) or D6 (minutes pin)
  • After uploading, the first LED on the strip should start blinking

I followed your suggestion. The blink sketch worked as long as I powered the D1 directly with USB. If I used the power supply through the shield, no go, AND the 5v dropped to a pulsing 3v (or so). I completely resoldered every connection. Same result. I think your sketch ran with the USB power as well. (The colon leds are supposed to be always on and default to blue, correct?)
I hooked up a switching power supply I had and it's all good! After all of that, it was a defective Chinese power supply. It put out 5v with no load and dropped voltage when the D1 was attached to the shield.

Now that I have a few digits wired, I see that the hour is wrong. I get this error:

getTimeZoneOffset: API request was unsuccessful:
"errorMessage": "This API project is not authorized to use this API.",
"status": "REQUEST_DENIED"
I checked. My signup was accepted and the dashboard shows 18 requests.

We're so close now!

Here's what I think is happening. There are a 2 separate Google Maps APIs being used by this project:

Since you reported earlier that the map was showing up on the webpage, this should mean that the Maps JavaScript API is working. However, the error message that you got (and the wrong hour) indicates that the Time Zone API is not enabled. Here's how you can check... go to https://console.cloud.google.com/google/maps-apis/api-list and from the dropdown at the top, select the project you are using for the clock. There, you are looking for "Time Zone API" to be listed under "In use APIs" and NOT "Unused APIs". If it is listed under Unused APIs, click on it and enable it.

That did it! You're a genius!
Thanks for putting up with all my neediness.

Thank you very much for this cool project! I printed mine in black and white (using multiple processes & filament changes) and it looks great. I'm actually working on my own design for a larger clock, but I'd like to be able to use more than one LED per segment to make it bright enough. Is there a way to modify your sketch to assign 2 or more LEDs to each segment? Similar to this https://www.youtube.com/watch?v=LojGHyBFE8Q

You're welcome!

Wow, that black and white turned out great!! Especially with the black surrounding the colons. Would you mind posting that as a make?

Yes, I think it shouldn't be too hard to update the code to handle multiple LEDs per segment. I've logged an issue on github here https://github.com/leoclee/7-segment-clock/issues/4 I'll give it an attempt when I have some more free time. Pull requests are also welcome :)

Just added my make, and yes, the black really eliminates all light bleed :-)

Thanks for posting on github! I'll be sure to post my larger remix as soon as the code is working.

@hfkeppler : I created a branch with some changes to support multiple LEDs per segment here: https://github.com/leoclee/7-segment-clock/tree/issue-%234 All you should need to do is alter the value for NUM_LEDS_PER_SEGMENT near the top

Can you give it a try and see if everything is working as expected? If so, I'll get the changes merged into master

Oh wow, awesome! Well I still have some soldering to do and my printer is waiting on a replacement part, but I'll try it ASAP. Thanks again!

High, can you leave a list of how much top to print of each? :)

Hi, if you are asking about how many of each file to print, here are the requirements for both configurations:

2 x digit_side
4 x digit_middle
3 x cover_side
1 x cover_colon_hour_minute
1 x cover_colon_minute_second
2 x back_side
1 x back_minute_second
1 x back_hour_minute

2 x digit_side
2 x digit_middle
2 x cover_side
1 x cover_colon_hour_minute
2 x back_side
1 x back_hour_minute

Nice project! Is it possible to scale the digits a little (from 110mm to 80-90mm) ?

Thanks! I'm guessing probably not--or at least not without additional tweaking. Everything has been designed to account for the size of the LED strips, the size of the microcontroller, etc.

Hi I have built the clock I am not using the ipstack.com or Google Time Zone/Google Maps Javascript .
Actually think i did get an API key and just put that in the web cfg. Seconds and minutes seems fine it is just one hour behind.
is there any way to change de default to +1 more hour each time i turn it on.If so can anyone steer me in the rite direction.
Thank you.

I don't advise running this code without those APIs, as you lose out on the benefit of automatic time zone detection and DST changes. With that said, this (untested) hack might do what you want:

Replace the following line from https://github.com/leoclee/7-segment-clock/blob/35bb6f50d2c17b11fe1e8414426cad8f97de7e90/Arduino/clock.ino#L577
int displayHour = isTwelveHour ? hourFormat12() : hour();

... with something like this:
int displayHour = isTwelveHour ? (hourFormat12() + 1) % 12 : (hour() + 1) % 23; // +1 hour

Wow Thank you that worked nice :)

Thank you once again :)

I'm getting an error while uploading clock.ino,

exit status 1
'setColor' was not declared in this scope

This code is on line 506, setColor(toColor);

that is strange... that method is declared just further down in the file. https://github.com/leoclee/7-segment-clock/blob/35bb6f50d2c17b11fe1e8414426cad8f97de7e90/Arduino/clock.ino#L784-L797

Is it possible that your clock.ino got truncated somehow?

I copied and pasted clock.ino directly from GitHub. I should have attached the complete error log before, my bad.

Can you try updating your IDE? Looks like you are on 1.6.6 and the latest is 1.8.7

Anyway, it seems the issue is probably related to how the IDE generates function prototypes (or doesn't on some versions), according to a forum thread that I found here: https://forum.arduino.cc/index.php?topic=375865.0 It seems I could fix it by rearranging the code around or adding prototypes at the top, but I'm guessing the latest IDE should fix it as well.

The out-of-date IDE was the culprit! I keep the old IDE for another project and had not realized it was the version I was using.

After a solid hour of struggling with ESPcomm_sync_failed errors I finally achieved success (but that's another story). Now on to testing and the build.

Thanks for your help!

Comments deleted.

I added a light sensitive resistor to have it auto dim at night when the lights are turned off, worked great!


Hi again :)

So I gave up on my in-house PCB fab for the time being until I fix up my pen plotter, and used perfboard instead. It is mostly working but I get flickering on some segments. It is odd because usually when I get flickering on ws2812b's it flickers random colors because the signal isn't right. This flickers between off and the correct color. The segments that are supposed to be on stay solid though, its some random segments that are supposed to be off at the time.

Any ideas?

So I did a quick search and the first thing that came up worked, adding this above: "#include FastLED.h" :


I was getting these wdt reset errors when I used that, hopefully you don't encounter that with that setting. Just curious, are you using the level shifter chip? My original design without the shifting had flickering issues, but I've also heard reports from some who did not need it.

I saw that some people mentioned they did not need it as well but I did use a level shifter. I didn't have any compile errors with that line I mentioned and it stopped the flickering. While I'm here, I notice every once in a while the display goes dark and then comes back up a couple seconds later. Is that a bug or is that when its updating the time from the time server or something?

PS: I am hanging it on a white wall and the light shining through the inside of the digits removes the crispness of the numbers and makes it very slightly hard to read. I think I'm gonna have to use that foil tape on the inside walls of the digits unless anyone has another idea. Maybe just letting it hang an inch out on the nail will allow enough light to reflect in different directions (such as behind) instead of bouncing right off the wall back at you. I'd rather not do that though. Any other thoughts?

Sorry if it seems like I have a lot of complaints. I really do love it and my gf does too and she said not to go crazy printing stuff and filling the room with garbage! :P One of my favorite prints so far.

That actually sounds a lot like the wdt resets that I mentioned. Normally, the time synchronization is not going to be noticeable. One way to know for sure is to hook the D1 mini up to the computer to see what is happening in the serial monitor... I suspect you will see the chip restarting.

Interesting, I'll have to play around with it tomorrow, thanks for the info!

Here's the GitHub issue that I had referenced in my code: https://github.com/FastLED/FastLED/issues/367 it's been a while since I've checked up on that, but maybe there are some suggestions on there to try.

I'm going to try this one, but I plan to use clear filament on the first few layers until the walls start to form. Then I'll change to a dark filament that doesn't let much or any light through.

That is a really good idea!!

I printed one part in clear / black...

That looks awesome. One easy way to test it out is to use your phone's led flashlight.

It looks great. No light escaping through the wrong places. I ordered the shield.

to much work but now is weekend and my head is clear and now with your help i did get it :-)
now it works like a charm thx for the help :-)

You are welcome. I'm glad to hear that you got it working.

i have now a wemos d1 mini
and i upload the skech no proplem :-)
and i can set it up with wifi and api codes and restart
but when i try to the web page i only get a line it says not found

what have i done wrong ??

There are 2 key steps for getting the data directory files into the D1 mini, found on GitHub at https://git.io/7s:


I've never made a pcb before and I'm looking at the eagle file and It looks like the bottom layer is mostly ground fill/plane. How does vcc get routed to the two strips and the esp?

the top layer is mostly a power plane

i tryed to upload skech to nodeMCU but i get this error
Error compiling for board NodeMCU 1.0 (ESP-12E Module).

what shall i do ???

The 3D models and accompanying code are designed for the wemos/lolin D1 mini, not the NodeMCU.

Info: https://wiki.wemos.cc/products:d1:d1_mini
Buy: https://m.aliexpress.com/item/32529101036.html

Love this! I am not confident in my wiring skills to do this though. How hard was it and about how much did it cost for the materials?

Thanks. I estimated the cost of the supplies to be about $30, excluding tools and consumables.

Concerning the difficulty of this project: I am a beginner when it comes to soldering, but I definitely got a lot of practice assembling this clock. I would say it was more tedious than hard.

I have everything wired up to the colon between the minute and seconds. your diagram doesn't show past the minutes. does it matter how the last colon and seconds are wired?

yes, you should wire up the bottom colon dot first, then the top colon dot, then follow the same "S-shaped" wiring of every other digit for the seconds

How do you get the data files onto the Wemos? I've got as far as being able to open the config page and set up the wifi and the keys, but then it fails because it can't find index.html. Serial console messages show saving the config file but on reboot it says it can't find the config file.

Update: to put the data files onto the Wemos, you need the ESP8266FS tool:

What is the correct setting for Board type? I am using "Wemos R2 D1 and Mini" and that seems to work OK.
Thank you.

You got it correct. Detailed installation instructions are available on the github page: https://github.com/leoclee/7-segment-clock#installation

Great design! Can't wait to get the power supply and ESP board in to start putting this together. I was just wondering if anyone has tried using aluminum foil or foil tape to keep the light from bleeding through? The bleeding doesn't look to be too much of an issue but that was the first thing I thought of to try and make it 100%


I thought about doing something like that with foil, but it felt like it was going to be pretty difficult to execute cleanly. Another one that I had considered was printing a thin black piece that could be slid inside of the digit pieces, but I am not sure how effective that would be.

Could possibly try using some copper shielding tape for the liner inside if you wanted to block the light? Used typically for lining the inside of guitar wiring cavities and project boxes: https://www.google.com/search?q=copper+shieling+tapge&oq=copper+shieling+tapge&aqs=chrome..69i57j0l5.3574j0j7&sourceid=chrome&ie=UTF-8

It's thin, and will wrinkle as you apply it (think adhesive backed thin foil) but it sticks well, and if inside you probably wouldn't see it.

Looks like a great project - will try it out, thanks!

I'm going to try it with foil when I'm ready to print/build it. I'll post my make to let you know how it goes.

cool, looking forward to seeing it

Everything ordered, cannot wait to put this together.

Would a 5V 2A power supply work as i am struggling to find one with a UK Plug.

I think that it would be fine, it might not be able to run at full brightness. With that said, I have run my clock off of my computer's USB and it is still plenty bright and I believe that maxes out at 0.5A. The 3A recommendation was mostly based on my calculations of running a HH:MM:SS setup with max brightness white.

Another option is to just get a travel adapter. The plug I linked to is rated for 100-240V.

Comments deleted.

I'm having problems printing the back pieces. The little wire guide loops print very badly or not at all. I am using 0.15mm layer height with a 0.4mm nozzle and have tried medium and low speeds. Any hints from anyone who has had success would be greatly appreciated.

Can you post some photos of your prints? Perhaps that will make it easier to identify a solution.

I am wondering what it would look like with the back parts printed in black?

I think it would look good. Part of the way through this project, I decided that black might actually be ideal for the back pieces in order to (hopefully) minimize the amount of light emitted out the back. I never got around to trying it out, though, so I'm not sure if it really makes a big difference. I think white back pieces would also look cool, as it would blend in with the rest of the pieces--this was actually how I first envisioned the clock to look.

Nice design! I usually use a GPS receiver to set the time in all my clocks - I will probably add one to this as well, if I do I'll post the code on github. FWIW Mouser also carries the parts you spec'd from Digikey, and they don't have a minimum order.


I added your mouser links to the list as alternatives. Thanks again

Thank you.

I personally did not encounter any sort of minimum order requirements on Digikey (perhaps they have changed their policy?), but I am glad to hear that the parts can also be found on Mouser as well.

Great instructions. It's great to see when Makers put a lot of effort into their instructions for others. I will be making this very soon.

Hey there, cool clock! I made a PCB that fits all parts, D1 mini, 2 MOSFET level-shifters, and the barrel-jack. I may or may not have totally missed that you already had a board for the chip you used :S

Anyways, this board uses 2 MOSFETs, and 4 resistors for level-shifting, so it should be a lot easier for people to source these components, as pretty much any logic-level n-channel MOSFET can be used :)

You can see the board here :) https://git.io/7sPCB

I can't see any source files for the 3D prints, so I was wondering if you could provide that for the part that takes the PCB? I'd like to add support for my PCB :)

Alternatively, there's a 3d step file in the documents folder of my repo, which can be imported into most CAD packages.

Thanks. I took a quick peek at your pcb and if I'm not mistaken, the barrel jack would run into the lower colon LED or the "tube" that covers it. I'd have to take a closer look to be sure. It's very cool that you designed your own pcb, though! I will add the 3d source files to my repo next week (when I get back to a computer), if that will help.

Oh right, it probably does run in to that, bummer. I'll look at then later then :)

I've added 3d source files (step format) to my githhub repo : https://git.io/7s

Leonardlee, what is a comparable replacement board for WEMOS/LOLIN D1 Mini development board or could I use this (https://www.amazon.com/HiLetgo-Internet-Development-Wireless-Micropython/dp/B010O1G1ES). Aliexpress says 45 days to deliver and I am not that patient lol.

I would recommend getting the official board from their official AliExpress store if possible. However, the d1 mini board has MANY clones that would probably work just as well. Just look for it to be sold as a d1 mini. Here is a link to some prime eligible clones that I haven't tried: https://www.amazon.com/HiLetgo-Development-ESP8285-Wireless-Internet/dp/B07BK435ZW The main requirements are the board's physical footprint ought to be similar and the pins must match the original.

Here's another one on eBay: https://m.ebay.com/itm/D1-Mini-NodeMCU-and-Arduino-compatible-wifi-lua-ESP8266-ESP-12-Arduino-WeMos/201714015357

Good luck!

'DynamicJsonBuffer' was not declared in this scope - I have tried every version of arduinojson from 5.12 to 6.0.1-beta

Sorry to hear you are running into errors! I believe the specific version that I was using was 5.13.1, but it looks like there has been a DynamicJsonBuffer in master branch for quite some time: https://github.com/bblanchon/ArduinoJson/commits/master/src/ArduinoJson/DynamicJsonBuffer.hpp

Unfortunately, I won't be able to test the code again until I get back from holiday next week. I will post a reply when I get a chance to confirm.

Oops, didn't notice the activity on GitHub before posting my reply. Looks like it was resolved by deleting ArduinoJson and reinstalling: https://github.com/leoclee/7-segment-clock/issues/1

Comments deleted.

Thanks for this awesome design, leonardlee! I'm ordering the electronics now, and I've already printed all of the parts that I can. Do you have any recommendations on how I can split back_hour_minute.stl and back_minute_second.stl in half? I've got a monoprice select mini, which has a 130x160mm bed. It printed the digits, covers, stands, and back_side just fine, but those other two back pieces are just too big. I can't just reduce all the STL's in size, or else it won't be big enough to house the LOLIN D1 mini, or clock shield.

My Fusion360 skills aren't near as good as yours, but I was thinking maybe I could load the STL's in, split them in half, and then add two eyelets to each piece, so I can attach them with nuts & screws like you do for the back_side pieces. Any opinions?

Regardless, I'm looking forward to building this with my 10 & 11 year olds, I was looking for a good summer project to introduce them to electronics. Thanks again!

You're welcome. And yes, you are correct, scaling will not work for this model, unfortunately--things are a tight fit as they are. Concerning adding some eyelets for hardware attachment, I'm afraid you will find there is not much room for something like that to go in the middle piece that will not interfere with the wiring or LEDs. I think @wombat991 may have the right idea of splitting the model somehow. I don't know if joining 2 PLA halves on the edges with super glue would be strong enough, but maybe also worth a try? Finally, one more suggestion would be to have just that piece printed on someone else's printer using a print service or a local maker space. Some libraries now have maker spaces where you can have access to printers with (maybe) larger print beds.

I wish you and your kids the best of luck and I look forward to hearing what solution works for you.

A couple ideas...

(1) Use Netfab to split (cut) STL objects into smaller objects.

(2) If you print using ABS, then use some Acetone to "weld" the pieces back together.

I've done this successfully on a number of projects.

Hope this helps. Good luck! :-)

Hey awesome design going to start printing it soon.

Thanks, I'm looking forward to seeing it

Hi, great looking clock!

Is there a schematic for the clock sheild PCB please? I am in the UK so obtaining is a bit of a challenge!



I looked into this a little more. Oshpark has free international shipping, it just might take a little time. http://docs.oshpark.com/submitting-orders/shipping-information/#international-orders

Awesome! Thank you!

Thanks! I believe you should be able to download the EAGLE .brd file from the oshpark link. Please let me know if that is not what you are looking for!

Hello... this looks nice!
U can add the list of materials and electronics parts?
Thanks very much!

there is a list of supplies in the "Post-Printing" section near the bottom

Thank you! from the app dont show all info!
Correct via web!