Arduino Wiegand Keypad

Please forgive me if this is in the wrong forum.
I have some very nice USB/PS2 vandal resistant ip67 keypads that I have earmarked for a project that requires Wiegand communication, I have readup on https://github.com/monkeyboard/Wiegand-Protocol-Library-for-Arduino.
After scouring the net, I find myself at the other side of the fence as to what is available in terms of examples.
All the projects I find for Wiegand protocol are for decoding Wiegand to ASCII, which is the exact opposite to my needs.
My goal is a 3 x 4 matrix type keypad that outputs Wiegand protocol for keys pressed.
Any ideas how to do this ?
Sounds simply ascii in wiegand out

The wiegand protocol is relatively easy to implement, there are separate lines for zero and one bits. The bits are sent with a frequency of 500Hz, so from bit to bit you should have 2ms. A bit is sent by pulling the corresponding line to GND for 50µs. The most common wiegand message is 26 bits long, the first is the even parity bit for the first 12 bits following it, the last bit is the odd parity bit for the second part of 12 bits.

This document has a nice description on page 4/5.

With keypad library I have hacked the USB keypad to make it a 4 x 3 matrix keyboard.
I am struggling now to get 4 bit binary number.

Serial.println(customKey, (BIN=4));

Does not work

Serial.println(customKey, BIN);

Gives me 110001 for decimal "1" when what I need for Wiegand is 0001.

Is there a simple way to ignore the leading 11 on each keystroke ?

pylon:
The wiegand protocol is relatively easy to implement, there are separate lines for zero and one bits. The bits are sent with a frequency of 500Hz, so from bit to bit you should have 2ms. A bit is sent by pulling the corresponding line to GND for 50µs. The most common wiegand message is 26 bits long, the first is the even parity bit for the first 12 bits following it, the last bit is the odd parity bit for the second part of 12 bits.

This document has a nice description on page 4/5.

Thank you for the link, it made an interesting read and explained a few things.
I have come up with the following sketch, which needs some work on it. I think I am going wrong in a lot of places but can not see where, does anything jump out ?

#include <Keypad.h>
#define LED 13   // output LED
#define VX_D0 8  // output DATA0 (Green) to Controller
#define VX_D1 9  // output DATA1 (White) to Controller
#define CARD_LEN 26
const byte ROWS = 4; // Four rows
const byte COLS = 4; // Four columns

//Define the keymap
char keys[ROWS][COLS] = {
  {'1', '2', '3', 'A'},
  {'4', '5', '6', 'B'},
  {'7', '8', '9', 'C'},
  {'*', '0', '#', 'D'}
};

byte rowPins[ROWS] = {10, 9, 8, 7}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {6, 5, 4, 3};//connect to the column pinouts of the keypad

// Create the Keypad
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

char entryStr[8];
int i = 0;

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

void loop() {
  char key = keypad.getKey();

  if (key) {
    if (key == '*') {
      memset(entryStr, 0, sizeof(entryStr));
      i = 0;
      key = 0;
      Serial.println("");
      Serial.println("Canceled");

    } else if (key != '#') {
      entryStr[i] = key;
      i++;
      Serial.print(key);
    }
    else {
      Serial.println("");
      i = 0;
      key = 0;

      String cardNumber = entryStr;
      memset(entryStr, 0, sizeof(entryStr));
      cardNumber = "10000" + cardNumber + "00001";
      Serial.println(cardNumber);
    }
  }
}

Excuse me but I cannot find any wiegand code in your sketch. Maybe you have to describe in more detail what you're trying to achieve with that sketch and what output you get for what input.