Contributing to firmware development
The Duet runs entirely on open-source firmware and software. Whats more it is built using open tools (KiCAD and Eclipse), we want to encourage other to get involved and lower the barrier to entry.
Source Files ¶
Duet Hardware ¶
The Hardware Overview: Version Historypage has links to all the hardware schematics and KiCAD sources.
The Duet is open source hardware, developed using open source tools: specifically KiCAD for the hardware design.
KiCAD is available here:
You need at least version 4.0.2 to use the Duet 2 Wifi source files, along with the "complib" library:
Note newer projects now use KiCAD 5.0.
We encourage adaptation of the hardware design, get stuck in! Ensure you comply with the license terms:
Duet Web Control ¶
The Duet Web Control source is hosted at https://github.com/chrishamm/DuetWebCont.... These repositories provide bug trackers, which is where you should file confirmed bug reports.
The RepRapFirmware source is hosted at https://github.com/dc42?tab=repositories.
If you want to make a change to the code, the best approach is to https://help.github.com/articles/fork-a-... the project, make some changes, test them on your own machine, and when they work file a https://yangsu.github.io/pull-request-tu.... Github will then support discussion of the pull request, which can ultimately be accepted into the main source code. Before submitting a pull request, please ensure that your changes conform to any coding standard that is used for that part of the software. The coding standard may be described in the readme file or in a separate file in the root of the corresponding GitHub repository.
Firmware Structure ¶
The code is divided into multiple repositories:
- https://github.com/dc42/RepRapFirmware is the G-code interpreter and motion control.
- https://github.com/dc42/CoreNG is the hardware abstraction library (like the Arduino libraries) that provides a hardware interface layer for the MCU
- https://github.com/chrishamm/DuetWebCont... is the set of static files stored on the on-board SD card in the /www directory, that run in your browser and provide the web interface.
- https://github.com/dc42/DuetWiFiServer is the firmware that runs on the ESP8266, serving up the DuetWebControl files and forwarding commands and file transfers to the MCU
- https://github.com/dc42/CoreESP8266 is the low-level library (based on the Arduino ESP8266 library) that provides a hardware abstraction for the ESP8266
- https://github.com/dc42/PanelDue is the firmware that runs on the PanelDue
To compile a firmware binary, you will need the code for the firmware and for any underlying libraries. The detailed setup process is in https://github.com/dc42/RepRapFirmware/b....
If you plan to contribute your changes back to the main project (please consider it!), it is probably best to use https://git-scm.com/.