rusEFI supports quite a wide array of hardware - we support stm32f4 and we support stm32h7, we have [kinetis](https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/general-purpose-mcus/k-series-cortex-m4:KINETIS_K_SERIES) and we support cypress MCUs. We support on-board a number of smart GPIO chips, overall we support quite a wide array of hardware. With all those options our goal is to provide nice _user_ experience which means upfront investment by _board designer_.
For best user experience we have more than a dozen of different _binaries_ which are all compiled from same _firmware_ files with different configuration. This folder is all about that process.
New board procedure once you have new folder in this *boards* directory
1) update [gen_config.sh](https://github.com/rusefi/rusefi/blob/master/firmware/gen_config.sh): add "board board" pair into 'for BOARD' iteration - this would produce new signature*.h file and new rusefi*.ini file
2) update [build-firmware.yaml](https://github.com/rusefi/rusefi/blob/master/.github/workflows/build-firmware.yaml) to get new firmware bundle on https://rusefi.com/build_server/