AVR RFID tag

attiny85-rfid

[pc486] sent in his hack that uses an ATtiny85 to act like an EM4102, a chip used for RFID tags. Minimally, all that is needed is the AVR and a coil, but he recommends some filtering capacitors. Depending on the size of the coil, different frequencies and ranges can be achieved. This project actually includes several hacks, such as using the coil for not only power, but a clock signal. The coil is actually able to power the chip without being connected to the power pins due to clamping diodes on the connected pins. The firmware is short but available on subversion.

Related: Scratch-built RFID tags

28 thoughts on “AVR RFID tag

  1. Using the clamping diodes to power the AVR via the coil? Amazing. Absolutely amazing. I’m floored by the creativity and simplicity of this hack. This is truly what hacking is about!! =)

    “An engineer can do for $5 what a fool can do for $20″

  2. I would so not be happy if I was one of the people with an RFID in my hand to operate my car/house locks.

    Next build a business card PCB with the surface mount version of that chip and the antenna etched in copper.

  3. I’ve noticed the back powering effect but I’d never though to intentionally run a device with it, not to mention pulling clock pulses directly from the receiver coil.

    This is the best hack I’ve seen in a long, long time.

  4. Come on bobz,
    This is not the place for apocalyptic bible thumping. Hackaday is about technology and sharing of such information. Lest you assume me to be just another cretin, let me assure you, I know exactly where that scripture originates and the apparent fulfillment does not escape me. This fact does not necessitate trolling.

    Please take it elsewhere.

  5. don’t you normally need to tune the antenna to the carrier frequency (by using a capacitor in parallel to the coil)??

    i wonder how good is the range with just avr+coil version? i guess a capacitor on power pins would increase the range quite a lot.

    You could also use smd avr and smd coil to make it even smaller.

  6. Lupin: The AVR’s silicon die already has some capacitance; I suppose all it takes is a rough guess what the capacitance is and find a matching coil for it.

  7. id have to say that this prob one of the coolest things I have ever seen. An ‘unpowered’ avr and an inductor…brilliant. How did you even think of it ?

    “hm..im bored, lets see what happens if I stick this inductor here..and lets pass it through a 125Khz magnetic feild”

    is that how it went down ?

    Brilliant !

  8. interesting…
    could also be handy for powering “smart” tags that can log environmental data using ambient light, and then be read back wirelessly.

  9. 5 stars hack
    i did also notice the power by the i/o, but always see it as a drawback.
    genuine genius, you shoud request a patent for that

    Hack a Day, more like this please

  10. Fuck all people who use US quarters for size comparison, hope they die in a fire already, I’m sick and tired of it as you might have surmised at this point.

  11. Minimalistic, awesome, pure creativity, just brilliant. You must be very proud of this kind of beautiful ideas!! My most sincere Congratulations.

  12. It’s not entirely original, at least not the way the chip is powered. I saw something similar, years ago, called iglassware (see website link for PDF).

    One problem with using the I/O pins for power on an AVR is that the ESD diodes are very weak, and could fail in this application. PIC devices have much better ESD diodes (I think Microchip specifies 10 or 20mA, while Atmel specifies “<1mA" and "do not use").

  13. I’m having trouble compiling the code for an ATMega168 target, using the HID mode. For some reason, the lines:

    manchester HID_SITE_CODE, 8
    manchester HID_UNIQUE_ID, 16

    have to be commented out, or else the compiler blows up with this error, like the chip is out of memory (the program code is 7496 bytes when compiled for attiny85).

    avr-gcc -Wl,-Map,avrrfid.map -mmcu=atmega168 -o”avrrfid.elf” ./avrfid.o
    ./avrfid.o: In function `loop':
    (.text+0x1d12): relocation truncated to fit: R_AVR_13_PCREL against `no symbol’

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s