Hello Everyone,
I am currently developing a product with a SAMD21G18A running Arduino code and everything is going quite well.
However, before release I would like to lock the product down so it cannot be read from or easily modified.
I observed how by setting the security bit on the SAMD the device can no longer be read from over SWD and can only be modified after erasing. However, it appears that if the Arduino Zero or similar bootloader is on the product, it can still be written to and read from over USB.
I successfully removed the bootloader and got my code running, but I'm worried that this may be a bad practice (?), and there were some peripherals (WDT/RTC) that seemed not to be set up correctly. Perhaps I could integrate this into my own setup procedure, but i'm not sure how...
Additionally, I compiled the arduino zero bootloader and thought about removing its USB programming functionality, but I'm not quite sure where to start on that...
So my questions are:
- Any suggestions for how to properly lock this thing down?
- Is it a bad practice to remove the bootloader from an embedded device equivalent to the Zero?
- What is the best approach: Removing the bootloader / modifying it / something else entirely?
Thank you all very much for your help and excellent expertise!