If your going to radically change the internals of a device enough to require new firmware or drivers, make universal driver packages
Even this isn't enough. I remember arguing with a network card ages ago under Linux, for which they provided no drivers, Linux's autodetect didn't work because it saw it as a card that it knew had a different chipset, and it was virtually impossible to figure out how to fix it.
If you've reengineered a product, give it a different name, at least in firmware.