Tiny Code Reader: a $7 QR code sensor

Jul 22, 2025 - 19:30
 0  0
Tiny Code Reader: a $7 QR code sensor

Tiny Code Reader (TCR) caught my eye when it came out in 2023. It’s a very appealing idea: a self-contained seeing module that just decodes any QR code it sees. I immediately imagined applications in desktop manufacturing, a subject very dear to my heart.

You can buy it from Adafruit, Sparkfun, and elsewhere. There’s a main page with a clear getting started guide, and a datasheet.

Because it uses the Qwiic connector standard, setting it up is a breeze . It plugs directly into I²CDriver or I²CMini - both ship with qwiic cables included. TCR has a color LED on the front side that blinks blue on power-on, and helpfully blinks green when it detects a QR code in front of it.

Within a a couple of minutes I had a Python loop that printed out the current QR code using the I²CDriver:

import sys
import struct
from i2cdriver import I2CDriver

class TCR:
    pass

if __name__ == '__main__':
    i2 = I2CDriver(sys.argv[1])
    i2.setspeed(400)
    i2.scan()
    while 1:
        i2.start(0x0c, 1)
        b = i2.read(256)
        i2.stop()
        (l, ) = struct.unpack("

That’s all it took. Sure enough, it worked immediately, decoding the code in front of it:

b'http://en.m.wikipedia.org'
b'http://en.m.wikipedia.org'
b'http://en.m.wikipedia.org'
b'http://en.m.wikipedia.org'

I didn’t test it with longer codes. The developer documentation hints that longer codes might be a problem. The I²C protocol itself limits the code size it can report to 254 bytes.

But the biggest limitation seems to be that it needs the code to be almost dead center in front of the camera sensor. The documentation says

The sensor has approximately a 110 degree field of view.

but using my setup above I found it to only recognize the code if it’s centered with 5 degrees in both vertical and horizontal directions. That’s about 10mm with a 130mm lens-to-code distance. Pretty tight. I have opened a github issue with the maker for clarification.

What’s inside the TCR is a pretty interesting exercise in minimalism. The microcontroller is a RP2040 (just like TermDriver), hooked up to the I²C lines on one side and the image sensor from Arducam on the other. The image sensor module is glued down to the main board, but easily comes apart to reveal a 30-pin connector.

The rest is software. It’s possible to imagine all sorts of useful applications for this hardware with different software. In fact the same company makes a person detector, using a slightly different hardware platform.

The most surprising thing about this product is the price. At $7 retail, I imagine the maker is selling them for around $4, which must be very close to the BOM for the product itself. I’m tempted to see if I can use it as a development platform — the $7 price for a stock RP2040 and an image sensor is pretty appealing.

Thanks for reading.

Thanks for reading Excamera Labs Substack! Subscribe for free to receive new posts and support my work.

What's Your Reaction?

Like Like 0
Dislike Dislike 0
Love Love 0
Funny Funny 0
Angry Angry 0
Sad Sad 0
Wow Wow 0