avrdude: ser_open(): can't open device "/dev/ttyACM0": Permission denied

Have you added yourself to the dialout group?

That is the only thing I ever needed to do.

...R