This question already has an answer here:

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]

marked as duplicate by gre_gor, Majenko Aug 10 '18 at 20:30

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

  • 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.

  • 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.