Skip to content

Usability Improvement: Streamline Board Selection for Connected Devices #28

@10xdev4u-alt

Description

@10xdev4u-alt

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:

  1. Connect an Arduino board (e.g., an Arduino Uno) to your system.
  2. Run main.sh.
  3. Select "Select Board" from the main menu.
  4. 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.
  5. 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:

  1. "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.
  2. "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.

Metadata

Metadata

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions