1. A method for upgrading a wireless router, comprising the steps of: (a) containing a firmware version, namely, a flash memory in the wireless router containing a first version of router firmware, the router firmware including instructions to be executed by an ARM-based chipset processor of the wireless router, the router firmware also including data; (b) remotely requesting a firmware update, namely, the wireless router sending a request for a firmware update, the request being sent from the wireless router over a network connection toward a server; (c) receiving a responsive firmware image, namely, the wireless router receiving over the network connection a response to the request for a firmware update, the response including at least a firmware image for a second version of router firmware which differs from the first version of router firmware by reason of containing at least one firmware change, a firmware change being a difference in firmware data and/or a difference in firmware instructions, the firmware image including a plurality of chunks, each chunk having a size which is no greater than a predetermined chunk size; (d) destructively overwriting flash memory chunks, namely, the wireless router destructively overwriting the first version of router firmware in the flash memory with the second version of router firmware, and wherein the wireless router is configured to run whatever version of router firmware is in the router's flash memory after being rebooted; and (e) going live with upgraded firmware, namely, the wireless router rebooting, thereby making the firmware change(s) go live.