Posted on 6 Comments

Duet WiFi/Eth – Use M584 to autolevel or sync Z-axis using 2 or more motors

I originally planned to use 3 seperate Z-motors for my BeTrue3D Printer project back last christmas, but since I’m using some special hollow Nema 17 and bespoke 1204 Ballscrews + top-fixing blocks the price would be like $100 for one extra motor on the Z-axis.

The money was just one concern. One which I could have overcome (by waiting some) if I wanted to, but it would also cause the printer to be much deeper without giving me larger printing area, and so it wouldn’t fit on my desk.. which was a primary requirment!

A rather big issue was how the RepRapFirmware at the time did not support this form for autolevel and there was no date for when it might be available.

Anyway, here’s a blog-post about it. I’ll at some later date make some youtube video to show how it works, so stay tuned! 🙂

  1. Independent Z-Motors
  2. Is this autolevel?
    1. Autocompensation
    2. Autolevel
  3. My usage of 2x Z-motors
    1. What am I going to do here exactly?
    2. Why? Is it even needed?
    3. How is this going to work in practice?
  4. Motor remapping for dual Z
    1. Physical Drive Connection
    2. Use M584 to remap the drives
    3. Configure Drives
    4. Endstop setup
  5. Example setup for non-duex user
  6. New Homing files

1) Independent Z Motors

It all ended up with me using 2 independent Z-motors.

I started out driving both from the same Z-driver but installed a limit-switch at each motor, which would be at Z-max, and planned how to trigger them using identical screws on both sides, mounted down through a threadded m3 hole in the Z-gantry for just this purpose.

The screws can of course be turned some, if fineadjustment is needed. I used some Loctite Threadlocker (open UK Ebay) to make sure it didn’t rattle loose.

2) Is this autolevel?

You might ask if this is autolevel by now, as it looks completely different than what you are used to see with a probe or sensor or similar..

Autocompensation

We normally see some sort of sensor near the hotend, which probes places around the bed and then compensate according to how uneven the printbed is.

This sort of automation is more correctly called autocompensation as it can compensate for various erros, most often just for a non-flat printbed though.

The compensation for non-flat surface is achieved by compensating for these errors by gradually, over the first xx layers flattening out the area on which it is printing. Ie, some areas are printed with a thicker layer than on others. After xx layers it can start printing normally

There are more to this, and different methods to compensate for non-square frame and axes etc, but this is beyond this blog-post

Autolevel

Autolevel on the other hand is when one or more sensors determine the posistion of the printbed and by using 2 or more motors makes it completely level compared to the XY axes.

You would want to use 3 or more motors to make most out of this Autolevel function.

A short note on using Autolevel: functions with RepRapFirmware: The M320 autolevel gcode is not currently implemented in the firmware, and seems it’s not going to be either, as the current functions G29-G32 is fullfilling the same functions more or less. Currently only Repetier firmware is making use of the M320-322 gcodes.

3) My usage of 2x Z-motors

As I talked about previously I selected to only use 2 Z-motors and the function to use these for Autolevelfunctions were recently made available in the RepRapFirmware via the M584: Set drive mapping, so now I’m in business!

In all fairness, the M584 has been around for some time, but I’ve been waiting for a finished sort of system for autolevel, which, as it turns out (see note above) is not going to be implemented, so here I am!

What am I going to do here exactly?

I’m going to home my Z-axis to Z-max and make each motor make use of it’s own endstop in order to make sure each end of the Z-axis is synchronized.

Why? Is it even needed?

In my optics, yes! Asolutely. Any machine using more than 1 z-screw should have this implemented.

Problem with multiple independent z-motors, yes, and even multiple axes driven by a single belt, is that one or more of the axes might get turned a bit. It can happen if you accidentially push on the plate or turn the screw, if you happens to move the z faster than it likes and one motor or screw skips a step or belt etc.

It might also be that your axes aren’t 100% to begin with, so you need to synch them up before each print, which you can do with this method.

How is this going to work in practice?

I’m going to use 2 different drivers for my Z-motors and use the associated Endstop connectors for these drivers as well. This is accomplished by using the M584 to define virtual axes.

It means we include both Z-motors in the original Z and then make a virtual axis for one of these motors in order for them to be able to move as one, but also make use of each motors’ own limit switch in order to make sure they are synchronized.

Motor remapping for dual Z

Before we get down to using M854, we need to use the M569 to define/check our physical setup.

Physical Drive Connection

My setup/explanation:
  • Drive 0-1 as X and Y, which are standard.
  • Drive 2 as left motor, which is normal Z
  • Drive 3 as Right Z-motor, which is normal Extruder0
  • Drive 4 – Standard Extruder1 – I am not using this, as all my extruders are on Duex5
  • Drive 5-9 – My extruders on Duex5


; Define Drives
; Physical Drive connection
M569 P0 S1 ; Drive 0 X
M569 P1 S0 ; Drive 1 Y
M569 P2 S0 ; Left z-motor (original Z)
M569 P3 S0 ; Right z-motor (Ex0)
; M569 P4 S0 ; EX1 - unused
M569 P5 S1 ; Extruder0 - Physical Tool 0
M569 P6 S1 ; Extruder1 - Physical Tool 1
M569 P7 S1 ; Extruder2 - Physical Tool 2
M569 P8 S1 ; Extruder3 - Physical Tool 3
M569 P9 S1 ; Extruder4 - Physical Tool 4

Use M584 to remap the drives

To make this all work, we need to tell the controller how we have conencted our physical connectors:

How to do this:
  • We are starting the new line, which we place under our M569 section above, by issuing the M584 gcode.
  • Then simply go through and use the definitions we made above.
  • X0 – Using Driver 0 as X
  • Y1 – Using Driver 1 as Y
  • Z2:3 – This is the new part, where we define that we are using both Driver 2 and 3 for our Z. This means both are used when hitting the move Z buttons.
  • U3 – We assign driveletter U to our second Z motor, using Drive 3.
    • When using virtual drivenumbers we can’t just come up with some random letters.
    • As of firmware 1.19, we can use UVWABC letters – in that order!
  • E5:6:7:8:9 – Defines how all drivers on the Duex5 are Extruders.
  • P3 – This defines the number of visible axes in our GUI, starting from the first, meaning the visible ones are: XYZ, while the 4th axis U is not shown up in the GUI.
    • You might want to have U visible at first in order to verify your new setup.

; Motor remapping for dual Z
M584 X0 Y1 Z2:3 U3 E5:6:7:8:9 P3 ; Driver 0 For X, 1 for Y, Z=2:3 U=3, Extruder 5-9

Configure Drives

Next step is to configure our machine to use 2 drivers instead of just 1 and to add the new U drive to our Drives configurations.

What you need to do now, is setup microstepping, steps/mm and all other such settings as if you have 2x Z-drives and 1x U-drive

Endstop Setup

Last item in our config.g we need to change is the Endstop configuration. Contrary to above, we do not define a second Z here (As we only have 1 z endstop), but instead just add the U endstop. It’s important that Z and U homes to same end; in this case at Z-max.

Example configuration for non-duex users

This section is a cleaned up section for all the non-duex owners, so you don’t have to sit and sort out my Duex5 config.

Just use the explanations for the Configure Drivers and Endstop Setup just above here.

Explanation:
  • Drive 0-1 as X and Y, which are standard.
  • Drive 2 as 1st Z-motor, which is normal Z
  • Drive 3 as Extruder0
  • Drive 4 as 2nd Z-motor – this is normally Extruder1


; Define Drives
; Physical Drive connection
M569 P0 S1 ; Drive 0 X
M569 P1 S0 ; Drive 1 Y
M569 P2 S0 ; 1st z-motor (original Z)
M569 P3 S0 ; Extruder0
M569 P4 S0 ; 2nd Z-motor - Normally used as Extruder 1

 

  • X0 – Using Driver 0 as X
  • Y1 – Using Driver 1 as Y
  • Z2:4 – This is the new part, where we define that we are using both Driver 2 and 4 for our Z.
    • This means both are used when hitting the move Z buttons.
  • U4 – We assign driveletter U to our second Z motor, using Drive 4.
    • When using virtual drivenumbers we can’t just come up with some random letters.
    • As of firmware 1.19, we can use UVWABC letters – in that order!
  • E3 – Defines Extruder0 as our extruder.
  • P3 – This defines the number of visible axes in our GUI, starting from the first, meaning the visible ones are: XYZ, while the 4th axis U is not shown up in the GUI.
    • You might want to have U visible at first in order to verify your new setup.

And the code to copy/paste:

; Motor remapping for dual Z
M584 X0 Y1 Z2:4 U4 E3 P3 ; Driver 0 For X, 1 for Y, Z=2:4 U=4, Extruder 3

New Homing files

It’s important we remember to create new/modify our homing files to match our new setup.

In particular we need a new Homez.g and a modified Homeall.g.


And the code for easy copy/paste:

G91 ; Relative mode
M584 Z2 ; Split Z into 2 (Z+U)
G1 Z250 U250 F2000 S1 ; Move up to 250mm in the +Z direction. S1 to stop if endstop is triggered
G1 Z-2 U-2 F600 S2 ; Move 2mm in the -Z direction - (I'm not sure what S2 is for?)
G1 Z3 U3 F100 S1 ; Move slowly 3mm in the +Z direction, stopping at the homing switch
M584 Z2:4 ; Join U to Z again (pay attention to drive numbers used)
G1 Z-5 F3000 ; Move back again 5mm in the -Z direction
G90 ; Back to absolute mode

You need to update your Homeall.g files accordingly as well.

Posted on 2 Comments

Duet WiFi/Eth – PID tuning hotend

Since I just changed my old cartridge for a 24v 80w heater on my 5way Diamond hotend and used High Temperature Liquid Gasket Silicone as a sealant on the heatsinks and the Diamond nozzle itself, as is clearly evident on the photo, I need to do a new PID tuning, which is a good starting point for writing a short blog-post on doing just that.

  1. Gcodes used
  2. Prepare for PID tuning
  3. PID-tune hotend heater
    1. Parameters
    2. Heater to tune
    3. Power
    4. Target Temperature
  4. Parameters to use and store in config.g
    1. New PID-Tuning
    2. I’ll add this in my Heaters/Hotend section
  5. Debug – Failing to tune?
    1. Temperature was not reached
    2. Starting temperature is not stable
    3. Over-powered and a fire risk

1) Gcodes used

  • For the actual PID tuning, we are going to use M303
  • M307 H1 to display the parameters we garnered from the PID tuning.
  • Finally you could use M500 to store the parameters in a config-override.g file, which matches the old school Eeprom M500, and overrule the settings in config.g file.
    • I personally have an aversion to this sort of having configurations stored in different places. Especailly for core parameters that shouldn’t change.
    • In my opinion it just leads to confusion as people tends to forget they have anything stored in the override file and can’t figure out why the printer doesn’t accept the new parameters written in the config.g file.

2) Prepare for PID tuning

I prefer to put my hotend close to the heated bed, heat the bed to my most used temperature and then turn on the object-cooling fans at maximum before doing a hotend PID-tuning.

Why you might ask?

I prefer to similuate actual printing situation to get a PID tuning that most closely matches the actual usage scenarios of my printer.

3) PID-tune hotend heater

Parameters

Hnnn heater number
Pnnn PWM to use, 0 to 1 (you should normally use 1 i.e. full power)
Snnn target temperature

Heater to tune
To actually do a PID tuning we need to use the M303 command followed by H1 to denote the heater used, which is the first heater.

If you PID tune your bed, it is H0 by default.

Power
Next we need to define the amount of power we feed our heater cartridge. This is denoted by P followed by a number like P1 for 100% power and P0.5 for 50% power.

RepRapFirmware used to be very, very restrictive regarding power setting. I had to put it at P0.1 (10%) to do a succesfull tuning in january, but His time I could run it at P1 (100%).

Target temperature
Finally we need to define target temperature using S followed by temperatures in celcius like S220 for 220c. Target the temperature you use the most. So 200ish for PLA if that is what you print, or 240 or something like that, if you mostly print ABS.

It means I’ll tune my to 200c at full power like this (mine failed when target was 220):
M303 H1 P1 S200

Sequence is from the bottom and upwards

4) Parameters to use and store in config.g

As mentioned above I’m not a fan of using the M500 to store in config-override.g method, so I’ll get the result from the PID tuning using M307 H1 and put it into my config.g file.

It all seems a bit confusing to be sure

Lets look at the top line, which is the one we are going to be using:
Heater 1 model: gain 188.4, time constant 121.7, dead time 1.4, max PWM 0.50, mode: PID

This translates into:

  • M307 H1 for Heater 1
  • A188,4 for Again
  • C121.7 for Constant
  • D1.4 for Dead time
  • and S0.5 for max PWM

* Default is PID for hotend, so we don’t need to write parameter for this.
* Default for BED is Bang-Bang method, so you’d have to add B0 in the end, to force it to use PID.

M307 H1 A188.4, C121.7, D1.4 S0.5

I honestly do not know why it puts max power at 50%, so i’ll put it at S1 (100%) and use the new parameters to do a new PID tuning like this:

M307 H1 A188.4, C121.7, D1.4 S1

4.1) New PID-Tuning

Saving config.g with the above parameters I’ll run a new PID-tuning target at 220c like so:

M303 H1 P1 S220

I ended up with new parameters with full power on my heater:
Heater 1 model: gain 375.3, time constant 125.9, dead time 3.8, max PWM 1.00, mode: PID

This translates into:

  • M375.3 H1 for Heater 1
  • A125.9 for Again
  • C125.9 for Constant
  • D3.8for Dead time
  • and S0.5 for max PWM

Which means we are going to add this line to our config.g file.

M307 H1 A375.3, C125.9, D3.8 S1

4.2) I’ll add this in my Heaters/Hotend section.

So, this is ho my Hotend section turned out looking 🙂

5) Debug – Failing to tune?

There are different reasons why it migh fail to tune.

Temperature was not reached

Auto tune cancelled because target temperature was not reached Heater 1 switched off

Solution: Try using a lower temperature. It might fail if it took too long to reach the target temperature.

Starting temperature is not stable

Auto tune cancelled because starting temperature is not stable

Solution: You need to wait for temperature to get almost back to room temperature before trying again.

Over-powered and a fire risk

Warning: Heater 1 appears to be over-powered and a fire risk if left on at full power, its temperature is predicted to reach XXXc

Solution: Lower the value of the P parameter, which is the current you feed your heater during testing

Posted on Leave a comment

Duet WiFi/Eth – Recover from Erase + basic setup

I accidentially hit the Erase button on the edge of my Duet WiFi card, which means it wiped my firmware from the controller! Luckily it didn’t wipe my SD card, so my config files didn’t go missing on me.

I still need to setup my controller again though, and while I previously did write a blog-post on doing that, it was a long time ago and a lot has happened since then on how things are done, so I decided to do a new writeup on it.

Also, since it wiped the firmware from the controller, I am now unable to connect to it the regular way, which we need to solve.

Contents

  1. Download firmware and drivers
    1. Install drivers
    2. Rename firmware files
  2. Download relevant programs
    1. Pronterface/Printrun (you should use YAT)
    2. SDFormatter
    3. SAM-BA v2.17
  3. Write new firmware using SAM-BA
  4. Getting SD-Card Ready
    1. Format SD-card
    2. Copy over SD-Image files
      1. Rename printerfolder
    3. Put firmware files on the SD-card
    4. Make ready for Duet Web Interface
    5. Macrofile for networksetup
  5. Install WiFiserver and activate WiFi
  6. SD Card Folder Structure

1) Download firmware and drivers

  • In order for your computer to communicate with the controller using USB, we need to get the drivers from DC42s Github driver folder.We also need to download the newest firmware and it’s a good idea to download the SD-Image folder to give us a new set of files for our now defunct printer.All in all, it is easiest to just click the Clone or download on the main RepRapFirmware Github page and select Download Zip, which you extract somewhere easy to find and use.
  • In the directories you just unzipped go into RepRapFirmware-dev/Driver folder and right-click on duet.inf and select install to install the drivers.
  • Browse down through RepRapFirmware-dev/Release/Duet-WiFi/Stable and rename the files:
    • DuetWiFiFirmware-1.19.bin to DuetWiFiFirmware.bin
    • DuetWiFiServer-1.19.bin to DuetWiFiServer.bin

2) Download relevant programs

  • Pronterface/Printrun

    In the Getting connected to the Duet WiFi they suggest using a dedicated terminal program to setup the controller/firmware, but I really much prefer using Pronterface/Printrun. You should use YAT, as it doesn’t convert all characters to CAPs as Pronterface/Printrun does.

    I vastly prefer it over any form of terminal function in all slizers as the slizers comes with some configured settings which can screw up the result you get when moving and axis or sending a command to check a function.

    So, go to the download page for Pronterface/Printrun 3D Printing Host Suite and select the version fitting for your type of computer.

    To use Pronterface/Printrun you just need to extract/unzip the file and run the pronterface.exe file

  • SD Formatter 4

    Note: The program is named SD Formatter 4, but they have a version 5, which is a bit strange.

    Some of you  are going to wonder about why we need a dedicated program to format the SD card, and the answer is quiet simple: To avoid/minimize the risk of the SD card turning bad, either turning completely unuseable untill reformatted, or just performs really bad, with slow speeds.
    The program simply just does a much better job of preparing SD cards correctly and it can even fix many annoying problems many people experience now and then on their printers.

    Go to the SD Formatter (4/5) Download page, scroll down and download and install the version for your system.

  • SAM-BA 2.17

    Since I hit the erase button on the Duet WiFi I can no longer talk to it using Pronterface, as we first need to burn the firmware onto the controller using SAM-BA 2.17. I don’t know why it has to be 2.17, but the specific version is listed on the Fallback description on the Duet wiki. Install it after downloading and leave it open.

3) Write new firmware using SAM-BA

Note: This step is only necessary if you cannot connect to your controller after having hit Erase

  • Connect the Duet WiFi to your PC via USB.
  • Press the Erase button on the Duet WiFi, then the Reset button.
  • Load SAM-BA. It usually detects the correct COM port automatically. Select board at91sam4e8-ek. Press Connect.
  • In the Send File Name box enter or browse to the DuetWiFiFirmware.bin file to be loaded, then press Send File (leave the Address at the default of 0x400000).
  • On completion it will invite you to lock the region; press Yes.
  • To verify the writeprocess press Compare sent file with memory.
  • Press the Execute button next to the Boot from Flash option in the Scripts box. Then exit SAM-BA.
  • Press Reset on the board.
  • You should now be able to connect via USB/Pronterface.
    Try sending the M115 command to check firmware version

Source for this section was found on the Duet Wiki.

4) Getting SD-card ready

  • Format your SD card using SD-formatter – remember to copy out any config-files you might want to save.
  • Now navigate to the folder RepRapFirmware-dev\SD-image you downloaded in Step 1.
    • Copy the entire content to your SD-Card
  • My printer is a CoreXY, so I’ll rename the sys-CoreXY folder on the SD-card to plain sys

Put firmware files on the SD-card

  • Copy over the 3 .bin files from RepRapFirmware-dev/Release/Duet-WiFi/Stable we renamed in Step 1.2 and put them into the newly named sys folder

Make ready for Duet Web Interface

  • Turns out the www folder is rather deprecated and didn’t work at all, at my place, so delete the www folder on the SD-Card
  • Now go to RepRapFirmware-dev\Release\Duet-WiFi\Stable and unzip the DuetWebControl-1.19.zip file
  • Rename ths folder to www and copy it onto your SD-Card

Macrofile for networksetup

  • We need to create a small macrofile to make it connect to our WiFi.
    I tried doing this manually without the Macro, but I simply just could not get it to connect..
  • So, go to your Macros folder on your SD card and create a new file named SetNetwork containing the following commands:
    M552 S0
    G4 P1000
    M587 S"your-network-ssid" P"your-network-password"


    Source info
  • Now eject the card from your computer and insert it into your Duet WiFi and connect it to your computer using the USB cable

Install WiFiserver and activate WiFi

Now it’s time to install the DuetWiFiServer onto our board to enable the usage of WiFi

  • Connect to the DuetWiFi using Pronterface and issue the command M997 S0:1 which is going to install/update both firmwares.

Note: I know we allready have the newest DuetWiFiFirmware on it, but easier to remember just one command.

  • Wait for it to finish and disconnect as it’s restarting.
  • Disconnect and Connect again using Pronterface and type M552 S0 to start the WiFi module
    M552 S0
    SENDING:M552 S0
    WiFi module started
  • Type in M98 P/macros/SetNetwork to execute the macro we created
    >>> M98 P/macros/SetNetwork
    SENDING:M98 P/MACROS/SETNETWORK
    WiFi module started
  • Send M587 and check that your network is listed
  • Send M552 S1.
    After a few seconds you should see a message that it has connected to your access point and display the IP it has recieved.
  • Connect via the web interface
  • Enable the M552 S1 command in config.g – if it’s not in there, then just make a new line and type it in.
  • For security, delete the SetNetwork macro file

SD Card Folder Structure

It’s usefull to know how the structure is supposed to be on the SD-card and also to know the function of each of the files and more info.

All this is shown on the SD Card folder structure wiki page

Posted on Leave a comment

PanelDue – Update firmware

In this post I’ll go through updating firmware on the PanelDue.

It’s really not that difficult, but as always, it can be a bit of a chore figuring out the location of and type of files we need to use.

What we need/in this post

You can check your current version by clicking Setup on your display. Mine was version 1.14 – This is in itself not important for this post, but just nice to know.

Know your PanelDue version

In order to figure out the version of PanelDue we own, we need to look at the back side of the PanelDue PCB.

Mine is V2 as can be seen here.

Get the latest correct firmware

Now we know the hardware version of our PanelDue, so lets go get the newest firmware for it from the PanelDueFirmware page

My screen is 4.3″ inches, so combine that with the version 2 and I need to get the file PanelDue-v2-4.3.bin

Program to update firmware

In order to update our firmware, we need to get a program called “Bossa”.

Go to their Github page and download the file fitting for your system and install it.

Erase and Reset PanelDue

Next step is to Erase and Reset the device to make ready for new firmware.
Some of these steps are taken from the official page.

  • Press and hold the Erase button of the PanelDue for at least one second.
  • Release the Erase button, then press and release the Reset button.
    • If you have a version 2.0 board then the backlight will turn off.

  • Identify the COM port number or port name of the PanelDue board on your PC.
    If you use Windows, you can do this by pressing CTRL+Pause/Break or via Start->Control Panel->System->Device Manager.

    • Then expand Ports (COM and LPT), and look for Bossa port.
    • If you can’t find the port, try repeating the Erase and Reset sequence, or disconnecting and reconnecting the USB cable, or try a different USB port on your computer.

Write new firmware to PanelDue

We are going to use the program Bossa we downloaded and installed previously, but you can also use the command prompt.

I’ll list the command for the commandline option, but I have not tested it.

Command Prompt

Under Windows, open a command prompt and use this command:

Taken from the official page.

bossac.exe --port=COM4 -e -w -v -b PanelDueFirmware.bin

Options:

  • -e, –erase erase the entire flash
  • -w, –write write FILE to the flash; accelerated when
    combined with erase option
  • -v, –verify verify FILE matches flash contents
  • -b, –boot[=BOOL] boot from ROM if BOOL is 0;
    boot from FLASH if BOOL is 1 [default];
    option is ignored on unsupported devices

Using GUI

Run Bossa as Administrator and select the Serial Port we verified above.

  • You must put a mark in Erase all, Boot to flash and Lock.
  • Hit Write and wait for it to finish and click OK.
  • Click the Verify button.

PanelDue up and running

Now hit the Reset button on the PanelDue PCB and display should come back online.

Remember to adjust baud to match your settings in your controllers firmware.

Sources

For full read on the Panel Due https://miscsolutions.wordpress.com/paneldue/
Bossa product page: http://www.shumatech.com/web/products/bossa

Posted on Leave a comment

Duet WiFi – Adding a second extruder

As some might know, I’ve been working on a version 4 of my Belted Extruder and am now ready to put it to use on my primary printer, which has been using a single extruder so far.

Drives section

In the Drives section of our config.g file we need to add 7 changes:

Changes in Drives section described:

  1. Add the drive – Using M569
    We allready have X,Y,Z,E0 which are labeled 0-3 so our new drive is nr. 4.
    My V4 Belted Extruder Design is running in reverse, so we set it to S1
    M569 P4 S1 ; Drive 4 in reverse - E1
  2. Microstepping used – Using M350
    I’m using 1/32 microstepping for both extruders, so just adding :32 to the existing line.
    M350 E32:32 ; Extruder0 microstep
  3. Steps/mm for our new extruder. Using M92
    I have not yet calibrated it, so inputting 2050 to go from, after steps defined for our first extruder.
    M92 E2057:2050 ; Steps/mm for Extruders
  4. Speed change – Using M566
    M566 X1800 Y1800 Z12 E120:120 ; Set maximum instantaneous speed changes (mm/min)
  5. Maximum speed – Using M203
    M203 X18000 Y18000 Z2500 E1200:1200 ; Set maximum speeds (mm/min)
  6. Accelleration – Using M201
    M201 X500 Y500 Z250 E250:250 ; Set accelerations (mm/s^2)
  7. Current – Using M906
    M906 X800 Y800 E700:700 Z1200 I0 ; Set motor currents (mA) and motor idle factor in per cent

Tools section

For now, I only have 1 hotend on this printer, but 2 extruders. I’m using a normal E3Dv6 1.75mm bowden, so I’ll just swap over the bowden tube to the extruder I’m going to be using.

It all means I’m not adding any new heaters for now.

To setup our new Tool, we need to add 3 lines to our config.g file:

  1. Add new tool by defining it. Using M563
    P is the Tool Number, D is Extruder drive, which is not to be confused with machine Drive number we defined above. H is the Heater we use with our new tool.
    ; Pnnn Tool number
    ; Dnnn Extruder drive(s)
    ; Hnnn Heater(s)
    M563 P1 D1 H1; Define tool 1
  2. Tool offset – Using G10
    G10 P1 X0 Y0 Z0 ; Set tool 1 axis offsets
  3. Initial active tool – Using G10
    G10 P1 R0 S0 ; Set initial tool 0 active and standby temperatures to 0C

Note: You can combine the #2-3 G10 commands if you like.

That’s it.

You can now go and see the extra Tool in your Settings – Tools section. Yes, you can add Tools in here, but I rather like doing it the other way, to make sure I have everything how I like it 🙂

Just need to add an extra Extruder to your favorite Slizer 🙂

Posted on Leave a comment

Printing Nylon

Today I’ll take a break from my BeTrue3D Printer project and look at some long overdue projects.

Todays project is going to be printing Nylon, which is something I’ve wanted to try for a long, long time.

Picking type of Nylon

The first step obviously is to get my hands on some Nylon, but which one? There are so many types, and I’m not really all the knowledeable in the composition and usages of the different models… luckily for me, Taulman3d has made a super nice overview of Nylon types, for this exact situation.

I strongly recommend you go and read the full page on Taulman3d to learn more about it.

I’ve picked the Alloy 910 to print, and marked it in the below image, which originates from Taulman3D.

When I bought it, a long time ago, there was a list over ease of printing as well, where the Alloy 910 featured as the most easy Nylon to print, which was a huge reason for the choice as well!

Properties and usagescenarios of Alloy 910

Below is taken from the Taulman3D page I linked to above.

Alloy 910 = Alloy 910 is a significant development by taulman3D and both our chemical house and post processing company.  The goal was to provide a super material with very high tensile, yet sufficient elongation to maintain a high degree of durability.  Alloy 910, when 3D Printed comes in at 8,100 PSI Tensile and close to 12,000PSI when injection molded.
Potential uses:
* Any industrial parts that are currently being made of other high tensile polymers.
* Large motor mounting
* Industrial vibration isolators and damping parts
* High Pressure Sand Blasting resistant
* Sand Blast Masking
* Electroplating supports and hangers
* Chemical dip and tank supports.
* High end gears and cams
* Chemical resistant equipment covers.

I primarily wanted to be able to print Nylon in order to create strong mounting parts and also to be able to print high quality gears, for which the Alloy 910 is a good choice.
The Alloy 910 is also the choice of Nylon for high temperature applications.

Alloy 910 has one very unique feature as well: There are no fumes when printing!

Alloy 910 Features:

I’ve only written the one directly relevant for printing and using Alloy 910. There are more informtion on the Specification sheet and much more detailed information in their Data Sheet (opens PDF).

  • Surface texture: Very Good
  • Use of Taps for threads: Excellent
  • Use in 3D Forging: Excellent
  • Printed Prostesis: Excellent
  • Robotic Assemblies: Excellent
  • Fumes: None
  • Dye Uptake (Saturation): Very Good
  • 8100+ PSI Tensile strength

How to print it

Ahh, now we come to the question that prevents many from trying to print Nylon.

The Taulman3D Alloy 910 is listed with the following printing requirments:

  • Printing Temperature 250-255c
  • Print-Bed Temperature 30-65c
  • Ambient Temperature 30-100c

Prepare printbed

Nylon just doesn’t stick on PEI. At least not on mine. It works well the first few layers, but then it pops free and leaves you something like this:

I opted to find a piece of glass, clean it using Acetone and clamp it onto my PEI-Coated Aluminium bed.

Now I applied a thinish layer of Elmers Glue-All (any PVA glue should do I guess) and heated the bed to 65c untill it dried up.

For my UM2+ clones I normally mix the glue 1:1 with water, but I applied it without mixing it here.

Ambient temperature

How to get the temperature above 30c you might ask.. higher is preferable… luckily for me, or maybe just foresight, I have removable sides on my printer, attached using magnets, and I recently made a top for it as well, made from Acrylic plates I cut using a jigsaw and printed parts.

So, I simply just put my heated bed to 120c and waited.. not long, untill the temperature in the box was at 40+ as you can see here:

Printsettings:

I started out using the recommended values and printed slow. I normally print a good deal faster, but I’ve learned to start slow when starting to learn something new. Takes away the speed variable for failures in most cases.

  • Hotend: first/rest 255c/250c
  • Bed: first/rest 85c/80c
  • Ambient: 40c-50c (I call it my passively heated chamber, as the heat comes from the bed).
  • 0.2mm layer height
  • 3 walls
  • 100% infill
  • First layer speed: 20mm/s – no need to go this slow. It stuck really well.
  • Outer walls: 30mm/s
  • 40mm/s everything else
  • 150mm/s movespeed
  • 100% flow
  • Retract 1mm – E3D Full 1,75mm
  • Nozzle 0.4 – all lines 0.4 width
  • No Cooling

Result

I hadn’t configured the distance between nozzle and bed properly. I thought I could do it using babystepping, but for some reason it wouldn’t move Z to negative, so the distance was too great. Even though, it was only one corner that came loose, and not even much at that!

Even though it wasn’t close to the glass it sat extremely like fused to the glass. I ended up putting the plate in the freezer, which made it pop free easily.

Unless you use a Borosilicat plate you must be carefull not to drop a smoldring hot plate into the freezer, or the other way.

Also make sure to get condensation away before next print (said mr. obvious 🙂 )

Further reading

I found a good article on Matterhacks on printing Nylon.

They also had nice info on how to dry out the Nylon before usage:

To dry nylon filament, place it in an oven at 70c/160°F – 80c/180°F for 6 to 8 hours. After drying, store in an airtight container, preferably with desiccant (learn more about desiccant here).

Posted on Leave a comment

Using Duet with Cura and + Diamond Hotend and Firmware Retract

Note: This post is not complete, and the temperature settings in startup.gcode is not correct for use in Cura – I am working on a new, updated, more comprehensive Guide to using Cura for muticolor printing.

In my ongoing project for my 5way Fullcolor Diamond Hotend I’ve had some issues getting Cura to work in the first place and latter again to make it run using Firmware Retract, which is required to make all 5 extruders retract at the same time.

I finally made it all work yesterday, so here comes the setup-recipy for Cura users, once an for all 🙂

Inherent config changes needed for all Cura users using Duet:

Duet is using Relative Extrusion as standard, which Cura does not support. It shows itself in massively overextruding when printing, while at the same time extruding normally when calibrating extruder using Web Interface.

  • Need to comment out M83 in config.g + Use M82 in cura startgcode.

Adding Diamond hotend and we need more changes:

Firmware Retract and Volumetric

Now, in order to use Firmware Retract in Cura we need to use either the Ulticode or RepRap (Volumetric) Gcode Flavor in Machine settings.
We can’t use the Ulticode one, as it removes the startup.gcode option and the second one requires Duet to use Volumetric.

Duet only just supported Volumetric extrusion in 1.19RC/Beta, so you need to upgrade firmware if you havn’t allready.

Extra special important note: Be sure to read upgrade instructions if using 1.18 or earlier as you can not do it through web interface!

To use Volumetric:
We need to use Firmware 1.19 or newer + use the this in config.g

M200 D1.75

To use Firmware retract
Enabled using through config.g

M207 S1.5 F3000

Now it all works but Extruding manually using web interface after enabling Volumetric extrusion via M200 now extrudes only 4/10 though.. guess it’s to consider a firmware bug.

Summary

  • Need to uncomment M83 in config.g + Use M82 in cura startgcode. (This is always the case when using Duet with Cura)
  • Use Duet Firmware 1.19 or newer – Be sure to read upgrade instructions
  • Cura – Use RepRap (Volumetric) Gcode Flavor in machine settings – to support Firmware Retract.
  • Duet Config.g – Enable Firmware Retract using M207 S1.5 F3000   – Diamond hotend retract at 1.5mm is good.
  • Duet Config.g – Enable Volumetric printign using M200 D1.75
Posted on Leave a comment

BeTrue3D Printer – Setting up 5-way Diamond firmware

Wow, been a while since I last wrote… seems like I always start by writing that, hehe.

As always I’ve been through a lot of iterations of various brackets and other mechanics, but this post is going to be about setting up the RepRapFirmware for use with the 5-way Diamond Fullcolor Hotend.

I’ve been building 3D Printers some years, but this is actually my first venture into multi-color printing, which has proven a rather steep learning curve for me.

Luckily for me, I’ve had help and inspiration from the great blogpost Using the Diamond Hotend with DuetWifi found on Think3DPrint3D.

Drives

First I need to setup my Drives and axes, which includes X, Y, Z and all my extruders. There’s not much to this really, once you get to know what’s going on.

The first 3 lines configures X, Y and Z, while the next 5 defines my extruder motors.

Next two lines defines microstepping and steps/mm.

; Drives
M569 P0 S1 ; Drive 0 goes forwards A
M569 P1 S1 ; Drive 1 goes forwards B
M569 P2 S0 ; Drive 2 goes forwards Z-both motor on 1 driver for now.
M569 P3 S0 ; Tool 0
M569 P4 S0 ; Tool 1
M569 P5 S0 ; Tool 2
M569 P6 S0 ; Tool 3
M569 P7 S0 ; Tool 4
M350 X16 Y16 Z16 E16:16:16:16:16 I1 ; Configure microstepping with interpolation
M92 X160 Y160 Z800 E1025:1025:1025:1025:1025 ; Set steps per mm

Heaters

While this section isn’t unique to the Diamond hotend I’m still including it, as it’s really crucial to have done the PID tuning.

As you can see, I like to comment in my config.g file in order to figure out what and how I did what I did.

Notice how the Heated Bed is using a Thermistor, where I needed to include the parameters for it, along with the PID parameters I got from the PID Tuning.

The Diamond Hotend also has PID parameters but is using a Thermocoupler instead of Thermistor, so here I’ve defined the use of the first channel on my Daughterboard.

; Heaters
; M305 Sensor P0 Bed. P1 Hotend
; M307 Heater
; Test Hotend: M303 H1 P0.3 S200
; Test Bed M303 H0 P0.1 S100
; BED
M143 H0 S140 ; set the maximum bed temperature to 140C
M307 H0 A44.1 C127.7 D3.0 S1 B0 ; Heated Bed Pid settings
M305 P0 T100000 B3950 C0 R4700 ; BED Thermistor
; Hotend
M143 S260 ; Set maximum hotend temperature to 240C
M307 H1 A1073.8 C407.8 D3.5 S1 B0 ; PID Heater - 5-way Diamond
M305 P1 X100 ; Use thermocoupler for heater P1/H1 on first channel

BLTouch

Just as a sidenote: I’ve prepared the use of BLTouch Sensor, which I wrote a seperate blogpost about.

In order to free up a PWM channel to controll it, I disabled the last heater as follows:

; Disabled heaters
M307 H7 A-1 C-1 D-1 ; Disable heater 7 for BLTouch

Tools

Now we get down to it; defining all the tools we need.

In a nutshell we need to define each Extruder + an extra, which amounts to 6 in all.

Remember the first tool is Tool 0 so we go from Tool 0-4 for the physical extruders.

What is going on here is that we define each Tool to include all 5 extruders, enable mixing and use 1 extruder as the primary extruder and the other 4 as slight additions.

It really seems odd at first, to mix everything a bit all the time, but unless the colors are moving forward some the same filament end up being retracted back and forth a lot and risk degrading and ultimately clogging up the nozzle, or at least the unused channels.

You can read a larger explanation at the blogpost I mentioned previously. For me it’s just theory so far.

The final Tool has an even mixration which we can override by editing the Gcode files, to create a large variety of colors.

Note: The mixing ratios should be changed – I’m still working on perfect ratio, but the secondary should be down to like 0.005 instead of 0.025 – change primary accordingly.

; Tools
; P tool number
; D Extruder drive
; H Heater
M563 P0 D0:1:2:3:4 H1 ; Define tool 0
G10 P0 X0 Y0 Z0 ; Set tool 0 axis offsets
G10 P0 R0 S0 ; Set initial tool 0 active and standby temperatures to 0C
M568 P0 S1 ; Enable mixing for tool 0
M567 P0 E0.9:0.025:0.025:0.025:0.025 ; Set mixing ratios for tool 0

M563 P1 D0:1:2:3:4 H1 ; Define tool 1
G10 P1 X0 Y0 Z0 ; Set tool 1 axis offsets
G10 P1 R0 S0 ; Set initial tool 1 active and standby temperatures to 0C
M568 P1 S1 ; Enable mixing for tool 1
M567 P1 E0.025:0.9:0.025:0.025:0.025 ; Set mixing ratios for tool 1

M563 P2 D0:1:2:3:4 H1 ; Define tool 2
G10 P2 X0 Y0 Z0 ; Set tool 2 axis offsets
G10 P2 R0 S0 ; Set initial tool 2 active and standby temperatures to 0C
M568 P2 S1 ; Enable mixing for tool 2
M567 P2 E0.025:0.025:0.9:0.025:0.025 ; Set mixing ratios for tool 2

M563 P3 D0:1:2:3:4 H1 ; Define tool 3
G10 P3 X0 Y0 Z0 ; Set tool 3 axis offsets
G10 P3 R0 S0 ; Set initial tool 3 active and standby temperatures to 0C
M568 P3 S1 ; Enable mixing for tool 3
M567 P3 E0.025:0.025:0.025:0.9:0.025 ; Set mixing ratios for tool 3

M563 P4 D0:1:2:3:4 H1 ; Define tool 4
G10 P4 X0 Y0 Z0 ; Set tool 4 axis offsets
G10 P4 R0 S0 ; Set initial tool 4 active and standby temperatures to 0C
M568 P4 S1 ; Enable mixing for tool 4
M567 P4 E0.025:0.025:0.025:0.025:0.9 ; Set mixing ratios for tool 4

M563 P5 D0:1:2:3:4 H1 ; Define tool 5
G10 P5 X0 Y0 Z0 ; Set tool 5 axis offsets
G10 P5 R0 S0 ; Set initial tool 5 active and standby temperatures to 0C
M568 P5 S1 ; Enable mixing for tool 5
M567 P5 E0.20:0.20:0.20:0.20:0.20 ; Set mixing ratios for tool 5

Firmware Retraction

To make it work at all, we need to enable firmware retraction in our firmware and enable it in our Slizer.

I’ve put in a lot of notes here, but I’ve really only setup length and speed and of course enabled it by issuing the M207 Gcode command.

We need to enable firmware retract as all our extruders must retract at the same time instead of just the active one. If only one of the extruders are extracting, it will just suck up the filament in the melting chamber/from the other colors, but not the filament at the tip of the nozzle.

By enabling firmware retracting in firmware and in slizer, the Slizer is going to insert G10 to retract and G11 to unretract, which triggers the firmware retract option.

; Enable Firmware retraction
; https://duet3d.com/wiki/G-code#M207:_Set_retract_length
; Snnn positive length to retract, in mm
; Rnnn positive or negative additional length to un-retract, in mm
; Znnn additional zlift/hop
M207 S1.5 F3000 ;set firmware retraction

Heating and Standby temperature

Aside from the firmware settings we need to do a large deal of changes in our Slizer profile. I can’t go into all of them obviously, but one of the universal ones are defining Standby temperature in the startup gcode file using the G10 G-command.

G10 P0 S205 R205     ; Set tool 0 Active and standby temperatures
G10 P1 S205 R205     ; Set tool 1 Active and standby temperatures
G10 P2 S205 R205     ; Set tool 2 Active and standby temperatures
G10 P3 S205 R205     ; Set tool 3 Active and standby temperatures
G10 P4 S205 R205     ; Set tool 4 Active and standby temperatures
G10 P5 S205 R205     ; Set tool 5 Active and standby temperatures

Setup up Cura

Be sure to read my new blog-post to correctly setup Cura for this.

Posted on Leave a comment

RPi Zero Wireless – Video for Duet using MotionEYE OS

Prelude

Just the other day I wrote the post on setting up Video on the RPi Zero W to use on the Duet.

This post is ending up pretty much the same place, where we can access the video on our Duet Web Interface (and much more), but instead of using the full Raspbian install for it, we are going to use the much smaller and specialized MotionEYE OS.

For this project

For this project I’m going to use one of the tiny Raspberry Pi Zero Wireless controllers, 8GB SD card or larger and a Pi NoIR Camera V2. Using the NoIR as I wanted to try it out, and the NoIR makes it possible to record in the dark using IR lightning. I’ve found it’s also pretty nice just in my average dim room.

You also need one of the camera cables for the Zeros, as they are tapered in one end compared to the normal ones. They come in 15cm and 30cm lengths.

Index

Download MotionEYE OS

Go the the download page for Motion EYE OS and download the one for motioneyeos-raspberrypi-. If you look at the filezie, it’s obvious how it’s very lightweight and specialized at 68MB for complete OS  (225MB uncompressed) compared to the 4GB of our previous Rasbian installation!

Prepare SD

To make sure there are no unmarked bad areas on the SD drive, I strongly recommend getting a proper SD formatting tool, like SD Formatter, and do a format.

Make sure to pick the right drive, give it a name, choose OverWrite in Options and hit Format.

Unpack and write image to SD

Unpack the file and write image to SD using Etcher. Run Etcher as administrator if you run into problems.

Be patient.. it takes a while.

When it goes from writing data to the SD to Validating, Windows might throw some errors at you, but that’s normal, so don’t worry.

Setup WiFi

As opposed to our previous Raspian venture, we need to make a small file for our USB drive containing the necessary information about our Wireless LAN.

On windows I’m using the standard Notepad to create this file. I’ll not recommend using Notepad++ or some such as they are often more smart than they should be.

update_config=1
ctrl_interface=/var/run/wpa_supplicant
network={
scan_ssid=1
ssid="MyWiFiNetwork"
psk="password123"
}

Replace MyWiFiNetwork with the SSID (name) of your Wi-Fi network, and password123 with your password, making sure to keep the quotes, as above.

If you copy paste the above into a notepad document, make sure to make the correct line breaks.

Now save that file with the filename wpa_supplicant.conf on the root/start of the SD drive

Make sure that your file doesn’t have any extensions on the end of the filename like .txt, it should just be called wpa_supplicant.conf

Hint: Save the file using Save As..  and change filetype drop-down from .txt to All filetypes

Source: https://learn.pimoroni.com/tutorial/sandyj/motioneye-os-on-your-octocam

Attach Camera

Now lets dig out our RPi camera and the special RPi zero camera cable.

Loosen the tabs on both devices and insert the ribbon cable as shown.

Do not put the devices on top of the antistatic bag. It works the opposite of putting the devices inside it, so don’t do that! I know many people are doing this all over the internet, but you really, really do not want to do that.

First Boot

Now insert SD card into your RPi Zero Wireless and power it up.. sit down and wait 5 minutes.

Use Angry IP Scanner to find the device

Unless you have configured IP manually, or have a screen connected, you need to figure out the IP of your device.

There are several ways to go about doing this, but the easiest way is to download and run the Angry IP Scanner. Some antimalware programs pops up warnings on this program, but it is due to its functionality to scan ports and such, and not because it contains malicios code.

So, start it up and just hit Start. It’ll scan a while. Then sort the results by clicking on the column named Ping.

Mine showed up like this, where the standard client devices like computers and printers are going to have a blue icon on the left hand side, so it’s easy to spot. Same with the Web detect on the right hand side, which isn’t normal for standard devices.

So right-click it -> Open -> Web Browser

Webinterface – Setup

Depending on the browser size you are going to see a small image in the corner, or a fullscreen view.

Click the icon looking like a person in the upper left corner, and switch Username to admin and leave Password blank.

Enable Advanced Settings

Turn on Advanced Settings in the General Settings section, and click Apply

Enable Streaming

Make sure Video Device and Video Streaming is turned on.

You might want to turn on Motion Detection as well instead of just having it on always.

Resolution and frame rate

As our last basic setup we are turning up our resolution a bit. Go into Video Device and select the Video Resoluton and Frame Rate fitting your requirments.

Streaming URL

Easiest way to find the URL (address) we need to use in our Duet Web Interface is to go to Video Steraming and cick on the Streaming URL link

This opens a small popup with an address, which you copy and then paste into the Optional URL to an external Webcam in the Duet Web Interface.

Note: Your url is not going to be exactly like mine

Duet Webcam Integration

In order to integrate the videostream into the Duet Web Interface, we need the direct url for our videostream.

My url, as copied above, is http://meye-f4a4e5e9:8081

I insert this into the Optional URL to an external Webcam box in Settings -> User Interface – Webcam Integration

Check it by going to Print Status tab

How it looks in Duet Web Interface when camera is enabled

Posted on Leave a comment

Raspberry Pi Zero Wireless – Video for Duet

For this project I’m going to use one of the tiny Raspberry Pi Zero Wireless controllers and a Pi NoIR Camera V2. Using the NoIR as I wanted to try it out, and the NoIR makes it possible to record in the dark using IR lightning.

You also need one of the camera cables for the Zeros, as they are tapered in one end compared to the normal ones. They come in 15cm and 30cm lengths.

Index

Download Raspian or Noobs

Grab newest Raspbian version. I’m using the full version. Maybe Lite is enough for our purpose?
If you downloaded Raspbian and imaged it using Etcher rather than NOOBS, then you will boot directly to the desktop environment of Raspbian and won't need to wait.
I ended up having to download using Torrent which took 8 hours less than the regular download!

You can get the Noobs version (instead of the above Raspbian) – and look at this nice guide:
NOOBS is an easy operating system installer which contains Raspbian. It also provides a selection of alternative operating systems which are then downloaded from the internet and installed.

Prepare SD

To make the SD last longer, I strongly recommend getting a proper SD formatting tool, like SD Formatter, and do a format.

Make sure to pick the right drive, give it a name and hit Format.

Unpack and write image to SD

Write image to SD using Etcher – it can open .zip files without extracting it.

Or you can get Win 32 Disk Imager for more options.

Note: For some reason it didn’t want to work with my normal SD card-reader, so had to dig up a different one!

Be patient.. it takes a while.
I had some issues, as mentioned above, so ended up unpacking it manually, which is why the source filename is different in the two images here.

When it goes from writing data to the SD to Validating, Windows might throw some errors at you, but that’s normal, so don’t worry.

Remote Access using VNC

I used usb keyboard and mouse, which I had to switch back and forth, since I couldn’t find my USB-hub, to connect the RPI to my WiFi and to activate VNC.

Windows key to open the menu. Go figure 🙂

Here’s a guide.

Next up I need to get myself a VNC viewer for my PC to connect to the RPI from my PC.

  • Do not use it on your RPi to connect to the RPi!
  • Just press Got It, on the first welcome screen. It looks like options with the icons above, but they aren’t.

Enter the IP and then use the default username pi and password raspberry  to connect.

You want to change these at some point.

I now have access from my PC and am ready for our Camera.

Attach Camera

Now lets dig out our RPi camera and the special RPi zero camera cable.

Loosen the tabs on both devices and insert the ribbon cable as shown.

Do not put the devices on top of the antistatic bag. It works the opposite of putting the devices inside it, so don’t do that! I know many people are doing this all over the internet, but you really, really do not want to do that.

We do not need to activate the camera using commands, since we enabled the Camera further up top alongside VNC.

Update

Now we need to update before continuing setting up the Camera.

Enter the Console/Sli and type:

Sudo apt-get update
and then
Sudo apt-get dist-upgrade

If you are used to use sudo apt-get upgrade instead of the dist- you might want to read about the differences.

Test Camera

Lets see if it works, by issuing this command:
raspistill -v -o test.jpg
You can find the test.jpg file using the File Explorer, where the photo should be placed at your home directory.

There is a larger guide here.

Install Camera software

I had planned to install the software Motion, as I had read a nice guide, but it turned out it just didn’t want to work with my Noir V2 camera, so I decided to look elsewhere. I also learned the project is no longer in the hands of the original author and has not been updated for a while.

RPI-Cam-Web-Interface

I decided on using RPI-Cam-Web-Interface instead although it is a webinterface, which isn’t strictly what I want for my Duet WiFi purposes. But I hoped it would make the raw videostream available, which it turned out to do.

The interface options also makes it easier to setup the different options as I’m not much of a linux console kind of guy.

Installing it:

There is a nice wiki guide, which I’m pretty much just following.

Since we allready updated our RPI, we can skip to step 4 to install the actual software via the Console:
1 command pr line. Wait for each to finish.

git clone https://github.com/silvanmelchior/RPi_Cam_Web_Interface.git
cd RPi_Cam_Web_Interface
chmod u+x *.sh
./install.sh

Short explanation: First it downloads the program, change to the folder, makes all .sh files executable and then installs  it.

A window is going to pop-up after a while. I just used default settings under installations.

Accessing RPI Interface

Open you browser and type in the IP of your RPI. If using default settings, you will be presented with a directory listing, where you can click on html link before you see something like this:

All done as we don’t need to do anything here really, but you might want to go into Camera Settings to setup resolution

Duet Webcam Integration

In order to integrate the videostream into the Duet Web Interface, we need the direct url for our videostream.

Lets say the IP is 192.168.1.26 like mine, the address you need to insert into the Duet Web Integration box is:
http://192.168.1.26/html/cam_pic_new.php
You put this into the Optional URL to an external Webcam box in Settings -> User InterfaceWebcam Integration

Note: I’m not entirely sure what the checkboxes are meant to do. I can find no differences if I check the Embed Webcam Stream or not?