Problem Description:
The current list_installed_boards function within main.sh (previously referred to as aci_project/bin/aci.sh) presents the entire output of arduino-cli board listall via gum filter. While this provides a comprehensive list of all possible Fully Qualified Board Names (FQBNs), it can be overwhelming and confusing for beginners. Users often intend to configure an actively connected board, but there's no immediate guidance or prioritization towards detecting and offering these. This forces users to manually search through a potentially very long list to find their specific board.
Impact:
- Increases cognitive load and decision fatigue for new users, potentially leading to confusion or incorrect board selection.
- Slows down the initial setup and configuration process as users have to sift through many irrelevant options.
- Detracts from the "interactive" experience and user-friendly experience
aci aims to provide by not being context-aware about connected hardware.
Steps to Reproduce:
- Connect an Arduino board (e.g., an Arduino Uno) to your system.
- Run
main.sh.
- Select "Select Board" from the main menu.
- Expected: The script might first ask if you want to see connected boards, or at least visually highlight them if they are present in the full list.
- Actual: A long, unfiltered list of all possible FQBNs is displayed. The user must manually find their "Arduino Uno" FQBN (e.g.,
arduino:avr:uno) from hundreds of options, even though it's physically connected.
Proposed Solution:
Modify the list_installed_boards function to provide a more guided and user-friendly experience. This can be achieved by first offering a choice to the user:
- "Show Connected Boards": This option would leverage
arduino-cli board list to display only the boards currently connected to the system. If no boards are connected, it could gracefully fall back to showing all available boards with an informative message.
- "Show All Available Boards": This option would retain the current behavior, using
arduino-cli board listall for advanced users who want to configure boards not currently connected.
When a connected board is selected, the associated serial port can be automatically captured and set.
Problem Description:
The current
list_installed_boardsfunction withinmain.sh(previously referred to asaci_project/bin/aci.sh) presents the entire output ofarduino-cli board listallviagum filter. While this provides a comprehensive list of all possible Fully Qualified Board Names (FQBNs), it can be overwhelming and confusing for beginners. Users often intend to configure an actively connected board, but there's no immediate guidance or prioritization towards detecting and offering these. This forces users to manually search through a potentially very long list to find their specific board.Impact:
aciaims to provide by not being context-aware about connected hardware.Steps to Reproduce:
main.sh.arduino:avr:uno) from hundreds of options, even though it's physically connected.Proposed Solution:
Modify the
list_installed_boardsfunction to provide a more guided and user-friendly experience. This can be achieved by first offering a choice to the user:arduino-cli board listto display only the boards currently connected to the system. If no boards are connected, it could gracefully fall back to showing all available boards with an informative message.arduino-cli board listallfor advanced users who want to configure boards not currently connected.When a connected board is selected, the associated serial port can be automatically captured and set.