I have a RPi Zero2 W with Piicodev adaptor and 3 Piicodev RFID sensors dasiy chained all working nicely.
I want to add buzzers to the system. Probably the pezio buzzers to save money rather than use the piicodev buzzer modules.
What would be the best way to hook up 3 buzzers, 1 for each of the Piicodev RFID sensors, that sound when the relevant RFID is triggered?
Ideally I’d like to wire up the buzzers to the connections on the RFID modules and not have to trail lots of wires. Is this possible? Could they be controlled as desired wired up this way, or would I need to use IO pins on the piicodev adapter?
Is there any info available on extending piicodev ecosystem, adding (non piicodev) sensors / devices?
Just to double check:
These : PiicoDev RFID Module (NFC 13.56MHz) | Buy in Australia | CE08086 | Core Electronics
My initial thought would be the AUX pins as a trigger. There are 2 and can be set to lots of different things for testing, including High and Low.
But, they are not broken out (If my pin counting is correct.
My other thought (so far) was it just a Second I2C device just for the buzzer. But you commented you did not want that ?
1 Like
Not tested but “should” work.
At a high level
1 Set the ComIEnReg register, to have nothing passed to the IRQ pin (which I believe is broken out to the header pins).
-
When you want to the buzzer to buzz, Set ComIEnReg to allow “just” the Timer (TimerIen) to trigger on the IRQ pin.
-
Set the Timer for a short one shoot count.
On timer complete, the IRQ pin should change state.
I have not looked into output current, so you may need to rig up something to drive the buzzer and use this pin just to turn it on (e.g. Mosfet)
If I get time, I might have a play over the weekend.
1 Like
Hi @Anthony198725,
Michael’s approach is solid if you’re comfortable working with low-level register configuration.
Another flexible option is to use a dedicated I2C GPIO expander for each RFID unit—such as the Adafruit PCF8574 or the MCP23008—to control the buzzers. You can use a PiicoDev splitter to daisy chain the expander off the RFID module, keeping all devices on the same I2C bus.
Since the GPIO expander pins can safely supply only about 20mA, and your piezo buzzer (like the Piezo Buzzer PS1240) typically draws around 30mA, you’ll need to use a transistor or MOSFET as a switch to safely handle the buzzer’s current.
Common choices include an NPN transistor like the 2N3904 or a logic-level N-channel MOSFET such as the IRLZ44N.
Wiring would look like this:
- The GPIO expander output pin connects through a resistor to the transistor’s base (or gate).
- The transistor switches power from the 3.3V or 5V supply line to the buzzer.
- This way, the expander handles only a low control current, while the transistor manages the higher current required by the buzzer.
This arrangement keeps wiring neat and modular, enabling you to locate buzzers right next to each RFID module and efficiently use the existing I2C bus.
1 Like
Thanks guys
Sounds like I should just suck up the cost of the piicodev buzzer, as it will save heaps of time, keep things modular, and any extra hardware will push up the cost into similar range of the piicodev buzzer anyway.
Just found their v1.0 original module, which is less than half of the new version cost.
Think I’ll give them both a try, and see which one fits my needs best.
2 Likes