Fysetc in China have been producing Duet 3 clones for quite a while now. They started off producing Duet 2 wifi and ethernet boards and paneldues, and have since progressed onto Duet 3 6HC’s, Duet 3 3HC’s, Toolboards, distribution boards and 1XD’s. They were cloning the Duet 3 Mini 5+ for a while but have since withdrawn them and started producing their own variant called the “Big Dipper”. More on that board in another post.
For those of you that don’t know, the Duet 3 range of control boards have a feature called CAN-FD. It allows the sending of data over two wires between multiple devices and is used a lot within modern cars etc. It has a data rate that is roughly 5 times faster than traditional CAN. But what does that mean to you and your 3D printer? Well lets just think about a typical direct drive tool head arrangement on a 3D printer. You have 4 wires for the driver, 2 wires for the hotend, 2 for the thermistor, 2 for the hotend fan, 2 for the part cooling fan and then theres probably some sort of probe on there, so lets say another 5 wires for a BLTouch. All of a sudden you have a bundle of 17 wires going to the tool. Instead, you fit a toolboard to your tool and that suddenly reduces to 6 (4 for the CAN-FD connection and 2 for power) and you can add even more features.
On to the Fysetc toolboard. As you can see in the above image, the Fysetc toolboard has a slightly different layout compared to Duet Toolboard meaning they haven’t copied the board 100%. The power connector is also in a slightly different position.
It could be nice if Fysetc clearly identified the board as being a clone but at least it doesn’t use the Duet3D logo. It’s also good that they have added the holes to allow screw terminals to be fitted if the user requires.
The board I received had 3.4b6 installed so it won’t connect to a board thats running firmware version 3.3. Fortunately I run the latest beta’s so I was able to connect without issue. So far, I have tested the heater and fan outputs, driver and accelerometer and it works perfectly fine. One thing to note is that the schematics of the Fysetc version are not available. All the information about the Duet Toolboard can be found on github.
If you want a Duet Toolboard, the Fysetc version seems a viable alternative without breaking the bank.
I wanted to let everyone know that I am now the UK/Europe authorised reseller for Flymaker/Mellow products.
I will be starting by selling Flymakers printer boards. Stock will be with me on Friday (12/03/2021) and will be listed shortly after that on here. Once I am established, I will look to start expanding the product line to include Mellow hotends and extruders etc. Please post in the comments if there is anything in particular you would like me to stock.
Here, we have another board from Flymaker and Mellow, this time designed as a drop in replacement for the stock Ender 3 board. It has been designed with input from GloomyAndy and myself.
So why would this be a good candidate for replacing your Ender 3 board? Well there are a number of Pro’s
Its based on the very powerful STM32F407VGT6. To put this into perspective, it is the same processor that is used in the SKR Pro and GTR boards. It is faster and more powerful that the processor found in the Duet 2 WiFi boards.
It is the same size as the current Ender 3 board, with the same layout to make swapping over a breeze.
It is equipped with an ESP07s on-board which also has an external antenna, meaning minimal to adjustment is required to install this in the stock metal housing.
It has 2 controlable fan ports allowing both the hotend and part cooling fans to be controlled. No more whirring fans when you are not printing.
It has an on-board MAX31865 and MAX6675. What does this mean in real terms? It has native support for both a PT100 and ‘K’ type thermocouple. Even the Duet boards can’t do that without purchasing a separate add-on board.
It has a port to use the stock screen. At the moment, the software doesn’t support this but it is being worked on. There is also a separate serial connection to plug in a TFT, Paneldue or one of Flymakers own screens.
And of course, there us a dedicated BLTouch connector.
This board is hands down the most capable board on the market for the Ender 3. Did I also mention that it is Fully supported by the STM32 port of RepRapFirmware?
It can be purchased now from the Mellow Store on aliexpress. There are also full instructions for getting this board up and running with RepRapFirmware available here. As always, if you have any issues please join us on Discord and we will be happy to support you further.
This is the first board available that has been explicitly designed to use the LPC port of RepRapFirmware.
As can be seen in the image above, this board has an on-board ESP8266 wifi module, removing the need to install an adapter board. Below is a quick overview of some of the features available.
6 x driver slots
3 x controllable fan outputs
3 x extruder connections (outputs and thermistors)
6 x endstop inputs
1 x bltouch header
USB-C rather than micro USB.
This is definitely a good mid-range board that would cover most single or dual extruder printers.
It can be purchased from the Mellow Store on aliexpress. Information about setting this board up with RepRapFirmware can be found here. As always, if any support is needed, just us on Discord and we’ll be happy to help.
I recently managed to get my hands on some Fly TMC2209 drivers. I can hear you asking though, why am I writing about them, there must be something special right?
I’m not going to go into specifications etc because everyone who comes here will know what a TMC2209 is and what its capable of.
What I really want to point out about these drivers is that, unlike other manufacturers 2209 drivers, when not using sensorless homing, there is no need to remove the diag pin when the motherboard being used has no means to do so. On the underside of the driver, there is a small switch used to enable the diag pin. Other than that bombshell, they are well designed and well made. Definitely recommended.
They can be purchased from the Mellow Store on aliexpress
I know I’ve been slightly quiet on here recently. You would’ve thought with all this lockdown going on that I’d have more time to get all my projects sorted but unfortunately that isn’t the case.
I just wanted to bring to people’s attention that it’s now possible to run an SKR v1.4 (or SKR v1.3 for that matter) with RepRapFirmware and an SBC attached. This setup emulates the newer duet 3 setup (minus the expandability of expansion and toolboards).
What do you get from running this setup? Well, firstly you get a faster connection to the DWC (RepRapFirmware web interface). Although the SKR with an ESP8266 attached is more than functional, if you’re uploading a large gcode file it can take a while. You also get the ability to connect to the setup using ethernet rather than wifi. Finally, as the platform matures, there will be the ability to use plugins.
As with adding an ESP8266 to the SKR v1.4, some resistors etc are required. All the information can be found on the LPC-RRF wiki.
Like any good maker, I like to buy the cheapest version of something that I can. If buying from two sources gets me something a few £s cheaper then thats what I’ll do.
What did I order?
I ordered an SKR v1.4 turbo (which has a 120Mhz processor compared to the standard 100Mhz processor) and 5 x Fysetc TMC2209 v3. Buying this combination saved me around £5, which in my eyes was worth it.
Whats the problem?
What I didn’t realise is that Fysetc had changed the pinout of the TMC2209 v3 from the earlier versions. This means that the jumper settings detailed on the SKR v1.4 page on aliexpress do not work. This results in a TMC connection error in Marlin and the inability to set the steps, current or use sensorless homing (which is a gimmick I know).
So what now?
Luckily I was able to find a fix for the issue. Even better is that no soldering or modification of the driver is required.
All that’s needed is to add the jumpers as shown (look for the green box) underneath each driver
Thanks to the fantastic work of sdavi (and gloomyandy – but I will come to his work later on) over on the reprap forums, its possible to run RepRapFirmware on a number of different LPC17XX based 3D printer controllers. If you don’t know what the RepRapFirmware is, its the same software that runs on the duet family of controllers.
The boards that are supported with example configs are:
AZSMZ Mini
Azteeg Mini
SKR v1.1, 1.3 and 1.4 (both normal and turbo)
MKS Sbase v1.3
Re-ARM controller for Ramps
The original Smoothieboard
One of the limitations of the builds that sdavi was producing (which is in no way his fault) was the lack of control of software UART/SPI based drivers (such as the TMC2208 or TMC2209). Boards such as the smoothieboard or the MKS Sbase use hardware SPI to set the motor currents and this was natively supported in RRF (as this is the way the duet boards control the drivers). Cheaper boards, such as the SKR v1.X range use software to set the currents etc.
This is where GloomyAndy comes in. (He added flash eeprom emulation, improved the USBMSD/USBCDC support and implemented software serial, for TMC devices in Marlin, so the printing community already have a lot to thank him for). He has implemented code for software UART/SPI control of TMC 22XX drivers. This code is still being tested but by all accounts is very stable and I am planning to fit an SKR v1.4 turbo to my Da Vinci Jr this week to help with the testing.
I can hear you all ask how you get in on the action. In that case, read on…
Compiling RepRapFirmware
First off, you need to download 4 different github repos. The best way to do it would be using git and cloning each one, but for this guide, we’re just going to download a copy of each one. Please download the following:
All the repos linked to above are for GloomyAndys version for using with software UART/SPI of TMC 22XX drivers. If you don’t need that control, then use sdavi’s version. Make usre you choose the 3.01 branches.
Unzip all of the repos and arrange them so each of the one is in the CoreLPC4RRF folder. The result should look like this.
Make sure you rename any folders to remove the branch name.
Open VSCode and open the extension tab (this can be done by using the shortcut Ctrl+Shift+X) and search for windows-arm-none-eabi. Install the version by metalcode-eu.
Then download and install make. Use the “complete package except sources” version. Once installed you will need to add the location of the bin folder that is installed to your windows path environment setting. While there also add the location of mkdir.exe which will have been installed with git. It can be found in the usr/bin folder where git is installed. Once thats done, close VSCode and then reopen it.
Now in VSCode, open the CoreRRF4LPC folder (which has everything else in it) and click terminal, run task and then build. Sit back, relax and in about 10 or 15 minutes, the build should’ve completed.
There’s no longer any need to build gloomyandy’s version of the firmware. He has released a prebuilt binary here. This is for the version that supports TMC22XX via UART. Sdavi also releases prebuilt versions (currently without the UART code). They can be found here.
All thats left then is to copy the firmware.bin from the build folder in the CoreRRF4LPC folder to the sd card in your SKR (or other) board. Put that in your SKR board and you’ll soon be running RepRapFirmware. This can be confirmed by connecting the board to your PC, connecting to it with pronterface, and typing M122. The output will confirm that you are running RRF3.
You will also need to replicate the correct folder structure for RepRapFirmware as described here.
Connecting an ESP (wireless control)
I’ve used a nodemcu ESP8266 with USB programming as it already 5v tolerant and it allows for updating via USB. I have created a fritzing schematic available here.
BOM
1 x nodemcu ESP8266 oe Wemos D1 mini
3 x 47R resistor
1 x 470R resistor
3 x 2200R resistor
jumpers or other ways of connecting to the SKR
The image for to flash to the ESP can be found here. It should be flashed using esptools.py. Use the code below as an example. Change the Com port to match the ESP device and make sure you give the .bin file its complete file location if its not in the same folder as esptools.
On a side note, I have a very handy little tool installed on my main laptop thats monitoring for any serial devices as they are plugged in and you get a popup with the Com port number. If you’re interested, it can be found here.
Once the ESP is flashed with the correct binary, the next thing to do is connect it to the SKR. The pinout for the SKR can be found here and the schematic for the Duet 2 Wifi for reference can be found here. The table below shows the pins required on the ESP and what they are connected to on the SKR.
ESP Pin
SKR Pin
Resistor Value
RST
1.31
470R
CS/GPIO15
0.16
2200R
MOSI/GPIO13
0.18
47R
MISO/GPIO12
0.17
47R
SCLK/GPIO14
0.15
47R
ESP_DATA_Ready/GPIO0
0.28
2200R
LPC_DATA_Ready/GPIO4
1.30
None
VIN(5v)
5V on EXP1
GND
GND on EXP1
2200R to RST
Before you connect to the board, you need to ensure that an SD card is inserted and it has the correct files required by RepRapFirmware. An overview can be found here. You also need to ensure that the latest version of DWC is on your SD card. It can be found here. You will need to generate the config files required. That can be achieved by using the RRF config tool found here. Once generated, you’ll need to make sure the pin names are correct for the board you have built RRF for. These can be found in this section of github. Looking in the BIQU_SKR.h file, it can be seen that the x endstop pin is called “xstop” etc.
Finally, you will also need a board.txt file in the sys folder. For the SKR v1.4, mine contains the following
//Config file to define Hardware Pins LPC Boards.
//Note: Each line should be less than 120 characters.
// : Unwanted options can be commented out or set to NoPin. Lines commented out will get default values
// : for pins the default is NoPin.
// : Values for Arrays need to be contained within { and }
// : Comments can be defined with // or # (comments are not supported inside arrays)
// : Each config entry must be all on a single line.
//Config for BIQU SKR v1.4 (using config setting from Rob Mendon)
lpc.board = biquskr_1.4
//wifi pins
8266wifi.EspDataReadyPin = 0.28
8266wifi.LpcTfrReadyPin = 1.30
8266wifi.EspResetPin = 1.31
Once connected, power up the SKR board using 12-24v and connect to the USB port on the board. Using a program such as YAT or pronterface, connect to the board. Then type in the following
If you are using pronteface, it has a tendency to convert all text to upper case, in which case, if you wanted to use “PassWord”, you would write P”P’a’s’sW’o’r’d” with the ‘ indicating the following letter should be lower case. Explanation here.
The blue light on the wifi chip shoould then flash blue and will go solid when a connection has been established. The ip address will be shown on the serial connection. It is also possible to type just M552 to get the current ip address reported back.
The final thing to do is add the line “M552 S1” to your config file. This can be done through the web interface. This just ensures that the wifi connection is started at start up. There is no need to add the M587 command as this is written permanently to the flash of the ESP chip.
Now what?
Work your way through configuring the firmware. All of it is one through the web interface so there is no need for you to compile the firmware every time.
Keep an eye on the thread on the reprap forum for updates made. sdavi may even start releasing pre compiled builds. And remember, if you find any bugs, make sure you report them in the forum.
I will point out that with the SKR v1.4, there is no way to disable sensorless homing (unlike other boards that use a jumper), and as sensorless homing is currently not supported, you will have to either remove or bend the diag pin on the TMC2209 to be able to use mechanical endstops. That caught me out for a couple of hours.
As always, any comments for improvements or questions are always welcomed.
As can be seen by the image above, the router is installed in my Dads garage and we’ve carried out a couple of test runs. All in all we are very happy with how it has turned out. I’ve got a few more parts to print to put the duet wifi in and tidy up the cabling. I also need to print a dust shoe to attach the vacuum to.
To generate the CNC gcode, we are using fusion 360. As I mentioned, we are using a duet wifi as the main controller and luckily for us, thats also the the controller used by Ooznest. They have very kindly provided us with a post processor for fusion 360 to allow the CNC gcode to be output fully formatted for the duet.
A copy of the config we are using for the duet can be found here.
I think I’m going to end up building a larger CNC router for myself as my next project once the CoreXY is out of the way.