The Design Document is now the Product Design Document (PRD). It was rewritten to be a bit more in line with just describing the why and what of the product, not the how. It might not be perfect, but it is good enough. The README was adjusted to document that we are using the weasyprint pdf-engine for pandoc. I had started with just using the LaTex engine, but when you get to heading level 4, the heading is classified as a paragraph and not a proper heading. Also, all generated documents (*.pdf) were removed from the repository.
9.9 KiB
MicroBadge
Product Design Document
Version: 1.0
Date: July 11, 2025
Author(s): CyberMages, LLC (Jason Smith)
Stakeholders: Self, Potential Conference Attendees, Hobbyists
- Introduction
- Business Case & Goals
- User Stories / Use Cases / Features
- User Experience (UX) & User Interface (UI)
- Technical Considerations (High-Level)
- Release Plan & Roadmap
- Success Metrics & Analytics
- Open Questions and Assumptions
- Appendices
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.