Barcode reader for visually impaired shoppers

To aid his mother in reading the labels of her groceries, Russell Grokett linked a laser barcode reader to a Raspberry Pi Zero W to read out the names of scanned item.

Exploring accessibility issues

As his mother is no longer able to read the labels on her groceries, Russell Grokett started exploring accessibility devices to help her out. When he came across high-priced barcode readers, he decided to take matters into his own hands.

Camera vs scanner

Originally opting for a camera to read the codes, Russell encountered issues with light and camera angle. This forced him to think of a new option, and he soon changed his prototype to include a laser barcode reader for around $30. The added bonus was that Raspbian supported the reader out of the box, reducing the need for configuration — always a plus for any maker.

A screenshot from the video showing the laser scanner used for the Raspberry Pi-powered barcode reader

Russell’s laser barcode scanner, picked up online for around $30

No internet, please

With the issues of the camera neatly resolved, Russell had another obstacle to overcome: the device’s internet access, or lack thereof, when his mother was out of range of WiFi, for example at a store.

Another key requirement was that this should work WITHOUT an internet connection (such as at a store or friend’s house). So the database and text-to-speech had to be self-contained.

Russell tackled this by scouring the internet for open-source UPC code databases, collecting barcode data to be stored on the Raspberry Pi. Due to cost (few databases are available for free), he was forced to stitch together bits of information he could find, resigning himself to inputting new information manually in the future.

I was able to put a couple open-source databases together (sources in appendix below), but even with nearly 700000 items in it, a vast number are missing.

To this end, I have done two things: one is to focus on grocery items specifically, and the other is to add a webserver to the Raspberry Pi to allow adding new UPC codes manually, though this does require at least local network connectivity.

Read it aloud

For the text-to-speech function of the project, Russell used Flite, as this interface makes a healthy compromise between quality of audio and speed. As he explains in his Instructables tutorial, you can find out more about using Flite on the Adafruit website.

A screenshot from the video showing the laser scanner used for the Raspberry Pi-powered barcode reader scanned an item

When an item is scanned, the Raspberry Pi plays back audio of its name

In order to maintain the handheld size of the scanner, Russell used a Raspberry Pi Zero W for the project, and he repurposed his audio setup of a previous build, the Earthquake Pi.

Make your own

Find a full breakdown of the build, including ingredients, code, and future plans on Instructables. And while you’re there, be sure to check out Russell’s other Raspberry Pi–based projects, such as PiTextReader, a DIY text-to-speech reader; and the aforementioned Earthquake Pi, a light-flashing, box-rattling earthquake indicator for your desk.


Agnes Pethes avatar

Dear Mr. Grokett,

my question is how partially sighted (and blind) people can find the code to read? It seems to me a little bit tricky to find the right side of a package.
Although I can imagine to use your device to read the codes on shelves. Bigger chains provide that in Europe.

Thank you very much for your reply in advance.
Best Regards,
Agnes Pethes
audio-describer and co-founder of AKKU Association in Hungary

hans lepoeter avatar

must agree on that one. However this is potentially a great way to make an inventory of a shop.

For the visually impaired it would be great if it helped shopping somehow. In the current form it would not or hardly. Maybe shops could modulate lighting in their shop and inform a raspberry where the visually impaired person is and what he can find there. Just an idea …. Led lighting would allow for that. The camera module might not be fast enough to catch that … a phototransistor could do that. catching just the light above … just some ideas

Shannon avatar

This is a great project. Shows some creative thinking, and some excellent ways of dealing with practical issues. So much of the time I see projects that just assume Internet connectivity is available, or that someone is going to be able to go out and get some part, software, or piece of equipment for some crazy cost. I like this one really well. Good job!

ameyring avatar

Nice job. I once misread a bottle of honey thinking the name was just a brand name until my wife thought the name meant something and pointed out some things in the ingredients that I don’t like (hot peppers). Being visually impaired increases the chance of misreading labels, so this affordable barcode reader will be very helpful to finding the right food and avoiding wasting accidentally-bought food.

AndrewS avatar

I guess this would be a good sister project to

Comments are closed