И наконец обещанная инструкция для тех, кто хочет скомпилирировать последний Марлин под свою плату, а не мимикрировать под Morpheus.
Мы будем добавлять плату QUBOID_SHIELD
Скачиваем последний Марлин:
https://github.com/MarlinFirmware/Marlin/archive/refs/heads/2.0.x.zipлибо клонируем репо, кому как больше нравится:
git clone
https://github.com/MarlinFirmware/Marlin.gitЕсли Марлин скачали архивом, то распаковываем его.
Для добавления платы в Марлин, нам надо сделать всего три шага:
1. Добавляем в файл 'Marlin\src\core\boards.h' определение своей платы, для этого ищем без кавычек строку "STM32 ARM Cortex-M3" и в конец списка добавляем свою, на данный момент после:
#define BOARD_ZONESTAR_ZM3E4V2 4053 // Zonestar ZM3E4 V2 (STM32F103VCT6)
#define BOARD_QUBOID_SHIELD 4054 // QUBOID_SHIELD (STM32F103C8)
Индекс увеличиваем на единицу от последней платы
2. Добавляем файл пинов pins_QUBOID_SHIELD.h для нашей платы в папку 'Marlin\src\pins\stm32f1'
3. Добавляем наши пины в общий список в файл 'Marlin\src\pins\pins.h', для этого так же ищем строку "STM32 ARM Cortex-M3" и в конец после ZONESTAR_ZM3E4V2 по аналогии добавляем:
#elif MB(ZONESTAR_ZM3E4V2)
#include "stm32f1/pins_ZM3E4_V2_0.h" // STM32F1 env:STM32F103VE_ZM3E4V2_USB env:STM32F103VE_ZM3E4V2_USB_maple
#elif MB(QUBOID_SHIELD)
#include "stm32f1/pins_QUBOID_SHIELD.h" // STM32F103CB env:STM32F103CB_quboid
С определением нашей платы QUBOID_SHIELD для Marlin все, теперь надо настроить среду platformio.
Добавляем в конец файла 'ini\stm32f1.ini' строки:
[env:STM32F103CB_quboid]
platform = ${common_stm32.platform}
extends = common_stm32
board = bluepill_f103c8_128k
build_flags = ${common_stm32.build_flags}
-DHAL_PCD_MODULE_ENABLED -DDISABLE_GENERIC_SERIALUSB
-DHAL_UART_MODULE_ENABLED
src_filter = ${common.default_src_filter} +<src/HAL/STM32>
Определение build_flags взял от 'Malyan M200', т.к. она тоже работает на нашем чипе.
Дальше идет уже стандартная процедура настройки Марлина.
Выставляем нашу среду компиляции в файле platformio.ini в секции
[platformio]
default_envs = STM32F103CB_quboid
В конфигурационном файле Марлина 'Marlin\Configuration.h' выставляем нашу плату
#ifndef MOTHERBOARD
#define MOTHERBOARD BOARD_QUBOID_SHIELD
#endif
//исправляем
#define SERIAL_PORT -1
//и для красоты добавляем
#define CUSTOM_MACHINE_NAME "QUBOID"
//Не забываем так же выставить свой экран, у меня это
#define REPRAP_DISCOUNT_SMART_CONTROLLER
#define SDSUPPORT
В файле pins_QUBOID_SHIELD.h я добавил одновременно три экрана, для них не нужно специально прописывать пины, достаточно просто выбрать в Configuration.h:
REPRAP_DISCOUNT_SMART_CONTROLLER
REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
MKS_MINI_12864_V3
Для остальных по старой схеме )
На этом все, можно компилировать прошивку и радоваться результату
Без экрана:
RAM: [=== ] 34.1% (used 6984 bytes from 20480 bytes)
Flash: [====== ] 61.6% (used 80736 bytes from 131072 bytes)
ВАЖНО!
Инструкция только для того, чтобы скомпилировать прошивку и запустить экран, скорее всего ШИМ вентилятора не будет работать, остальное вроде как должно, но я кроме экрана ничего не проверял.
Для работы ШИМ можно попробовать добавить в 'pins_QUBOID_SHIELD.h'
#undef TEMP_TIMER_NUM
#define TEMP_TIMER_NUM 1
У меня и без этих строчек ШИМ на вентиляторе работает
Для тех кому лень проделывать все эти манипуляции, вот моя настроенная среда для компиляции
https://drive.google.com/file/d/1SS1lo-PH_lSQ3vBW3o9es0LSsKfBv-Xx/view?usp=sharing------------------------
Добавлено в первое сообщение темы.