Loading
Qrome

ESP8266 Double Wide Marquee Scroller News Weather Clock

by Qrome Jul 4, 2018
Download All Files

Thing Apps Enabled

Please Login to Comment

I tried adding a connection to Octoprint, and it only seems to work once in a blue moon. I'll see the status once in a while, hours apart, so I know I have the OctoPrint configuration correct, but most of the time the Octoprint status in the UI is "Not Connected". Is there a likely culprit here that might be making my connection so flakey? And I've tried this on two different Octoprint instances (2 diff RasPi's), with the same results, so not sure what I have wrong. Thanks!

Hey, if you can post this over on GitHub where the code is hosted that would be helpful. Also, are you running the latest version of the Marquee Scroller code? The only time I have seen connectivity issues is when there is a strange network configuration. Also, you can view the Serial Monitor log while it is running to view the responses from OctoPrint. That will give you a better idea of what is happening.

Sure, sorry, will move to GitHub. Yes, latest version of code. Tried serial monitor, but it was just gibberish, figured I had the wrong speed, but didn't go back to figure it out. Will repost on GitHub. Thanks!

Thanks for sharing such a fun project. I initially built a single wide, and it works great. I bought 2 more panels to build a double wide. I wanted to test each of the new panels individually first, so I took my original ESP from the single build and tried it on each of the new panels, and they are acting very goofy. The text is all jumbled, upside down compared to my original panel, it loads text from the left most panel instead of the right, but it still scrolls left. The words that scroll aren't complete words, but they jump panels. Kinda hard to describe. It's like the matrix isn't addressed the same. Both new panels behave the same. The new panels appear to be the same as the orig panel that works, MAX7219, the pins on the back are labeled the same, I ensured I was connecting correctly. Whenever I go back to my original single panel it still works fine. Any ideas what is going on? Thanks!

If you use the latest code, you will find that you can rotate the panels in the code. Check the Settings.h file and this will fix it for you. The panels that I link to in the Readme.md file should not require the rotation value change, but some others do. That should solve it for you.

That did the trick, thank you so much!

Neat project. CNN??? lol. Is it possible to put more led segments together, to make it longer?

Yes, if you look in the description there is a link to the double wide. The code supports chaining of several LED strips together.

Hello Qrome! I am running 3 of your clocks in my house (2 wide and 1 narrow). They all work great on version 2.7. I am trying to update to firmware 2.10 and the compiler bombs out with the error:
Using library Json_Streaming_Parser at version 1.0.5 in folder: F:\3D\Apps\arduino-1.8.0 (with APIM)\portable\sketchbook\libraries\Json_Streaming_Parser
exit status 1
Error compiling for board WeMos D1 R2 & mini.

If I try to update OTA it shows Uploading and goes to about 18% and then bombs out with the error:
This site can’t be reached The connection was reset.

Any suggestion would be greatly appreciated.

It looks like you might be running an old version of ESP8266 board core -- you need to install at least 2.4.1 or higher. I am running 2.5.0.
Also, make sure SPIFFS 1M is selected under the Tools menu of the Arduino IDE.

Thanks a lot for your help. Now it passes the check in IDE but when it begins writing to the board it stops stops with the error:

python.exe F:\3D\Apps\arduino-1.8.0 (with APIM)\portable\packages\esp8266\hardware\esp8266\2.5.0/tools/espota.py -i 192.168.1.112 -p 8266 --auth= -f C:\Users\owner\AppData\Local\Temp\arduino_build_697140/marquee.ino.bin
java.io.IOException: Cannot run program "python.exe": CreateProcess error=2, The system cannot find the file specified

I have Java and Python 3.72 installed.

Well, there is something wrong with the connection to your ESP8266 -- has nothing to do with the project. Not sure why you are running an old portable version as well.

Thanks again for your help.
I found what the problem was. The Python executive installed as Pyw.exe where the application was looking for Python.exe. I renamed the executive and now it is working.
What do you mean by "old portable version"? Version of what?
Also OTA now is working as well. It turns out that Chrome was blocking something. I switched to Edge and now it's updating properly.

Awesome!
I need it for my work, but, can we modify the code to display personal messages that are scheduled? I don't care about weather or news.
If I can have always clock, but for example at 12h03 have a personnal message that display, I will insta print.
By the way, I've never touched arduino, so I don't know what and where to touch :(

Sorry
I have problem with the code
'DynamicJsonBuffer' was not declared in this scope
Any idea how to solve this.

Use the ArduinoJson version mentioned in the readme file.

Hello again David!
Would you consider uploading your step files or fusion files? I would like to make a couple of changes but it is very difficult to import STL files into Fusion.
Thanks a lot for your consideration and the project that I love.

Hello again MPeter, I guess I need to update the description with the fact that there isn't any step files. This design was created in Tinkercad and the only artifact to export is an STL file. Sorry.

No problem. Thanks for your quick response.
May be you can make these changes if you have time. I just wanted to make the case for the display a little more sturdy. Possibly the sides could be combined with the side panels which then can be attached to the center piece with 2 screws instead of one.
What do you think?

Great project - Thank you.

One suggestion for the future would be to create a 2 line version with one line showing time & weather and the second showing news with the option for news details instead of just the headlines. It would be pretty cool with different colors for each line - say red LEDs for the top and blue LEDs for the bottom.

I love this clock. Thanks a lot.
I am having a small issue. For some reason it updates day of the week, but the date is updated only when I reboot the clock?
Thanks a lot for great project.

When is your turn off time set and the turn on time set? If it is 24:00 then that might be the issue. You may need to set it for 23:59 or something like that.

Thanks a lot. It was set for 12:00AM. I set it to 11:59PM. Will let you know tomorrow if it worked.

That was the problem. Everything works great now. Thanks Qrome.

i am having issue displaying the right time after time change.At openweathermap.org my location Athens,GR has the right time for example 09:00 am but at my Marquee Scroller is stil shows the old time 10:00 am.Checked my api,city id and refreshed data .Any ideas?

Working on an international solution that will work for everyone around the globe.

Anyone messed around with adding Pihole stats to this?

Using the same ino as my first build, but now I get this error when compiling:
'class Max72xxPanel' has no member named 'Serial'

Serial.println("matrix created");

Can someone help?

redownloaded from github and it worked.

Love the build, starting my second one. Anyone add any other features to the display? sports scores, etc?

Comments deleted.

Hey, love this project, but i have some corrections, the API Client clean text is not complete, i added the missing letters (I'm german and had the problems with small letters for example, also "Ä" wasn't included, now everything seems to be finde)
String NewsApiClient::cleanText(String text) {
text.replace("’", "'");
text.replace("“", """);
text.replace("”", """);
text.replace("`", "'");
text.replace("‘", "'");
text.replace(""", "'");
text.replace("•", "-");
text.replace("é", "e");
text.replace("è", "e");
text.replace("ë", "e");
text.replace("ê", "e");
text.replace("à", "a");
text.replace("â", "a");
text.replace("ù", "u");
text.replace("ç", "c");
text.replace("î", "i");
text.replace("ï", "i");
text.replace("ô", "o");
text.replace("…", "...");
text.replace("–", "-");
text.replace("Â", "A");
text.replace("À", "A");
text.replace("æ", "ae");
text.replace("Æ", "AE");
text.replace("É", "E");
text.replace("È", "E");
text.replace("Ë", "E");
text.replace("Ô", "O");
text.replace("Ö", "Oe");
text.replace("ö", "oe");
text.replace("œ", "oe");
text.replace("Œ", "OE");
text.replace("Ù", "U");
text.replace("Û", "U");
text.replace("Ü", "Ue");
text.replace("ü", "ue");
text.replace("Ä", "Ae");
text.replace("ä", "ae");
return text;
Also, it would be nice if you could make it possible to choose between different languages, i could help you with the german translation, it would be better at least for the Weather conditions, didn't find where to change that, also some additional newssources would be cool, i had to add "die-zeit" for example manually.
Edit: Found it, but only for humidity and wind. i also changed the kph to "km/h"
the only thing now that would be awesome if you could add more time ranges, like for example in the morning before you go to work and than when you come home after work until you go to bed, so at least like 2 start and end times.

Many thanks again for this project!

The addition will be in version 2.4.

Hey, this is great, thank you, but we should submit things things to the Code Project on GitHub.
Thanks!

This is awesome, both design and code! Wanted something more minimalistic so just printed brackets on each side holding the ledmatrix in place over my desk using 12 matrices, the code is great!

That turned out fantastic. That is the first photo I have seen of a size 12. I know there has been some 16 and 20 but I have not seen them. Thanks for sharing.

I'm trying to upload to the board - error messages I'm getting is

warning: espcomm_sync failed
error: espcomm_open failed
error: espcomm_open failed

any ideas ?

Do you have the USB driver installed. What version of Arduino are you using?

installed the usb driver. Using the latest version 1.8.5 of Arduino.

Can you even compile and push the ESP8266 -> Blink example program?

No I can't - same error message - I've got an Arduino started kit that's been in the box until now. I've tried the same method with this, selecting a different board with a different usb driver and blink uploads fine.

The only problem I can see, if it's either the board or the usb driver.

Comments deleted.

Make sure you install the ESP8266 2.4.1 Core through the Board manager. The other libraries are listed in the Readme.md file of the project. This video by Chris Riley has some great Arduino setup and configuration for one of my other projects. Though it is a different project, the setup and configuration is very similar and may help answer your questions.

https://www.youtube.com/watch?v=Rm-l1FSuJpI

I hope that helps.

You need to update your ESP8266 core -- you are running an old version of the board manager. The newer versions include the base64 methods.

Hello, I made a remix of the case.
https://www.thingiverse.com/thing:3038235

For the program, I have completed the modifications for the special characters in the file "NewsApiClient.cpp"
text.replace("’", "'");
text.replace("“", "''");
text.replace("”", "''");
text.replace("`", "'");
text.replace("‘", "'");
text.replace("’’’", "'''");
text.replace("\"", "'");
text.replace("•", "-");
text.replace("°", " degre");
text.replace(":", ":");
text.replace("é", "e");
text.replace("è", "e");
text.replace("ë", "e");
text.replace("ê", "e");
text.replace("à", "a");
text.replace("â", "a");
text.replace("ù", "u");
text.replace("û", "u");
text.replace("ç", "c");
text.replace("î", "i");
text.replace("ï", "i");
text.replace("ô", "o");
text.replace("…", "...");
text.replace("–", "-");
text.replace("Â", "A");
text.replace("À", "A");
text.replace("æ", "ae");
text.replace("Æ", "AE");
text.replace("É", "E");
text.replace("È", "E");
text.replace("Ë", "E");
text.replace("Ô", "O");
text.replace("Ö", "O");
text.replace("œ", "oe");
text.replace("Œ", "OE");
text.replace("Ù", "U");
text.replace("Û", "U");
text.replace("Ü", "U");

For info, I added the description of news in scrolling. Not just the title. This option would be useful in a future version (activated description or not)
In the "marke.ino" line 334,
I changed that:
if (NEWS_ENABLED) {
msg += " " + NEWS_SOURCE + ": " + newsClient.getTitle(newsIndex) + " ";
newsIndex += 1;
if (newsIndex > 9) {
newsIndex = 0;
}

by :
if (NEWS_ENABLED) {
msg += " " + NEWS_SOURCE + ": " + newsClient.getTitle(newsIndex) + ": " + newsClient.getDescription(newsIndex) + " ";
newsIndex += 1;
if (newsIndex > 9) {
newsIndex = 0;
}

Thanks again.

Connected clock Weather, news, Octoprint status . ESP8266 dual screen

Cool, the additional special character cleaning has been added to the 2.3 dev branch and will be part of the next official release.
Thanks.

Hello,
have a similar problem as HYPNOTICPOWER.
When scrolling the weather data, Ü, Ö and Ä are displayed incorrectly.
Is there any way to show it right or change it? -> ue, ö -> oe, ä -> ae?

The displayed name in the image should be "BEWÖLKT".

What kind of bolts are used in the back? They look small, maybe an m3 or something? Thanks!

The holes are 3mm I used what I had laying around. But anything that you can tap into a 3mm hole should work. M3 would probably be the first to try.

M3 was perfect for self threading, although I'm sure an M2 or English equivalent would also work. Thank you!

hi,very nice job,i made a double one and its perfect.Any idea how can i change news sources?i want to dispay news headlines from Greek news.

OH, post your makes if you can. I love to see them.

The sources listed here should be supported: https://newsapi.org/sources
Currently only added a few of the main ones because of memory limitations on the tiny device. You can edit the list with the sources though in your local code to add some you want.

I will be looking at doing some of the specific country news her in the near future.

can you guide me where to look in the code to edit a news source?i look at NewsApiClient.h and NewsApiClient.cpp but did not find the sources to edit.

Near the top of the marquee.ino file look for:

String NEWS_OPTIONS

You can add to that list.

i can t find a way to add the greek paper headlines cause all their id is null.So no country specific news only main big news providers,thanx anyway mate :)

Wow! I just finished mine. It works perfectly! You did an amazing job! Really. I printed mine on a Qidi XPro with plain old PLA and everything fit perfectly. I had a few build errors in the Arduino IDE but that was just me using the wrong libraries. I think I'm going to make another after I take some time to get better at soldering. I haven't soldered anything since my Ham Radio days years ago and things are a lot smaller now. But really, this was a great design in every way. Thank you.

Thanks Steve! Glad you enjoyed it. Please post your make if you can. I love seeing them. The smaller 1x4 is fun to build to if you want to do another.

Hello, thank you for your work and your sharing.
I have a character display problem for special characters in UTF8 (France). Do you know if it is possible to correct the problem?
it is these characters that are not interpreted (example for news google-news-fr)
On the left the character that should be displayed, on the right the interpreted character.
at - Ã
â - Ã ¢ â,¬
é - É ©
è - ¨
ê - ê
ë - to «
î - î
ï - ¯
ô - '
ö - Ã
ù - ù
û - Ã »
ü - ü
ç - ç
œ - Å "
€ - €
AT
À - À €
 - Ã,
É - Ã ‰
È - Ã
Ê - Ê
Ë - Ã <
Î - ÃŽ
Ï - Ã
Ô - Ã "
Ö - Ã-
Ù - Ã ™
Û - Ã>
Ü - Ãœ
Ç - Ã ‡
Œ - Å '

Thank you very much.

I found the solution to my problem.
you must declare the encoding of the page in the html header.
I added the code after line 670:
Problem solved !

Thanks, I will add that to the next version 2.2.

So that it works well with the special characters (france), I also replace some characters in NewsApiClient.cpp
text.replace("é", "e");
text.replace("è", "e");
text.replace("ë", "e");
text.replace("ê", "e");
text.replace("à", "a");
text.replace("â", "a");
text.replace("ù", "u");
text.replace("ç", "c");
text.replace("î", "i");
text.replace("ï", "i");
text.replace("ô", "o");
text.replace("…", "...");
text.replace("–", "-");

Thanks, I am adding those to the 2.2 code branch now as well. I have pushed the changes out the RC 2.2 branch. If you want to take a look it is here: https://github.com/Qrome/marquee-scroller/tree/2.2 There are a few more changes that will be going in. This branch has broken out some of the configuration into different pages.

Hello,
have a similar problem.
When scrolling the weather data, Ü, Ö and Ä are displayed incorrectly.
is there any way to show it correctly or to change it like this? -> ue, ö -> oe, ä -> ae?

The displayed name in the image should read "BEWÖLKT".

Comments deleted.

Hello, Would this work in UK and news source from BBC and temp in celcius?

Yes, it is fully international. It has the option to display in Celsius as well as the 24 hour clock format. You configure it in the web interface.

Hello,
is it possible to display the seconds in the current version (2.1)?

Not yet. I will be adding the option in 2.2.

FYI, for anyone having problems compiling.. I found that you need version 1.2.3 of Adafruit_GFX library. It looks like there is a new version that was released that has breaking changes. Might want to update the README file on Github, probably should include all known working versions to be safe.

I just downloaded Adafruit_GFX 1.2.5 and it compiles perfectly -- no issues. Can you give some details on what errors you were using? Better yet, for issues with the code, let's track that on Github. Provide as much info as you can

Sounds good. I noticed the developers were making changes while I was actually downloading the code- I think I was using 1.2.6, though now there is even a 1.2.7 that was released since then. I wonder if somehow a change was published between when I tried it and when you did. One of the method parameters had changed, and it was throwing an error about missing a parameter, though I can't recall the details. I haven't gone back to the latest version yet, but I will try it again and if there are issues I'll submit a bug on Github.

Yeah, I noticed that they have been applying updates over the last 4 days to that library. I think it is all good now. Thanks for spending some time on it. Let me know if you notice any issues. Thanks.

Comments deleted.

Great design. Do you have any thoughts on adding an option to monitor a twitter account and hashtag (and show the tweet on the screen)? I think that would be a great feature.

What size screws do you recommend?

The holes are about 3mm so anything in that range.

Thanks David... Sorry to hear about the false claim lodged against you. That's ridiculous. It's evident by the amount of work you put into your designs (and code) that copying isn't what you do. Good luck with the fight.

Thank you. Once Makerbot legal have reviewed and reactivated the original Marquee Scrolling Clock, I will share some of the details. I have video, photo, repository, and TinkerCad proof that the project was started in October 2017. Thanks for the comments.

Good luck also from me.

It seems to me, as if someone wants to make a business out of it. Too bad, that there is no "unlike" available ;-)

Im having some errors on the code for the original one, im trying to get it setup for my room, can you help me out with them? first error is on line 38 of "OctoPrintClient.cpp" no matching function for call to 'base64::encode(String&, bool)'

That error tells me one of 2 things -- you either have an old version of the board libraries installed for the ESP8266 along with an old library of ESP8266 Arduino Core. The latest version contains all the base64 stuff. Update your board library and ESP8266 core.

That fixed it! Thank you so much :)

Hello, can one still show the seconds with?

I will be updating the code for the Double + wide so you can choose how you want it to display in Static mode. One of the options will be to display HH:MM:SS It will be updated

Great. Thank you

The original one has gone bye bye! Was just going to print it. :-(

You can get it here: https://www.myminifactory.com/object/3d-print-65739
Until I figure out why someone has claimed that I have copied them. They also sent me NO notice. Grrrr.

Well that sucks. There is always somebody! Thanks for the link, and good luck. I wish you well. :-)