On Arduino IDE side, the upload speed is coded in hardware/arduino/boards.txt
uno.upload.speed=115200
...
for every kind of board; you cannot change it directly from the IDE (that would be too dangerous as that value must match the expected speed for the actual bootloader of every board).
Now as per the optiboot loader side, the upload speed is defined in BAUD_RATE
macro, in optiboot.c
:
/* set the UART baud rate defaults */
#ifndef BAUD_RATE
#if F_CPU >= 8000000L
#define BAUD_RATE 115200L // Highest rate Avrdude win32 will support
#elsif F_CPU >= 1000000L
#define BAUD_RATE 9600L // 19200 also supported, but with significant error
#elsif F_CPU >= 128000L
#define BAUD_RATE 4800L // Good for 128kHz internal RC
#else
#define BAUD_RATE 1200L // Good even at 32768Hz
#endif
#endif
So I guess you can:
#define BAUD_RATE 19200
before that block of code
- recompile the optiboot loader
- upload your own new bootloader version
- update
uno.upload.speed
accordingly in boards.txt
- check it on the usual blink sketch and cross your fingers :-)
Please note that this kind of task is not for beginners, you need to know what you're doing.
Also note that I disclaim any responsibility if you get unable to upload programs to your Arduino afterwards!