You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: website/versioned_docs/version-fils_en/project/2026/bogdan.micu2009/AIO_BiometricHardwareSecurityKey_Micu_Bogdan.svg
@@ -104,75 +106,83 @@ The motivation for this project was to create a dedicated, self-contained physic
104
106
- Compared alternatives for each component (e.g. internal RTC vs DS3231 external module, I2C vs SPI display).
105
107
- Placed purchase orders for all components.
106
108
107
-
### Week 6 (Components Arrive — Initial Testing)
109
+
### Week 6 (Components Arrive - Initial Testing)
108
110
109
111
- All components arrived; began a first testing phase powered via USB only (no battery yet).
110
112
- Verified I2C bus connectivity for the SH1106 OLED and DS3231 RTC on PB7 (SDA) and PB6 (SCL).
111
113
- Verified GPIO connectivity for the EC11 rotary encoder on PA0 (CLK), PA1 (DT), and PA4 (SW).
112
114
113
-
### Week 7 (Extended Testing — Known Issues)
115
+
### Week 7 (Extended Testing - Known Issues)
114
116
115
117
- Continued testing and identified the following issues to address before final integration:
116
-
1.**Fingerprint sensor wiring**— The AS608 module arrived with a pre-crimped connector head; the wires cannot be inserted directly into a breadboard. A connector adapter or manual re-crimping is required before it can be wired to the MCU.
117
-
2.**MCU power source**— To run from the 9V Li-ion battery instead of USB, the NUCLEO onboard jumper must be moved from the `STLK` position to `VIN 5V`.
118
-
3.**External RTC**— Switching to the DS3231 external RTC module to ensure accurate timestamps at all times even when the device is switched off or loses power.
119
-
4.*(Optional)***External USB-C module**— Soldering an external USB-C breakout would allow cleaner cable management and a more polished physical build.
118
+
1.**Fingerprint sensor wiring**- The AS608 module arrived with a pre-crimped connector head; the wires cannot be inserted directly into a breadboard. A connector adapter or manual re-crimping is required before it can be wired to the MCU.
119
+
2.**MCU power source**- To run from the 9V Li-ion battery instead of USB, the NUCLEO onboard jumper must be moved from the `STLK` position to `VIN 5V`.
120
+
3.**External RTC**- Switching to the DS3231 external RTC module to ensure accurate timestamps at all times even when the device is switched off or loses power.
121
+
4.*(Optional)***External USB-C module**- Soldering an external USB-C breakout would allow cleaner cable management and a more polished physical build.
120
122
5.**External EEPROM Module** - Exploring the possibility of not using the internal flash, and instead adding an external EEPROM Module to store the hashed passwords. [Link_OptimusDigital](https://www.optimusdigital.ro/en/memories/632-modul-eeprom-at24c256.html?srsltid=AfmBOorouiIrK-KwPHIZN0sNcZ-w4__qtdYFp7VfwaqIHPfRR86A0zXu)
121
123
124
+
### Week 8 (Integration Progress)
125
+
126
+
- Continued the first integration steps and made the following updates:
127
+
1.**Fingerprint sensor wiring** - Soldered the AS608 wires.
128
+
2.**External EEPROM module** - Purchased an EEPROM module, but decided to use the internal flash as the main storage option and keep the EEPROM as a backup.
129
+
3.**USB connectivity** - Dropped the USB-C breakout board idea and switched to using the STM32 User USB port for PC - MCU communication.
130
+
4.**Firmware testing** - Extended the component testing code.
131
+
5.**New issue** - Battery wires need to be soldered before use.
132
+
122
133
## Hardware
123
134
124
135
The project centres on a NUCLEO-U545RE-Q development board as the microcontroller. An AS608 optical fingerprint sensor handles biometric authentication over UART. A 1.3" SH1106 OLED display and a DS3231 RTC module share the I2C bus, the RTC keeps accurate time for TOTP generation even while unplugged, backed by a coin-cell battery. An EC11 rotary encoder with integrated push-button provides all navigation input via GPIO. A 9V 3700 mWh Li-ion rechargeable battery makes the device fully portable. Everything is wired on a breadboard with jumper wires and supporting passives. An optional future goal is implementing ARM TrustZone to secure cryptographic operations and password storage.
125
136
126
-
**NUCLEO-U545RE-Q (Central Hub)**— Runs the async Rust firmware (embassy-stm32). Stores password strings and TOTP secret seeds in flash, orchestrates all peripherals, computes HMAC-SHA1 hashes, and drives the USB HID stack.
137
+
**NUCLEO-U545RE-Q (Central Hub)**- Runs the async Rust firmware (embassy-stm32). Stores password strings and TOTP secret seeds in flash, orchestrates all peripherals, computes HMAC-SHA1 hashes, and drives the USB HID stack.
127
138
128
-
**AS608 Fingerprint Sensor**— Connected over UART. The device stays in a locked idle state until a recognised fingerprint is presented. On a match, it signals the MCU to unlock the vault.
139
+
**AS608 Fingerprint Sensor**- Connected over UART. The device stays in a locked idle state until a recognised fingerprint is presented. On a match, it signals the MCU to unlock the vault.
129
140
-*Connection*: UART TX/RX to USART peripheral on the NUCLEO board.
130
141
131
-
**SH1106 OLED Display (1.3")**— Shows the lock screen, the scrollable account list, and live TOTP codes.
142
+
**SH1106 OLED Display (1.3")**- Shows the lock screen, the scrollable account list, and live TOTP codes.
132
143
-*Connection*: I2C (SDA/SCL) shared bus with the RTC module.
133
144
134
-
**DS3231 Real-Time Clock**— Provides a precise Unix timestamp at all times, even when the device is unplugged, via its onboard coin-cell backup.
145
+
**DS3231 Real-Time Clock**- Provides a precise Unix timestamp at all times, even when the device is unplugged, via its onboard coin-cell backup.
135
146
-*Connection*: I2C (SDA/SCL) shared bus with the OLED display.
136
147
137
-
**EC11 Rotary Encoder (with push-button)**— The sole physical input. Rotating scrolls the account menu; pressing selects an account to either inject a password or display a TOTP code.
148
+
**EC11 Rotary Encoder (with push-button)**- The sole physical input. Rotating scrolls the account menu; pressing selects an account to either inject a password or display a TOTP code.
138
149
-*Connection*: Three GPIO pins (CLK, DT, SW).
139
150
140
-
**USB HID (to host PC)**— The NUCLEO's USB port enumerates as a composite HID keyboard device. When a password injection is triggered, the firmware sends keystrokes directly to the connected computer.
151
+
**USB HID (to host PC)**- The NUCLEO's USB port enumerates as a composite HID keyboard device. When a password injection is triggered, the firmware sends keystrokes directly to the connected computer.
|[NUCLEO-U545RE-Q](https://ro.mouser.com/ProductDetail/STMicroelectronics/NUCLEO-U545RE-Q?qs=mELouGlnn3cp3Tn45zRmFA%3D%3D)| Main microcontroller — runs Embassy/Rust firmware, stores credentials, computes TOTP | 125 RON |
178
+
|[NUCLEO-U545RE-Q](https://ro.mouser.com/ProductDetail/STMicroelectronics/NUCLEO-U545RE-Q?qs=mELouGlnn3cp3Tn45zRmFA%3D%3D)| Main microcontroller - runs Embassy/Rust firmware, stores credentials, computes TOTP | 125 RON |
169
179
|[AS608 Optical Fingerprint Sensor](https://www.optimusdigital.ro/en/optical-sensors/12995-as608-optical-fingerprint-sensor-fingerprint-module.html?search_query=fingerprint&results=3)| Biometric authentication over UART | 70 RON |
170
180
|[1.3" SH1106 OLED Display](https://www.emag.ro/afisaj-oled-sh1106-oled-i2c-3-5v-35-4-x-33-5-x-4-3-mm-alb-afisaj-lcd-clar-compatibil-cu-placi-arduino-ao10/pd/DF3FC1YBM/?ref=history-shopping_481143298_158626_1)| Displays lock screen, account menu, and TOTP codes over I2C | 43 RON |
171
181
|[DS3231 Real-Time Clock Module](https://www.optimusdigital.ro/en/others/12402-ds3231-real-time-clock-module.html?search_query=DS3231&results=6)| Provides accurate Unix timestamps for TOTP over I2C | 16 RON |
172
182
|[EC11 Rotary Encoder with push-button](https://www.emag.ro/modul-de-codare-rotativ-ky-040-ai672-s106/pd/DJBVFDMBM/?ref=history-shopping_481358403_38837_2)| Scroll and select accounts via GPIO | 21 RON |
173
183
|[9V 3700 mWh Li-ion Rechargeable Battery](https://www.emag.ro/baterie-nuoxing-9v-li-ion-3700mwh-ncarcare-rapida-type-c-verde-1-buc-stormtime064/pd/DYVW9CYBM/?ref=history-shopping_481358403_190246_1)| Portable power source | 57 RON |
174
-
| Breadboard, jumper wires, battery cables, resistors, coin-cell batteries, USB-C module & extras | Prototyping and connectivity |86 RON |
175
-
|**Total**||**418 RON**|
184
+
| Breadboard, jumper wires, battery cables, resistors, coin-cell batteries, USB-C module & extras | Prototyping and connectivity |95 RON |
185
+
|**Total**||**427 RON**|
176
186
177
187
## Software
178
188
@@ -194,11 +204,11 @@ The project centres on a NUCLEO-U545RE-Q development board as the microcontrolle
0 commit comments