Week 18 - Applications & Implications¶
The theme of this week is Applications and Implications / Project Development . The task requirements given on the course page are: Course Page: https://fabacademy.org/2026/classes/applications_implications/index.html
This week's assignment is not to continue developing a new module, but rather to conduct a comprehensive planning and reality check for the final project. The course requires us to answer a series of questions, clarifying what the final project will entail, which existing work it references, which parts need to be designed and fabricated, where the materials will come from, what the costs are, which processes will be used, and finally how to evaluate its success.
The problem I need to solve this week is: As my final project, how can I integrate the 2D/3D design, additive and subtractive manufacturing, electronic design and production, embedded programming, input/output, communication, system integration, and enclosure packaging learned in Fab Academy into the Maker Assistant?
1. Understanding this week's tasks¶
Applications and Implications This week is more like a final project proposal. It requires me to advance the project from the stage of "I want to make something" to the stage of "I know how it will be made, how it will work, and how it will be evaluated".
For my final project Maker Assistant , the questions to be answered this week include:
- What will it do?
- Who did what before?
- What sources of information will I use?
- What will I design?
- What materials and components will be used?
- Where will they come from?
- How much are they?
- Which components and systems will be manufactured?
- What processes will be adopted?
- Which questions need to be answered?
- How to evaluate whether a project is successful?
These questions can help me confirm that the final project is not a stack of several independent functions, but a complete and independently operable digital manufacturing work.
2. Project Overview¶
My final project is Maker Assistant, a desktop status feedback device for AI programming workflows.
It can convert the execution status of Claude Code, Codex CLI, or similar AI Agent tools in the terminal into lights, voices, and screen animations on physical devices, allowing users to know whether the current task is running, waiting for confirmation, encountering an error, or has completed without constantly staring at the terminal.
The core idea of this project is:
That is to say, Maker Assistant is not an ordinary desktop ornament, but an interactive device that brings software states into the physical space.
3. What will it do?¶
The Maker Assistant will display the running status of AI programming tools. Its goal is not to replace Claude Code or Codex, but to add an external state awareness layer to these tools.
It needs to perform the following functions:
- When the AI Agent is executing a task, the device displays the "Running" status.
- When the Agent is waiting for user approval or input, the device alerts the user with prominent lights and voice prompts.
- When a command execution fails or a test reports an error, the device displays an error status.
- When the task is completed, the device indicates the completion status.
- When the connection is disconnected, the device enters the disconnection prompt state.
- Users can perceive the current state of the Agent through desktop devices without constantly looking at the terminal.
The preliminary correspondence between states and feedback is as follows:
| Status | Meaning | Device Feedback |
|---|---|---|
| Idle | Idle | Soft standby light or standby animation |
| Working | is being executed | Breathing light or running animation |
| Pending | Waiting for approval | Yellow flashing and voice reminder |
| Completed | Task completed | Green light and completion beep |
| Error | An error occurred | Red light and error beep |
| Disconnected | Connection Disconnected | Gray status or disconnection prompt |
4. Who did what before?¶
This project does not invent all technologies from scratch, but combines multiple existing directions into a new application scenario.
4.1 AI Programming Tools¶
AI programming tools such as Claude Code and Codex CLI can already perform tasks, modify files, run commands, request approvals, and output results in the terminal. However, their status mainly exists in terminal text, and users need to constantly check the screen to promptly detect status changes.
My project focuses on how to convert these terminal states into information that an external physical device can express.
4.2 Desktop reminder device and status light¶
There are many status lights, tomato clocks, desktop reminders, and notification devices available on the market and in the maker community. They are commonly used to display time, weather, email reminders, or build status.
These projects demonstrate that desktop hardware can effectively convey simple states, but they are generally not specifically tailored to the programming workflow of AI Agents, nor are they designed for Agent states such as "waiting for approval, in progress, tool failure, task completed".
4.3 ESP32 and the Open Source Hardware Ecosystem¶
Tools such as ESP32, WS2812B, TFT screen, I2S amplifier, MicroPython, BLE, and WebSocket are already well-developed. My job is not to reinvent these technologies but to integrate them into a clear application.
4.4 My Innovation Points¶
The innovative aspect of my project lies in:
- Convert the software state of the AI Agent into physical feedback;
- Design a state protocol for the programming workflow;
- Combine lighting, voice, and screen animation;
- Enables the device to work independently on a desktop;
- Completed the enclosure, electronics, firmware, communication, and system integration through Fab Academy's digital manufacturing process.
5. What sources of information will I use?¶
This project will use the following materials and tools as references:
| Source | Usage |
|---|---|
| Fab Academy Course Materials | 2D/3D design, electronic design, input/output, network communication, and system integration methods |
| ESP32 / MicroPython Documentation | Develop device-side firmware, BLE communication, I2S audio, and peripheral control |
| aioble / bleak Documentation | Implement BLE communication between the device and the computer |
| Claude Code Hooks Documentation | Get Agent runtime events |
| WS2812B / FastLED / NeoPixel 资料 | Design lighting status feedback |
| MAX98357A I2S Power Amplifier Data | Implement voice broadcast |
| LVGL / TFT Screen Information | Panel screen interface and animation display |
| JLC EDA / LCSC Mall Information | PCB Design, Component Selection, and Prototyping |
| Bambu Studio / 3D Printing Experience | Slicing and Printing of Shells and Accessories |
| Existing project code repository | Organize the computer-side daemon, device-side firmware, and installation tools |
The final project code will be organized into a public repository:
https://github.com/FreakStudioCN/MicroPython_Claude_Assistant_Public
6. What will I design?¶
The content to be designed in this project can be divided into four categories.
6.1 Device Form and Enclosure¶
I will design a desktop character device enclosure. The final project will use the Clock Alarm Edition as the main manufacturable version, while retaining the Panel / D-Shell Panel Edition as an expansion direction.
The Clock version has a simpler structure and is suitable for completing a full manufacturing closed loop: enclosure design, 3D printing, electronics installation, lighting and voice feedback, BLE communication, and final testing.
The shell design needs to consider:
- It can accommodate ESP32, PCB, speaker, LED, and wires inside;
- Externally, it has a role-based appearance rather than a common electronic box;
- The bottom is stable and not easily knocked over by the USB cable;
- The speaker location shall have openings or channels;
- The housing can be disassembled for easy maintenance and reprogramming;
- Accessories can be printed and replaced independently.
6.2 Electronic System¶
I will design or organize a PCB/carrier board suitable for ESP32-C3 to connect the main controller, lights, power amplifier, speaker, vibration motor, and debugging interface.
The goal of electronic design is to enable the final device to not rely on loose DuPont wires, but rather form a more stable and assembly-friendly structure.
6.3 Embedded Firmware¶
I will write the ESP32 firmware to implement the following functions:
- Initialize lights, audio, and screen;
- Receive status messages from the computer;
- Parse the state protocol;
- Maintain the device-side finite-state machine;
- Refresh the lights, voice, and screen animations according to the state;
- Handle disconnection and reconnection;
- Keep the main loop running stably.
6.4 Computer Program and State Protocol¶
I will design a computer-side daemon process and a status protocol. The computer side needs to capture statuses from Claude Code / Codex-like tools and convert them into short messages suitable for hardware devices to receive.
For example:
Among them, s represents the state: I is idle, W is working, P is waiting for approval, C is completed, E is error.
7. What materials and components will be used?¶
The main materials and components are as follows:
| Category | Component or Material | Usage |
|---|---|---|
| Master Control | ESP32-C3 Development Board | Clock version master controller, responsible for BLE, lighting, and audio |
| Extended Master | ESP32-S3 Development Board / D-Shell Board | Panel / D-Shell Version Screen and Touch Controls |
| Lighting | WS2812B RGB LED | Displays different state colors and blinking rhythms |
| Audio | MAX98357A I2S Digital Power Amplifier Module | Drive the speaker to play voice prompts |
| Sound Output | 4Ω / 3W Small Speaker | Play startup, completion, error, and waiting for approval prompts |
| Vibration | Micro Vibration Motor / Vibration Sensor | Optional tactile feedback or tap input |
| Show | 2.4-inch ST7789 TFT Screen | Panel state animation and text display |
| Touch | CST816S / GT911 Touch Module | Panel Interaction Input |
| Structure | PLA / PETG Printing Materials | Print accessories such as shells, bodies, glasses, hats, etc. |
| circuit | Self-made PCB, pin headers, connectors | Connect the main control and peripheral modules |
| Fixed | M2 / M3 Screws, Nuts, Heat-set Copper Nuts | Fix the housing, PCB, and speaker |
| Software | MicroPython、Python、Claude Code Hooks | Firmware, PC-side daemon process, and status capture |
8. Where will they come from?¶
Material sources are as follows:
| Materials / Components | Source | Instructions |
|---|---|---|
| ESP32-C3 / ESP32-S3 Development Board | Taobao / Lichuang Mall | Facilitates procurement and rapid development |
| WS2812B RGB LED | Lichuang Mall / Taobao | Commonly used programmable RGB LED beads |
| MAX98357A I2S Power Amplifier Module | Lichuang Mall / Taobao | ESP32 can be directly driven |
| Speaker, vibration motor, pin header, DuPont wire | Taobao / Lab Inventory | Universal low-cost components |
| PCB Prototyping | JLC | Proofing after JLCPCB EDA Design |
| Resistors and Capacitors, Interfaces, Connectors | Lichuang Mall | PCB Peripheral Components |
| PLA / PETG Filament | Fab Lab / Taobao | For 3D printed housing |
| Screws, nuts, hot-melt copper nuts | Taobao / Lab Inventory | Used for assembly and fixation |
| TTS Voice Resources | Doubao TTS | Generate device beep sound |
The parts that are preferably self-made include the housing, accessories, PCB, firmware, status protocol, computer program, and assembly structure. The items mainly purchased are standard electronic components and consumables.
9. How much do they cost?¶
The following is a rough cost estimate for a single prototype of the Clock Alarm Edition. The prices are estimated based on common domestic procurement channels, and the Actual Cost will be affected by procurement quantity, shipping fees, and inventory.
| Name | Quantity | Unit Price Estimation | Total Price Estimation | Source | Remarks |
|---|---|---|---|---|---|
| ESP32-C3 Development Board | 1 | ¥18 | ¥18 | Taobao / LCSC Mall | Main Control |
| WS2812B RGB LED | 2 | ¥1 | ¥2 | Taobao / LCSC Mall | Status Light |
| MAX98357A I2S Power Amplifier Module | 1 | ¥8 | ¥8 | Taobao / LCSC Mall | Voice Output |
| Small Speaker | 1 | ¥6 | ¥6 | Taobao | 4Ω / 3W |
| Vibration Motor | 1 | ¥3 | ¥3 | Taobao | Optional Haptic Feedback |
| Vibration Sensor | 1 | ¥2 | ¥2 | Taobao | Optional Tap Input |
| USB Cable / Interface / Pin Header | 1 batch | ¥8 | ¥8 | Taobao / Inventory | Power Supply and Connection |
| PCB Prototype | 1 | ¥20 | ¥20 | JLCPCB | Small Batch Amortization |
| Resistors and Capacitors, Pin Headers, Connectors | 1 batch | ¥8 | ¥8 | Lichuang Mall | PCB Periphery |
| PLA / PETG Printing Materials | Approximately 120g | ¥0.15/g | ¥18 | Fab Lab / Taobao | Shells and Accessories |
| Screws, Nuts, Heat-melted Copper Nuts | 1 batch | ¥5 | ¥5 | Taobao / Inventory | Assembly and Fixing |
| Total | — | — | Approximately ¥98 | — | Estimation of a Single Clock Prototype |
The Panel / D-Shell version will incur higher costs due to the addition of a screen, touch functionality, and a more complex PCB. Therefore, the Clock version has been designated as the final deliverable main version in this week's plan.
10. Project Schedule and Milestones¶
In addition to BOM and cost estimation, the final project also requires a clear time plan. BOM answers "what materials are needed and how much they cost", while the project schedule answers "when each stage will be completed". Only by combining the two can we determine whether the project can be completed on time before the final presentation of Fab Academy.
This project takes Clock Alarm Edition Maker Assistant as the final deliverable main version, and the Panel / D-Shell version as the expansion direction. The project plan will be advanced in the order of "requirement confirmation -> structure and electronic design -> manufacturing -> programming -> integration testing -> documentation and presentation".
| Date / Time Period | Phase | Milestone | Main Task | Deliverables / Criteria |
|---|---|---|---|---|
| From 2026-06-01 to 2026-06-03 | Project Definition | Determine the final project scope | Define the application scenarios, target users, status types, and main hardware forms of the Maker Assistant; decide to use the Clock Alarm Edition as the final version | Complete the project problem definition, feature list, and status feedback form |
| 2026-06-04 to 2026-06-06 | System Solution | Complete the system architecture design | Organize the data flow among computer-side Hook / Daemon, BLE communication, ESP32 device-side, and lighting voice output | Completed the system block diagram, draft state protocol, and module division of labor |
| 2026-06-07 to 2026-06-09 | Materials and BOM | Complete the Bill of Material and procurement plan | Determine the sources and budgets of major materials such as ESP32-C3, WS2812B, MAX98357A, speakers, PCB, PLA/PETG, and screws | Complete Bill of Material (BOM), cost estimation, and procurement/inventory confirmation |
| 2026-06-10 to 2026-06-12 | Structural Design | Complete the design of the enclosure and internal assembly | Design the Clock housing, character accessories, PCB fixing structure, speaker position, wire space, and detachable structure | Completed the first version of the 3D model, which can be exported as STL and undergo printing evaluation |
| 2026-06-13 to 2026-06-15 | Electronic Design | Complete PCB/Carrier Board Design | Draw the schematic diagram, complete the connection of ESP32, LED, I2S power amplifier, speaker, vibration module, and interfaces; check the power supply and wiring | Complete PCB files, Bill of Material (BOM), Gerber, or manufacturable files |
| 2026-06-16 to 2026-06-18 | Manufacturing Phase | Complete enclosure printing and PCB fabrication | Print the enclosure and accessories, fabricate or prototype the PCB, and prepare screws, copper nuts, and wires | Obtain assemblable enclosures, accessories, PCBs, and electronic components |
| 2026-06-19 to 2026-06-20 | Welding and Unit Test | Complete the basic test of the electronic module | Weld the PCB and module, and separately test ESP32 power supply, WS2812B lighting, MAX98357A audio, speaker, and optional vibration input | Each hardware output module can operate independently, with no short circuits or abnormal power supply |
| 2026-06-21 to 2026-06-22 | Embedded Programming | Completed the main process of ESP32 firmware | Implements state reception, finite-state machine, light feedback, voice playback, disconnection prompt, and basic logging | The device can receive the test status and display corresponding light/voice feedback |
| 2026-06-23 to 2026-06-24 | Computer program | Completed Hook / Daemon / BLE Push | Organize the event capture logic of Claude Code / Codex, convert the state to a short JSON protocol, and send it to the ESP32 via BLE | The computer can stably send I/W/P/C/E status to the device |
| 2026/6/25 | System Integration | Complete the assembly and joint debug of the entire machine | Install the PCB, speaker, LED, and wires into the housing, complete firmware burning, and conduct BLE connection and real-world scenario testing | The whole machine can run on the desktop and correctly display the states of running, waiting, completion, error, and disconnection |
| 2026/6/26 | Evaluation and Presentation | Complete final testing, documentation, and presentation materials | Supplement test results, photos, demonstration videos, final project pages, licenses, and downloadable files | Complete the Final Project document, Week 20 presentation materials, and one-minute video |
To reduce schedule risk, I've divided the project into three priorities:
| Priority | Content | Reason |
|---|---|---|
| must be completed | Clock Alarm Edition Shell, ESP32-C3, Lighting, Voice, BLE Status Reception, Computer End Status Transmission, Final Assembly and Testing | This is the core closed loop determining whether the final project can be established |
| Try to complete | Vibration feedback, more character accessories, more complete installation tools, and exception handling | These features can enhance the experience but do not affect the core demonstration |
| Expansion Direction | Panel / D-Shell Screen Version, Multi-Session History Display, Touch Menu, Battery-Powered | These contents are more complex and can be used as subsequent versions, not as a necessary condition for the final display |
This schedule is also used for project evaluation: if a phase is delayed, I will prioritize ensuring the main link of "computer status -> BLE -> ESP32 -> lighting/voice feedback -> enclosure assembly" rather than prioritizing appearance expansion or screen version features.
11. Which components and systems will be manufactured?¶
This project will manufacture the following components and systems.
11.1 Physical Structure System¶
Includes 3D printed housing, character accessories, internal fixed structure, speaker mounting position, PCB fixing posts, and removable housing.
This part needs to be completed:
- 3D Modeling;
- FDM Printing;
- Grinding and assembly;
- Processing of screw holes and hot-melt copper nuts;
- Reserved space for wire routing.
11.2 Electronic Systems¶
Includes ESP32-C3, WS2812B, MAX98357A, speaker, vibration feedback, and PCB connection system.
This section needs to be completed:
- Schematic design;
- PCB wiring;
- Proofing or milling;
- Component soldering;
- Power supply and short-circuit inspection;
- Lighting and audio test.
11.3 Embedded Systems¶
Includes ESP32 firmware, finite-state machine, lighting rendering, voice playback, BLE reception, and disconnection handling.
11.4 Computer Software System¶
includes hook bridge, daemon, BLE transport, device pairing tool, voice resource generation, and installation check tool.
11.5 System Integration and Packaging¶
Ultimately, it is necessary to combine software, communication, electronics, and structure into an independently operable desktop device, rather than several scattered experimental modules.
12. What processes will be adopted?¶
This project will utilize various processes learned in Fab Academy.
| Process | Usage in the project |
|---|---|
| 2D Design | Design display graphics, stickers, status icons, and document visual creatives |
| 3D Design | Design the shell, character body, accessories, and internal assembly structure |
| Additive Manufacturing | Use FDM 3D printing for shells and accessories |
| Subtractive Manufacturing | Laser cutting or CNC can be used to fabricate display bases, nameplates, or auxiliary structures |
| Electronic Design | Design the ESP32 carrier board and peripheral circuits |
| Electronic Production | PCB prototyping, soldering, inspection, and testing |
| Embedded Programming | Write ESP32 MicroPython Firmware |
| Input Device | Vibration Sensor or Touch Input |
| Output Device | WS2812B Lights, Speakers, TFT Screen |
| Communication and Network | Status transmission methods such as BLE / WebSocket / Serial Port |
| Interface and Application Programming | Python daemon, Hook Bridge, and installation tools |
| System Integration | Assemble the computer, communication, device, and housing into a complete system |
| Packaging | Enclosure, internal fixation, wire management, and maintainable structure |
13. Which questions need to be answered?¶
This project needs to answer the following key questions before completion.
13.1 Is state capture reliable?¶
Can the events of Claude Code/Codex-like tools be stably captured by the computer? Can the states be converted into a unified format under different tools, different tasks, and different error conditions?
13.2 Is the communication stable?¶
Is BLE stable enough in the Windows environment? Can the device automatically reconnect after disconnection? Can status changes be displayed on the device within an acceptable delay?
13.3 Is the state expression clear?¶
Can users understand the current state without looking at the terminal, only through lights, sounds, or the screen? Which states require voice, and which states only require lights?
13.4 Will voice reminders disturb users?¶
If voice announcements are made for every event, the device will become very noisy. Therefore, it is necessary to determine which states are worth announcing and which should be displayed silently.
13.5 Is the enclosure suitable for assembly and maintenance?¶
Is the internal space of the 3D printed enclosure sufficient? Can the speaker, PCB, LED, and wires fit inside? Can the enclosure be disassembled for repair?
13.6 Has the project truly reduced the burden on users?¶
The final evaluation should not solely focus on whether the device can light up, but rather on whether it truly reduces the number of times users frequently switch back to the terminal to check the status.
14. How to evaluate a project?¶
The project will be evaluated from five aspects: functionality, stability, readability, manufacturing completeness, and real-world usage scenarios.
| Test Item | Testing Method | Success Criteria |
|---|---|---|
| State Capture | Trigger events such as prompt, tool use, notification, stop, failure, etc. | The computer can recognize and convert it into a state |
| Status Protocol | Use test scripts to verify the parsing of W/P/C/E/I status | Status messages can be correctly parsed by the device side |
| BLE Push | The computer terminal pushes status to the device at a fixed frequency | State changes can be displayed in a timely manner |
| Light Feedback | Simulate idle, working, pending, completed, and error respectively | Colors and blinking rhythms can be clearly distinguished |
| Voice Feedback | Play startup, connection, disconnection, completion, error, and waiting for approval prompt tones | The speaker is clear, and the prompts are not overly intrusive |
| Housing Assembly | Install the PCB, speaker, LED, and wires into the housing | The housing can close without squeezing the wires inside |
| Disconnection Recovery | Reconnect after disconnecting BLE or shutting down the daemon | The device can enter the disconnected state and recover |
| Real Scenario | Run long tasks in Claude Code, wait for approval, and handle failed commands | Users can promptly perceive the status through the device |
If the device can stably display the running, waiting for approval, error, and completed statuses in a real AI programming workflow, and users do not need to constantly stare at the terminal, it indicates that the project has achieved its expected goals.
15. Applications and Impacts¶
The application scenarios of Maker Assistant are not limited to Claude Code. It represents an approach of "materializing software states".
Possible applications include:
- AI Agent Task Status Reminder;
- CI/CD Build Status Reminder;
- Server task monitoring;
- Reminder for laboratory equipment operation;
- Multi-project task board;
- Remote task completion prompt;
- Sound and light reminder device for accessibility needs.
The impact of this project lies in the fact that as AI Agent workflows become increasingly common, users do not necessarily need to constantly stare at the terminal waiting for results. A small desktop hardware can separate key status from the screen, allowing people to perceive software systems in a more natural way.
16. This Week's Summary¶
Through this week's Applications and Implications, I have refined the Maker Assistant from a final project idea into a more explicit manufacturing plan.
It needs to integrate the following capabilities:
2D / 3D 设计
-> 3D 打印和可能的减材制造
-> PCB 设计与焊接
-> ESP32 嵌入式编程
-> 输入输出设备
-> BLE 通信
-> 电脑端应用程序
-> 系统集成和外壳封装
The focus of the final project is not to prove that a single module can work independently, but to prove that the entire link can operate independently:
This week's plan has also made it clearer to me what should be prioritized during the final sprint: a stable state link, a clear feedback mechanism, an assemblable enclosure, and test scenarios that can truly demonstrate value.
AI Assistance:
During the preparation of this documentation, ChatGPT (GPT-4) was used as a language assistance tool.
It helped with sentence polishing and translation from Chinese to English to improve readability and clarity.