Skip to content

Commit ad823eb

Browse files
youhaveme9Roshan Kumar
andauthored
[gsoc25] Added blog post for Firmware Upgrader project
* [docs] Added blog post for firmware upgrader project gsoc-2025 * [chores] Refactored blog * [fix] Small changes * [fix] Fixed punctuations * [gsoc25] FW upgrader header image * [gsoc25] Fw upgrader: clarified next steps Let's not link gsoc25 because it won't exist anymore once it's merged. --------- Co-authored-by: Roshan Kumar <roshan.kumar@cred.club>
1 parent 996acb9 commit ad823eb

File tree

6 files changed

+203
-0
lines changed

6 files changed

+203
-0
lines changed
Lines changed: 203 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,203 @@
1+
GSoC 2025: Improve UX and Flexibility of the Firmware Upgrader Module
2+
=====================================================================
3+
4+
:date: 2025-09-23
5+
:author: Roshan Kumar
6+
:tags: gsoc, firmware-upgrader, new-features
7+
:category: gsoc
8+
:lang: en
9+
:image_url: https://openwisp.org/images/blog/gsoc25/firmware-upgrader/gsoc25-firmware-upgrader.png
10+
:image_width: 753
11+
:image_height: 759
12+
13+
.. image:: {static}/images/blog/gsoc25/firmware-upgrader/gsoc25-firmware-upgrader.png
14+
:alt: Google Summer of Code, OpenWISP Firmware Upgrader Module
15+
:align: center
16+
17+
Over the past three months, I had the opportunity to work on my Google
18+
Summer of Code project under the guidance of `Federico Capoano
19+
(nemesifier) <https://github.com/nemesifier>`_, `Aryaman (Aryamanz29)
20+
<https://github.com/Aryamanz29>`_, `Gagan Deep (pandafy)
21+
<https://github.com/pandafy>`_ and `Oliver Kraitschy (okraits)
22+
<https://github.com/okraits>`_. The journey was filled with challenges,
23+
creative problem-solving, and exciting milestones that not only deepened
24+
my technical knowledge but also strengthened my ability to collaborate and
25+
adapt.
26+
27+
About the Project
28+
-----------------
29+
30+
The firmware upgrader enhancements address key pain points network
31+
administrators face:
32+
33+
- **Uncertainty about upgrade progress**: No real-time feedback.
34+
- **Inability to stop problematic upgrades**: No cancellation controls.
35+
- **Lack of granular control**: Upgrading entire networks vs. targeted
36+
subsets.
37+
38+
The enhanced system provides real-time feedback, safety controls, and
39+
filtering capabilities that make managing firmware across large
40+
deployments safer and more efficient.
41+
42+
Features Implemented
43+
--------------------
44+
45+
Real-Time Firmware Upgrade Progress Tracking
46+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
47+
48+
**Single Device Upgrade Progress**
49+
50+
.. image:: {static}/images/blog/gsoc25/firmware-upgrader/single-device-progress-tracking.gif
51+
:alt: Real-Time upgrade progress tracking
52+
53+
**Mass Upgrade Progress**
54+
55+
.. image:: {static}/images/blog/gsoc25/firmware-upgrader/mass-upgrade-progress-tracking.gif
56+
:alt: Real-Time upgrade progress tracking
57+
58+
The firmware upgrade progress tracking feature provides real-time updates
59+
on the progress of firmware upgrades. This feature is implemented using
60+
WebSocket connections to deliver real-time progress updates directly to
61+
the admin interface, eliminating the need for manual page refreshes.
62+
63+
Progress tracking is implemented at multiple levels, from individual
64+
device operations to batch upgrade summaries, providing comprehensive
65+
visibility into upgrade status.
66+
67+
**Use Cases**:
68+
69+
- Monitor real-time progress of long-running firmware upgrades without
70+
uncertainty
71+
- Access upgrade logs without manual page refreshes
72+
73+
**Pull Requests:**
74+
75+
- `Show upgrade progress for single upgrade operations in real time
76+
<https://github.com/openwisp/openwisp-firmware-upgrader/pull/320>`_
77+
- `Show upgrade progress for mass upgrade operations in real time
78+
<https://github.com/openwisp/openwisp-firmware-upgrader/pull/325>`_
79+
80+
Upgrade Operation Cancellation
81+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
82+
83+
.. image:: {static}/images/blog/gsoc25/firmware-upgrader/upgrade-operation-cancellation.gif
84+
:alt: Upgrade Operation Cancellation
85+
86+
Users can safely cancel firmware upgrade operations through a prominent
87+
"Cancel" button that appears during in-progress upgrades, with built-in
88+
safety mechanisms to prevent cancellation during critical phases.
89+
90+
The system automatically disables cancellation once an upgrade reaches 60%
91+
completion, typically when firmware flashing begins. This prevents
92+
dangerous interruptions that could brick devices.
93+
94+
When an upgrade is cancelled, the system automatically restarts any
95+
services that were stopped during the upgrade process, ensuring devices
96+
remain in a stable state.
97+
98+
**Use Cases**:
99+
100+
- Stop problematic upgrades that are taking too long or showing errors
101+
- Cancel upgrades when emergency maintenance requires immediate device
102+
access
103+
104+
**Pull Requests:**
105+
106+
- `Allow cancelling firmware upgrade operations
107+
<https://github.com/openwisp/openwisp-firmware-upgrader/pull/329>`_
108+
109+
Mass Upgrade by Group and Location
110+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
111+
112+
.. image:: {static}/images/blog/gsoc25/firmware-upgrader/mass-upgrade-by-group-and-location.gif
113+
:alt: Mass Upgrade by Group and Location
114+
115+
Mass upgrade operations now support precise device targeting through
116+
device group and location filters, enabling administrators to upgrade
117+
specific subsets of devices rather than entire networks.
118+
119+
Geographic or logical location filters enable site-specific upgrades,
120+
allowing for gradual rollouts across different office locations,
121+
buildings, or network segments.
122+
123+
Group and location filters can be used together to achieve very precise
124+
targeting, such as "Access Points in Building A" or "Edge devices in the
125+
European region".
126+
127+
**Use Cases**:
128+
129+
- Upgrade devices gradually by location (office by office, region by
130+
region)
131+
- Update only specific device types (routers vs access points)
132+
- Upgrade test environments or pilot groups before production rollout
133+
- Quickly target security updates to specific vulnerable device groups
134+
135+
**Pull Requests:**
136+
137+
- `Allow mass upgrade by their group or location
138+
<https://github.com/openwisp/openwisp-firmware-upgrader/pull/343>`_
139+
140+
Current state
141+
-------------
142+
143+
We are maintaining this work in the ``gsoc25`` branch of the `Firmware
144+
Upgrader Module
145+
<https://github.com/openwisp/openwisp-firmware-upgrader>`_.
146+
147+
Once all the remaining open PRs are merged, we will proceed with a final
148+
general verification and then merge this branch into the main branch.
149+
150+
**We aim to release these improvements in OpenWISP 26**.
151+
152+
Documentation Updates are tracked under the Pull Request `Updated
153+
quick-start docs for gsoc25 features
154+
<https://github.com/openwisp/openwisp-firmware-upgrader/pull/347>`_.
155+
156+
My Experience
157+
-------------
158+
159+
Working on `OpenWISP Firmware Upgrader
160+
<https://github.com/openwisp/openwisp-firmware-upgrader>`_ during GSoC has
161+
been an enriching experience that deepened my understanding of real-time
162+
web applications, network device management, and large-scale system
163+
design. The project challenged me to think about user experience from an
164+
administrator's perspective - where clarity, safety, and control are
165+
paramount.
166+
167+
I gained valuable experience with WebSocket programming, real-time data
168+
synchronization, and building responsive user interfaces that handle
169+
asynchronous operations gracefully. Working with Django Channels for
170+
WebSocket support taught me about the complexities of managing persistent
171+
connections and ensuring message delivery reliability.
172+
173+
The safety aspects of firmware upgrade cancellation required careful
174+
consideration of device states and recovery mechanisms. This taught me
175+
about the importance of building fail-safes into critical operations that
176+
could potentially damage hardware if interrupted incorrectly.
177+
178+
Implementing the group and location filtering system provided insights
179+
into building flexible query systems that remain performant even with
180+
large device inventories. The dry-run capability development emphasized
181+
the importance of user confirmation and preview features in administrative
182+
interfaces.
183+
184+
Beyond the technical skills, I learned valuable lessons about testing
185+
complex, stateful operations and ensuring that real-time features work
186+
reliably across different network conditions and browser environments.
187+
188+
What's Next?
189+
------------
190+
191+
The firmware upgrade enhancements provide a solid foundation for future
192+
improvements to OpenWISP's device management capabilities.
193+
194+
I plan to continue contributing to OpenWISP, focusing on user experience
195+
improvements and helping other contributors understand the firmware
196+
upgrade system. The foundation built during GSoC provides many
197+
opportunities for incremental improvements and new features that can
198+
benefit network administrators managing diverse OpenWISP deployments.
199+
200+
The enhanced firmware upgrade experience represents a significant step
201+
forward in making OpenWISP more user-friendly and suitable for large-scale
202+
network management scenarios where clarity, control, and safety are
203+
essential.
26.4 KB
Loading
5.7 MB
Loading
5.5 MB
Loading
1.67 MB
Loading
2.34 MB
Loading

0 commit comments

Comments
 (0)