Fingerprint Sensor FP GT511C1R

Im following this tutorial: http://www.homautomation.org/2014/10/11/playing-with-finger-print-scanner-fps-on-arduino/

First, I think I can skip over the voltage divider since my UNO has a 3.3V pin and I believe the tutorial says the divider is used to get 3.3V from 5V.

Second, when I plug everything in, I get this in the serial monitor:

FP Open
FPS - SEND: "55 AA 01 00 00 00 00 00 01 00 01 01"
FPS - Open
FPS - SEND: "55 AA 01 00 00 00 00 00 01 00 01 01"

But I dont get the backlight blinking every second.

I plugged the UNO into a lipo battery pack and it worked, meaning it blinked.

I decided to measure the voltages across the voltage divider:

While connected to the USB on my laptop I got a 3.17V

While connected to the lipo I got a 3.10V

Then I tried the code that enrolls the fingerprint and again, it doesnt advance past the fps.open() call.

Here is the first code:

#include "FPS_GT511C3.h"
#include "SoftwareSerial.h"

//FPS connected to pin 4 and 5 - see previous schemas
FPS_GT511C3 fps(4, 5);

void setup()
{
  Serial.begin(9600);
  //display messages on the classical serial teminal - DEBUG      
  fps.UseSerialDebug = true; 
  fps.Open();
}

void loop()
{
  //blink the led
  fps.SetLED(true);
  delay(1000);
  fps.SetLED(false);
  delay(1000);
}

Here is the second code:

#include "FPS_GT511C3.h"
#include "SoftwareSerial.h"


//FPS connected to pin 4 and 5 - see previous schemas
FPS_GT511C3 fps(4, 5);

void setup()
{
  Serial.begin(9600);
  //display messages on the classical serial teminal - DEBUG      
  fps.UseSerialDebug = true; 
    Serial.println("before open");
  fps.Open();
  //call Enroll to add fingerprint
    Serial.println("before enroll");
  enroll();
}


void enroll(){
  // get the first available id for new finger print
  int enrollid = 0;
  bool usedid = true;
  Serial.println("before while");
  while (usedid == true)
  {
    usedid = fps.CheckEnrolled(enrollid);
    if (usedid==true) enrollid++;
  }
    Serial.println("before enrollstart");
  //enrollment start here with the first free id
  fps.EnrollStart(enrollid);

  
  Serial.print("Press finger to Enroll #");
  Serial.println(enrollid);
  
  // ***** FIRST MEASURE *****
  // wait for finger press
  while(fps.IsPressFinger() == false) delay(100);
  bool bret = fps.CaptureFinger(true);
  int iret = 0;
  if (bret != false)
  {
    //has a finger print captured
    Serial.println("Remove finger");
    // Enroll step 1
    fps.Enroll1(); 
    //wait for finger removed
    while(fps.IsPressFinger() == true) delay(100);
    // ***** SECOND MEASURE *****
    // Now we need to check the finger print 
    // wait for finger press
    Serial.println("Press same finger again");
    while(fps.IsPressFinger() == false) delay(100);
    bret = fps.CaptureFinger(true);
    if (bret != false)
    {
      Serial.println("Remove finger");
      //enroll step 2
      fps.Enroll2();
      //wait for finger removed
      while(fps.IsPressFinger() == true) delay(100);
      // ***** THIRD MEASURE *****
      //Check Again the finger print
      Serial.println("Press same finger yet again");
      while(fps.IsPressFinger() == false) delay(100);
      bret = fps.CaptureFinger(true);
      if (bret != false)
      {
        Serial.println("Remove finger");
        iret = fps.Enroll3();
        if (iret == 0)
        {
          //*** SUCCESS third measure are the same -> NOW finger print is stored
          Serial.println("Enrolling Successfull");
  }
  else
  {
          //*** FAIL For some reason -> NOTHING STORED
          Serial.print("Enrolling Failed with error code:");
    Serial.println(iret);
  }
      }
      else Serial.println("Failed to capture third finger");
    }
    else Serial.println("Failed to capture second finger");
  }
  else Serial.println("Failed to capture first finger");
}

//loop is useless here
void loop()
{
  delay(100000);
}

Im trying to reproduce my voltage divider in iCircuit to test what values I should be getting but I seem to have set it up wrong:

Screenshot 2016-11-09 19.35.21.png