Port of Duet RepRapFirmware to Pr3Dator possible?

Hi,

while researching for a future-proof control board, i found the Duet.
Not that i don't like the Pr3Dator board, but i was looking for a board which firmware also supports Delta printers.
Based on the datasheets its basically the same cpu and components as CU uses for their Pr3Dator board.
Ofc both boards have some differences, like all the extensions and for example CU's great LCD display.

But there is a opensource firmware available for the Duet, which might work with some modifications on the Pr3Dator board as-well.

https://github.com/reprappro/RepRapFirmware/tree/duet

Problems / stuff i see so far:
* To get this running the bootloader on the Pr3Dator board needs to be replaced (not sure this is possible)
* There is no way (except with help from CU) to switch back to the stock bootloader/firmware
* It needs some PCB line tracing to figure out which IO is used for what
* The whole comunication between LCD and Board is unknown, i hope they communicate via serial and gcodes. (Except flashing)
* ...

I know c/c++ but i'm not good with embedded hardware :) (did QT mobile stuff and some simple arduino tinkering)

Phil

February 9, 2015

Phil Phil
Friendly
187 posts

12 replies


Well, this opens a whole new bunch of possibilities, thanks! :)

February 9, 2015

Franci Kopac Franci Kopac
Honored
338 posts

Regarding the LCD display for the duet controller board, I saw below post for a 20x4 LCD screen.

http://blog.think3dprint3d.com/2014/07/duet-20x4-lcd-screen-and-sd-card.html

Hope that someone can come up with a nice color touch LCD display like the stock CraftBot's. :-)

February 9, 2015

3DForms 3DForms
Superstar
1769 posts

3DForms wrote:Regarding the LCD display for the duet controller board, I saw below post for a 20x4 LCD screen.
)


yea, there are screens for the duet, but the main "problem" i see with the screens is that they are driven by the main controller.

i don't know how the CU lcd is comunicating with the main controller but i think (at least this is how i would do it) the lcd is a standalone device.

It has its own processor which handles all the IO of the screen and in CU's example the usb flash drive and then comunitates with the main controller using gcode.

So it's just another device controlling the printer. like your pc or a raspberry pi running octoprint.

This approach would fix/provide several advantages a mainboard driven lcd cant do.
But has some requirements regarding the mainboard. like multi channel support, which CU advertises on the craftbot. thanks to the ARM processor.

Just a few bullet points:
* Would work with all gcode compatible printers
* Keeps the main printer code clean of specific IO code.
* Does not slow the mainboard down. (like sd card access uses IO time on the processor, or drawing the lcd.)

Only one thing which comes to mind is, that there is a slight delay for most of the actions because every command needs to send to the mainboard. (Like setting a temperature or pushing new gcode print commands)

February 10, 2015

Phil Phil
Friendly
187 posts

Maybe one can use a Duet for printer control, and a Due and touch LCD for display?

Not meant to replace CraftBot, but would be nice for a DIY 3D printer project. :-)

February 10, 2015

3DForms 3DForms
Superstar
1769 posts

Sure this could work, but its quite bulky
I'm thinking about:

http://www.aliexpress.com/store/product/Free-Shipping-2-8inch-TFT-LCD-Module-Mini-STM32-Development-Board-USB-Cable/18889_996229128.html

or

http://www.aliexpress.com/store/product/ARM-Cortex-M3-mini-stm32-stm32F103ZEt6-Cortex-development-board-2-8-TFT-LCD-touch-screen/102034_1274366428.html

It has SDcard support and also supports usb OTG (so usb flash stick support)

But i guess this would be quite off-topic :D also i need to readup on the different STM processor types

February 10, 2015

Phil Phil
Friendly
187 posts

From what I can see from the outside there are two CPU boards on the CB. One is mostly a GUI for the touch screen and acts sort of like an octopi and sends commands to the controller board that manages the sensors and motors.

What I think this means is that the real 'firmware' for control-status as well as communication with the world is in the controller board (in the back) and that is the area that can be best addressed to gain any differences with alternative firmware. Altering the GUI board can be done separately (or not at all as long as the commands it sends are still processed the same way).

Also, the front panel board can be purchased from CB last I checked. So, there only needs to be sufficient information for programming/debugging (JTAG header or serial or ?) and the display parts problems are already solved.

February 20, 2015

fmotta fmotta
Revered
649 posts

fmotta wrote:From what I can see from the outside there are two CPU boards on the CB. One is mostly a GUI for the touch screen and acts sort of like an octopi and sends commands to the controller board that manages the sensors and motors.

Yea exactly my thinking.

Both boards are available for purchase as spare parts.
What i gathered while developing my firmware archive website is, that the firmware is AES encrypted and the installed bootloader has the key to decrypt while flashing.

So my thinking is, is it still possible to flash the bootloader with your own. for example an arduino compatible, which we probably can get from arduino due.

If this is possible the rest could be quite simple. i think its only a matter of figuring out the io ports used.

The other problem i mentioned before is that to flash the original firmware again we need the original bootloader too.

But due to security CU will not release a bootloader image to flash yourself, because it must contain the AES key for decryption.

Maybe they will but i don't think so, because it would allow you to decrypt existing firmware images and analyse them. I'm not sure but i think it would not be possible to reencrypt the firmware with that key.

February 21, 2015

Phil Phil
Friendly
187 posts

Unless CU does not want us to reverse engineer it. If that is the case then we are back at origins (bare board) and this whole subset of the forum is almost like baiting to see who may make the effort for decrypting the code. If their goals is to ensure that we do not get invalid downloads then this is a mediocre workaround for the lack of a certified download URL.

IMO: Encrypting firmware for a 3D printer that is not designed to be connected to the internet is like wearing a condom when masturbating. It may have some value to a few, but not really of value for its intended purpose.

I have not looked at CB electronics more than very-high level. Some ARM-based chips are designed so that they can prevent programming them without the appropriate key/application. If that is the case with CB then I must wonder if there is a reason for this forum subsection if there is no intent to support alternate firmware porting to CB...

February 21, 2015

fmotta fmotta
Revered
649 posts

Well, XYZprinting's Da Vinci 3D printer was encrypted as well, but someone was able to hack it to use 3rd party filament. :-)

I don't see the point of CU encrypting the firmware. They probably can also sell the main and LCD controller boards to those DIY reprap hobbyists. Another good source of revenue stream for them.

February 21, 2015

3DForms 3DForms
Superstar
1769 posts

Not sure the purpose of this subforum, may to talk about marlin or so :)

About the used Chip: ATSAM3X8E

If you readup on flashing (linked on the product page) they mentioning the encryption. Also the sample bootloader implementation has encryption enabled by default.

So my guess is, CU went with encryption because atmel recommends it and to ensure the integrity of the firmware.

Maybe Janos notices the thread and give us some insight :)

3DForms wrote:They probably can also sell the main and LCD controller boards to those DIY reprap hobbyists. Another good source of revenue stream for them.


Yea, thinking the same, there is no good touch lcd panel available for repraps and the Duet is also pricier than the CU board.

February 21, 2015

Phil Phil
Friendly
187 posts

By selling parts, they will be able to sell more quantity than the printers at higher profit margins.

Attila should feel secure with CraftBot's build quality. Selling parts hopefully will not negatively impact their printer business because there just aren't many printer with such excellent built quality and features at their retail price.

February 21, 2015

3DForms 3DForms
Superstar
1769 posts

Is it possible to change firmware/bootloader without over writing the factory firmware?

I use Canon cameras and there is a group that has done this CHDK.
I believe this could be done to anything using this method.

edit:
I see what you are saying after I looked at the touch board, SAM3X8E Appears to be way underused as just a touch screen controller.
Starting to look like a usb link between the boards, just guessing.

August 18, 2017

BV BV
Honored
309 posts
To start a discussion or reply to a post please Login or Create an account.