GSoC 2025: Improve UX and Flexibility of the Firmware Upgrader Module
Published on by Roshan Kumar
Category: gsoc

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), Aryaman (Aryamanz29), Gagan Deep (pandafy) and Oliver Kraitschy (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 address key pain points network administrators face:
- Uncertainty about upgrade progress: No real-time feedback.
- Inability to stop problematic upgrades: No cancellation controls.
- Lack of granular control: Upgrading entire networks vs. targeted subsets.
The enhanced system provides real-time feedback, safety controls, and filtering capabilities that make managing firmware across large deployments safer and more efficient.
Features Implemented
Real-Time Firmware Upgrade Progress Tracking
Single Device Upgrade Progress

Mass Upgrade Progress

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:
- Monitor real-time progress of long-running firmware upgrades without uncertainty
- Access upgrade logs without manual page refreshes
Pull Requests:
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 showing errors
- Cancel upgrades when emergency maintenance requires immediate device access
Pull Requests:
Mass Upgrade by Group and Location

Mass upgrade operations now support precise device targeting through 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:
- Upgrade devices gradually by location (office by office, region by region)
- Update only specific device types (routers vs access points)
- Upgrade test environments or pilot groups before production rollout
- Quickly target security updates to specific vulnerable device groups
Pull Requests:
Current state
We are maintaining this work in the gsoc25 branch of the Firmware Upgrader Module.
Once all the remaining open PRs are merged, we will proceed with a final general verification and then merge this branch into the main branch.
We aim to release these improvements in OpenWISP 26.
Documentation Updates are tracked under the Pull Request Updated quick-start docs for gsoc25 features.
My Experience
Working on 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.