Reading Wiegand signals

I've just received my Wiegand 26 compatible keypad and have wired it up as per the instructions (green wire to pin 2, white to pin 3 on a genuine Uno). I'm not getting any response on the terminal - are these devices normally automatically Wiegand enabled or is this something you have to switch on with a setting? Can't see anything in the manual about it aside from the section that says how to connect to a Wiegand reader

are these devices normally automatically Wiegand enabled

These devices? We can not see what device(s) you are talking about.

I'm not getting any response on the terminal

Why would you expect to? I'll assume that the reason is that the code you didn't post, using libraries that you didn't post links to, is supposed to write to "the terminal", whatever that means.

I apologise for not posting links. Here is the reader:

http://www.jmprime.co.uk/product_info.php/mifare-1356mhz-access-control-readers-rfid-waterproof-vandalproof-hf-proximity-keypad-reader-p-176

I am using the standard WiegandTest code (from GitHub - monkeyboard/Wiegand-Protocol-Library-for-Arduino: Wiegand 26 and Wiegand 34 Protocol Library for Arduino)

#include <Wiegand.h>

WIEGAND wg;

void setup() {
	Serial.begin(9600);  
	wg.begin();
 Serial.println("Let's go");
}

void loop() {
	if(wg.available())
	{
		Serial.print("Wiegand HEX = ");
		Serial.print(wg.getCode(),HEX);
		Serial.print(", DECIMAL = ");
		Serial.print(wg.getCode());
		Serial.print(", Type W");
		Serial.println(wg.getWiegandType());    
	}
}

By “terminal” I meant “serial monitor”

Fixed... cruddy connections on my breadboard and keypad and Arduino weren't sharing the same GND :smiley:

so,for the code below, how can we read the card.id ? the cpp wiegand does not have this option?
#include <Wiegand.h>

WIEGAND wg;

void setup() {
Serial.begin(9600);
wg.begin();
Serial.println(“Let’s go”);
}

void loop() {
if(wg.available())
{
Serial.print(“Wiegand HEX = “);
Serial.print(wg.getCode(),HEX);
Serial.print(”, DECIMAL = “);
Serial.print(wg.getCode());
Serial.print(”, Type W”);
Serial.println(wg.getWiegandType());
}
}

Do you get anything when you run this code and present a card to the reader? I've been using my reader deployed for some months now and the Wiegand part has been the least problematic.

Looking at the CPP file on GitHub, and I'm not expert in deciphering these things, when a card is presented, the function "available" is run (line 24). This in turn invokes the function "DoWiegandConversion" in which the card ID is contained in the _code variable on line 141. The sample code you've quoted above called the function "getCode" that simply return the _code variable

spandit:
Fixed... cruddy connections on my breadboard and keypad and Arduino weren't sharing the same GND :smiley:

Can you share how you connected the keypad?

I would like to do the same thing.