Thanks for the info. This looks like I may be getting in way over my head, but I'm still interested. One question I have is, what hardware do I need to mess with the MCU? Is a BDM programmer necessary? Based on a quick Google search, a BDM programmer looks like it'll cost me hundreds of dollars, which is way more than I can afford to spend on an experiment.
The updater program which was worked on in this thread sounds like it would be a huge help to me, which makes me wonder if there's some way to modify it so that pirates can't use it easily.
I'm not an expert on encryption or protection schemes, so this may sound stupid (I apologize in advance), but maybe the updater could try to recognize whether a firmware image is ripped from an actual iRobot
image versus being homebrew, and only allow homebrew firmware images to be sent to the Roomba? Maybe this could be done by detecting snippets of code that are unique to iRobot
code? Or maybe by requiring homebrew firmware to include some specific custom signature at a certain address which can't be added to an official image? E.g. require homebrew firmware to use a specified machine-language routine that outputs a certain string over the serial port, which is long enough that inserting that code into an iRobot
image at the required address would overwrite some code necessary for the official iRobot
firmware to boot, and then have the updater check for that code? I don't know how well any of this would work, but I think being able to upload homebrew firmware to a Roomba/Create through the serial port would be extremely useful.
The other thing that I personally think should be kept in mind is, if a few evil pirates download an iRobot
image and use it with the updater, what damage is done? Not much; a few people were able to repair their Roombas without bothering iRobot
about it (my understanding is that iRobot
will provide an OSMO for free if the Roomba is defective and needs it). Any actual competitor to iRobot
which used pirated software to develop their product would be vulnerable to a lawsuit, and thus I doubt that any large companies would try it. In general, software pirates are individuals who just want to use something for personal use without paying for it: illegal, but not a large threat to iRobot
given the nature of the software we're discussing. Large companies are usually very careful not to pirate anything, even minor stuff, because then any profits they make from the resulting product would be subject to a certain-to-happen lawsuit. Thus, I don't really think much damage would occur if pirates were to use the updater program. Please correct me if I'm wrong!
Please let me know if I will need a BDM programmer. Thanks again for the info!