I designed and had made a custom PCB for a project I am working on. The PCB uses an ATMega328 chip that sits in a socket that is soldered on the board. Currently, to program the chip, I am removing the chip from the socket and putting it into an Arduino Uno to program it. However, this is becoming a pain and I have to be careful not to damage the chip every time I remove it from the sockets. I'm looking to redesign the board so that I can program the chip using Arduino while it is still on the board. I'm not entirely sure if this is possible or how I'd go about doing it, so any help would be much appreciated.
You can add a 5V TTL logic UART header.
The problem is the DMX receiver is always forcibly enabled and drives the AVR RXD pin used by bootloader.
You may need to just switch the DMX receiver off with the RE pin, or, somehow switch the AVR RXD pin between programmer and DMX.
But you have a spare IO pin, so you could also just enable the DMX receiver when your program runs, and when it does not run it will be held disabled by a resistor.
Also, just FYI, your DMX receiver does not isolate while they normally should, and has a termination resistor so it must be the last device on bus and there must be no other terminators present even if you have a DMX loop through.