Electronics Engineering Assistant

Env: ARENA_EMAIL × ARENA_PASSWORD ×

Scripts

Altium Scripts

πŸ“Open Altium part folder

Resolve PPP-XX-XXX -> Altium folder. Open Main Folder opens the design (latest Rev/Ver). Open Prod Folder opens the production outputs area ("Production Document…", "Project Outputs for …", or a child with Gerber/BOM).

πŸ₯Open Altium .PrjPcb project

Resolve PPP-XX-XXX and open the most recently modified .PrjPcb under the latest Rev/Ver folder, or use Open PCB Only for the newest .PcbDoc in that folder (same Archive exclusion).

πŸ“‹Copy Checklist into Folder

Copies the newest 'WDTS - PCB Design Checklist vX.X' template from the Altium Library into the part's main folder as '{checklist} {PCBA} Rev {revision}', using the production-folder revision (Rev A if unknown), then opens the copy in Excel.

πŸš€Fabrication zip

Check fabrication outputs and optionally create 'Fabrication PPP-20/25-YYY Rev <letter>.zip', then optionally upload or replace 'Altium Gerber Files' on the bare-board Arena working revision. Use checkboxes to run only the steps you need.

πŸ“¦Gerber zip

Check Gerber and NC Drill outputs and optionally create 'Gerbers PPP-20/25-YYY Rev <letter>.zip' (no PFS folder). Same checks as fabrication zip except PFS is not required or included.

πŸ“§Order boards from Simon

Draft an HTML Outlook email to Simon Graham for the bare-board part number (Fabrication and Gerber zips, PFS pdf, and schematic pdf beside the .PrjPcb or titled 'Schecmatics of …' under a PDF folder; builds zips first if missing). If no schematic is found, offers Send Email without Schematic. Opens in New Outlook (olk.exe) when Classic COM is unavailable.

βœ…BOM export check and CSV

On the PJM sheet (default sheet 2), checks each 01-PJM Part_Number against Arena (item description or name) and optional Name vs 03-Description General for 098-12/13 lines β€” same rules as the former Arena BOM export check. When Create CSV is enabled, runs Convert BOM (Excel -> CSV) v2 after all checks pass. If checks fail, you can still choose Proceed with CSV Creation.

πŸ€Pick & Place zip

Optionally zip the production 'Pick Place' folder into 'Pick Place PPP-TT-XXX Rev <letter><number>.zip', then optionally upload or replace 'Pick and Place' on the PCBA Arena working revision. Revision entry must match the Altium revision letter; the number you enter is used in the zip name.

πŸ–ΌοΈSync Arena Product Image

One step: resolve Altium production outputs, take the newest .png from the 'PCB 3D Print' folder under the production document folder, then on the PCBA Arena item's working revision (PPP-10 / PPP-15 β€” mapped from bare-board canonical if needed) either upload a new 'Illustrative Image' (edition 1, title 'Product Image <part> Rev <letter>') or replace the existing Illustrative Image (edition +1).

Arena Scripts

πŸ”’Set Working Revision

For a PCBA part number and revision (letter + number, e.g. B1): set the PCBA working revision to the full value (B1) and the mapped bare-board item (PPP-20 / PPP-25) working revision to the letter only (B). If either working revision is already set to something different, you are asked to confirm before overwriting.

⭐Check Ready for Production Release

Runs five steps for a PCBA part number and prints the full output of each (all steps run even if one fails): remove Illustrative Image from the bare PCB if wrongly linked, Arena checked-in revision letter vs Altium production folder, Check Pick and Place File with Arena BOM, Check PCBA and PCB Files, and Compare Working and Checked In Revision.

πŸ”Check Pick and Place File with Arena BOM

For a part number, reads the single .csv in the production Pick Place folder and compares each designator's Description (or Comment if Description is empty) to the Arena assembly BOM on the working or most recent released revision. Uses the same spec-aware regex checks as BOM export / Arena–Altium compare. N/F or DNF in P&P is OK when Arena also marks N/F or the line is absent; the PCB board item may be missing from P&P; fiducials, test pads, and mounting holes are skipped. Read-only; does not modify files.

⚽Check PCBA and PCB Files

For a PCBA part number (PPP-10-XXX or PPP-15-XXX), verify the working or most recent checked-in revision has Pick and Place + Illustrative Image files, and that the matching PCB (PPP-20-XXX / PPP-25-XXX) has a fabrication zip (Altium Gerber Files). Pick & Place titles must match revision letter and number; product image and fabrication zip titles need only the PCBA revision letter. Also checks PCBA and PCB revision letters match (e.g. A1 vs A). When checking the most recent checked-in revision, also runs Compare Working and Checked In Revision first.

πŸ”€Compare Working and Checked In Revision

Enter a PCBA part number (PPP-10-XXX or PPP-15-XXX). The script auto-maps to the bare PCB (PPP-20-XXX / PPP-25-XXX) and compares working vs most recent checked-in for both items: revision numbers, files, BOM lines, and revision-level fields (name, description, lifecycle, etc.). Ignores assemblyType changes and a blank working revision number when nothing else differs. Read-only.

πŸ”—Open Part Supplier Link

Enter a lookup part number on this card (not the top-bar PCBA field). Searches the whole Arena workspace for a unique match on internal part number, supplier part number, or manufacturer part number. Partial lookup is allowed (e.g. ABC123 matches ABC12345). When exactly one item matches, opens the primary file on the first sourcing location (lowest AML rank) in your default browser or application.

🏷️Open Part in Arena

Enter a manufacturer part number or partial MPN. Searches Arena supplier items and follows sourcing links to internal items. When exactly one Arena part number matches, prints it and opens that item in the Arena web app.

πŸ’Compare Arena vs Altium BOM v2

Takes only a part number: resolves the newest BOM .xlsx/.xls, fetches the Arena BOM, and diffs qty/designators plus spec-aware Arena item names vs Altium descriptions (voltage, current, footprint, passive values). Also checks sheet 2 (01-PJM Part_Number) when present.

πŸ“‹Upload BOM from Altium CSV (No _ Designators)

Uses the newest .csv in the production BOM folder: shows PCBA (PPP-10/15) and PCB (PPP-20/25) from the paired Excel export, runs Compare Arena vs Altium BOM v2 when the Arena BOM has lines (otherwise notes it is empty), then asks you to confirm before upload. Auto mode uses CREATE for an empty Arena BOM, REPLACE when lines exist. Uses Import Engine when a matching ITEM_BOM definition exists; otherwise adds lines via Arena REST API (no import definition required).

πŸ“Correct P&P for Old Project from Arena BOM

For a part number, locates the single .csv and .txt in the production Pick Place folder, fetches the Arena assembly BOM (working or most recent released revision), and updates both files: Description from Arena (item description, else name); Comment from PJM_Component_Database_Lib.xls when 01-PJM Part_Number matches, else keep existing comment if it reasonably matches Arena text, else use Arena description. Fiducial lines are not changed. Designators on Arena Not Fitted / N/F / DNF lines are removed. Original files are saved as .bak under 'Pick Place Archive - DO NOT USE' in the production folder.

πŸ“„Take BOM from Arena and Change 1206 Tuning Caps

Exports the Arena BOM for a PCBA (working or most recent released revision) to import-format CSV (LEVEL, Quantity, ITEM NUMBER, Reference Designator), applies designator/value retargeting from an Excel or CSV tuning sheet (same rules as Replace 1206 HV NP0 caps), merges rows with the same ITEM NUMBER, and writes the result to your Desktop as <part>_Bom1206TuningCaps_<timestamp>.csv.
upload

πŸ“‘Duplicate Arena Item from Existing Item - BOM COPY DOESN'T WORK WITH NON-STANDARD DESIGNATORS

Creates a new Arena item from an existing one: enter the old and new part numbers, use 'Load name & description from Arena' to pull the source item name and description into editable fields, adjust them, choose whether to copy BOM lines and/or file associations, and whether to read the source from the working revision, the latest effective (released) revision, or a specific revision letter in the override box. Set the new item's starting revision number. Owner defaults to your Windows display name (override optional). With 'Add bare PCB also' checked, after the PCBA duplicate the same flow runs for the mapped PPP-20 / PPP-25 bare board, or legacy PPP-10-XXX-PCB / PPP-15-XXX-PCB when the standard bare item is missing (name and description copied from the new PCBA, with PCBA changed to PCB where present; new revision letter only, e.g. A1 -> A). Adds the item display image: Use Product Image (default) copies the source Illustrative Image titled Product Image; otherwise drop or browse a local file. The same linked image is applied to the new bare board when that option is on.
upload disc

Rarely Used Scripts

πŸ“ŠCompare Excel Altium Library with Arena

Upload a multi-sheet Excel library workbook: on each sheet, the 01-PJM Part_Number column is the key and 03-Description General (or the same fallback description columns as 'BOM export check and CSV') is compared to the Arena item description (when set, else item name) using the same spec-aware checks (voltage, current, footprint, passive values, etc.). Produces a new workbook with the same sheet names and order; each sheet lists only Part Number and Discrepancy for failing lines. Sheets without PJM headers appear with headers only. Default report path: Desktop, ``<file>_ArenaDiscrepancies_<timestamp>.xlsx``.
upload

πŸ‰Find PCB assemblies in BOM

Recursively walk the BOM of a top-level system and list every unique PCB assembly used at any depth. A PCBA is any item matching PPP-10-YYY or PPP-15-YYY where PPP is not 098.

πŸ“€Export Supplier BOM

Export an Arena assembly BOM to Excel using the SUPPLIER format (effective latest revision by default). Saves to your Documents folder.

Altium MCP Scripts

🏷️Get Designators

Resolve the part number to the Altium PCB/project, query live component designators via the WDTS bridge, and print a sorted list. If the bridge times out, falls back to the newest Pick & Place CSV under the part folder.

πŸ”Check Silkscreen Text

Checks Top and Bottom Overlay silkscreen via the live Altium bridge: bare PCB and assembly part numbers with Rev/Ver, copyright text (or Β©), and a 25 mm x 10 mm serial number box. Requires compiled Altium_API.PrjScr (or other_utils Β» MCP_ProcessRequest if Altium is already open).

β—ŽFind Untented Vias

Opens the part PCB, finds vias not tented on Top or Bottom solder mask, deselects everything else, selects those vias, and zooms. Altium shows "No untented vias" if none match. Uses WDTS Altium MCP bridge (compile Altium_API.PrjScr or run other_utils Β» MCP_ProcessRequest).

Output

Run a script to see output here.