diff --git a/platformio.ini b/platformio.ini
index a23fc60a0f32ac959d20635c2aa647b51964e02a..38d2652d5805c7baecce803084175607a8ec5c76 100644
--- a/platformio.ini
+++ b/platformio.ini
@@ -8,13 +8,9 @@ platform = https://github.com/Community-PIO-CH32V/platform-ch32v.git
 ; or genericCH32V003A4M6 or whatever, see platform link
 board = ch32v003f4p6_evt_r0
 monitor_speed = 115200
-; use a source filter to only build certain folders / files
-
-; for examples that use ch32v003evt as their base
-[evt_base]
-board_build.ldscript = ch32v003evt/ch32v003.ld
-build_flags = -flto -Ich32v003evt -lgcc
-build_src_filter = +<ch32v003evt>
+; all environments use ch32v003 fun as base, no more ch32v003evt
+extends = fun_base
+; use a source filter to only build certain folders / files in later environments
 
 ; for examples that use ch32v003fun as their base
 [fun_base]
@@ -23,22 +19,31 @@ build_flags = -flto -Ich32v003fun -I/usr/include/newlib -DTINYVECTOR -lgcc
 build_src_filter = +<ch32v003fun>
 
 [env:blink]
-extends = fun_base
 build_src_filter = ${fun_base.build_src_filter} +<examples/blink>
 
+[env:bootload]
+build_src_filter = ${fun_base.build_src_filter} +<examples/bootload>
+
 [env:debugprintfdemo]
-extends = fun_base
 build_src_filter = ${fun_base.build_src_filter} +<examples/debugprintfdemo>
 
-; sandbox demo does currently not compile (undefined reference to `__get_dscratch0')
-;[env:sandbox]
-;extends = fun_base
-;build_src_filter = ${fun_base.build_src_filter} +<examples/sandbox>
+[env:external_crystal]
+build_src_filter = ${fun_base.build_src_filter} +<examples/external_crystal>
+
+[env:optionbytes]
+build_src_filter = ${fun_base.build_src_filter} +<examples/optionbytes>
+
+[env:run_from_ram]
+build_src_filter = ${fun_base.build_src_filter} +<examples/run_from_ram>
+
+[env:sandbox]
+build_src_filter = ${fun_base.build_src_filter} +<examples/sandbox>
+
+[env:self_modify_code]
+build_src_filter = ${fun_base.build_src_filter} +<examples/self_modify_code>
 
 [env:uartdemo]
-extends = fun_base
 build_src_filter = ${fun_base.build_src_filter} +<examples/uartdemo>
 
 [env:ws2812demo]
-extends = fun_base
-build_src_filter = ${evt_base.build_src_filter} +<examples/ws2812demo>
+build_src_filter = ${fun_base.build_src_filter} +<examples/ws2812demo>
\ No newline at end of file