• Stars
    star
    166
  • Rank 227,748 (Top 5 %)
  • Language
    C
  • License
    Other
  • Created almost 8 years ago
  • Updated 5 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Firmware for the PanelDue touch screen for 3D printers

PanelDueFirmware

This firmware runs on PanelDue touchscreens available from Duet3D Ltd. and their resellers. It is used to check the status on and control a machine running primarily RepRapFirmware though since it simply sends GCodes over serial line it can be basically used with every controller that understands the sent commands.

Devices

The following devices are supported:

  • v2-4.3
  • v2-5.0
  • v2-7.0
  • v2-7.0c
  • v3-4.3
  • v3-5.0
  • v3-7.0
  • v3-7.0c
  • 5.0i
  • 7.0i

Download

Download the latest firmware images at

https://github.com/Duet3D/PanelDueFirmware/releases

Flashing

Detailed flashing instruction can be found at

https://docs.duet3d.com/en/User_manual/RepRapFirmware/Updating_PanelDue

Development

Build requirements

  • arm-none-eabi-gcc
  • cat
  • cmake
  • make
  • bossa

Ubuntu

$ apt install gcc-arm-none-eabi

Arch

$ pacman -S arm-none-abi-gcc arm-none-eabi-newlib

Mac OS

$ brew install gcc-arm-embedded

Windows

Download and install latest toolchain from https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads

Setup repository

$ git clone [email protected]:Duet3D/PanelDueFirmware.git
$ cd PanelDueFirmware
$ git submodule init
$ git submodule update --recursive

Setup build for specific device

With the default build system

$ cmake -B build -DDEVICE="5.0i" .
$ make -C build all -j12

Or with an explicit build system

$ cmake -B build -G "Unix Makefiles" -DDEVICE="5.0i" .
$ make -C build all -j12

The default compiler can be easily overwritten by setting the cross compiler prefix.

$ cmake -B build -DDEVICE="5.0i" -DCROSS_COMPILE="/path/to/cross/compiler/arm-none-eabi-" .
$ make -C build all -j12

Examples for windows users:

When passing a path name use

  • slashes instead of backslashes to separate directories and
  • use backslashes to escape whitespaces.
$ cmake -B build -DDEVICE="5.0i" -DCROSS_COMPILE="C:/Program\ Files\ (x86)/GNU\ Tools\ ARM\ Embedded/8\ 2018-q4-major/bin/arm-none-eabi-" .

Create build system for Eclipse CDT which can be easily integrated

$ cmake -G "Eclipse CDT4 - Unix Makefiles" -B . -DDEVICE="5.0i"

To switching the target device re-run cmake with another device setting

$ cmake -G "Eclipse CDT4 - Unix Makefiles" -B . -DDEVICE="v3-5.0"

For further Eclipse CDT integration please visit

https://cmake.org/cmake/help/latest/generator/Eclipse%20CDT4.html

Local Configuration

It is possible to configure the local build system permamently instead of passing DEVICE and CROSS_COMPILE variable.

  • copy env.cmake.example to env.cmake
  • uncomment variables and adapt accordingly in env.cmake
  • re-run 'cmake -B build .'

Flash a firmware image to a device

$ bossac -e -w -v -b build/paneldue.bin -R -p /dev/ttyACM1

Customization

Splash Screen

Customising the splash screen (versions 1.20RC4 and later)

If you wish to display a custom splash screen when PanelDue is powered up, you need to append a compressed version of the splash screen image to the bare firmware version appropriate to your model's screen size.

  • First export the image you want to display in 24-bit bitmap (.bmp) format. The width and height in pixels must match exactly the resolution of the TFT panel (480x272 for the 4.3" panel, or 800x480 for the 5" and 7" panels)
  • The image must compress sufficiently well to fit in the available flash memory. Images containing large blocks of the same colour compress well.
  • Version 1 PanelDue controllers have 128kb flash memory. Version 2 controllers use either a ATSAM3S2B (128kb) chip or a ATSAM3S4B (256kb) chip. Version 3 controllers and the 7i integrated version have 256kb flash memory. If you have a 128kb chip then you will only be able to use a splash screen if you are using the 4.3" panel and the image compresses well.

There is a tool included in Tools/gobmp2c/(linux|macos|win) containing pre-compiled binaries for the three major operating systems. It's a command-line tool and can be used like follows:

$ Tools/gobmp2c/linux/bmp2c --help
Usage of ./bmp2c:
  -binary
        Binary output
  -outfile string
        Output file. The default is to output to stdout. (default "-")

Use the -binary parameter to create splash screen and append it like this to the compiled firmware binary and provide the name of the input file as the last parameter e.g.

$ Tools/gobmp2c/linux/bmp2c -binary -outfile mysplashscreen.bin mysplashscreen.bmp

On Windows: Run this Windows command to append it to the binary: copy /b PanelDue-v3-5.0-nologo.bin+myimage.bin PanelDueFirmware.bin

On Linux: Run this Linux command to append it to the binary: cat PanelDue-v3-5.0-nologo.bin myimage.bin > PanelDueFirmware.bin

substituting appropriate filenames. Then:

  • Check that the resulting firmware file (PanelDueFirmware.bin in this example) is no larger than the flash memory size
  • Install the new PanelDueFirmware.bin file on your PanelDue

Custom Icons

The aforementioned tool can also be used to create new Icons. These also have to be provided in 24-bit bitmap format and will be converted into a paletted representation. The palette contains 12 different colors:

24-bit input 16-bit output Note
0x000000 0x0000 black
0xffffff 0xffff white - note that this will usually be rendered as transparent instead
0x201c20 0x20e4 dark grey
0xf8f8f8 0xffdf very light grey, used to replace white
0x181c18 0x18e3 very dark grey
0xf0f0f0 0xf79e light grey
0xc83030 0xc986 red
0xd06060 0xd30c lighter red
0xc02018 0xc103 red
0xf8e890 0xff52 light yellow
0xf8fcd8 0xfffb very light yellow
0x40ac48 0x4569 green
0x909090 0x9492 grey

The tool can convert multiple input files into one output file. To convert icons into a paletted representation use

$ Tools/gobmp2c/linux/bmp2c -outfile Icons.hpp icon1.bmp [icon2.bmp ...]

It will append to the output file.

More Repositories

1

RepRapFirmware

OO C++ RepRap Firmware
C
940
star
2

DuetWebControl

A completely new web interface for the Duet electronics
Vue
408
star
3

Duet-2-Hardware

The KiCAD source for the Duet 3d printer controller see www.duet3d.com
C
249
star
4

DuetSoftwareFramework

Software framework for the next-generation Duet3D platform based on .NET
C#
60
star
5

GcodeMacros

A collection of useful macros for use with RepRapFirmware.
GAP
52
star
6

RRF-machine-config-files

Sample configuration files for RepRapFirmware to suit various 3D printers, CNC machines, Laser cutters and engravers
G-code
52
star
7

Duet3-Mainboard-6HC

Hardware information for the Duet 3 Mainboard 6HC
HTML
44
star
8

ConfigTool

Official RepRapFirmware Configuration Tool
Vue
29
star
9

SmartEffector

Smart Effector for delta printers.
25
star
10

Duet3Expansion

C++
22
star
11

CNC-Pendant-Firmware

C++
19
star
12

DWC-CNC

JavaScript
18
star
13

FilamentMonitors

Duet3D Filament Monitors
HTML
17
star
14

Duet3-Toolboard-1LC

Hardware information for the Duet 3 Toolboard 1LC
HTML
16
star
15

SmartEffectorFirmware

Firmware for Duet3D Smart Effector for delta printers
C++
15
star
16

CoreNG

New hardware abstraction layer for RepRapFirmware based on ASF 3.31
C
12
star
17

DSF-APIs

Go
11
star
18

DuetWiFiSocketServer

TCP/IP socket server for ESP8266 module in Duet WiFi motion control electronics
C++
11
star
19

Duet3-Mini5plus

HTML
11
star
20

dsf-python

DuetSoftwareFramework Python Bindings
Python
10
star
21

CANlib

CAN message buffer and protocol library for Duet 3
C++
9
star
22

RRFLibraries

Libraries used by multiple RepRapFirmware projects
C++
9
star
23

Duet3Bootloader

Boostrap loader for Duet 3 Expansion and Smart Tool boards
Roff
9
star
24

MagneticFilamentMonitor

Firmware for Duet3D magnetic filament monitor
C++
8
star
25

DSF-Plugins

Third-party plugins and demos for DSF and DWC
Vue
8
star
26

TempDaughterboards

Temperature Measurement Daughterboards for the DuetWifi
7
star
27

CoreN2G

Hardware abstraction layer for SAMD5x, SAME5x and SAMC21 processors
Roff
7
star
28

Duet3-Expansion-3HC

Hardware information for the Duet 3 Expansion 3HC
HTML
6
star
29

FreeRTOS

FreeRTOS library for building RepRapFirmware
C
5
star
30

Duet3-Mainboard-6XD

Hardware information for the Duet 3 Mainboard 6XD
HTML
5
star
31

CoreESP8266

Hardware abstraction interface and network libraries for ESP8266 used by the Duet WiFi
C
4
star
32

LaserFilamentMonitor

Firmware installed on the Duet3D Laser Filament Monitor
C++
4
star
33

Duet3-Expansion-1XD

Hardware information for the Duet 3 Expansion 1XD
HTML
4
star
34

Duet3-Expansion-1HCL

Hardware information for the Duet 3 Expansion 1HCL
HTML
3
star
35

DuetIAP

In-application programming solution for the Duet platform
C
3
star
36

MotionAnalysis

TypeScript library for motion analysis of accelerometer data
TypeScript
2
star
37

Hardware

Duet3D motion control electronics
2
star
38

Duet3-Tool-Distribution-Board

Hardware information for the Duet 3 Tool Distribution Board
2
star
39

ClosedLoopTuningPlugin

A plugin to tune and plot data from the Duet closed loop driver board
Vue
2
star
40

FindMyDuet

A Xamarin-based Android app to discover Duet boards via mDNS
C#
2
star
41

Duet3D-Accelerometer

A standalone accelerometer board using the LIS3DH MEMS digital motion sensor. It is designed to plug into the SPI daughterboard header on Duet 2 and 3 mainboards.
2
star
42

RepRapFirmware.org

Website content of reprapfirmware.org
JavaScript
1
star
43

PluginRepository

Repository for RRF/DSF/DWC plugins
TypeScript
1
star
44

InputShapingPlugin

DWC Input Shaping Plugin
Vue
1
star
45

Duet3-RotoToolboard

Hardware information for the Duet 3 Roto Toolboard
HTML
1
star
46

dsf-go

Duet Software Framework Go Bindings
Go
1
star
47

CrcAppender

Utility to calculate and append CRC checksums to firmware binaries
C#
1
star
48

Duet3-M23CL

Hardware information for the Duet 3 Motor 23CL
1
star
49

T113_Screen_for_RepRapFirmware

C
1
star