Document Types
The 12 technical document types FirmwareMaestro can generate, and what each one is for.
FirmwareMaestro produces 12 distinct document types. Each is generated by a dedicated generator with a Nordic-specific prompt and structure. Most documents build on the context of the documents generated before them.
Planning & requirements
| Document | Purpose |
|---|---|
| PRD | Product Requirements Document — goals, target users, constraints, scope, success metrics. |
| Implementation Plan | High-level engineering plan derived from the PRD with timeline and risk areas. |
Hardware & architecture
| Document | Purpose |
|---|---|
| Hardware Abstraction Layer | Maps Nordic peripherals (GPIO, SPI, I2C, UART, ADC, PWM, BLE, USB) to project needs. |
| Hardware Configuration | Pin assignments, clock tree, power domains, board-specific settings. |
| Peripherals Plan | Detailed driver requirements for each peripheral. |
| Firmware Architecture | Threads, queues, ISR boundaries, module structure (Zephyr-aligned). |
| State Machine | Application-level state machines with transitions and events. |
Wireless & protocols
| Document | Purpose |
|---|---|
| Protocols | BLE/Thread/Matter/LTE-M/NB-IoT protocol design — services, characteristics, message flows. |
| Libraries | Required nRF Connect SDK modules, Kconfig dependencies, west.yml additions. |
Implementation
| Document | Purpose |
|---|---|
| Bootloader | MCUboot configuration, signing, OTA update strategy. |
| Code Scaffold | Production-ready Zephyr project files — see Code Scaffolds. |
| Design Doc | One-pager combining the above into a single technical narrative. |
Two-stage AI pipeline
Every document generator uses the same two-stage pipeline:
Research stage
Gemini 2.5 Flash with Google Search Grounding gathers real-time nRF Connect SDK documentation and best practices relevant to your project's hardware and use case.
Generation stage
OpenAI GPT-5.4 (with reasoning: medium) produces the structured
document, grounded in the research from stage one.
This is what keeps generated content aligned with the current SDK rather than producing plausible-looking but incorrect code.
Refining documents
After a document is generated, you can ask for refinements in natural language ("add a section on Thread mesh"). The Refine Document Generator preserves the original structure while applying your changes.