Add BeaglePlay (AM625X) board support - #1115
Merged
makermelissa merged 2 commits intoJun 24, 2026
Merged
Conversation
- 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-ai-assistant
added a commit
to makermelissa-ai-assistant/Adafruit_Blinka
that referenced
this pull request
Jun 24, 2026
Contributor
There was a problem hiding this comment.
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
AM625Xmicrocontroller mapping andBEAGLE_PLAYboard 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 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)
Comment on lines
+83
to
+84
| "OS_AGNOSTIC": "adafruit_blinka.microcontroller.generic_agnostic_board", | ||
| "AM625X": "adafruit_blinka.microcontroller.am625x" |
makermelissa
approved these changes
Jun 24, 2026
makermelissa
left a comment
Collaborator
There was a problem hiding this comment.
Looks good to me. Requested changes (mine and copilot's have been made).
makermelissa-ai-assistant
added a commit
to makermelissa-ai-assistant/Adafruit_Blinka
that referenced
this pull request
Jun 24, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds board and microcontroller support for the BeagleBoard.org BeaglePlay.
Hardware
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 linesadafruit_blinka/board/beagleboard/beagle_play.py— board pin aliasesBEAGLE_PLAYentry inboard_imports.jsonAM625Xentry inmicrocontroller_imports.jsonPin mapping
SCL/SDA/dev/i2c-3QWIIC_SCL/QWIIC_SDA/dev/i2c-5GROVE_SCL/GROVE_SDA/dev/i2c-1LED_USR0–LED_USR4USR_BUTTONMIKROBUS_GPIO1_7–MIKROBUS_GPIO1_25Notes
python3-libgpiod(system package, present on stock Trixie image) and a venv with--system-site-packagesAdafruit-PlatformDetect>=3.89.1which fixes the BeaglePlay nvmem path detection bugspidevis exposed by defaultDevice or resource busyif the kernel LED driver is active (expected)