# MicroBadge ## Product Design Document **Version:** 1.0 **Date:** July 11, 2025 **Author(s):** CyberMages, LLC (Jason Smith) **Stakeholders:** Self, Potential Conference Attendees, Hobbyists --- 1. [Introduction](#introduction) - [Purpose of this Document](#purpose-of-this-document) - [Product Overview](#product-overview) - [Target Audience](#target-audience) - [Scope](#scope) 2. [Business Case & Goals](#business-case-goals) - [Problem Statement](#problem-statement) - [Business Objectives](#business-objectives) - [Key Performance Indicators (KPIs)](#key-performance-indicators-kpis) 3. [User Stories / Use Cases / Features](#user-stories-use-cases-features) - [User Personas](#user-personas) - [Core Features](#core-features) * [Menu System](#menu-system) * [Name Scroller](#name-scroller) * [NFC Business Card](#nfc-business-card) * [Snake Game](#snake-game) - [Out-of-Scope Features](#out-of-scope-features) 4. [User Experience (UX) & User Interface (UI)](#user-experience-ux-user-interface-ui) - [User Flows](#user-flows) - [Wireframes / Mockups](#wireframes-mockups) - [Interaction Design](#interaction-design) - [Accessibility Considerations](#accessibility-considerations) - [Brand & Style Guidelines](#brand-style-guidelines) 5. [Technical Considerations (High-Level)](#technical-considerations-high-level) - [System Integrations](#system-integrations) - [Performance Requirements](#performance-requirements) - [Security Considerations](#security-considerations) - [Data Privacy](#data-privacy) 6. [Release Plan & Roadmap](#release-plan-roadmap) - [Phased Rollout Strategy](#phased-rollout-strategy) - [Future Considerations / Roadmap](#future-considerations-roadmap) 7. [Success Metrics & Analytics](#success-metrics-analytics) - [Key Metrics to Track](#key-metrics-to-track) - [Analytics Tools](#analytics-tools) 8. [Open Questions and Assumptions](#open-questions-and-assumptions) - [Open Questions](#open-questions) - [Assumptions](#assumptions) 9. [Appendices](#appendices) - [Glossary](#glossary) - [References](#references) --- ## Introduction ### Purpose of this Document This document defines the **product vision**, **features**, and **user experience** for MicroBadge, an interactive name badge application, to guide its development and align on its purpose. ### Product Overview **MicroBadge** is an interactive embedded application built for the BBC micro:bit v2, functioning as a **conference name badge**. It provides a **professional and technical icebreaker** at events through various interactive apps. ### Target Audience * Professionals attending conferences and networking events. * Individuals looking for unique icebreakers and conversation starters. * Developers interested in embedded Rust and interactive hardware. * Anyone seeking a personalized, memorable name badge experience. ### Scope This document covers the **initial release** of MicroBadge, including its core menu system, name scroller, Snake game, and the NFC business card functionality. ## Business Case & Goals ### Problem Statement * Traditional name badges are often static and unengaging, failing to facilitate professional or technical icebreaking effectively. * Networking often lacks memorable, interactive elements. * Sharing contact information can be cumbersome. ### Business Objectives * Provide a **custom and memorable name badge experience**. * Enable **fun interactions** and **easy sharing of contact info via NFC**. * Serve as a **technical portfolio piece** for conferences, meetings, and interviews. * **Showcase embedded Rust development** using async and no-std. ### Key Performance Indicators (KPIs) * Number of positive comments received about the badge. * Frequency of badge-initiated conversations. * Successful NFC contact transfers (post-completion). * Completion rate of the Snake game by others. --- ## User Stories / Use Cases / Features ### User Personas * **Conference Attendee Alex:** Wants to easily display their name, engage in lighthearted interactions, and quickly share contact details without fumbling for cards. * **Tech Enthusiast Tara:** Appreciates the technical sophistication and wants to use the badge as a conversation starter about embedded Rust. ### Core Features #### Menu System **Description:** Allows the user to switch between different applications on the micro:bit. **User Stories:** As a user, I want to easily navigate between different badge functionalities so I can quickly access the app I need. **Acceptance Criteria:** * Menu is visible on the LED matrix. * Navigation via physical buttons is intuitive and responsive. * Selecting an app loads it promptly. **Priority:** Must Have #### Name Scroller **Description:** Scrolls a user-defined name or custom message across the 5x5 LED matrix. **User Stories:** As a conference attendee, I want my name to scroll across the badge so others can easily identify me from a distance. **Acceptance Criteria:** * Name scrolls smoothly and is legible. * Scrolling text supports English ASCII characters only. * Speed and repeat mode are configurable (future state). **Priority:** Must Have #### NFC Business Card **Description:** Leverages the onboard NFC peripheral to share vCard/contact data with mobile phones. **User Stories:** As a user, I want to quickly share my contact information by tapping my badge on a phone, saving time and effort. **Acceptance Criteria:** * Badge emits vCard data via NFC upon activation. * Mobile phones can successfully read and import the data. **Priority:** Must Have #### Snake Game **Description:** A classic Snake game playable on the 5x5 LED display, designed for fun and interactivity. **User Stories:** As a user, I want a simple, engaging game on my badge to break the ice or pass time. **Acceptance Criteria:** * Game renders correctly on the 5x5 LED matrix. * Controls (Button A, Button B for turning) are responsive. * Game includes food, score tracking, and game over conditions. * Game speed is tuned for usability. **Priority:** Should Have ### Out-of-Scope Features * Configuration storage via flash memory. * Desktop companion app for editing settings. * BLE for data sync or configuration. ## User Experience (UX) & User Interface (UI) ### User Flows * **Power On:** Device boots, then goes directly to the main menu. * **App Selection:** From main menu, user presses Button A to cycle through apps, Button B to select. * **App Interaction:** User interacts with the active app (e.g., scrolling name, playing Snake). * **Return to Menu:** Pressing the **Reset button** on the back of the device returns to the main menu. ### Wireframes / Mockups The primary UI is the **5x5 LED matrix**. Visuals are abstract patterns or simple character representations. (No detailed wireframes beyond conceptual understanding of 5x5 limits). ### Interaction Design * `Button A`: Navigation (e.g., move down in menu, turn left in Snake). * `Button B`: Selection (e.g., select app, turn right in Snake). * `Start Button` (capacitive touch logo): Its function varies by app: - In the **Menu**, it selects the currently highlighted application. - In the **Name Scroller**, pressing any button (A, B, or Start) will return to the main menu. - In the **Snake game**, the Start button is used for selections within the game (e.g., choosing difficulty). * LED matrix provides immediate **visual feedback** for selections, game states, and menu navigation. ### Accessibility Considerations Limited by the 5x5 LED matrix. Focus is on **clear, distinct visual patterns** where possible. ### Brand & Style Guidelines Adheres to the physical aesthetic of the BBC micro:bit v2, with simple, functional LED display patterns. ## Technical Considerations (High-Level) ### System Integrations * Onboard NFC peripheral (for NFC Business Card app). * GPIO for button input. * LED matrix display control. ### Performance Requirements * Menu navigation must be responsive. * Snake game refresh rate tuned for smooth play. ### Security Considerations NFC data transfer should minimize privacy risks (e.g., only share public contact info). No sensitive data stored. ### Data Privacy VCard data intended for public sharing only. No personal data collected or stored by the application itself. ## Release Plan & Roadmap ### Phased Rollout Strategy Initial single release. No phased rollout planned for this version. ### Future Considerations / Roadmap * Finalize NFC vCard transmission. * Add configuration storage via flash memory for user preferences. * Create a desktop companion app for easier settings editing. * Support BLE for data synchronization or advanced configuration. ## Success Metrics & Analytics ### Key Metrics to Track As listed in section 4.3 (e.g., qualitative feedback, observations of interaction, NFC transfer success rate). ### Analytics Tools Primarily anecdotal observation and direct user feedback due to the embedded, standalone nature of the device. ## Open Questions and Assumptions ### Open Questions * Exact vCard data format for NFC compatibility across devices. * Optimal user experience for NFC activation on the micro:bit. ### Assumptions * Users will be familiar with basic micro:bit interactions. * The 5x5 LED matrix provides sufficient visual fidelity for intended applications. * NFC peripheral provides reliable data transfer. ## Appendices ### Glossary **Embassy:** An asynchronous embedded runtime for Rust. **HALs:** Hardware Abstraction Layers, providing a consistent API for hardware peripherals. **micro:bit v2:** A small, programmable computer designed for education and hobbyists. **NFC:** Near Field Communication, a set of communication protocols. **PWM:** Pulse-width modulation, used for controlling LED intensity. **vCard:** An electronic business card file format. ### References