Jump to content

jogreenie

Members
  • Content Count

    6
  • Joined

  • Last visited

Posts posted by jogreenie


  1. Hi,

     

    have you maybe the wrong (software)Serial settings?

     

     

    Regards,

    Liviu

    No, my serial software settings are correct. I know that the USB serial has to be limited to 9600 buad, can everyone please stop suggesting that? Not 100% sure how this line works, but I'm pretty sure finger.begin(57600) is the data rate at which the finger print sensor communicates with the MCU, not at which the MCU communicates with the serial output. I'm already setting Serial.begin(9600)


  2. Maybe just post the sketch that _you_ are actually using on the G2553 ... so we can see which pins you use etc.

    Why do you power the finger print scanner with 5v ? I would worry a little bit about this (regarding the logic levels) ...

    Maybe add a photo or a wiring scheme ... do G2553 and scanner have the same GND?

    So ... a lot of questions ;)

    posted it in the original topic post. Its the fingerprint.ino file. Code text displayed below:

    #include <Adafruit_Fingerprint.h>
    #include <SoftwareSerial.h>
    
    int getFingerprintIDez();
    
    // pin #5 is IN from sensor (GREEN wire)
    // pin #6 is OUT from LP  (WHITE wire)
    SoftwareSerial mySerial(5, 6);
    Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);
    
    //Adafruit_Fingerprint finger = Adafruit_Fingerprint(&Serial1);
    
    void setup()  
    {
      while (!Serial);  // For Yun/Leo/Micro/Zero/...
      
      Serial.begin(9600);
      Serial.println("Adafruit finger detect test");
    
      // set the data rate for the sensor serial port
      finger.begin(57600);
      
      if (finger.verifyPassword()) {
        Serial.println("Found fingerprint sensor!");
      } else {
        Serial.println("Did not find fingerprint sensor :(");
        while (1);
      }
      Serial.println("Waiting for valid finger...");
    }
    
    void loop()                     // run over and over again
    {
      getFingerprintIDez();
      delay(50);            //don't ned to run this at full speed.
    }
    
    uint8_t getFingerprintID() {
      uint8_t p = finger.getImage();
      switch (p) {
        case FINGERPRINT_OK:
          Serial.println("Image taken");
          break;
        case FINGERPRINT_NOFINGER:
          Serial.println("No finger detected");
          return p;
        case FINGERPRINT_PACKETRECIEVEERR:
          Serial.println("Communication error");
          return p;
        case FINGERPRINT_IMAGEFAIL:
          Serial.println("Imaging error");
          return p;
        default:
          Serial.println("Unknown error");
          return p;
      }
    
      // OK success!
    
      p = finger.image2Tz();
      switch (p) {
        case FINGERPRINT_OK:
          Serial.println("Image converted");
          break;
        case FINGERPRINT_IMAGEMESS:
          Serial.println("Image too messy");
          return p;
        case FINGERPRINT_PACKETRECIEVEERR:
          Serial.println("Communication error");
          return p;
        case FINGERPRINT_FEATUREFAIL:
          Serial.println("Could not find fingerprint features");
          return p;
        case FINGERPRINT_INVALIDIMAGE:
          Serial.println("Could not find fingerprint features");
          return p;
        default:
          Serial.println("Unknown error");
          return p;
      }
      
      // OK converted!
      p = finger.fingerFastSearch();
      if (p == FINGERPRINT_OK) {
        Serial.println("Found a print match!");
      } else if (p == FINGERPRINT_PACKETRECIEVEERR) {
        Serial.println("Communication error");
        return p;
      } else if (p == FINGERPRINT_NOTFOUND) {
        Serial.println("Did not find a match");
        return p;
      } else {
        Serial.println("Unknown error");
        return p;
      }   
      
      // found a match!
      Serial.print("Found ID #"); Serial.print(finger.fingerID); 
      Serial.print(" with confidence of "); Serial.println(finger.confidence); 
    }
    
    // returns -1 if failed, otherwise returns ID #
    int getFingerprintIDez() {
      uint8_t p = finger.getImage();
      if (p != FINGERPRINT_OK)  return -1;
    
      p = finger.image2Tz();
      if (p != FINGERPRINT_OK)  return -1;
    
      p = finger.fingerFastSearch();
      if (p != FINGERPRINT_OK)  return -1;
      
      // found a match!
      Serial.print("Found ID #"); Serial.print(finger.fingerID); 
      Serial.print(" with confidence of "); Serial.println(finger.confidence);
      return finger.fingerID; 
    }
    

  3. So I'm working on a fingerprint scanner project with this repo written for arduino for the scanner I'm using. I am trying to make it work with an MSP430G2553 instead of the Arduino Uno. When I try using this library in Energia, it can't find the scanner despite being wired on the launchpad the same way that it is wired on the Arduino (External 5V source, Arduino pin 2 --> MSP430 pin 1.1, Arduino pin 3 --> MSP430 pin 1.2). The code compiles and the serial monitor outputs the test looking for the scanner, but it has yet to be able to find it. If anyone could give me any help with this, it would be greatly appreciated. Energia ino sketch is attached.

     

    EDIT: So after making myself more familiar with the code and the C++ imports, it seems the scanner works in 4 phases:

     

    1) Take image

    2) If image is a finger, convert it to digital features

    3) Compare fingerprint features against features of enrolled fingerprints

    4) Able to return result for the comparison and if its a match, return the ID#

     

    These lines:

    SoftwareSerial mySerial(5, 6); //Define serial communication on two pins
    Adafruit_Fingerprint finger = Adafruit_fingerprint(&mySerial);
    
    

    Seem to be whats handling all the fingerprint logic. So the issue isn't with the scanner, its with the communication between scanner and the MSP, most likely that I'm somehow defining output pins 5 and 6 (P1_3 and P1_4) incorrectly so they are not handling the scanner at all.

    fingerprint.ino


  4. So I'm working on a fingerprint scanner project with this repo written for arduino for the scanner I'm using. When I try using this library in Energia, it's been giving me a ram error and refuses to compile. I know that pin assignments and certain things are different between using Arduino to program an atmega microprocessor and using Energia to program an MSP430G2452 with a launchpad, but just compiling it without uploading shouldn't change anything. 

     

    Here are the errors I'm getting when I try to compile the enroll sketch (attached below)

    -enroll.cpp.elf section `.bss' will not fit in region `ram'

    -`ram' overflowed by 50 bytes

     

    I've already had to fix a bunch of errors and file imports switching this over to Energia, but now I've hit a brick wall and I have no idea how to fix a problem like this. If anyone could help me with this, I would greatly appreciate it!!!

    enroll.ino

×