diff --git a/platformio.ini b/platformio.ini
index 2d390026b5d0bee0e57d63ff1f09000559f7241f..a54221c7c2ef2f3a94a288261a2ec02ebb36b9ed 100644
--- a/platformio.ini
+++ b/platformio.ini
@@ -147,6 +147,7 @@ board         = sanguino_atmega644p
 platform      = atmelavr
 extends       = common_avr8
 board         = sanguino_atmega1284p
+board_upload.maximum_size = 126976
 
 #
 # Melzi and clones (ATmega1284p)
@@ -157,13 +158,16 @@ extends       = common_avr8
 board         = sanguino_atmega1284p
 lib_ignore    = TMCStepper
 upload_speed  = 57600
+board_upload.maximum_size = 126976
 
 #
 # Melzi and clones (Optiboot bootloader)
 #
 [env:melzi_optiboot]
 platform      = atmelavr
-extends       = env:melzi
+extends       = common_avr8
+board         = sanguino_atmega1284p
+lib_ignore    = TMCStepper
 upload_speed  = 115200
 
 #
@@ -171,8 +175,7 @@ upload_speed  = 115200
 #
 [env:melzi_optimized]
 platform      = atmelavr
-extends       = env:melzi
-upload_speed  = 115200
+extends       = env:melzi_optiboot
 build_flags   = ${common.build_flags} -fno-tree-scev-cprop -fno-split-wide-types -Wl,--relax -mcall-prologues
 build_unflags = -g -ggdb