16xRelay with ESP12F Onboard and two Shift Register (74HC595)

I have some code that sort of works on this board (short pin IO0 to GND to put in flash mode)
If anyone knows what the data format you need to feed the 74HC595 I would be eternally grateful, I am just trying stuff but its not particularly reliable (different results dependant on data order sent, makes me think sending too much data and there is overflow from one request to the next).

This version seems to activate Relay 9 (not sure how), then it jump switches between relay 8 and 16.

// LCTech 16ch Relay board with 2x74HC595 shift registers - replicates close to out of box relay testing function
int latchPin = 12;  // Latch pin of 74HC595 is connected to Digital pin 5
int clockPin = 13; // Clock pin of 74HC595 is connected to Digital pin 6
int dataPin = 14;  // Data pin of 74HC595 is connected to Digital pin 4
int oePin = 5;    // oePin - not using this

void setup() 
{
  // Set all the pins of 74HC595 as OUTPUT
  pinMode(latchPin, OUTPUT);
  pinMode(dataPin, OUTPUT);  
  pinMode(clockPin, OUTPUT);
  pinMode(oePin, OUTPUT);

  // Setup serial comms
  Serial.begin(115200);  
}

void loop() 
{

      Serial.println("Relay #16 = 0b0000");       
      digitalWrite(latchPin, LOW);
      shiftOut(dataPin, clockPin, LSBFIRST, 0b0000);
      digitalWrite(latchPin, HIGH);
      delay(3000);

      Serial.println("Relay #8 = 0b0001");       
      digitalWrite(latchPin, LOW);
      shiftOut(dataPin, clockPin, LSBFIRST, 0b0001);
      digitalWrite(latchPin, HIGH);
      delay(3000);

}