UHF RFID on a M5Core2
-
Hi!
I’ve been trying to compile the demo sketch for multiple reads.With some tweaking I was able to compile the demo single read sketch... But i have not been able to compile the multiple read.
I've switched the library: #include <M5Core2.h> and also the ports for the serial comm:
Serial2.begin(115200, SERIAL_8N1, 33, 32);But i could not make the multiple read sketch to compile.
Actually, not sure if I'm having problems with this part of the code:
RFID.Set_transmission_Power(2600);
RFID.Set_the_Select_mode();
RFID.Delay(100);
RFID.Readcallback();
RFID.clean_data();or this one:
cards = RFID.Multiple_polling_instructions(6);
for (size_t i = 0; i < cards.len; i++)
{
if(cards.card[i]._EPC.length() == 24)
{
Serial.println("RSSI :" + cards.card[i]._RSSI);
Serial.println("PC :" + cards.card[i]._PC);
Serial.println("EPC :" + cards.card[i]._EPC);
Serial.println("CRC :" + cards.card[i]._CRC);
}
}
Serial.println(" ");
RFID.clean_data();Does anyone have aby thoughts on where to problem could be?
-
@gleon
Hello
I am in your same situation, but I can´t even with simple reading.
If you want we can work together since we have the same devices.
IIFLOW examples do not work, the EPC only shows 6 characters.Thanks.
-
Hi
Not sure if this will help. I was in a similar situation. However I found I was using the incorrect Tag type. I needed the following tag type ISO 18000-6C, EPC Class1 Gen2 standard protocol.
Once I had these tags the example code worked as expected, I now have a functional unit that reads multiple tags using M5Paper and M5 Core with Micropython, and is working well for my project.
-
@kylebuttress
Hello
I'm going to try, to see what kind of labels I have.
Thank you -
@kylebuttress
Hello,
Yes, they are the ones I have EPC Global UHF Class 1 Gen 2 / ISO 18000-6C uses them Decathlon. I have Core 2 and Atom Lite, it does not work in any of the cases.
IIFOW does not work for examples and Arduino Libreria either.Thank you
-
@gleon said in UHF RFID on a M5Core2:
Hi!
I’ve been trying to compile the demo sketch for multiple reads.With some tweaking I was able to compile the demo single read sketch... But i have not been able to compile the multiple read.
I've switched the library: #include <M5Core2.h> and also the ports for the serial comm:
Serial2.begin(115200, SERIAL_8N1, 33, 32);But i could not make the multiple read sketch to compile.
Actually, not sure if I'm having problems with this part of the code:
RFID.Set_transmission_Power(2600);
RFID.Set_the_Select_mode();
RFID.Delay(100);
RFID.Readcallback();
RFID.clean_data();or this one:
cards = RFID.Multiple_polling_instructions(6);
for (size_t i = 0; i < cards.len; i++)
{
if(cards.card[i]._EPC.length() == 24)
{
Serial.println("RSSI :" + cards.card[i]._RSSI);
Serial.println("PC :" + cards.card[i]._PC);
Serial.println("EPC :" + cards.card[i]._EPC);
Serial.println("CRC :" + cards.card[i]._CRC);
}
}
Serial.println(" ");
RFID.clean_data();Does anyone have aby thoughts on where to problem could be?
Gleon,
What Sketch do you use?
You can't see EPC or Aton Lite or Core2
Thank s -
@kylebuttress Do you happen to still have the code for this project? Is it possible you could send it?
-
Sure, this is running on a M5Paper, though I have had something very similar running on a M5Core, This is the small segment of an app written for long rang tag reading at a workshop to track keys and other equipment. I have kept in the tag reading portion. I hope this helps. Some of it is not needed for the reading, just too lazy to remove from the snippet.
from m5stack import * from m5ui import * from uiflow import * import wifiCfg import time import unit import _thread import os import random import urequests from m5stack import touch setScreenColor(15) buzzer_1 = unit.get(unit.BUZZER, unit.PORTB) uhf_rfid_0 = unit.get(unit.UHF_RFID, unit.PORTC) version = 0.89 EPC = None epc_bool = None temp = None tagList = [] TouchCordx = None TouchCordy = None rsense = 2 readerKey = None businessKey = None uhf_rfid_0.set_region(uhf_rfid_0.REGIN_US) uhf_rfid_0.automatic_freq_hopping(0xFF) uhf_rfid_0.set_channel_freq(924.25) epc_bool = 0 uhf_rfid_0.set_select_mode(0x01) print("Beapnow Reader : " + str(version)) print("---") def genKey(length): letters = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" result_str = ''.join(random.choice(letters) for i in range(length)) return result_str def SetTouchCordenate(): global TouchCordx, TouchCordy print("Setting Touch") TouchCordx, TouchCordy, s, status = touch.read() print(TouchCordx) print(TouchCordy) def uhf_rfid_cb(epc_no, dBm): global EPC, epc_bool, temp EPC = epc_no _ = dBm # label5.setText(str(EPC)) print("2") print("---") pass # while not epc_bool: # epc_bool = uhf_rfid_0.multiple_polling_read(uhf_rfid_cb, 100) # while not (uhf_rfid_0.select_tag_param(EPC)): # pass ssid = None pc = None keyboard = None sett = True sim = True bz = False readerBool = True touchBool = False bzfreq = 500 la = [] ba = [] alphabet = [ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", ] tu = False ltime = 0 dsc = 0 rr0 = None rr1 = None rr2 = None rr3 = None rr4 = None rr5 = None rr6 = None rr7 = None label0 = M5TextBox(502, 25, "Beapnow Tag Reader", lcd.FONT_DejaVu40, 0, rotate=90) labelVersion = M5TextBox( 460, 30, "version: " + str(version), lcd.FONT_Default, 0, rotate=90 ) circle0 = M5Circle(492, 904, 30, 12, 0) rectangle0 = M5Rect(290, 875, 60, 60, 12, 0) rectangle1 = M5Rect(380, 875, 60, 60, 12, 0) label1 = M5TextBox(334, 815, "Wifi", lcd.FONT_DejaVu24, 0, rotate=90) label2 = M5TextBox(420, 663, "Read Sensitivity", lcd.FONT_DejaVu24, 0, rotate=90) rs2 = M5TextBox(420, 882, "High", lcd.FONT_DejaVu18, 0, rotate=90) label3 = M5TextBox(501, 770, "Wifi off", lcd.FONT_DejaVu24, 0, rotate=90) label9 = M5TextBox(501, 620, "Waiting...", lcd.FONT_DejaVu24, 0, rotate=90) label7 = M5TextBox(512, 892, "", lcd.FONT_DejaVu40, 0, rotate=90) rectangle7 = M5Rect(170, 307, 200, 410, 14, 0) label12 = M5TextBox(334, 322, "Tag #", lcd.FONT_DejaVu40, 0, rotate=90) label13 = M5TextBox(331, 446, "1234567890", lcd.FONT_DejaVu40, 0, rotate=90) label14 = M5TextBox(276, 431, "READ Success", lcd.FONT_DejaVu24, 0, rotate=90) label15 = M5TextBox(227, 461, "Date Time", lcd.FONT_DejaVu24, 0, rotate=90) def touchScreen(): global touchBool, ssid, pc, tu print("Waiting for touch") btty = 6 while True: if touch.status(): print(str(touch.read())) wait_ms(5) def reader(): global bz, dsc, ltime, readerBool,rsense temp = 0 count = 0 clean = 0 print("Waiting for RFID") print("sensitivity = "+str(rsense)) while True: ltime += 1 # while not temp: temp = uhf_rfid_0.single_polling() if temp: label13.setText(str(temp[0])) print("-----") print(temp[0]) print(temp[1]) print("-----") count += 1 lcd.show() wait_ms(2) def file_exists(filename): try: return (os.stat(filename)[0] & 0x4000) == 0 except OSError: return False def readSense(): global rsense print("changing rsense") if rsense == 2: rsense = 5 rs2.setText("Low") else: rsense = 2 rs2.setText("High") lcd.partial_show(370, 875, 60, 60) def checkConfig(): # some check here return True def startTime(): print("START TIME") # time = 0 # loop = True # while loop: # if time > 29: # logTags() # loop = False # time += 1 # print(time) # wait(.95) label13.setText("") ssid = "" pc = "" lcd.show() _thread.start_new_thread(touchScreen, ()) if checkConfig(): _thread.start_new_thread(reader, ()) print("Ready for tags") else: print("waiting for register")
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login