I got a bit carried away reading the serprog-duino firmware code and decided to just see what it'd look like with my frser-* codebase. So, fresh out of the oven, and untested (i tested on my m644p before i converted it for the m328p): https://github.com/urjaman/frser-duino To use it: git clone git://github.com/urjaman/frser-duino cd frser-duino make && make program
(the defaults are for the u2 arduino, eg. ttyACM0 and 115200, i didnt have time to work the makefile magic that hard.)
So I heard this works at 115200...
I made a change in the Makefile that should allow you to change the speed used by serprog* to something faster, namely 2000000 ;) I think it should be okay - i remember gnutoo claiming the U2 can do it with the delay he had added and i added that to frser-duino uart.c... (* without changing the bootloader speed...)
So, if you want to test that, in the frser-duino tree git pull and change the Makefile so it says FRBAUD:=2000000 then make && make program
And try out if everything still works. (now with -p serprog:dev=/dev/ttyACM0:2000000 i guess)
Also compared to serprog-duino, frser-duino should allow setting SPI frequency ( although the default 8mhz is propably ok) but just in case of long wires... eg -p serprog:dev=/dev/ttyACM0:2000000,spispeed=1M The hardware can do 7 steps between 8 MHz and 125 kHz when the AVR is at 16 Mhz.