 //		coreJ4.DC_data_out <<= 1;
 		}
 
-
 	coreJ2.update ();						// do it
 //	coreJ3.update (coreJ3reg);				// do it
 //	coreJ4.update (coreJ4reg);				// do it
-
-/*	if (0x8000 & J2_data.AC_data_out)		// when the '1' is in the MSB (bit 31)
-		{
-		J2_data.AC_data_out = 0;
-		J2_data.DC_data_out = 1;
-		}
-	else if (0x8000 & J2_data.DC_data_out)	// when the '1' is in the DC board's MSB (bit 15)
-		{
-		J2_data.AC_data_out = 1;			// shift the '1' to lsb of DC data
-		J2_data.DC_data_out = 0;			// clear so there is only one '1'
+	Serial.println(coreJ2.DC_data_in, HEX);
+
+#else
+	if (0x8000 & J2_data.AC_data_out)			// when the '1' is in the MSB (bit 31)
+		{
+		J2_data.AC_data_out = 0;				// clear so there is only one '1'
+		J2_data.DC_data_out = 1;				// shift the '1' to lsb of DC data
+		J3_data.AC_data_out = 0;				// clear so there is only one '1'
+		J3_data.DC_data_out = 1;				// shift the '1' to lsb of DC data
+		J4_data.AC_data_out = 0;				// clear so there is only one '1'
+		J4_data.DC_data_out = 1;				// shift the '1' to lsb of DC data
+		}
+	else if (0x8000 & J2_data.DC_data_out)		// when the '1' is in the DC board's MSB (bit 15)
+		{
+		J2_data.AC_data_out = 1;				// shift the '1' to lsb of DC data
+		J2_data.DC_data_out = 0;				// clear so there is only one '1'
+		J3_data.AC_data_out = 1;				// shift the '1' to lsb of DC data
+		J3_data.DC_data_out = 0;				// clear so there is only one '1'
+		J4_data.AC_data_out = 1;				// shift the '1' to lsb of DC data
+		J4_data.DC_data_out = 0;				// clear so there is only one '1'
 		}
 	else
 		{
 		J2_data.AC_data_out <<= 1;			// shift both registers toward msb
 		J2_data.DC_data_out <<= 1;
-		}
-	coreJ2.update ();
-*/
-	Serial.print("------INPUT------0x");
-	Serial.println(coreJ2.DC_data_in, HEX);
+		J3_data.AC_data_out <<= 1;			// shift both registers toward msb
+		J3_data.DC_data_out <<= 1;
+		J4_data.AC_data_out <<= 1;			// shift both registers toward msb
+		J4_data.DC_data_out <<= 1;
+		}
+
+	J2_update ();						// do it
+	J3_update ();						// do it
+	J4_update ();						// do it
+	Serial.println(J4_data.DC_data_in, HEX);
+#endif
 
 	delay(1000);
 	}
	coreJ2reg.begin();
	coreJ3reg.begin();
	coreJ4reg.begin();
	coreFET.begin();
	
	// outmask, outdata, inputinvert
	coreJ2reg.init(OUTMASK, (SCLK | RCLK595 | LED), 0);
	coreJ3reg.init(OUTMASK, (SCLK | RCLK595 | LED), 0);
	coreJ4reg.init(OUTMASK, (SCLK | RCLK595 | LED), 0);
	// FETs don't have clocks to downstream devices
	// set all as outputs, all outputs off/low, no input inversion (none are inputs anyway)
	coreFET.init(0xFF, 0x00, 0x00);

	coreJ2.AC_data_out = 0;				// clear DC and AC 595 registers
	coreJ2.DC_data_out = 0;
//	coreJ3.AC_data_out = 0;				// clear DC and AC 595 registers

 *  2016 May 26 bboyes moved into Systronix_PCA9557 examples folder
 *				Changed name to PCA9557_J2
 *  2016 May 15 bboyes Start with new SALT 2v0 board
 *	2016 Jul 4	wsk		complete thrash of this example used as a test bed for SALT_JX and SALT_FETs classes
 */


#include <Arduino.h>
#include <Systronix_PCA9557.h>
#include <SALT_JX.h>
#include <SALT_FETs.h>
#include <NAP_pod_load_defs.h>

/**
