If I was to mass produce a microcontroller board I have designed based around the atmega328 (very similar to an arduino uno) but for one embedded task where I want one program only to be stored on it. I want to make the program read only and impossible to access and impossible to overwrite. The board will not include a USB FTDI chip in order to prevent another program being uploaded via arduino IDE. How would I upload said program to the microcontroller?

Would I have to make use of ICSP pins (I dont know much about that) and if this is an impossible task and so a USB will have to be integrated to upload programs... How would i prevent other programs overwriting the main program and also prevent this program from being viewed? [The main program is written in the arduino IDE]

  • 1. you use pins built into the 328 to program it. 2. removing the pins will help, but ultimately, you can't. – dandavis Aug 10 '18 at 20:19

I think you cannot prevent overwriting the firmware, neither prevent viewed by others.

However, you can detect that someone overwrites it (besides you), by reading some code from e.g. EEPROM based on the content of your firmware. If you read a different code, than you can act upon it.

| improve this answer | |
  • You can prevent reading by setting the lock fuses – Gerben Aug 11 '18 at 15:17

Not the answer you're looking for? Browse other questions tagged or ask your own question.