Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/wtyler2505/ProtoPulse/llms.txt

Use this file to discover all available pages before exploring further.

ProtoPulse’s AI assistant operates through a typed tool action system. When you describe a task in natural language, the AI selects one or more tools from the registry, constructs validated parameters, and executes the actions against your project. Tools that modify database state run server-side; tools that update the canvas or trigger UI interactions are dispatched to the client. Every tool call is schema-validated with Zod before execution — invalid parameters are rejected with a clear error message rather than silently ignored. The registry is organized into 11 modules. Expand any module below to see its tools.
The architecture module operates on the block diagram canvas. It manages component nodes, signal edges, hierarchical sheet organization, auto-layout, net naming, and pin assignments.
ToolDescriptionKey parameters
add_nodeCreate a new component node on the block diagram. Executes server-side; writes to the architecture_nodes table.nodeType (MCU, Sensor, Power, Communication, etc.), label, description, positionX, positionY
remove_nodeDelete a node and all of its edges. Destructive — requires confirmation.nodeLabel
update_nodeChange the label, type, or description of an existing node.nodeLabel, newLabel, newType, newDescription
add_edgeCreate a typed signal connection between two nodes. Supports bus metadata, signal types, voltage, and net names.sourceLabel, targetLabel, edgeLabel, busType (SPI, I2C, UART, USB, Power, GPIO), signalType, voltage, busWidth, netName
remove_edgeDelete a connection between two nodes. Destructive — requires confirmation.sourceLabel, targetLabel
generate_architectureGenerate a complete block diagram from scratch — nodes and edges in one operation.components[] (label, nodeType, description, positionX, positionY), connections[] (sourceLabel, targetLabel, label, busType)
auto_layoutReorganize all nodes using a layout algorithm. Dispatched client-side.layout: hierarchical | grid | circular | force
manage_sheetsCreate, rename, or move nodes between hierarchical schematic sheets. Covers create_sheet, rename_sheet, and move_to_sheet.name (create), sheetId + newName (rename), nodeLabel + sheetId (move)
assign_net_namesAssign a meaningful net name to an existing edge.sourceLabel, targetLabel, netName
set_pin_mapsSet or auto-assign pin-level connections for a component node.nodeLabel, pins (record of pin name → net name); or nodeLabel for auto-assign
generate_architecture is the most powerful tool in this module. A single call can create a complete system block diagram with 10+ nodes and all their connections. Use it when starting a new design from a description.
The circuit module operates on schematic capture, breadboard layout, and PCB traces. It manages circuit designs (sheets), placed component instances, electrical nets, wire segments, ERC, and PCB routing.
ToolDescriptionKey parameters
create_circuitCreate a new circuit design (schematic sheet).name, description
place_instancePlace a component instance on the schematic from the component library.circuitId, referenceDesignator, partId, positionX, positionY
remove_instanceRemove a placed component instance. Destructive — requires confirmation.circuitId, instanceId
draw_netDraw an electrical net connecting two component pins.circuitId, name, netType (signal, power, ground)
remove_netDelete a net and its associated wire segments. Destructive — requires confirmation.circuitId, netId
place_power_symbolPlace a power symbol (VCC, GND, +3V3, etc.) on the schematic.circuitId, symbol, positionX, positionY
place_no_connectPlace a no-connect marker on an unconnected pin to suppress ERC warnings.circuitId, instanceId, pinName, positionX, positionY
place_net_labelPlace a net label to create named connections across the schematic without drawing a wire.circuitId, netName, positionX, positionY
run_ercRun Electrical Rules Check on a circuit design. Reports unconnected pins, shorted outputs, and conflicting drivers.circuitId
place_breadboard_wirePlace a wire segment in the breadboard layout view.circuitId, fromRow, fromCol, toRow, toCol, color
draw_pcb_traceDraw a routed trace on a PCB layer.circuitId, netId, layer (F.Cu, B.Cu), width, waypoints array
auto_routeTrigger automatic trace routing for all unrouted connections on a circuit.circuitId, strategy
The BOM module manages the project’s Bill of Materials. It handles CRUD operations on line items, real-time pricing lookups, alternative part suggestions, BOM-level cost optimization, parametric component search, datasheet links, and component comparison.
ToolDescriptionKey parameters
add_bom_itemAdd a component to the BOM. Executes server-side; writes to the bom_items table.partNumber, manufacturer, description, quantity, unitPrice, supplier, status
remove_bom_itemRemove a BOM item by part number. Destructive — requires confirmation.partNumber
update_bom_itemUpdate one or more fields on an existing BOM item.partNumber, updates (record of field → new value)
export_bom_csvGenerate and download a BOM CSV file. Supports generic, JLCPCB, Mouser, and DigiKey formats.format: generic | jlcpcb | mouser | digikey
lookup_pricingLook up real-time pricing and availability for a part number across distributors.partNumber
suggest_alternativesFind equivalent or alternative parts for a given part number — useful when a component is out of stock or too expensive.partNumber, reason (cost, availability, performance)
optimize_bomAnalyze the full BOM and identify cost reduction opportunities: volume pricing, cheaper equivalents, consolidation opportunities.(no required parameters)
parametric_searchSearch for components by category and parametric specifications (e.g., “capacitor, 100nF, 50V, 0402”).category, specs (record of spec name → value)
add_datasheetAttach a datasheet URL to a BOM item.partNumber, url
compare_componentsFetch BOM and architecture data and structure it for a side-by-side component comparison.(no required parameters; AI formats the comparison table)
The validation module runs design rule checks, electrical rules checks, and specialized analyses. It can add custom findings, auto-fix common issues, check design-for-manufacturing constraints, and generate structured test plans.
ToolDescriptionKey parameters
run_drcTrigger a full Design Rule Check on the current project. Populates the Validation panel with findings categorized as error, warning, or info.(no required parameters)
add_issueAdd a specific validation finding manually. Executes server-side; writes to validation_issues.severity (error, warning, info), message, componentId, suggestion
clear_issuesClear all validation issues from the project. Destructive — requires confirmation.(no required parameters)
power_budget_analysisCalculate the total power budget across all power rails. Flags components that may exceed rail capacity.(no required parameters)
voltage_domain_checkVerify that voltage levels are compatible across all connections — catches logic-level mismatches (e.g., 5V signal driving a 3.3V input).(no required parameters)
auto_fixAutomatically fix common validation issues: add missing decoupling capacitors, pull-up/pull-down resistors, and ESD protection components.(no required parameters)
dfm_checkRun Design for Manufacturing checks against common fabrication constraints (trace width, via size, clearances, annular ring).(no required parameters)
thermal_analysisEstimate power dissipation for each component and flag potential thermal hot spots based on package type and power rating.(no required parameters)
generate_test_planGather full project state and generate a structured test plan covering power-on, functional, and boundary tests.(no required parameters)
The export module generates industry-standard EDA files and downloads them directly in the browser. All export tools run server-side — they read project data from the database, generate file content, and return a download_file action that triggers a browser download.
ToolDescriptionOutput
export_kicadGenerate a KiCad 6 schematic file (.kicad_sch)..kicad_sch
export_eagleGenerate an Eagle schematic XML file (.sch)..sch
export_spiceGenerate a SPICE netlist for simulation in LTspice or ngspice..sp
export_bom_csvExport the Bill of Materials as CSV (generic, JLCPCB, Mouser, or DigiKey format)..csv
export_gerberGenerate a full Gerber RS-274X package: copper layers, solder mask, silkscreen, paste mask..zip
export_drillGenerate an Excellon drill file for CNC drilling..drl
export_pick_placeGenerate a pick-and-place (centroid) file for automated assembly..csv
export_netlistExport the circuit netlist — available in KiCad netlist format or CSV..net / .csv
export_design_reportGenerate a full Markdown design report covering architecture, BOM, validation, and simulation results..md
export_fritzingGenerate a Fritzing project file (.fzpz) for breadboard visualization..fzpz
The component module manages the project’s custom component library. It creates, modifies, and deletes component parts, forks components from the shared library, and runs component-level DRC.
ToolDescriptionKey parameters
create_componentCreate a new component part in the project library with full metadata. Executes server-side.title, family (MCU, Resistor, Capacitor, etc.), manufacturer, mpn, category, description, nodeId (optional link to architecture node)
modify_componentUpdate metadata fields on an existing component part.partId or nodeId to locate the part; field updates (title, manufacturer, mpn, etc.)
delete_componentDelete a component part from the library. Destructive — requires confirmation.partId
fork_library_componentCopy a component from the shared public library into your project library for customization. Dispatched client-side.libraryComponentId
validate_componentRun DRC on a specific component — checks for missing pin definitions, invalid package info, and incomplete metadata.partId
The project module handles project-level metadata, design documentation, history, and image analysis.
ToolDescriptionKey parameters
rename_projectRename the current project. Executes server-side; updates the projects table.name
update_descriptionUpdate the project description. Executes server-side.description
save_decisionRecord a design decision with rationale in the project history. Useful for capturing trade-off reasoning.decision, rationale
add_annotationAttach a sticky-note annotation to a specific architecture node.nodeLabel, note, color
undoUndo the most recent design action. Equivalent to Ctrl+Z.(no parameters)
redoRedo the most recently undone action. Equivalent to Ctrl+Y.(no parameters)
analyze_imageAnalyze an uploaded image — a circuit photo, hand-drawn schematic, or component reference. Returns a description and, where possible, extracted component or connection data.description (context about what the image shows)
The simulation module interfaces with the SPICE simulation engine. It generates netlists, runs frequency analysis, and retrieves cached simulation results.
ToolDescriptionKey parameters
generate_spice_netlistGenerate a SPICE netlist from the active circuit design. Returns the netlist text for review or export.circuitId
run_frequency_analysisRun an AC/frequency analysis on a circuit. Produces gain and phase data across a configurable frequency range for Bode plot rendering.circuitId, startFreq, stopFreq, points
get_simulation_resultsRetrieve cached simulation results for a circuit design.circuitId
The analysis module provides vision-based circuit understanding, hardware debugging, net explanation, and net name suggestions.
ToolDescriptionKey parameters
analyze_imageAnalyze an image of a circuit, PCB, or schematic using the AI’s vision capabilities. Identifies components, connections, and potential issues.description (context), image attachment
hardware_debug_analysisAnalyze the current circuit design for potential hardware debugging issues — floating pins, missing pull-ups, power sequencing problems, and common mistakes.circuitId (optional)
suggest_net_namesSuggest meaningful net names for all unnamed nets in a circuit based on the connected components and their functions.circuitId
explain_netExplain the purpose and connections of a specific net — lists all connected pins, describes the signal type, and explains the electrical function.circuitId, netId
The firmware module bridges ProtoPulse to the Arduino IDE workflow. It generates sketches from design context, compiles code, uploads to connected hardware, and manages Arduino libraries and board detection.
ToolDescriptionKey parameters
generate_arduino_sketchGenerate an Arduino sketch that matches the current design — initializes pins, configures peripherals (SPI, I2C, UART), and adds stub functions for the design’s components.intent (description of what the firmware should do), boardType (uno, mega, esp32, etc.)
compile_sketchCompile the current Arduino sketch for a target board. Returns compiler output and any errors.fqbn (Fully Qualified Board Name, e.g., arduino:avr:uno)
upload_firmwareUpload compiled firmware to a connected board over USB. Requires Web Serial.fqbn, port
search_arduino_librariesSearch the Arduino Library Manager index for libraries matching a query.query
list_arduino_boardsList all Arduino-compatible boards currently detected on serial ports.(no parameters)

Destructive tools

The following tools require explicit user confirmation before executing. The chat panel will display a confirmation card; the server independently enforces the requirement and will reject any request that arrives without confirmed: true.
  • remove_node — deletes a block diagram node and all its edges
  • remove_edge — deletes a connection
  • clear_canvas — removes all nodes and edges from the architecture diagram
  • remove_instance — removes a placed schematic component
  • remove_net — deletes a net and its wire segments
  • remove_bom_item — removes a BOM line item
  • clear_issues — clears all validation findings
  • delete_component — deletes a component from the library
Destructive actions write a soft-delete timestamp (deletedAt) rather than a hard delete for most entity types. However, some tables (validation issues, circuit elements) use hard deletes. Always use undo or consult the Audit Trail if you need to recover from an unwanted action.

Build docs developers (and LLMs) love