Este repositório inclui código-fonte e versões de firmware para as impressoras 3D Prusa originais baseadas em microcontroladores ARM de 32 bits.
Os modelos atualmente suportados são:
Execute git clone https://github.com/prusa3d/Prusa-Firmware-Buddy.git
.
Execute python utils/build.py
. Os binários serão armazenados em ./build/products
.
.bbf
do firmware, use: ./utils/build.py --generate-bbf
.--build-type
para selecionar as configurações de compilação a serem construídas ( debug
, release
).--preset
para selecionar para quais impressoras o firmware deve ser construído.beta
. Você pode alterar o pré-lançamento usando --prerelease alpha
ou usar --final
para construir uma versão final do firmware.--host-tools
para incluir ferramentas de host na compilação ( bin2cc
, png2font
, ...)--help
! Construa o firmware para MINI e XL em modo debug
:
python utils/build.py --preset mini,xl --build-type debug
Construa o firmware para MINI usando uma versão customizada de gcc-arm-none-eabi (disponível em $PATH
) e use Make
em vez de Ninja
(não recomendado):
python utils/build.py --preset mini --toolchain cmake/AnyGccArmNoneEabi.cmake --generator ' Unix Makefiles '
Se você tem o python instalado e em seu PATH, mas ainda está recebendo o erro cmake Python3 not found.
Tente executar python e python3 no cmd. Se um deles abrir a Microsoft Store em vez de abrir o interpretador python ou reclamar 'python3' is not recognized as an internal or external command, operable program or batch file.
Abra manage app execution aliases
e desative a associação App Installer
com python.exe
e python3.exe
.
O processo de construção deste projeto é conduzido pelo CMake e build.py
é apenas um wrapper de alto nível em torno dele. Como a maioria dos IDEs modernos suporta algum tipo de integração com o CMake, deve ser possível usar praticamente qualquer editor para desenvolvimento. Abaixo estão alguns documentos que descrevem como configurar alguns editores de texto populares.
Se você quiser contribuir com a base de código, leia as Diretrizes de Contribuição.
Com o XL, a situação fica um pouco mais complexa. O firmware do XLBuddy contém firmwares para os filhotes (Dwarf e Modularbed) para atualizá-los quando necessário. Apoiamos diversas maneiras de lidar com esses firmwares durante o desenvolvimento:
Crie firmware Dwarf/Modularbed automaticamente e atualize-o na inicialização pelo XLBuddy (o padrão)
Construa Dwarf/Modularbed a partir de um determinado diretório de origem e atualize-o na inicialização pelo XLBuddy.
DWARF_SOURCE_DIR
/ MODULARBED_SOURCE_DIR
CMake com o repositório local que você deseja usar. cmake .. --preset xl_release_boot -DMODULARBED_SOURCE_DIR=/Projects/Prusa-Firmware-Buddy-ModularBed
cmake .. --preset xl_release_boot
-DMODULARBED_SOURCE_DIR=/Projects/Prusa-Firmware-Buddy-ModularBed
-DMODULARBED_BINARY_DIR=/Projects/Prusa-Firmware-Buddy-ModularBed/build
Use firmware Dwarf/Modularbed pré-construído e atualize-o na inicialização por xlBuddy
DWARF_BINARY_PATH
/ MODULARBED_BINARY_PATH
. cmake .. --preset xl_release_boot -DDWARF_BINARY_PATH=/Downloads/dwarf-4.4.0-boot.bin
Não inclua nenhum firmware de filhote e não atualize os filhotes pelo XLBuddy.
-DENABLE_PUPPY_BOOTLOAD=NO
ENABLE_PUPPY_BOOTLOAD
definido como falso, o projeto desabilitará o flash do Puppy e a interação com os bootloaders do Puppy.Mantenha os bootloaders, mas não grave firmware na inicialização.
-DPUPPY_SKIP_FLASH_FW=YES
PUPPY_SKIP_FLASH_FW
definido como verdadeiro, o projeto desabilitará o flash do Puppy na inicialização.xl-dwarf_debug_boot
) em um ou mais filhotes.puppy_task_body()
para evitar que o amigo reinicie o filhote imediatamente quando o filhote parar no ponto de interrupção.Consulte /ProjectOptions.cmake para obter mais informações sobre essas variáveis de cache.
mkdir build-tests
cd build-tests
cmake ..
make tests
ctest .
A maneira mais simples de depurar (passo a passo) um teste é especificar CMAKE_BUILD_TYPE ao configurar cmake -DCMAKE_BUILD_TYPE=Debug ..
, construí-lo com make tests
conforme declarado anteriormente e então executar o teste com gdb
por exemplo gdb tests/unit/configuration_store/eeprom_unit_tests
.
Para instalar o firmware personalizado, você precisa quebrar o apêndice na placa. Aprenda como fazer isso no seguinte artigo https://help.prusa3d.com/article/zoiw36imrs-flashing-custom-firmware.
O código-fonte do firmware é licenciado sob a GNU General Public License v3.0 e os gráficos e design são licenciados sob Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0). As fontes são licenciadas sob licenças diferentes (consulte LICENÇA).