openwisp / openwisp/openwisp-controller
[feature] Add board_name field to Device model for DTB board identification
@atif09 is already working on this.
Since Sep 18, 2026.
- Dominant language
- Python
- Stars
- 773
- Forks
- 315
- Avg merge
- 2d 16h
- Merged PRs (30d)
- 14
Description
Is your feature request related to a problem? Please describe.
NOTE : This is a follow-up issue related to the GSoC 2026 project: Automatic Extraction of OpenWrt Firmware Image Metadata
The firmware upgrader module currently pairs firmware images to devices only via Device.model == FirmwareImage.board (exact match).
Multi-board OpenWrt images (one image supporting several hardware variants, distinguished only by DTB compatible strings) can't have a single board value, so they always require manual confirmation. Metadata extraction already populates each image's compatible list (openwisp-firmware-upgrader#437), but Device has no comparable field to match against.
Describe the solution you'd like
Add board_name field to the Device model to store the device's DTB board identifier (e.g. tplink,archer-c7-v2):
CharField, blank/nullable, indexed if firmware-upgrader will filter on it- Auto-populated from registration data, not user-editable (same treatment as
os/system) - Exposed in the REST API device serializer
- Migration included
This issue only adds the field. Populating it is a separate issue in openwisp-config
Describe alternatives you've considered
Keep pairing limited to board only, leaving multi-board images permanently dependent on manual confirmation. Works, but means a human has to intervene even when the device's hardware is unambiguous from its DTB identifier.
Additional context
Device.model is already populated the same way: read from the device during registration and stored automatically. board_name follows the identical mechanism, just carrying the DTB-format identifier instead of the human-readable one.
Depends on openwisp-config#282
Depends on openwisp-firmware-upgrader#493
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.