An Arduino RSS Feed Display by fritterdonut
Featured
100_0948.JPG
This Arduino project will display RSS feed headlines on an LCD via an Arduino and a USB cable. It works quite well, and lets you keep up with the world news while you're sitting at your desk. Many of the values in the code can be changed, and the system can be adapted to display Twitter and other information as well. It uses Python to interface with the Arduino.

All of the code and instruction provided is done so with no guarantee of success. I've bugtested the code to the best of my ability, and it should work in most cases, but certain things can throw it off. Details of such are within.
 
Remove these adsRemove these ads by Signing Up

Step 1: Required Pieces/Parts for the Project

The project requires very few parts, generally things that most people with Arduinos will have lying around somewhere:

(1) Arduino Uno board
(1) Breadboard (I used a MakerShield prototyping shield instead, but a breadboard works just as well, albeit less compact)
(1) LED, your choice of color
(>12) Breadboard cables
(1) 16x2 Character LCD display, compatible with the LiquidCrystal library (works with larger LCD's with tweaking)
(1) Potentiometer, preferably 10K ohms.
(1) USB to USB-B cable (standard USB-to-Arduino cable)
misadeks says: Apr 23, 2013. 12:11 PM
Verry Cool. I thouth i can´t connect arduino to the internet without an Ethernet Shield! Tahnk you!
techno guy says: Feb 10, 2013. 1:04 AM
i also think that the settings for the ports have also been changed
techno guy says: Feb 10, 2013. 1:00 AM
i think you need to rewrite the python code because an update meshed urllib2 into urllib, i'm trying to debug it, but this is my first time seeing python, luckily programming is my thing
mshah9 says: Sep 22, 2012. 6:54 AM
great work!! But there is one problem I have came across after implementing this. What is news contents contains " 's " as part like in " that's " then this Python script is unable to parse it and send it to arduino via serial so any help on this ??
callemang says: Sep 18, 2012. 3:29 PM
Very cool. Thank you for posting. I have gotten it work but it doesn't use the second line of text, therefore words are not showing up. I think there is an error in the Arduino code because if I use Arduino's example serial display it works but it only prints one word then reprints the whole screen. Help? Please
fritterdonut (author) says: Sep 18, 2012. 4:07 PM
What size is your LCD display?
callemang says: Sep 19, 2012. 9:00 AM
Could it be a problem with the LiquidCrystal Library? I don't exactly understand that part of it. Am I supposed to put the .h file in a certain place?
callemang says: Sep 18, 2012. 4:11 PM
16x2. Hello World works with the second timer at the bottom.
zmashiah says: Jul 31, 2012. 7:52 AM
Very nice project.
I was wondering, if I do have the PC working on chewing up the web data, why do I need Arduino at all? I mean, I can have a much cheaper USB-to-Serial connecting the USB port of the PC to an LCD. As a matter of fact, CrystalFontz sell USB connected LCD screens, so the PC could simply manage the display too.
kd8bxp says: Aug 5, 2012. 8:31 AM
I did something like this awhile ago using a beta-bright moving message sign, PHP script, and a home made serial cable, works quite well, I use it right now to display weather information and forecasts, but it can be used to do just about anything else that you would like displayed. In fact it works so well that I got myself a 2nd larger sign for the living room (Wife doesn't really like that one thou LOL) http://youtu.be/VoiIjmh4Qrg - Thought you might be interested thou because it just uses the computer and the beta-bright display protocol.
zmashiah says: Aug 5, 2012. 3:04 PM
Thanks kd8bxp (And I must admit is sounds like Radio Amateur code),
I did play with CrystalFontz a while back. Recently built few things where the micro-controller is basically standalone, connect to the Internet and display stuff on visual screen. See my Instructables. If the display is a small VGA one it has a higher wife-acceptance factor :-) The "old" 15" LCD display has now good use in the living room
fritterdonut (author) says: Jul 31, 2012. 2:32 PM
In this case the Arduino just manages the LCD and pieces together incoming words into proper, readable format. If you had a plain LCD with a USB connector and the proper software to interface with it via USB, then you could just use the screen.

I used the Arduino because I had it on hand and this was never meant to be a permanent build. I built it for fun, got it to work then took it apart and went onto the next Arduino project.
zmashiah says: Jul 31, 2012. 11:43 PM
I know about fun, and totally agree with that.
brndnlstr says: Jul 29, 2012. 10:11 AM
I could be wrong, but charcount=charcount++; won't do anything.

If you want to increment, you only need this:

charcount++;

That will increment by one.
fritterdonut (author) says: Jul 29, 2012. 10:05 PM
It will in fact add 1 to the total, but it is redundant.

the ++ modifier essentially acts as variable = variable + 1

So in this case it says variable = variable = variable + 1

It works, but should simply say charcount++ for the sake of simplicity and easier reading. Thanks for pointing it out.
clgonsal says: Jul 30, 2012. 9:19 AM
Technically, the behavior is "undefined" which means it might do what you want, or it might not. The actual behavior is up to your C compiler, and *any* behavior is permitted, including not compiling the code, or producing code with wildly unexpected behavior.

In case you care: the reason it's undefined is that the C language spec says modifying the same variable multiple times within the same expression without an intervening "sequence point" is undefined. There are no sequence points in that expression, and charcount is being modified twice. This exact topic used to be a common question on the C programming groups on USENET. About once a week someone would ask why one compiler would behave differently than another when compiling "i = i++" (often the question was "which one is right?").

Here's a Stack Overflow question on this topic: http://stackoverflow.com/questions/949433/could-anyone-explain-these-undefined-behaviors-i-i-i-i-i-etc
fritterdonut (author) says: Jul 31, 2012. 2:26 PM
Thanks for the definitive answer. So while I can confirm it would work properly for me, it might not work properly if you use a different compiler. Really is playing a game of chance with your code, I guess.
reliason says: Jul 31, 2012. 2:43 AM
If you get a could not open port error try finding the correct port this way:

In terminal type: python -m serial.tools.list_ports
Find the port matching the one in the Arduino settings and copy paste into your python script.
palestinian-warrior says: Jul 29, 2012. 12:04 PM
this is really simple
and impressive
but the python language , this is the first time i see somebody using it in arduino
really really goooood

big thank you bro
even your project is simple but a new stuff has been learned today
knownware says: Jul 27, 2012. 4:59 PM
This is very cool. I like this a lot.
hankenstien says: Jul 26, 2012. 10:35 PM
This is Pretty cool, and from the looks of the code it might be just simple, yet interesting enough to get me into python
Nice article thanks.

1. question though in the beginning of the arduino code.
Is the below lines a typo? shouldn't it include something?
or is it usingLiquidCrystal lcd(12, 11, 5, 4, 3, 2); as the include I no you said we need to download a new library but i never seen an include with pin assistants included, maybe it does not matter I'm just curious.

#include // import the LiquidCrystal Library
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

fritterdonut (author) says: Jul 26, 2012. 10:55 PM
(removed by author or community request)
fritterdonut (author) says: Jul 26, 2012. 10:56 PM
Fixed the code on the instructable. Thanks for pointing it out.
hankenstien says: Jul 27, 2012. 4:52 PM
no problem I'm glad Icould help, its little things like that that are usually the reason why something doesn't work.
Or in my case, I for get the ; or even just one space in the wrong place.
but I've dealt with this thru .html .php .pl /.cgi now a little C with the arduino, and Ive been noticing python gaining some ground again lately, so Ive been thinking about dabbling in it. any way good day and keep them coming.
Pro

Get More Out of Instructables

Already have an Account?

close

PDF Downloads
As a Pro member, you will gain access to download any Instructable in the PDF format. You also have the ability to customize your PDF download.

Upgrade to Pro today!