Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- FPM10A MODULE SIDIK JARI
- ------------------------
- (Yang isi # tinggal diubah sesuai keperluan)
- Contoh Cara Enrollment
- - GenImg untuk mengambil sidik jari ke ImgBuffer
- - Img2Tz untuk membuat fitur sidik jari dari ImgBuffer ke CharBuffer1
- - GenImg untuk mengambil sidik jari ke ImgBuffer
- - Img2Tz untuk membuat fitur sidik jari dari ImgBuffer ke di CharBuffer2
- - RegModel untuk mengubah kedua fitur menjadi model
- - Store untuk menyimpan model di CharBuffer1 ke
- page #0000 di librari
- Contoh cara Verifikasi
- - GenImg
- - Img2Tz pakai CharBuffer1
- - LoadChar untuk load model dari page #0000 di librari ke CharBuffer2
- - Match untuk mencocokkan fitur dan model
- Contoh cara Identifikasi
- - GenImg
- - Img2Tz pakai CharBuffer1
- - Search untuk mencocokkan fitur di CharBuffer1
- dengan #0001 buah model di librari mulai page #0000
- Spesifikasi dan Pengkabelan
- ---------------------------
- Baudrate default : 576000
- Image buffer : 256 x 288 pixel
- Character file buffer: 2 x 512 bytes? (CharBuffer1, Charbuffer2)
- Fingerprint library : 1000 models (PageID 0000 .. 03E7), atau 300 (0000 .. 012B)
- atau 150 (0000 .. 0095) x 512 bytes?
- Notepad library : 15 (page 00 .. 0E) x 32 bytes
- (FPM -- USB-to-TTL)
- Gnd -- Gnd
- Rx -- Tx
- Tx -- Rx
- Vcc -- 3V3
- Tout -- not connected
- T3v3 -- 3V3
- (FPM -- Raspi/Bluepill/ESP8266)
- Gnd -- Gnd
- Rx -- Tx
- Tx -- Rx
- Vcc -- 3V3
- Tout -- GPIO input
- T3v3 -- 3V3
- (FPM -- Arduino)
- Gnd -- Gnd
- Rx --+--[resistor]-- Tx
- |
- `-[resistor]--[resistor]-- Gnd
- Tx -- Rx
- Vcc -- 3V3
- Tout -- GPIO input
- T3v3 -- 3V3
- resistornya coba 1KOhm atau sekitarnya.
- Format Paket
- --------------
- START - ADDR - PID - LENGTH –( DATA )- SUM
- - START (2 bytes): EF 01
- - ADDR (4 bytes) : Alamat modul, default: FF FF FF FF
- - PID (1 byte) : 01 (command) 07 (konfirmasi) 02 (data bersambung) 08 (data terakhir)
- - LENGTH (2 byte): Panjang DATA dan SUM dalam bytes (perhatikan LENGTH limit)
- - DATA (variasi) : Command, Ack (kode konfirmasi), Param, dan/atau Data
- - SUM (2 bytes) : Jumlah semua byte PID, LENGTH, dan DATA
- Data yang panjang dikirim di paket data terpisah.
- Contoh Paket
- ------------
- Tujuan "Search untuk mencocokkan fitur di CharBuffer1
- dengan #0001 buah model di librari mulai page #0000"
- Lihat Search di daftar command/param/konfirmasi:
- "Search = 04 -- Search (1:N) feature in models stored in library
- Command: START - ADDR - 01 - 0008 -( 04 - BufferID(1) - PageID(2) - Qty(2) )- SUM
- Result: START - ADDR - 07 - 0007 -( Confirmation(1) - PageID(2) - Score(2) )- SUM
- BufferID= 01 (CharBuffer1) 02 (CharBuffer2)
- PageID= offset/result, 0000 .. (Fingerprint library size - 1)
- Qty= How many models in flash to compare
- Confirmation= 00 (match) 01 (error) 09 (not found)"
- Ganti BufferID dengan 01 (CharBuffer1), PageID dengan 0000, dan Qty dengan 0001.
- Command: START - ADDR - 01 - 0008 -( 04 - BufferID(1) - PageID(2) - Qty(2) )- SUM
- Command: EF01 FFFF 01 0008 04 01 0000 0001 000F
- Command kita kirim ke modul sidik jari dan modul membalas Result
- Result: EF01 FFFF 07 0007 00 0000 0003 0011
- Result: START - ADDR - 07 - 0007 -( Confirmation(1) - PageID(2) - Score(2) )- SUM
- Artinya Confirmation adalah 00 (match),
- Fitur tersebut match dengan data model di page 0000 di librari dengan score 0003.
- PERHATIAN: Kode EF01 dst itu hexadecimal bytes (0xEF, 0x01), bukan string ("EF01").
- DAFTAR COMMAND / PARAM / ACK (KONFIRMASI)
- -----------------------------------------
- SetSysPara = 0E -- Set system basic parameter
- "Mengeset parameter sistem: baudrate, security level, dan LENGTH limit."
- Command: START - ADDR - 01 - 0005 -( 0E - ParamNo(1) - Value(1) )- SUM
- Result: START - ADDR - 07 - 0003 -( Confirmation(1) )- SUM
- ParamNo=04 (Baudrate control), Value=00..0C, mengeset baudrate=value * 9600
- ParamNo=05 (Security level), Value=01..05, gampang menerima..gampang menolak
- ParamNo=06 (LENGTH limit), Value=00 (32 bytes) 01 (64) 02 (128) 03(256)
- Confirmation= 00 (success) 01 (error) 1A (number is wrong)
- ReadSysPara = 0F -- Read system parameter
- "Membaca parameter sistem. Yang paling penting menurut saya adalah mengecek
- Fingerprint library size (ukuran librari sidik jari)."
- Command: START - ADDR - 01 - 0003 -( 0F )- SUM
- Result: START - ADDR - 07 - 0013 -( Confirmation(1) – Structure(16) )- SUM
- Confirmation= 00 (success) 01 (error)
- Structure= (with example, questions are I’m not sure)
- - Status register : 00 00?
- - System verify code (must be 09?) : 00 00?
- - Fingerprint library size : 01 2C
- - Security level : 00 03
- - ADDR : FF FF FF FF
- - LENGTH limit : 00 02
- - Baudrate control : 00 06
- SetPwd = 12 -- Set Password
- "Mengeset password."
- Command: START - ADDR - 01(cmd) - 0007 -( 12 - Password(4) )- SUM
- Result: START - ADDR - 07(ack) - 0003 -( Confirmation(1) )- SUM
- Confirmation: 00 (success) 01 (error)
- Warning: You will need to VfyPwd on every boot.
- VfyPwd = 13 -- Verify Password
- "Bila password diset. Harus masukin password tiap boot."
- Command: START - ADDR - 01(cmd) - 0007 -( 13 - Password(4) )- SUM
- Result: START - ADDR - 07(ack) - 0003 -( Confirmation(1) )- SUM
- Confirmation: 00 (success) 01 (error)
- SetAdder = 15 -- Set new module address
- "Mengeset address modul sidik jari. Default address adalah FF FF FF FF."
- Command: START - ADDR - 01(cmd) - 0007 -( 15 - NewAddress(4) )- SUM
- Result: START – NewAddress(4) - 07(ack) - 0007 -( Confirmation(1) )- SUM
- Confirmation= 00 (success) 01 (error)
- Control = 17 -- Ports control
- "Menghidupkan/menonaktifkan Port UART dan USB. Kayaknya berbahaya."
- Command: START - ADDR - 01 - 0004 -( 17 - OnOff(1) )- SUM
- Result: START - ADDR - 07 - 0003 -( Confirmation(1) )- SUM
- OnOff= 00 (close UART port) 01 (open UART port), Why?!
- Confirmation= 00 (success) 01 (error) 1D(number is wrong)
- TemplateNum = 1D -- Read used model number
- "Mengecek librari sudah terisi berapa banyak model."
- Command: START - ADDR - 01 - 0003 -( 1D )- SUM
- Result: START - ADDR - 07 - 0005 -( Confirmation(1) - Number(2) )- SUM
- Confirmation: 00 (success) 01 (error)
- Number= used model number
- GenImg = 01 -- Record fingerprint image
- "Menscan sidik jari dan menaruh datanya ke ImgBuffer.
- Kalau nggak ada jari di scanner ya no finger."
- Command: START - ADDR - 01 - 0003 -( 01 )- SUM
- Result: START - ADDR - 07 - 0003 -( Confirmation(1) )- SUM
- Confirmation= 00 (success) 01 (error) 02 (no finger) 03 (fail to record)
- UpImage = 0A -- Upload image to host
- "Memulai upload data dari ImgBuffer modul ke komputer induk."
- Command: START - ADDR - 01 - 0003 -( 0A )- SUM
- Result: START - ADDR - 07 - 0003 -( Confirmation(1) )- SUM
- Confirmation= 00 (ok, image data to follow) 01 (error) 0F (cannot send)
- Image data is 256 x 288 px, 4 bit/px (UART) or 8 bit/px (USB), sent in multiple packets
- DownImage = 0B -- Download image from host
- "Memulai download data dari komputer induk ke ImgBuffer modul."
- Command: START - ADDR - 01 - 0003 -( 0B )- SUM
- Result: START - ADDR - 07 - 0003 -( Confirmation(1) )- SUM
- Confirmation= 00 (ok, send me the image data) 01 (error) 0F (cannot receive)
- Image data is 256 x 288 px, 4 bit/px (UART) or 8 bit/px (USB), sent in multiple packets
- Img2Tz = 02 -- Generate image feature
- "Mendapatkan fitur sidik jari dari ImgBuffer ke CharBuffer."
- Command: START - ADDR - 01 - 0004 -( 02 - BufferID(1) )- SUM
- Result: START - ADDR - 07 - 0003 -( Confirmation(1) )- SUM
- BufferID= 01 (CharBuffer1) 02 (CharBuffer2)
- Confirmation= 00 (success) 01 (error) 06 (image is confusing)
- 07 (feature point is too few) 15 (no effective original image)
- RegModel = 05 -- Feature synthesis
- "Memproses dua fitur di CharBuffer1 dan CharBuffer2
- menjadi model di CharBuffer1 dan salinannya di CharBuffer2 (isi sama)."
- Command: START - ADDR - 01 - 0003 -( 05 )- SUM
- Result: START - ADDR - 07 - 0003 -( Confirmation(1) )- SUM
- Confirmation= 00 (success) 01 (error) 0A (finger not match)
- "Combine features in CharBuffer1 and CharBuffer2,
- put model result on CharBuffer1 copied to CharBuffer2"
- Store = 06 -- Store model from charbuffer to flash
- "Menyimpan model dari CharBuffer ke Page di librari."
- Command: START - ADDR - 01 - 0006 -( 06 - BufferID(1) - PageID(2) )- SUM
- Result: START - ADDR - 07 - 0003 -( Confirmation(1) )- SUM
- BufferID= 01 (CharBuffer1) 02 (CharBuffer2)
- PageID= 0000 .. (Fingerprint library size - 1)
- Confirmation: 00 (success) 01 (error) 0B (out of range) 18 (flash error)
- LoadChar = 07 -- Load model from flash to charbuffer
- "Menyalin data model dari Page di librari ke CharBuffer."
- Command: START - ADDR - 01 - 0006 -( 07 - BufferID(1) - PageID(2) )- SUM
- Result: START - ADDR - 07 - 0003 -( Confirmation(1) )- SUM
- BufferID= 01 (CharBuffer1) 02 (CharBuffer2)
- PageID= 0000 .. (Fingerprint library size - 1)
- Confirmation= 00 (success) 01 (error) 0B (out of range) 0C (failed)
- UpChar = 08 -- Upload feature/model from charbuffer to host
- "Memulai upload model dari CharBuffer modul ke komputer induk."
- Command: START - ADDR - 01 - 0004 -( 08 - BufferID(1) )- SUM
- Result: START - ADDR - 07 - 0003 -( Confirmation(1) )- SUM
- BufferID= 01 (CharBuffer1) 02 (CharBuffer2)
- Confirmation= 00 (success, data to follow) 01 (error) 0D (failed)
- Data sent in multiple packets
- DownChar = 09 -- Download feature/model from host to charbuffer
- "Memulai download model dari komputer induk ke CharBuffer modul"
- Command: START - ADDR - 01 - 0004 -( 09 - BufferID(1) )- SUM
- Result: START - ADDR - 07 - 0003 -( Confirmation(1) )- SUM
- BufferID= 01 (CharBuffer1) 02 (CharBuffer2)
- Confirmation= 00 (ok, send me the data) 01 (error) 0E (cannot receive)
- Data sent in multiple packets
- DeletChar = 0C -- Delete models from library
- "Menghapus satu/beberapa model di page di librari"
- Command: START - ADDR - 01 - 0007 -( 0C - PageID(2) - Qty(2) )- SUM
- Result: START - ADDR - 07 - 0003 -( Confirmation(1) )- SUM
- PageID= offset, 0000 .. (Fingerprint library size - 1)
- Qty= How many models to delete
- Confirmation= 00 (success) 01 (error) 0C (failed)
- Empty = 0D -- Empty the library
- "Mengosongkan librari"
- Command: START - ADDR - 01 - 0003 -( 0D )- SUM
- Result: START - ADDR - 07 - 0003 -( Confirmation(1) )- SUM
- Confirmation= 00 (success) 01 (error) 0C (failed)
- Match = 03 -- Match (1:1) feature in CharBuffer1 and model in CharBuffer2
- "Mencocokkan fitur di CharBuffer1 dengan model di CharBuffer2"
- Command: START - ADDR - 01 - 0003 -( 03 )- SUM
- Result: START - ADDR - 07 - 0005 -( Confirmation(1) - Score(2) )- SUM
- Confirmation= 00 (match) 01 (error) 08 (not match)
- Search = 04 -- Search (1:N) feature in models stored in library
- "Mencari model yang paling cocok dengan fitur di CharBuffer
- yang ada satu/beberapa page berurutan di librari"
- Command: START - ADDR - 01 - 0008 -( 04 - BufferID(1) - PageID(2) - Qty(2) )- SUM
- Result: START - ADDR - 07 - 0007 -( Confirmation(1) - PageID(2) - Score(2) )- SUM
- BufferID= 01 (CharBuffer1) 02 (CharBuffer2)
- PageID= offset/result, 0000 .. (Fingerprint library size - 1)
- Qty= How many models in flash to compare
- Confirmation= 00 (match) 01 (error) 09 (not found)
- GetRandomCode = 14 -- Get 4 byte random
- "Mendapatkan 4 byte random"
- Command: START - ADDR - 01 - 0003 -( 14 )- SUM
- Result: START - ADDR - 07 - 0007 -( Confirmation(1) - Random(4) )- SUM
- Confirmation= 00 (success) 01 (error)
- Random= result
- WriteNotepad = 18 -- Write to user notepad
- "Menyimpan teks 32 bytes ke page di Notepad librari"
- Command: START - ADDR - 01 - 0024 -( 18 - PageID(1) - Content(32) )- SUM
- Result: START - ADDR - 07 - 0003 -( Confirmation(1) )- SUM
- PageID= 00 to 0E (Notepad library's page)
- Confirmation= 00 (success) 01 (error)
- ReadNotepad = 19 -- Read from user notepad
- "Membaca teks 32 bytes ke page di Notepad librari"
- Command: START - ADDR - 01 - 0004 -( 19 - PageID(1) )- SUM
- Result: START - ADDR - 07 - 0023 -( Confirmation(1) - Content(32) )- SUM
- PageID= 00 to 0E (Notepad library's page)
- Confirmation= 00 (success) 01 (error)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement