Aiuto: Hacking di un lettore USB-RFID

...sicuro anche della velocità della comunicazione serale?

nel video han specificato

A si giuto! Utilizzo la 1.0.1 !!! :sweat_smile:

quindi molto strano, sicuro di esserti collegato al pin dati e non quello ready? in oltre il fatto che i dati sonao solo 4 byte invece che molti di più, può essere che il tuo chip lavori ad un bitrate inferiore (prova un pò quello default)

1 200
1 800
2 400
3 600
4 800
7 200
9 600

Allora ho fatto tutte le prove! Ma niente! Guarda:

Con 1200 e 4800 ottengo questo:

Con 1800, 3600 e 7200 questo:

E con 2400 questo:

Con 9600 ottengo ciò che abbiamo visto fino ad ora nei post precedenti...
:~ :~ :~

ma invece col sui driver normale funziona?

puoi fare così, lascia perdere la serial per un momento e leggi le durate grezze dei segnali low e high, poi confrontale con i messaggi che ti aspetti, in particolare con la durata di un baud via seriale

pitusso:
...sicuro anche della velocità della comunicazione serale?

Quoto.
Se non comunichi alla stessa velocità ottieni caratteri senza senso.

Collegato al computer tramite usb funziona perfettamente e non necessita di driver. Infatti simula una tastiera virtuale e "scrive" 10 numeri che corrispondono al numero del tag che ci si passa sopra.

Per il resto non ho capoto bene! :roll_eyes:
Cosa dovrei fare? :astonished:

Proviamo cosi... :cold_sweat:
Mi sono riscritto tutto il codice del video, eccolo:

http://goo.gl/VV4jk

è per un µC ATtiny2313 e un display 2X8 Digit LCD.
Sarebbe possibile convertirlo per Arduino???
Anche escludendo il display e inviare i dati al serial monitor cosi è piu facile!

Please help me! :~

uart_getc() corrisponde a Serial.read() (però DEVE ritornare un valore, quindi prima fai un loop finchè non c'è un available o il valore letto è != -1)

counter_ms corrisponde a millis(). Il resto resta uguale tranne le inizializzazione della UART (la seriale) e del counter_ms (la millis() si autosetta

Ho trovato qualcosa!!!
http://thetransistor.com/2011/10/hacking-cheap-rfid-readers/
Sembrava che poteva risolvere i miei problemi!
Invece non è stato cosi... Dove sbaglio?
La scheda che usa lui è molto simile alla mia! E credo che ha gli stessi componenti e le stesse uscite!

Ho provato ad utilizzare il suo Sketch ma il risultato è una pagina bianca!

// Ebay RFID decoder by Aaron Christiansen

// NOTE: this uses the NewSoftwareSerial beta 11
// by Mikal Hart, available here:
// NewSoftSerial 11 (beta) | Arduiniana
#include <SoftwareSerial.h>

SoftwareSerial rfid(3, 4);

void setup(){
rfid.begin(9600);
Serial.begin(9600);
}

void loop(){

if(rfid.available()){
Serial.println(readRFID());
}
}

String readRFID(){

String out = "";
int temp = 0;
unsigned long timer = millis() + 1000;
// using a timer to prevent a possible hang
while(out.length() < 10 && timer > millis()){

if(rfid.available()){

temp = rfid.read() - 29;

if(temp > -1 && temp < 11){
temp = (temp == 10)? 0 : temp;
out += temp;
}
}
}
// clearing out the unused extra bytes
rfid.flush();
return out;
}

ho provato a mettere la visualizzazione dei dati prima di String readRFID() ma ottengo quello che ottenevo all' inizio numeri senza senso divisi su 4 righe!!! Sembra che fa 4 letture!!! Perche?

Aiuto! :cold_sweat:

devi analizzare i segnali grezzi che escono da quella scheda e vedere s sono dati Seriali validi.

Tentare di usare altri skecth basati sulla serial è un fallimento a priori, salvo botte di cu*o

Come posso fare ad analizzare questi dati?
Posso auto costruirmi qualcosa?
O devo per forza spendere centinaia di euro per un analizzatore seriale?
$)

digitalRead dovrebbe bastare :slight_smile:

NO... non va bene!

int pinDue = 2;

void setup()
{
Serial.begin (9600);
Serial.println ("Setup OK");
pinMode (pinDue, INPUT);
delay (1000);
}
void loop()
{
int pinState = digitalRead(pinDue);
Serial.print (pinState);
delay (1);
}

il risultato è questo!

000000001100011110000000000110001111000000000110001111000000000011000111100000000011000111100000000011100111110000000001100011110000000001110011110000000000110001111000000000110001111000000000011000111100000000011000111100000000011100111110000000001100011110000000001110011110000000000110001111000000000111001111000000000011000111100000000011000111100000000011100111110000000001100011110000000001100011110000000000110001111000000000111001111000000000011000111100000000011000111100000000011100111110000000001100011110000000001110011111000000000110001111000000000111001111000000000011000111100000000011000111100000000011100111110000000001100011110000000001110011111000000000110001111000000000111001111000000000011000111100000000011000111100000000011100111110000000001100011110000000001110011111000000000110001111000000000111001111000000000011000111100000000011000111100000000011100111110000000001100011110000000001110011111000000000110001111000000000110001111000000000011000111100000000011000111100000000011100111110000000001100011110000000001110011111000000000110001111000000000110001111000000000011000111100000000011000111100000000011100111110000000001100011110000000001110011110000000000110001111000000000111001111000000000011000111100000000011000111100000000011100111110000000001100011110000000001110011111000000000110001111000000000110001111000000000011000111100000000011000111100000000011100111110000000001100011110000000001110011110000000000110001111000000000111001111000000000011001111100000000011000111100000000011100111110000000001100011110000000001110011110000000000110001111000000000111001111000000000011000111100000000011000111

In questi giorni cererò di farmi prestare un analizzatore logico da qualcuno! poi vi faccio sapere!

novità circa questo hack?
o è meglio prendere direttamente un lettore rfid spi da ebay? pare siano molto più compatibili e ci sono meno sbattimenti... per quello che costano poi!

io ho usato felicemente RFID con la UART (seriale) nativa, ovvero che ti danno RX/TX senza dover hackerare nulla.

lesto:
io ho usato felicemente RFID con la UART (seriale) nativa, ovvero che ti danno RX/TX senza dover hackerare nulla.

da quale hardware?

non ho "riciclato" nulla, su ebay scrivi rfid uart (o rfid serial) trovi mille cose, magari fai attenzione che siano a 5v così li colleghi diretteamente all'arduino, da cui usi la libreria SoftSerial.