Firmware and PCB Co-Design
Flux is an AI hardware engineer. It designs firmware with the schematic, PCB, and board bring-up plan in one project.
Keep firmware and the PCB in one project
Ask Flux to connect the firmware work to the schematic and board.
Flux keeps the firmware starter document, pin map, source, tests, build outputs, and bring-up plan with the project. The schematic and PCB provide the connections and components that firmware uses.
Open Chat and ask Flux to create or update the firmware for the current board. Open Files in the project view switcher to read the firmware document, pin map, and bring-up plan.
Generate firmware from the schematic
Ask Flux to write the firmware behavior for the board and its peripherals.
Flux writes the firmware starter document from the schematic. It records the microcontroller, framework, build system, libraries, and board setup. It maps pin definitions to schematic net names and initializes the peripherals.
Name the behavior, timing, communication, and startup requirements. Flux can add sensor reads, actuator control, wireless communication, error handling, and a watchdog.
Map pins and choose assignments
Ask Flux to create a pin map or change MCU pin assignments.
Flux maps firmware pins to schematic nets. It can change MCU pin assignments to make PCB routing easier and update the schematic, firmware, and pin map together.
The pin map can record bus connections, device addresses, clock settings, power modes, boot pins, and reset signals. Open Files to read the pin map in the firmware starter document.
Configure buses, clocks, and boot behavior
Ask Flux to document the peripheral and startup configuration from the schematic.
Flux maps bus connections and documents device addresses, oscillator and PLL settings, power modes, boot pins, and reset behavior. It uses these settings when it writes firmware initialization and build notes.
See Pin and Peripheral Setup for the pin map and board configuration workflow.
Continue from an existing firmware repository
Ask Flux to connect your existing source code to the project board.
Share a public repository link, upload a ZIP, or paste source files in Chat. For a private repository, Flux asks for an access token in chat and reads the repository from the chat's computer.
Ask Flux to review the code structure before changing it. Flux can connect the existing source to the schematic and document its build system, libraries, and board configuration.
Build, test, flash, and debug firmware
Ask Flux to build the source, run tests, and prepare the board commands.
Flux builds firmware and returns image files, memory use, and build notes. It can run host unit tests and analyze the source. It provides a flashing command for you to run with the board connected to your computer.
Paste serial output or attach a crash dump in Chat to debug firmware. Ask Flux to update logging or source code, then open Files to read the saved changes.
See Build and Test Firmware for build outputs, tests, flashing, and serial debugging.
Plan bring-up and add test points
Ask Flux to prepare the board bring-up plan and add test points for measurements.
Flux prepares a bring-up plan with equipment, visual inspection, rail voltages, programming steps, interface checks, and expected results. Ask Flux to place test points at the signals you need to probe during bring-up.
Open Files to read the bring-up plan. It can record expected and measured values and a pass/fail result for each check.
See Board Bring-Up for the plan and functional checks.
Update firmware after board changes
Ask Flux to update firmware and project documents after a schematic or PCB change.
Flux can revise firmware initialization, pin definitions, tests, and bring-up steps to match the schematic. Ask it to re-check the pin map against the changed connections.
Use mechanical values in firmware
Ask Flux to add dimensions or positions from the mechanical model as firmware constants.
Flux can read dimensions and positions from the mechanical model and use them in firmware source. Ask it to update the constants and project notes when the model changes.