Desktop Widget (clock, weather forecast, world timer ....)

by smily77, published

Desktop Widget (clock, weather forecast, world timer ....) by smily77 May 31, 2015
5 Share
Download All Files

Thing Apps Enabled

Order This Printed View All Apps


A part of these Groups

View All

Use This Project

Give a Shout Out

If you print this Thing and display it in public proudly give attribution by printing and displaying this tag.

Print Thing Tag

Thing Statistics

27084Views 2747Downloads Found in Office


Update #2: Someone asked whether the body can be reshaped to host a node MCU. This doesn't work but a Wemos Mini fits into the housing. Therefore I added a tray that can hold this ESP8266 board.

Update #1: Forum for exchange of widget app ideas and code

I deal international and have a lot of those time and weather widgets on my windows desktop. But windows rearrange them always so It's much better to have them in real on my desk.

With a ESP8266 and a 128x64 OLED display you can build it for only around 5$! The ESP fetch the information from the internet by WLAN and the OLED display it - done

Here I made a tiny, well looking housing for them. I had a simple, "BRAUN"-style design in mind. But it the finish result doesn't remind a BRAUN device very much. For me it rather associates with the helmet of a star wars storm trooper. However it appears likely to me.

For switching anything I made also a version with two push buttons but as this destroy the design I made a further version with a gesture sensor. This works perfect and doesn't impact the design but double the cost at least.

For the hosting of the electronics there are two version as well. One with only OLED display and ESP 8266 (ESP-03) and one with an additional Arduino mini pro (ESP-01 in this case)


Printed without support on the highest resolution (0.2mm). Important to use more solid layers (I used 6 instead of 3).

Sand, sand, sand

acetone treatment (in my case 1,5 h)

The electronics can be programmed as usual if you have the knowledge. Alternatively there are lot of codes in the internet when looking for: ESP8266 OLED SSD1306.

For example the weather widget I found here: http://blog.squix.ch/2015/05/esp8266-projects-internet-connected.html

I created a forum where ideas, hints, code, hardware information etc. can be exchanged: http://desktopwidget.forumfrei.com/

More from Office

view more

All Apps

3D Print your file with 3D Hubs, the world’s largest online marketplace for 3D printing services.

App Info Launch App

Auto-magically prepare your 3D models for 3D printing. A cloud based 3D models Preparing and Healing solution for 3D Printing, MakePrintable provides features for model repairing, wall thickness...

App Info Launch App

Kiri:Moto is an integrated cloud-based slicer and tool-path generator for 3D Printing, CAM / CNC and Laser cutting. *** 3D printing mode provides model slicing and GCode output using built-in...

App Info Launch App
KiriMoto Thing App

With 3D Slash, you can edit 3d models like a stonecutter. A unique interface: as fun as a building game! The perfect tool for non-designers and children to create in 3D.

App Info Launch App

Quickly Scale, Mirror or Cut your 3D Models

App Info Launch App

i build it up, but there is a problem xD. my oled is inverted or flip 180° it does not fill inside, i have been looking for a way to invert it with program and havent find it yet. if you have it invet, could you please upload that model. i will love you. thank you!

Hi Martin

I don't know which program nor which library you're using. The one I use is the SSD1306Wire.h and has a function .flipScreenVertically() which does this exactly.

Of course a housing version with a 180 deg flipped display can be done. But in the current version the middle of the display is in the upper 3rd of the housing. In a flipped version it would be in the lower 3rd as the space doesn't allow to make it differently. Such a housing looks ugly and unless you insist I do not like to upload it.

So I rather would prefer to help you with the code than to upload the ugly housing version

Hi smily77,
thanks for your answer. Yes it would be an ugly housing, but the idea was born because i was using this function at the wrong place, so in my small experience, i suppose that there must be another oleds version and with that, another housings too.

As you said, it has this function "display.flipScreenVertically();" wich wasn't working properly because you need to put this function after "ui.init();", credits to Daniel from Squix, who spended a time helping me to fix it.

Thanks to you too for your good disposition to help :D!.



Could you send me a link to the ESP8266 you used? I have the Nodemcu ESP8266, but it is too big as you wrote below.


In the first one I used an ESP-03 but I assume you are looking for the version in the update #2. This is a Wemos D1mini which you find here: https://wiki.wemos.cc/products:d1:d1_mini

You can easily buy it on Aliexpress, Banggood, Amazon and so on. There are a lot of clones but they work all the same and have pretty much the same dimensions

Hey! love the design! would you be able to extend the back section to enable the fit of a nodemcu esp8266 instead?

Jan 11, 2017 - Modified Jan 12, 2017
smily77 - in reply to radeon

The nodemcu is a bit long but the Wemos D1 R2 fits perfect into the housing and is pretty similar to the nodemcu

I want to be able to get the current time, date, sunrise and sunset times. Would I be able to get the time, date, sunrise, sunset times, using parts of your code, given Lat and Long?

Yes you can. Please the code I use for the desktop widget II https://hackaday.io/project/11081-forex-display. The API I use there deliver based on the Lat and Long the current time as the sunset, sunrise and weather

What's the purpose of the Arduino, the buttons and the buzzer I see in your pictures? The code from http://blog.squix.ch/ runs on the ESP8266 without any buttons.
Are these for future use? Did you use any other program that takes advantage of the buttons?

Yes, the buttons as the beeper are for future use. My original idea is to switch between different cities but I didn't wrote the code yet

Sep 13, 2015 - Modified Sep 13, 2015
hackermagnet - in reply to smily77

Thanks for your reply. I have printed the body and I tested some examples writen in LUA. I don't have experience in LUA and I want to write my own code on Arduino IDE. If I won't succeed I will use a pro mini but I would prefer to use only the ESP8266. I have a ESP-01 at the moment and I will order a ESP-07. With more GPIOs I'm thinking to create something more than a weather widget. Maybe a notification system with color leds when I receive an email and preview of received message on the screen (I think Pushover service is amazing for these purpose.)

The Arduino IDE works perfect. I recommend you to order the ESP-12E instead of the the ESP-07. It has more memory (Important for OTA - Over the air updates - capability), the better WiFi perception and and more GIOP's. As far I know there isn't a ESP-07E yet. The ESP-12E is a bit bigger but can be used in the widget if you stick it just behind the OLED display.

I'll post on http://desktopwidget.forumfrei.com/ an Arduino IDE example in some days

tried your code on my spi, work really nice! ;)

Jun 15, 2015 - Modified Jun 15, 2015

For the pictures of the desktop widget I partly used a program of Dani Eichhorn (see bottom of the instruction section). He wrote an amazing version two of this program. Please check his comment on http://3dprintboard.com/showthread.php?13631-A-Little-3D-Printed-Weather-Widget-For-Your-Desktop

Jun 14, 2015 - Modified Jun 14, 2015

really want to make this, for my office desk, could this be made to be battery powered, 1x aa or 1x aaa would be best, hey even a 12v door bell battery.

just had a look on your forum, the link to the esp8266 is there but none for the oled display, it would be cool if you put a parts list up, then that way people can use the foum (or here) to get the bits then need.

I assume a battery wouldn't last very long and as it is thought to have it on the desk I made it to be supplied from the PC. I made a Mini-USB connector for power supply on the back that it can be connected to a free USB jack on the computer. I added a picture from the back side that you can see what I mean. By the way the header above the Mini-USB jack is for programming the ESP8266-03. (1. VCC, 2. TX, 3. RX, 4.GND, 5. GPIO0, 6. Reset

I added a kind of BOM to the forum (perhaps I'll make it more nicer when I have time :-) )

So where are the schematics, I see an 8 pin IC in the pic and a piezo Whats that for?

What you see is a ESP8266-03 board which is a complete Wifi-read controller board (you'll get it for 3-4 USD at Ebay or a China distributor). I have a buzzer two switches against ground and of course the I2C OLED display in the sample housing.

The connection to the controller board you can technically choose as you want but you need to adapt the code accordingly. I have it as following: GPIO 14 -> beeper, GPIO 12 -> SDA, GPIO 13 -> SCL, GPIO 2 & 18 -> switch. This run for some codes but the weather widget for example require a small change in the code as it uses other GPIO's for SDL & SCL when you download it from it's original place.

This is incredibly cool! Do you have a link for the code that's running on the ESP8266? I might make one myself, if so. Keep up the great work!!

I made a forum where ideas and code can be exchanged: http://desktopwidget.forumfrei.com/ Currently you can find here the code for the weather and clock examples, Others will follow