user63601: From this tutorial  I'm able to nicely program an ATmega328 using SPI raspberry GPIO pins. However, when I try the same steps with  ATmega4809, avrdude seems not having instructions and outputs the following:
program enable instruction not defined for part "ATmega4809"

So, how do I program ATmega4809 chip from Raspberry?

user4143: The ATMega4809 uses UPDI (Unified Programming and Debugging Interface) for programming, not ICSP like the older ATMega328P. You need a UPDI programmer.
There is a project jtag2updi which you can run on an Uno that turns it into a JTAG to UPDI adaptor which is then compatible with avrdude -c jtag2updi ....

63601: <p>From this <a href="https://learn.adafruit.com/program-an-avr-or-arduino-using-raspberry-pi-gpio-pins" rel="nofollow noreferrer">tutorial</a>  I'm able to nicely program an ATmega328 using SPI raspberry GPIO pins. However, when I try the same steps with  ATmega4809, <code>avrdude</code> seems not having instructions and outputs the following:</p>
<pre><code>program enable instruction not defined for part &quot;ATmega4809&quot;
</code></pre>
<p>So, how do I program ATmega4809 chip from Raspberry?</p>
 4143: <p>The ATMega4809 uses UPDI (Unified Programming and Debugging Interface) for programming, not ICSP like the older ATMega328P. You need a UPDI programmer.</p>
<p>There is a project <a href="https://github.com/ElTangas/jtag2updi" rel="nofollow noreferrer">jtag2updi</a> which you can run on an Uno that turns it into a JTAG to UPDI adaptor which is then compatible with <code>avrdude -c jtag2updi ...</code>.</p>
