<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.lvl1.org/index.php?action=history&amp;feed=atom&amp;title=Pseudo-Medical_Monitor_Code_FingerPrint_STUFF</id>
	<title>Pseudo-Medical Monitor Code FingerPrint STUFF - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.lvl1.org/index.php?action=history&amp;feed=atom&amp;title=Pseudo-Medical_Monitor_Code_FingerPrint_STUFF"/>
	<link rel="alternate" type="text/html" href="http://wiki.lvl1.org/index.php?title=Pseudo-Medical_Monitor_Code_FingerPrint_STUFF&amp;action=history"/>
	<updated>2026-11-09T20:34:42Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>http://wiki.lvl1.org/index.php?title=Pseudo-Medical_Monitor_Code_FingerPrint_STUFF&amp;diff=14923&amp;oldid=prev</id>
		<title>Unknown user: Created page with &quot; &lt;nowiki&gt;  #define FingerPrint_IRQ_PIN 3 #define FingerPrint_TX_PIN 19 #define FingerPrint_RX_PIN 18  #define FingerPrintSerial Serial1  DFRobot_ID809 fingerprint; String desc...&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.lvl1.org/index.php?title=Pseudo-Medical_Monitor_Code_FingerPrint_STUFF&amp;diff=14923&amp;oldid=prev"/>
		<updated>2021-12-14T21:02:52Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot; &amp;lt;nowiki&amp;gt;  #define FingerPrint_IRQ_PIN 3 #define FingerPrint_TX_PIN 19 #define FingerPrint_RX_PIN 18  #define FingerPrintSerial Serial1  DFRobot_ID809 fingerprint; String desc...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt; &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define FingerPrint_IRQ_PIN 3&lt;br /&gt;
#define FingerPrint_TX_PIN 19&lt;br /&gt;
#define FingerPrint_RX_PIN 18&lt;br /&gt;
&lt;br /&gt;
#define FingerPrintSerial Serial1&lt;br /&gt;
&lt;br /&gt;
DFRobot_ID809 fingerprint;&lt;br /&gt;
String desc;&lt;br /&gt;
//File myFile;&lt;br /&gt;
&lt;br /&gt;
//#define QUARTER&lt;br /&gt;
#ifdef  QUARTER&lt;br /&gt;
uint8_t data[6400];   //Quarter image&lt;br /&gt;
#else&lt;br /&gt;
uint8_t data[25600];  //Full image&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
int FingerPrint_x_offset = 46;&lt;br /&gt;
int FingerPrint_y_offset = 77;&lt;br /&gt;
int FingerPrint_x_width = 82;&lt;br /&gt;
int FingerPrint_y_height = 82;&lt;br /&gt;
&lt;br /&gt;
bool fingerprint_captured = false;&lt;br /&gt;
bool FingerPrint_first_pass = true;&lt;br /&gt;
&lt;br /&gt;
bool setup_FingerPrint()&lt;br /&gt;
{&lt;br /&gt;
  int retest_loop = 0;&lt;br /&gt;
  &lt;br /&gt;
  pinMode(FingerPrint_IRQ_PIN,INPUT);&lt;br /&gt;
  /*Init FingerPrintSerial*/&lt;br /&gt;
  FingerPrintSerial.begin(115200);&lt;br /&gt;
  /*Take FingerPrintSerial as communication port of fingerprint module */&lt;br /&gt;
  fingerprint.begin(FingerPrintSerial);&lt;br /&gt;
  while((fingerprint.isConnected() == false) &amp;amp;&amp;amp; (retest_loop &amp;lt; 5))&lt;br /&gt;
    {&lt;br /&gt;
      Serial.println(&amp;quot;Communication with device failed, please check connection&amp;quot;);&lt;br /&gt;
      /*Get error code information */&lt;br /&gt;
      desc = fingerprint.getErrorDescription();&lt;br /&gt;
      Serial.println(desc);&lt;br /&gt;
      delay(1000);&lt;br /&gt;
      ++ retest_loop;&lt;br /&gt;
    }&lt;br /&gt;
  if (retest_loop &amp;lt; 5)  &lt;br /&gt;
    return(true);&lt;br /&gt;
   else&lt;br /&gt;
    return(false);     &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void FingerPrint_Reset()&lt;br /&gt;
{&lt;br /&gt;
  fingerprint_captured = false;&lt;br /&gt;
  FingerPrint_first_pass = true;  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void FingerPrint_Frame()&lt;br /&gt;
{&lt;br /&gt;
  int box_top = FingerPrint_y_offset;&lt;br /&gt;
  int box_bottom = box_top + FingerPrint_y_height;&lt;br /&gt;
  &lt;br /&gt;
  int box_left = FingerPrint_x_offset;&lt;br /&gt;
  int box_right = box_left + FingerPrint_x_width;&lt;br /&gt;
  &lt;br /&gt;
  int box_width = FingerPrint_x_width;&lt;br /&gt;
  int box_height = FingerPrint_y_height;&lt;br /&gt;
&lt;br /&gt;
  int p_x, p_y, p_i, p_data, p_temp;&lt;br /&gt;
  &lt;br /&gt;
  if (FingerPrint_first_pass)&lt;br /&gt;
    {&lt;br /&gt;
      DrawScreenCompartment(box_left,box_top,box_width,box_height,COMMON_BLACK,COMMON_MAGENTA);&lt;br /&gt;
      fingerprint.ctrlLED(/*LEDMode = */fingerprint.eBreathing, /*LEDColor = */fingerprint.eLEDRed, /*blinkCount = */0);&lt;br /&gt;
      DrawScreenText(box_left+4, box_top+4,&amp;quot;Place Finger&amp;quot;,COMMON_WHITE,COMMON_BLACK);&lt;br /&gt;
      DrawScreenText(box_left+4, box_top+16,&amp;quot;on Scanner&amp;quot;,COMMON_WHITE,COMMON_BLACK);&lt;br /&gt;
      FingerPrint_first_pass = false;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  if ((fingerprint.detectFinger()) &amp;amp;&amp;amp; (!fingerprint_captured))&lt;br /&gt;
    {&lt;br /&gt;
      DrawScreenText(box_left+4, box_top+4,&amp;quot;Keep Finger &amp;quot;,COMMON_WHITE,COMMON_BLACK);&lt;br /&gt;
      DrawScreenText(box_left+4, box_top+16,&amp;quot;on Scanner&amp;quot;,COMMON_WHITE,COMMON_BLACK);&lt;br /&gt;
      &lt;br /&gt;
      fingerprint.getFingerImage(data);&lt;br /&gt;
      fingerprint.ctrlLED(/*LEDMode = */fingerprint.eKeepsOn, /*LEDColor = */fingerprint.eLEDGreen, /*blinkCount = */0);&lt;br /&gt;
      for (p_x=0; p_x &amp;lt; 80; ++p_x)&lt;br /&gt;
        for (p_y=0; p_y &amp;lt; 80; ++p_y)&lt;br /&gt;
          {&lt;br /&gt;
            p_temp = (p_x * 2);&lt;br /&gt;
            p_temp = p_temp + (p_y * 160);&lt;br /&gt;
            p_data = data[p_temp]/4; // image element&lt;br /&gt;
&lt;br /&gt;
            p_temp = p_temp + 1;&lt;br /&gt;
            p_data = p_data + data[p_temp]/4; // image element to the right&lt;br /&gt;
&lt;br /&gt;
            p_temp = (p_x * 2);&lt;br /&gt;
            p_temp = p_temp + ((p_y + 1) * 160);&lt;br /&gt;
            p_data = p_data + data[p_temp]/4;  // image element below&lt;br /&gt;
&lt;br /&gt;
            p_temp = (p_x + 1) * 2;&lt;br /&gt;
            p_temp = p_temp + ((p_y + 1) * 160);&lt;br /&gt;
            p_data = p_data + data[p_temp]/4;   // image element to the right, one element down&lt;br /&gt;
            &lt;br /&gt;
            p_data = p_data/4;&lt;br /&gt;
            DrawScreenBlock(box_left + 1 + p_x, box_top + 1 + p_y, 1, 1, p_data&amp;lt;&amp;lt;5);&lt;br /&gt;
          }        &lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Pseudo-Medical_Monitor_Code#Custom_Includes]]&lt;/div&gt;</summary>
		<author><name>Unknown user</name></author>
	</entry>
</feed>