Differentiating software and hardware is not always possible: hence, /firmware/ covers one grey area.
If it requires a soldering iron to be changed, then it is hardware. Firmware simply clouds, and in a bad way. People can claim that since it is firmware, you do not need the four freedoms, even if the firmware is software, and can be changed by reflashing, or reuploading the program to the hardware.
So unless you need a soldering iron to solder together a couple TTL chips to get it do what you want, it is by all means `software'.