Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
201 changes: 201 additions & 0 deletions content/blog/gsoc-25-improve-ux-firmware-module.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,201 @@
GSoC 2025: Improve UX and Flexibility of the Firmware Upgrader Module
=====================================================================

:date: 2025-09-23
:author: Roshan Kumar
:tags: gsoc, firmware-upgrader, new-features
:category: gsoc
:lang: en
:image_url: https://openwisp.org/images/blog/gsoc25/firmware-upgrader/gsoc25-firmware-upgrader.png
:image_width: 713
:image_height: 297

.. image:: {static}/images/blog/gsoc25/firmware-upgrader/gsoc25-firmware-upgrader.png
:alt: Google Summer of Code, OpenWISP Firmware Upgrader Module
:align: center

Over the past three months, I had the opportunity to work on my Google
Summer of Code project under the guidance of Federico Capoano (nemesifier)
<https://github.com/nemesifier>, Aryaman (Aryamanz29)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Link syntax is not right

<https://github.com/Aryamanz29>, and Oliver Kraitschy (okraits)
<https://github.com/okraits>_. The journey was filled with challenges,
creative problem-solving, and exciting milestones that not only deepened
my technical knowledge but also strengthened my ability to collaborate and
adapt.

About the Project
-----------------

The firmware upgrader enhancements significantly improve the user
experience when managing firmware updates across OpenWISP networks. These
features address common pain points that network administrators face:
uncertainty about upgrade progress, inability to stop problematic
upgrades, and lack of granular control over which devices to upgrade in
large deployments.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

You are mentioning the key pain points, I think using a list would allow faster reading. I'd try to reduce the amount of words. Less is more.


The enhanced firmware upgrade system now provides real-time feedback,
safety controls, and filtering the upgrade capabilities that make managing
firmware across hundreds or thousands of devices both safer and more
efficient.

Technical Approach
~~~~~~~~~~~~~~~~~~

The solution uses WebSocket connections to deliver real-time progress
updates directly to the admin interface, eliminating the need for manual
page refreshes. Progress tracking is implemented at multiple levels - from
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

let's avoid hyphens which are too chatgpty, use commas instead.

individual device operations to batch upgrade summaries - providing
comprehensive visibility into upgrade status.

For safety, the cancellation feature includes checks that prevent
cancellation once the firmware flashing phase begins. This prevents
potentially damaging interruptions during critical phases of the upgrade
process.

The mass upgrade filtering system integrates with OpenWISP's existing
device group and location management, allowing administrators to target
specific subsets of devices with surgical precision.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

After reading this section I think we'd be better of to moving this info to each feature subsection below. Let's go straight to the point and avoid sections without images as people don't like blobs of texts.


Features Implemented
--------------------

Real-Time Firmware Upgrade Progress Tracking
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Single Device Upgrade Progress

.. image:: {static}/images/blog/gsoc25/firmware-upgrader/single-device-progress-tracking.gif
:alt: Real-Time upgrade progress tracking

Mass Upgrade Progress

.. image:: {static}/images/blog/gsoc25/firmware-upgrader/mass-upgrade-progress-tracking.gif
:alt: Real-Time upgrade progress tracking

The firmware upgrade progress tracking feature provides real-time updates
on the progress of firmware upgrades. This feature is implemented using
WebSocket connections to deliver real-time progress updates directly to
the admin interface, eliminating the need for manual page refreshes.

Progress tracking is implemented at multiple levels - from individual
device operations to batch upgrade summaries - providing comprehensive
visibility into upgrade status.

**Use Cases**: - Network administrators can monitor long-running firmware
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggested change
**Use Cases**: - Network administrators can monitor long-running firmware
**Use Cases**: network administrators can monitor the progress of long-running firmware
upgrades, reading log output in real time without having to reload the page.

upgrades progress and logs of the upgrade without uncertainty and without
refreshing the page.s

Upgrade Operation Cancellation
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. image:: {static}/images/blog/gsoc25/firmware-upgrader/upgrade-operation-cancellation.gif
:alt: Upgrade Operation Cancellation

Users can safely cancel firmware upgrade operations through a prominent
"Cancel" button that appears during in-progress upgrades, with built-in
safety mechanisms to prevent cancellation during critical phases.

The system automatically disables cancellation once an upgrade reaches 60%
completion, typically when firmware flashing begins. This prevents
dangerous interruptions that could brick devices.

When an upgrade is cancelled, the system automatically restarts any
services that were stopped during the upgrade process, ensuring devices
remain in a stable state.

**Use Cases**: Stop problematic upgrades that are taking too long or
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

is this meant to be a list? It's not being formatted as such

showing errors - Cancel upgrades when emergency maintenance requires
immediate device access.

Mass Upgrade by Group and Location
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. image:: {static}/images/blog/gsoc25/firmware-upgrader/mass-upgrade-by-group-and-location.gif
:alt: Mass Upgrade by Group and Location

Mass upgrade operations now support precise device targeting through
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Please let's link the PRs in their respective sections. It's ok to also have a summary at the end.

Not sure if other blog posts did the same, I will check, but it makes it easier for readers to quickly find the github PR while reading about the feature.

device group and location filters, enabling administrators to upgrade
specific subsets of devices rather than entire networks.

Geographic or logical location filters enable site-specific upgrades,
allowing for gradual rollouts across different office locations,
buildings, or network segments.

Group and location filters can be used together to achieve very precise
targeting, such as "Access Points in Building A" or "Edge devices in the
European region".

**Use Cases**: - **Staged Rollouts**: Upgrade devices gradually by
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

same here

location (office by office, region by region) - **Device Type Targeting**:
Update only specific device types (routers vs access points) - **Testing
Deployments**: Upgrade test environments or pilot groups before production
rollout - **Emergency Patches**: Quickly target security updates to
specific vulnerable device groups

Current state
-------------

We are maintaining the ``gsoc25`` branch of openwisp-firmware-upgrader
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Link the repo please.

module as parent branch for all the firmware upgrade features. Once all
the PRs are merged and features are tested and validated, we can proceed
with releasing these along with OpenWISP 26.

You can follow the development process and explore the implementation
details in the following pull requests:

- `how upgrade progress for single upgrade operations in real time
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Was it meant to be show?

<https://github.com/openwisp/openwisp-firmware-upgrader/pull/320>`_
- `Show upgrade progress for mass upgrade operations in real time
<https://github.com/openwisp/openwisp-firmware-upgrader/pull/325>`_
- `Allow cancelling firmware upgrade operations
<https://github.com/openwisp/openwisp-firmware-upgrader/pull/329>`_
- `Allow mass upgrade by their group or location
<https://github.com/openwisp/openwisp-firmware-upgrader/pull/343>`_
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Let's mention the docs updates too


My Experience
-------------

Working on the OpenWISP firmware upgrader during GSoC has been an
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggested change
Working on the OpenWISP firmware upgrader during GSoC has been an
Working on `OpenWISP Firmware Upgrader <https://github.com/openwisp/openwisp-firmware-upgrader>`__ during GSoC has been an

enriching experience that deepened my understanding of real-time web
applications, network device management, and large-scale system design.
The project challenged me to think about user experience from an
administrator's perspective - where clarity, safety, and control are
paramount.

I gained valuable experience with WebSocket programming, real-time data
synchronization, and building responsive user interfaces that handle
asynchronous operations gracefully. Working with Django Channels for
WebSocket support taught me about the complexities of managing persistent
connections and ensuring message delivery reliability.

The safety aspects of firmware upgrade cancellation required careful
consideration of device states and recovery mechanisms. This taught me
about the importance of building fail-safes into critical operations that
could potentially damage hardware if interrupted incorrectly.

Implementing the group and location filtering system provided insights
into building flexible query systems that remain performant even with
large device inventories. The dry-run capability development emphasized
the importance of user confirmation and preview features in administrative
interfaces.

Beyond the technical skills, I learned valuable lessons about testing
complex, stateful operations and ensuring that real-time features work
reliably across different network conditions and browser environments.

What's Next?
------------

The firmware upgrade enhancements provide a solid foundation for future
improvements to OpenWISP's device management capabilities.

I plan to continue contributing to OpenWISP, focusing on user experience
improvements and helping other contributors understand the firmware
upgrade system. The foundation built during GSoC provides many
opportunities for incremental improvements and new features that can
benefit network administrators managing diverse OpenWISP deployments.

The enhanced firmware upgrade experience represents a significant step
forward in making OpenWISP more user-friendly and suitable for large-scale
network management scenarios where clarity, control, and safety are
essential.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.