Building a Wi-Fi-connected RSS-Reader with an Arduino Nano RP2040 Connect, an LCD and a remote control

Arduino displaying an RSS feed navigatable with a remote control
Demonstration of the feed reader with the Tagesschau.de news feed

Advantage of the Arduino Nano RP2040 Connect

Yes, there are examples of feed readers out there using the USB bridge to connect to the Internet. However using the Nina chip onboard the Arduino Nano RP2040 Connect in combination with a battery, makes a final construction very portable and low-energy. Soldering the components into a pocket-sized case could make a nice portable RSS feed reader.

Wiring up the Arduino Nano and the breadboard

My board is essentially a combination of two different circuit diagrams. I focused on the more complicated circuit diagram for the LCD and just changed the PIN for the IR receiver.

Configuring the chip and the environment

There are some obstacles and preparations required. Especially since the Nina chip does not contain all root SSL certificates, the desired certificates need to be installed on the chip. Given the limited storage space, the amount of root certificates it can carry are limited. You’d probably use a proxy API in a real-world example or an MQTT gateway.

Installing the drivers on the MacBook M1 Pro

I had written some smaller Sketches with my other Arduinos, but the Nano is quite different. It requires additional drivers and those you mostly find for macOS don’t do it on the Apple Silicon or M1 chips. Hence, I had to download the latest CH340 driver from a Chinese manufacturer.

Setting up the SSL certificate for the Nina chip

Once everything is installed for the Nano, you’ll have an example Sketch that you need to upload to the Nano in order to install the SSL certificate for the desired domain (tagesschau.de in my case): How to add SSL certificates to Wi-Fi Nina modules.

Installing the ssl certificate on the Nina WL102 chip

Linking the required libraries in the Arduino IDE

There are libraries the feed reader needs. WiFiNINA, LiquidCrystal and IRremote are essential for the use-case. The List library by Niklas Kaaf is something I really like, because it is a wonderful List implementation and takes away the pain of managing arrays.

  • WiFiNINA by Arduino
  • LiquidCrystal by Arduino
  • IRremote by Armin Joachimsmeyer
  • List by Niklas Kaaf

A look at the code of the feed reader

The setup is simple and straight forward. It connects the serial, initialises the LCD and enables the IR receiver. Once that is done, it goes on to connect to the Wi-Fi network and once connected, establishes an SSL connection to the web server from which it requests the data feed. Parsing of the feed is kept very simple (it’s just a proof-of-concept) and extracts the titles of the news items in the feed. Once everything is loaded and ready, it shows the first title of the feed and handles the events of the keys on the IR remote. Keep in mind: IR remote key IDs differ by sensor, board and remote control. Depending on which board, sensor and remote you use, the result may be different.

Conclusion of my Arduino Wi-fi feed reader project

I had done some smaller projects with the Arduino Uno, BeagleBone, Rapsberry Pi and the STM32. Take a look at my STM32 practical tutorial connecting it to AWS IoT with MQTT. You could pretty much do the same with the Arduino using the Arduino MQTT client. My problem with the Arduino Uno was always the limited peripherals it had onboard. Especially Wi-Fi and BLE as well as the relatively small memory. My Arduino Uno, which is also an older revision, hits its memory limits quite easily.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Jan Kammerath

Jan Kammerath

I love technology, programming, computers, mobile devices and the world of tomorrow.