Firmware control

Good afternoon,

I want to make an IoT implementation. When the device finds its network, I want it to find the "controller" device on the network, and check its internal version number variable to the preferred version number variable, and if it's out of date, have the other push an update.

Is this possible, or is the network connection part of the running system, and thus writing a new firmware cannot be done while it's running in device mode (ie, without wired connection.)

Which Arduino are you using?
Which IoT shield/module are you using to connect to the internet?

You esentially need an internet enabled bootloader.
It may be possible, depends which devices you are using.

You can do OTA (Over The Air) updates using a wireless connection using ESP8266 and EPS32 boards if that is what you have in mind

I have the Nano 33 IoT.

I'll look up some of these terms. Thanks!

Some discussion of OTA updates for different boards.
OTA = Over The Air (e.g. via WiFi, Bluetooth, GSM etc)