Skip to content

Add BeaglePlay (AM625X) board support - #1115

Merged
makermelissa merged 2 commits into
adafruit:mainfrom
makermelissa-ai-assistant:beagleplay-board-support
Jun 24, 2026
Merged

Add BeaglePlay (AM625X) board support#1115
makermelissa merged 2 commits into
adafruit:mainfrom
makermelissa-ai-assistant:beagleplay-board-support

Conversation

@makermelissa-ai-assistant

@makermelissa-ai-assistant makermelissa-ai-assistant commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

Adds board and microcontroller support for the BeagleBoard.org BeaglePlay.

Hardware

  • SoC: TI AM625X (aarch64)
  • Tested on: Debian Trixie 2026-05-19, Python 3.13.5, libgpiod 2.2.0

What's added

  • adafruit_blinka/microcontroller/am625x/pin.py — libgpiod Pin definitions for all three user-facing I2C buses, USR LEDs, user button, and MIKROBUS GPIO lines
  • adafruit_blinka/board/beagleboard/beagle_play.py — board pin aliases
  • BEAGLE_PLAY entry in board_imports.json
  • AM625X entry in microcontroller_imports.json

Pin mapping

Name Bus/GPIO
SCL / SDA MIKROBUS I2C → /dev/i2c-3
QWIIC_SCL / QWIIC_SDA QWIIC/STEMMA QT → /dev/i2c-5
GROVE_SCL / GROVE_SDA Grove → /dev/i2c-1
LED_USR0LED_USR4 gpiochip2 lines 3–9
USR_BUTTON gpiochip2 line 18
MIKROBUS_GPIO1_7MIKROBUS_GPIO1_25 gpiochip3 lines 7–25

Notes

  • Requires python3-libgpiod (system package, present on stock Trixie image) and a venv with --system-site-packages
  • Requires Adafruit-PlatformDetect>=3.89.1 which fixes the BeaglePlay nvmem path detection bug
  • MIKROBUS SPI is managed by the Greybus/CC1352P7 coprocessor; no spidev is exposed by default
  • USR LEDs may show Device or resource busy if the kernel LED driver is active (expected)

- Add src/adafruit_blinka/microcontroller/ti/am625x/pin.py with
  libgpiod Pin definitions for all three I2C buses:
    MIKROBUS i2c-3, Grove i2c-1, QWIIC/STEMMA QT i2c-5
  Plus USR LEDs, user button, and MIKROBUS GPIO lines
- Add src/adafruit_blinka/board/beagleboard/beagle_play.py exposing
  SCL/SDA (MIKROBUS), QWIIC_SCL/SDA, GROVE_SCL/SDA, LED_USRn,
  USR_BUTTON, and MIKROBUS_GPIO1_N pins
- Register BEAGLE_PLAY in board_imports.json
- Register AM625X in microcontroller_imports.json

Requires Adafruit-PlatformDetect>=3.89.1 (fixes BeaglePlay nvmem
path in _beaglebone_id so BEAGLE_PLAY is detected correctly).

Tested on BeaglePlay (aarch64, Debian Trixie 2026-05-19, Python 3.13.5,
libgpiod 2.2.0, PlatformDetect 3.89.1):
- board.id = BEAGLE_PLAY
- busio.I2C works on MIKROBUS (i2c-3), QWIIC (i2c-5), and Grove (i2c-1)
@makermelissa
makermelissa requested a review from Copilot June 24, 2026 18:48
makermelissa-ai-assistant added a commit to makermelissa-ai-assistant/Adafruit_Blinka that referenced this pull request Jun 24, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds Adafruit Blinka support for the BeagleBoard.org BeaglePlay by introducing an AM625X microcontroller definition (libgpiod-based) and a corresponding BeaglePlay board pin alias module, then wiring both into Blinka’s import maps.

Changes:

  • Added AM625X microcontroller mapping and BEAGLE_PLAY board mapping in the JSON import registries.
  • Introduced AM625X libgpiod pin definitions (I2C buses, user LEDs/button, and MIKROBUS GPIOs).
  • Added BeaglePlay board-level pin aliases for the exposed connectors and user I/O.

Reviewed changes

Copilot reviewed 4 out of 6 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
src/microcontroller_imports.json Registers the AM625X microcontroller package for platform detection imports.
src/board_imports.json Registers the BEAGLE_PLAY board module for board-level pin imports.
src/adafruit_blinka/microcontroller/ti/am625x/pin.py Adds libgpiod Pin mappings and I2C port tuples for AM625X on BeaglePlay.
src/adafruit_blinka/microcontroller/ti/am625x/init.py Introduces the AM625X microcontroller package marker.
src/adafruit_blinka/microcontroller/ti/init.py Introduces the TI microcontroller namespace package marker.
src/adafruit_blinka/board/beagleboard/beagle_play.py Adds BeaglePlay board aliases for I2C connectors, MIKROBUS GPIO, LEDs, and button.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +28 to +38
# MIKROBUS general-purpose GPIO lines
MIKROBUS_GPIO1_7 = Pin((3, 7))
MIKROBUS_GPIO1_8 = Pin((3, 8))
MIKROBUS_GPIO1_9 = Pin((3, 9))
MIKROBUS_GPIO1_10 = Pin((3, 10))
MIKROBUS_GPIO1_11 = Pin((3, 11))
MIKROBUS_GPIO1_12 = Pin((3, 12))
MIKROBUS_W1 = Pin((3, 13)) # 1-Wire GPIO
MIKROBUS_GPIO1_14 = Pin((3, 14))
MIKROBUS_GPIO1_24 = Pin((3, 24))
MIKROBUS_GPIO1_25 = Pin((3, 25))
Comment on lines +52 to +54
# ordered as (uartId, txId, rxId)
# MIKROBUS UART = /dev/ttyS0 (main_uart0)
uartPorts = ()
Comment thread src/board_imports.json
Comment on lines +158 to +159
"PARTICLE_TACHYON": "adafruit_blinka.board.particle.tachyon",
"BEAGLE_PLAY": "adafruit_blinka.board.beagleboard.beagle_play"
…UART, bump PlatformDetect

- Move microcontroller package from ti/am625x/ to am625x/ to match
  the pattern of other BeagleBoard MCU dirs (dra74x, am65xx, am335x)
- Add missing MIKROBUS GPIO lines 15-18, 20-25 (line 19 is VDD_3V3_SD
  regulator control and is intentionally omitted)
- Expose MIKROBUS_GPIO1_22/23 as aliases for MIKROBUS_SCL/SDA
- Add UART_TX/UART_RX (gpiochip3 lines 24/25) and uartPorts entry
  for /dev/ttyS0 (MIKROBUS UART)
- Bump Adafruit-PlatformDetect minimum in setup.py from >=3.70.1 to
  >=3.89.1 (required for correct BeaglePlay BEAGLE_PLAY detection)

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 5 out of 6 changed files in this pull request and generated 1 comment.

Comment on lines +83 to +84
"OS_AGNOSTIC": "adafruit_blinka.microcontroller.generic_agnostic_board",
"AM625X": "adafruit_blinka.microcontroller.am625x"

@makermelissa makermelissa left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me. Requested changes (mine and copilot's have been made).

@makermelissa
makermelissa merged commit ddc4686 into adafruit:main Jun 24, 2026
1 check passed
makermelissa-ai-assistant added a commit to makermelissa-ai-assistant/Adafruit_Blinka that referenced this pull request Jun 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants