Yes, I believe so. They were likely on wifi at some point, but am using them without the wifi need currently.
Here is the code.
SYSTEM_MODE(MANUAL);
#include "MCP23017-RK.h"
#define MCP_RESET D6
#define BANK_0 D2
#define BANK_1 D3
#define BANK_2 D4
#define BANK_3 D5
#define MEMORY_SELECT A4
MCP23017 gpio(Wire, 1);
void setup() {
pinMode(MEMORY_SELECT, OUTPUT);
pinMode(BANK_0, OUTPUT);
pinMode(BANK_1, OUTPUT);
pinMode(BANK_2, OUTPUT);
pinMode(BANK_3, OUTPUT);
digitalWrite(BANK_0, HIGH);
digitalWrite(BANK_1, LOW);
digitalWrite(BANK_2, LOW);
digitalWrite(BANK_3, LOW);
pinMode(MCP_RESET, OUTPUT);
digitalWrite(MCP_RESET, LOW);
delay(2000);
digitalWrite(MCP_RESET, HIGH);
delay(100);
gpio.begin();
for (int i=0; i<16; i++) {
gpio.pinMode(i, OUTPUT);
}
SPI.begin(MEMORY_SELECT);
SPI.setClockSpeed(10, MHZ);
//SPI.setDataMode(SPI_MODE1);
digitalWrite(MEMORY_SELECT, LOW);
SPI.transfer(0x02);
SPI.transfer(0x00);
SPI.transfer(0x00);
SPI.transfer(0x00);
SPI.transfer(0xCA);
SPI.transfer(0xFE);
digitalWrite(MEMORY_SELECT, HIGH);
// Serial.begin(9600);
}
void loop() {
for (int i=0; i<16; i++) {
gpio.digitalWrite(i, HIGH);
}
delay(20);
// digitalWrite(MEMORY_SELECT, LOW);
// SPI.transfer(0x03);
// SPI.transfer(0x00);
// SPI.transfer(0x00);
// SPI.transfer(0x00);
// Serial.println(SPI.transfer(0x00), HEX);
// Serial.println(SPI.transfer(0x00), HEX);
// digitalWrite(MEMORY_SELECT, HIGH);
// delay(1000);
}
here