Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Only apply VID-only port property association to compatible dev tools #2517

Closed
wants to merge 1 commit into from

Commits on Sep 14, 2024

  1. Only apply VID-only port property association to compatible dev tools

    The Arduino boards platform framework allows properties of a port to be
    associated with a board definition. The Arduino development software
    will identify a port having the associated properties as that board.
    
    The "Blues boards" board definition contains an association for the vid
    port property value of 0x30A4. Typically, in addition to the vid
    property, a companion pid property will also be associated so that the
    association is specific to devices with that VID/PID pair. However, this
    board definition only associates a vid property. Although unusual, this
    is reasonable in this case where the board definition provides support
    for all models of the Blues boards (rather than one specific model as is
    typically the case).
    
    Unfortunately it seems that the Arduino IDE 1.x codebase is written in a
    way that assumes a PID association will always be provided along with a
    VID association. When a platform is installed that contains a board
    definition that associates a vid property without also associating a pid
    property, it breaks port discovery entirely, causing no ports to be
    discovered for any board.
    
    The port discovery and port properties association system has been
    completely reworked since the time of Arduino IDE 1.x. The modern
    system, which is used by Arduino IDE 2.x and Arduino CLI, doesn't have
    any problem with this VID-only association. This means that it would be
    possible to define this association without breaking Arduino IDE 1.x if
    the association could be applied exclusively for the modern Arduino
    development software versions. Arduino IDE 1.x only uses the port
    property association for the convenience feature of labeling the port in
    the "Port" menu, so the lack of an association doesn't cause any
    meaningful impact.
    
    At the time the port discovery and port properties association system
    was reworked, the port property association properties were renamed to
    support association with any arbitrary properties. (while retaining
    support for the old property names). The new property names are only
    recognized by the modern Arduino development software and have no effect
    on Arduino IDE 1.x.
    
    The port association properties for the "Blues boards" board definition
    are migrated from the old property names previously in use to the new
    names. This causes the port property association to no longer be
    recognized by Arduino IDE 1.x, fixing the breakage of its port discovery
    system. The association will still be recognized by the modern versions
    of Arduino development software just as before.
    per1234 committed Sep 14, 2024
    Configuration menu
    Copy the full SHA
    a8bb741 View commit details
    Browse the repository at this point in the history