Skip to content

Commit f739eca

Browse files
authored
Updated Project/bogdan.micu2009 with the updates from the past weeks. (#1300)
* Updated the bogdan.micu2009 project page with the KiCad Schematic and Week 8 Log. * Compressed the SVG Schematic. * Updated the bogdan.micu2009 project page with the updates from the past weeks. * Changed the dimension of the 3D box render.
1 parent 636966a commit f739eca

4 files changed

Lines changed: 49 additions & 0 deletions

File tree

12.3 KB
Loading
153 KB
Loading
49.5 KB
Loading

website/versioned_docs/version-fils_en/project/2026/bogdan.micu2009/index.md

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,44 @@ The motivation for this project was to create a dedicated, self-contained physic
129129
3. **USB connectivity** - Dropped the USB-C breakout board idea and switched to using the STM32 User USB port for PC - MCU communication.
130130
4. **Firmware testing** - Extended the component testing code.
131131
5. **New issue** - Battery wires need to be soldered before use.
132+
133+
### Week 9 (Development)
134+
135+
- Started the actual development:
136+
1. **Testing** - Wrote test code for the display, RTC Module and Rotary Encoder.
137+
2. **Documentation** - Documented the crates that needed to be added for more security.
138+
139+
### Week 10 (Development)
140+
141+
- Continued the development process:
142+
1. **Testing** - Added test modules and helpers for the fingerprint sensor.
143+
2. **App flow** - Designed a State machine (Locked -> MenuBrowse -> ActionMenu -> ShowTotp) for the main use flow.
144+
145+
### Week 11 (Development)
146+
147+
- Continued the development process:
148+
1. **Main** - Finalized the first main prototype, a flow that integrates all sensors and is a skeleton for future improvements.
149+
2. **Power** - Removed the external battery (after soldering the cables and testing it) as the main power source. Instead, the device will receive power via USB.
150+
3. **To do** - Improve security, add memory protection and data verification.
151+
152+
### Week 12 (Development)
153+
154+
- Continued the development process:
155+
1. **Main** - Implemented memory protection, better security and data verification. Added a host CLI to send data through the terminal to the device.
156+
2. **3D Design** - Created a 3D Box render to store all of the components, making it a true embedded device.
157+
3. **To do** - Create a desktop app with GUI for easier usage. Improve overall app flow.
158+
159+
### Week 13 (Development)
160+
161+
- Continued the development process:
162+
1. **Desktop App** - Added the desktop app that uses the host to add and update account details on the device.
163+
2. **3D Print** - Printed the 3D Box and fit the components inside. The middle "floor" had to be removed because the cables did not fit properly.
164+
3. **To do** - Improve the app flow, add UI animations.
165+
166+
### Week 14 (Finishing touches)
167+
168+
- Finalized the development process:
169+
1. **In progress** - Updating the main code.
132170

133171
## Hardware
134172

@@ -166,10 +204,13 @@ The project centres on a NUCLEO-U545RE-Q development board as the microcontrolle
166204
### Photos
167205

168206
![Hardware setup - NUCLEO-U545RE-Q with OLED display, Rotary Encoder, DS3231 RTC module, and breadboard](hardware.webp)
207+
![Hardware setup V2 - Includes all sensors](hardware_v2.webp)
208+
![Hardware setup V3 - The entire device sitting inside the 3D-printed box](hardware_v3.webp)
169209

170210
### Schematics
171211

172212
![Schematics](./AIO_BiometricHardwareSecurityKey_Micu_Bogdan.svg)
213+
![3D Box Schematic](./box_3d_design.webp)
173214

174215
## Bill of Materials
175216

@@ -201,6 +242,14 @@ The project centres on a NUCLEO-U545RE-Q development board as the microcontrolle
201242
| [`embedded-hal`](https://crates.io/crates/embedded-hal) | Hardware abstraction traits | Common interface gluing drivers to the Embassy HAL |
202243
| [`hmac`](https://crates.io/crates/hmac) | HMAC generic implementation | Computes HMAC-SHA1 as required by the TOTP (RFC 6238) algorithm |
203244
| [`sha1-smol`](https://crates.io/crates/sha1-smol) | Minimal SHA-1 implementation (no-std) | SHA-1 digest used inside HMAC for TOTP |
245+
| [`aes`](https://crates.io/crates/aes) | Pure Rust Advanced Encryption Standard (AES) | Encrypts and decrypts the password vault stored in the STM32's flash memory |
246+
| [`cipher`](https://crates.io/crates/cipher) | Traits for cryptographic ciphers | Provides the generic traits required to securely operate the AES cipher |
247+
| [`zeroize`](https://crates.io/crates/zeroize) | Securely zeros memory | Wipes the plaintext passwords and derived keys from RAM immediately after use to prevent memory-dump attacks |
248+
| [`heapless`](https://crates.io/crates/heapless) | no_std data structures without dynamic allocation | Manages fixed-capacity buffers for passwords, account lists, and UI strings without needing a heap allocator |
249+
| [`anyhow`](https://crates.io/crates/anyhow) | Flexible concrete error handling (for desktop app) | Simplifies error propagation and context management across UI events, file operations, and device communication |
250+
| [`eframe`](https://crates.io/crates/eframe) | Official framework for the egui library | Renders the cross-platform immediate-mode desktop interface for adding, editing, and managing vault entries |
251+
| [`serialport`](https://crates.io/crates/serialport) | Cross-platform serial port interface | Establishes a serial connection (UART over USB) to securely communicate and sync vault updates with the STM32 device |
252+
| [`clap`](https://crates.io/crates/clap) | Command Line Argument Parser | Parses arguments, flags, and subcommands for the host CLI tool to manage and sync the hardware vault from the terminal |
204253

205254
## Links
206255

0 commit comments

Comments
 (0)