Trust is earned, not given

A different perspective

2020-06-21 · Projects

An ESP8266 RSS reader that shows news, weather and clock on a small LCD

Before smart speakers, my kitchen counter had this: an ESP-12 module driving a 128x64 LCD, cycling through English and Chinese news headlines from two RSS feeds, plus date/time and live indoor temperature and humidity. The repository is ESP12-RSSReader.

How RSS works on a microcontroller

RSS is just XML over HTTP. The sketch fetches the feed, pulls out <title> elements with a streaming parser (the JsonStreamingParser pattern applies to XML too — you never load the whole document in 80 KB of RAM), stores the headlines, then renders them one screen at a time with a scrolling or paging animation.

The interesting part: 100 font headers

Look at the repository's data/ folder and you will find 001.h … 100.h: one hundred pre-generated Chinese font subsets. Full CJK fonts are megabytes — impossible in flash alongside everything else. The workaround is to subset: keep only the glyphs the headlines actually use, generate one header per batch, and load the right ones. It is the same idea as webfont subsetting, done by hand at the bytecode level.

Hardware and wiring

Repository: github.com/bobhuang1/ESP12-RSSReader. If you want a simpler entry into ESP8266 displays, start with the I2C LCD article and work up.