MCU to switch single coil latching relay not working (attempting array with common gnd) I have several single coil latching relays, (EC2-5SNU).

I am trying to control them by an MCU; connected directly they work fine, but I am iffy about keeping it this way so I'm trying to power them through a darlington pair array, (ULN2003). 

Using the non-latching type, these work fine through the ULN2003, but attempting to interface the code below with the latching type isn't going so well and i can't figure out why:

int right = 12;
int left = 10;

void setup() {                
  pinMode(right, OUTPUT);     
  pinMode(left, OUTPUT);    
}

void loop() {
  digitalWrite(right, HIGH);  //reset
  digitalWrite(left, LOW);  
  delay(2000);              
  digitalWrite(right, LOW); //set
  digitalWrite(left, HIGH);   
  delay(2000);       
}


I have four connected with a common pin, but to simplify i've tried and failed to have the code above work on a single relay, as shown below:





Measuring the voltages out of the MCU show the correct levels, keeping in mind the ULN2003 acts an inverter, so i've set the boolean logic accordingly. 

The voltages at the output of the ULN seem to stick at 0.6V, I've tried a bunch of permutations, including having one pin (on the common pin setup) connected directly to the MCU. 

Does anyone have any ideas?
You need to use an h-bridge as if you were driving a motor. For this kind of relay you need to be able to both sink and source current, which a Darlington pair cannot do, it can only sink.

I guess you may be being thrown by the symbol of an inverting buffer used in the schematic symbol for the ULN2803 in your schematic capture package. It's incorrect, since it's not an inverting buffer, it's a Darlington pair:







simulate this circuit &ndash; Schematic created using CircuitLab

As you can see, setting the input HIGH will allow the transistor pair to conduct, but setting it to LOW will stop it conducting - so the output is either connected to ground, or is floating.