Skip to content

Building RepRapFirmware

dc42 edited this page Mar 31, 2023 · 31 revisions

Instructions for building RepRapFirmware

Important!

RepRapFirmware is built from several Github projects. You need to use compatible branches of these projects. Since RepRapFirmware v3.1.0, stable releases are tagged in github.

To build RepRapFirmware v3.1.1, use the following tags:

project tag notes
RepRapFirmware 3.1.1
CANlib 3.1.0 only needed for Duet 3
CoreNG 3.1.0
FreeRTOS 3.1.0
RRFLibraries 3.1.0
DuetWiFiSocketServer master this project must be present but you don't need to build it

Note: CoreNG, FreeRTOS, RRFLibraries do not have v3.1.1 tags because the 3.1.0 tagged releases are the base for v3.1.1 (no changes in the dependencies, only in RepRapFirmware)

To build RepRapFirmware 3.2 from the latest development sources, use the following branches:

project branch notes
RepRapFirmware v3.02-dev
CANlib master only needed for Duet 3
CoreNG dev not needed for Duet 3 Mini5+
CoreN2G master only needed for Duet 3 Mini5+
FreeRTOS dev
RRFLibraries dev
DuetWiFiSocketServer dev this project must be present but you don't need to build it

To build RepRapFirmware 3.3 from the latest development sources, use the following branches:

project branch notes
RepRapFirmware 3.3-dev
CANlib 3.3-dev only needed for Duet 3
CoreN2G 3.3-dev
FreeRTOS 3.3-dev
RRFLibraries 3.3-dev
DuetWiFiSocketServer dev this project must be present but you don't need to build it

To build RepRapFirmware 3.4beta from the latest development sources, use the following branches:

project branch notes
RepRapFirmware 3.4-dev
CANlib 3.4-dev after 3.4beta5 this is needed for Duet 2 as well as Duet 3
CoreN2G 3.4-dev
FreeRTOS 3.4-dev
RRFLibraries 3.4-dev
DuetWiFiSocketServer dev this project must be present but you don't need to build it

Additional Tools

Building RepRapFirmware lately requires a tool called crc32appender to be in the user's PATH as it will be called at the end of the compilating process. It can be found as Golang source code in Tools/crc32appender together with pre-compiled binaries for Windows, Linux and MacOS x86-64.

Instructions for building under Windows

  1. Download and install the appropriate version of the gcc arm-one-eabi cross-compiler as follows:

  2. Download and install Eclipse IDE for C/C++ Developers. You do not need the Arduino add-on. It's usually OK to use the latest available stable release.

  3. Download and install GNU Arm Eclipse. This provides versions of make.exe, rm.exe and other tools without the 8192-character command line limitation of some other versions.

  4. Modify your PATH environment variable to include the bin folder of the GNU ARM Eclipse installation, and to include the path to crc32appender.exe (see earlier note).

  5. Run which rm and which make to make sure that rm and make will be fetched from that folder.

  6. In Eclipse create new workspace C:/Eclipse/Firmware. Then exit Eclipse.

  7. Download this github project as a zip file and unzip it into C:/Eclipse/Firmware. Then rename folder ReprapFirmware-dev in that folder to RepRapFirmware. Alternately, change into the directory C:/Eclipse/Firmware in a Terminal and run git clone https://github.com/Duet3D/ReprapFirmware.git -branch dev

  8. Repeat the previous step for all the other github projects needed as listed in the tables above.

  9. The build depends on the Eclipse workspace variable ArmGccPath being set to the directory where your arm-none-eabi-g++ compiler resides. For example C:\Program Files (x86)\GNU Tools ARM Embedded\7 2018-q2-update\bin on Windows (see step #1 for which compiler to use). To set it, go to Windows -> Preferences -> C/C++ -> Build -> Build Variables and click "Add..."

  10. The build dependencies are already set up in the project files, so the following is for information only. The build dependencies are:

    • Duet 3 Mini builds depend on: CoreN2G, FreeRTOS, CANlib and RRFLibraries. They also require DuetWifiSocketServer as outlined above.
    • Duet 3 MB6HC builds have the same dependencies as for Duet 3 Mini except that DuetWifiSocketServer does not need to be in the workspace.
    • Duet 2 builds have the same dependencies as Duet 3 Mini, except that older versions do not need CANlib and (depending on version) may need CoreNG instead of CoreN2G.
    • Duet Maestro builds have the same dependencies as Duet 3 Mini but do not need DuetWiFiSocketServer. Older versions do not need CANlib and (depending on version) may need CoreNG instead of CoreN2G.
    • Duet085 builds (also running on Duet06) depend on CoreNG and RRFLibraries. Note: Duet085 does not run RepRapFirmware 2 or later, the last official build is v1.26.
  11. The required build configurations are already set up in the project file so the following is for information only. The buld configurations used by each target are:

    Board Project Build Configuation
    Duet3 Mini (Wifi and Ethernet)
    CoreN2G SAME5X_RTOS
    FreeRTOS SAME51
    RRFLibraries SAME51_RTOS
    RepRapFirmware Duet_5LC or Duet3Mini5plus
    Duet3
    CANlib SAME70_RTOS
    CoreNG or CoreN2G SAME70 or SAME70_CAN_SDHC_USB_RTOS
    FreeRTOS SAME70
    RRFLibraries SAME70_RTOS
    RepRapFirmware Duet3_V06 or Duet3
    Duet2 (DuetWifi and Duet Ethernet)
    CoreNG or CoreN2G SAM4E8E or SAM4E_SDHC_USB_RTOS
    FreeRTOS SAM4E
    RRFLibraries SAM4E_RTOS
    RepRapFirmware Duet2_RTOS (or just Duet2 in version 3.2 and later)
    Duet Maestro
    CoreNG or CoreN2G SAM4S or SAM4S_SDHC_USB_RTOS
    FreeRTOS SAM4S
    RRFLibraries SAM4S_RTOS
    RepRapFirmware DuetMaestro
    Duet085 (Duet0.85 and Duet0.6) Note: Needs v1.20 tags
    CoreNG SAM3X8E
    RRFLibraries SAM3X
    RepRapFirmware Duet085
  12. When you build RepRapFirmware, Eclipse will build the other projects that it depends on automatically; so the following is for information only. If you build manually then the only constraint is that you build all the other projects (except DuetWiFiSocketServer, which you do not need to build) before you build RepRapFirmware.

Instructions for building under macOS

Using Homebrew-Cask makes it very easy to install new software on macOS: https://caskroom.github.io/

  1. Download and install the gcc-arm-embedded: brew cask install gcc-arm-embedded
  2. Download and install Eclipse for C++ : brew cask install eclipse-cpp
  3. Download or clone the RepRapFirmware, CoreNG or CoreN2G (as appropriate), FreeRTOS, RRFLibraries and DuetWiFiSocketServer projects into your workspace. Keep the folder names as is.
  4. Open Eclipse and import RepRapFirmware, FreeRTOS, RRFLibraries and CoreNG or CoreN2G projects using File -> Open Projects from File System.
  5. The build depends on the Eclipse workspace variable ArmGccPath being set to the directory where your arm-none-eabi-g++ compiler resides. To set it, go to Windows -> Preferences -> C/C++ -> Build -> Build Variables and click "Add..."
  6. Build CoreNG or CoreN2G, FreeRTOS and RRFLibraries first, then RepRapFirmware. See the instructions for Windows (above), step 14ff, for the dependencies and configurations needed.

Building under Debian Linux

See this forum post.

Related projects

Clone this wiki locally