พื้นที่เก็บข้อมูลนี้ประกอบด้วยซอร์สโค้ดและการเปิดตัวเฟิร์มแวร์สำหรับเครื่องพิมพ์ 3D Prusa ดั้งเดิมที่ใช้ไมโครคอนโทรลเลอร์ ARM 32 บิต
รุ่นที่รองรับในปัจจุบันคือ:
เรียกใช้ git clone https://github.com/prusa3d/Prusa-Firmware-Buddy.git
เรียกใช้ python utils/build.py
ไบนารีจะถูกเก็บไว้ภายใต้ . ./build/products
.bbf
ให้ใช้: ./utils/build.py --generate-bbf
--build-type
เพื่อเลือกการกำหนดค่าบิลด์ที่จะสร้าง ( debug
, release
)--preset
เพื่อเลือกเครื่องพิมพ์ที่ควรสร้างเฟิร์มแวร์beta
คุณสามารถเปลี่ยนเวอร์ชันก่อนเผยแพร่ได้โดยใช้ --prerelease alpha
หรือใช้ --final
เพื่อสร้างเฟิร์มแวร์เวอร์ชันสุดท้าย--host-tools
เพื่อรวมเครื่องมือโฮสต์ใน build ( bin2cc
, png2font
, ...)--help
! สร้างเฟิร์มแวร์สำหรับ MINI และ XL ในโหมด debug
:
python utils/build.py --preset mini,xl --build-type debug
สร้างเฟิร์มแวร์สำหรับ MINI โดยใช้เวอร์ชันที่กำหนดเองของ gcc-arm-none-eabi (มีใน $PATH
) และใช้ Make
แทน Ninja
(ไม่แนะนำ):
python utils/build.py --preset mini --toolchain cmake/AnyGccArmNoneEabi.cmake --generator ' Unix Makefiles '
หากคุณติดตั้ง python และอยู่ใน PATH ของคุณ แต่ยังคงได้รับข้อผิดพลาด cmake Python3 not found.
ลองใช้ python และ python3 จาก cmd หากหนึ่งในนั้นเปิด Microsoft Store แทนที่จะเปิดล่ามหลามหรือบ่นว่า 'python3' is not recognized as an internal or external command, operable program or batch file.
เปิด manage app execution aliases
และปิดใช้งานการเชื่อมโยง App Installer
กับ python.exe
และ python3.exe
กระบวนการสร้างของโปรเจ็กต์นี้ขับเคลื่อนโดย CMake และ build.py
เป็นเพียง wrapper ระดับสูงที่อยู่รอบ ๆ เนื่องจาก IDE สมัยใหม่ส่วนใหญ่รองรับการผสานรวม CMake บางประเภท จึงควรเป็นไปได้ที่จะใช้โปรแกรมแก้ไขเกือบทุกชนิดเพื่อการพัฒนา ด้านล่างนี้คือเอกสารบางส่วนที่อธิบายวิธีการตั้งค่าโปรแกรมแก้ไขข้อความยอดนิยมบางรายการ
หากคุณต้องการสนับสนุน codebase โปรดอ่านแนวทางการสนับสนุน
ด้วย XL สถานการณ์จะซับซ้อนขึ้นเล็กน้อย เฟิร์มแวร์ของ XLBuddy มีเฟิร์มแวร์สำหรับลูกสุนัข (คนแคระและโมดูลาร์เบด) เพื่อแฟลชเมื่อจำเป็น เราสนับสนุนหลายวิธีในการจัดการกับเฟิร์มแวร์เหล่านั้นเมื่อทำการพัฒนา:
สร้างเฟิร์มแวร์ Dwarf/Modularbed โดยอัตโนมัติและแฟลชเมื่อเริ่มต้นโดย XLBuddy (ค่าเริ่มต้น)
สร้าง Dwarf/Modularbed จากไดเร็กทอรีต้นทางที่กำหนดและแฟลชเมื่อเริ่มต้นโดย XLBuddy
DWARF_SOURCE_DIR
/ MODULARBED_SOURCE_DIR
CMake ตัวแปรแคชด้วย repo ในเครื่องที่คุณต้องการใช้ 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
ใช้เฟิร์มแวร์ Dwarf/Modularbed ที่สร้างไว้ล่วงหน้าแล้วแฟลชเมื่อเริ่มต้นโดย xlBuddy
DWARF_BINARY_PATH
/ MODULARBED_BINARY_PATH
cmake .. --preset xl_release_boot -DDWARF_BINARY_PATH=/Downloads/dwarf-4.4.0-boot.bin
ไม่รวมเฟิร์มแวร์ลูกสุนัขใด ๆ และอย่าแฟลชลูกสุนัขโดย XLBuddy
-DENABLE_PUPPY_BOOTLOAD=NO
ENABLE_PUPPY_BOOTLOAD
เป็นเท็จ โปรเจ็กต์จะปิดใช้งานการกะพริบของ Puppy และการโต้ตอบกับโปรแกรมโหลดบูตของ Puppyเก็บ bootloaders ไว้ แต่อย่าเขียนเฟิร์มแวร์ขณะบู๊ต
-DPUPPY_SKIP_FLASH_FW=YES
PUPPY_SKIP_FLASH_FW
เป็นจริง โปรเจ็กต์จะปิดใช้งานการกะพริบของ Puppy เมื่อบูตเครื่องxl-dwarf_debug_boot
) กับลูกสุนัขหนึ่งตัวขึ้นไปpuppy_task_body()
เพื่อป้องกันไม่ให้บัดดี้รีเซ็ตลูกสุนัขทันทีเมื่อลูกสุนัขหยุดที่เบรกพอยต์ดู /ProjectOptions.cmake สำหรับข้อมูลเพิ่มเติมเกี่ยวกับตัวแปรแคชเหล่านั้น
mkdir build-tests
cd build-tests
cmake ..
make tests
ctest .
วิธีที่ง่ายที่สุดในการดีบัก (ผ่านขั้นตอน) การทดสอบคือการระบุ CMAKE_BUILD_TYPE เมื่อกำหนดค่า cmake -DCMAKE_BUILD_TYPE=Debug ..
สร้างมันด้วย make tests
ตามที่ระบุไว้ก่อนหน้านี้ จากนั้นรันการทดสอบด้วย gdb
เช่น gdb tests/unit/configuration_store/eeprom_unit_tests
หากต้องการติดตั้งเฟิร์มแวร์แบบกำหนดเอง คุณต้องแยกภาคผนวกบนบอร์ดออก เรียนรู้วิธีการในบทความต่อไปนี้ https://help.prusa3d.com/article/zoiw36imrs-flashing-custom-firmware
ซอร์สโค้ดเฟิร์มแวร์ได้รับอนุญาตภายใต้ GNU General Public License v3.0 และกราฟิกและการออกแบบได้รับอนุญาตภายใต้ Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) แบบอักษรได้รับอนุญาตภายใต้ใบอนุญาตที่แตกต่างกัน (ดูใบอนุญาต)