3D Printer With Updated Board * PrintrBot 1403 X Recore/Refactor!

by silver2row in Workshop > 3D Printing

375 Views, 1 Favorites, 0 Comments

3D Printer With Updated Board * PrintrBot 1403 X Recore/Refactor!

nutp.jpg
nuttt

Hello...this is an inverted, 3D printed useless nut!

Supplies

Recore and Correct CURA Profiles!
  • PrintrBot Simple 1403
  • Recore 3D/CNC Printer Board
  • Klipper software
  • Linux
  • Some Motors - Stepper * 4
  • Hot end - Ubis 0.4 mm for 1.75 mm filament
  • Filament - Generic Blue!
  • NPN Inductive Sensor
  • Heated Bed - Not installed in this version
  • Cables (USB C to USB 3.0 + Ethernet + Power Cord)
  • 12v 280W power supply
  • Tape for the build plate (as seen)
  • Fa
  • Sensors if chosen
  • Refactor image source
  • Install source
  • Refactor
  • Balena Etcher
  • USB Drive with about 16GB or more to be on the safe side
  • Internet Connection for your target and host and for networking

Installing Ideas and Prerequisites

Finished Product...

Step 1:

  • Plug in Ethernet Cable to the target, i.e. Recore
  • Plug in your USB C cable into the USB C hardware on the Recore
  • Do not plug into your host yet. Leave the Recore unplugged.
  • Now...
  • if the board came preinstalled, good
  • if not, it is time to learn how to install an image to your board
  • https://github.com/intelligent-agent/Refactor/releases
  • https://github.com/intelligent-agent/Refactor/releases is where you will find a release for the Refactor image for the Recore
  • There is another image there for the RepliCape
  • Install the image to a USB Drive
  • Balena Etcher works to flash the image to the USB Drive
  • One would have to download the Etcher software to your Windows system or Linux OS
  • Then, download the image from the github link from above or this one that is stable: https://github.com/intelligent-agent/Refactor/releases/tag/v3.0.3
  • Then, simply read the Etcher GUI to understand what to do...
  • One would load the image, flash it to a medium, USB Drive, and then exit by unmounting the USB Drive
  • Now...
  • We can stick the USB Drive into the USB port on the Recore, apply power via the USB C to USB 3.0 cable to our host, and then wait. The flashing of the image should not take long.
  • Once your image is flashed, sign in on your board via ssh. Something like ssh root@192.168.4.77
  • To find the IP Address that root is used to network, you can use a Win 10 or Win 11 OS and look under Network. It will have your IP Address of the Recore in Network under Properties if not already listed.
  • ssh root@YOUR_IP_ADDRESS
  • If you are running multiple OSs, try to go to your router Attached Devices to find the IP Address of the Recore.
  • Now...
  • Once logged in to root via ssh by typing the password, Kamikaze, type passwd as root and change your password to be on the safe side. Then, we need to make the new user. It outputs to the console/terminal right away when you first sign in. Still, change your root password.
  • Now, I suggest not updating/upgrading on the Armbian Linux Distro on the Recore by using APT.
  • I suggest just grabbing a new image from one of the links above when they are available or you can write your own image if necessary!
  • So, there is a printer.cfg file in your root../../home/debian directory.
  • This file holds a generic set up of ideas based around the Recore and its peripherals, i.e. UART, PWM, GPIO, and etc...
  • This Recore Configuration is for the 3.0.2 Refactor Image from the people at Thing-Printer.
  • Change that to:
# Generic Recore config




# The STM32F031 mcu

[mcu]

serial: /dev/ttyS4

baud: 38400

restart_method: command




# The AR100 mcu

[mcu ar100]

pin_map: ar100

serial: /dev/ttyS1

baud: 1500000




[printer]

kinematics: cartesian

max_velocity: 500

max_accel: 3000

max_z_velocity: 25

max_z_accel: 30




# In order to enable 100 times gain for thermocouples,

# uncomment the following lines

#[static_digital_output gain_100]

#pins: !ar100:PD4, !ar100:PH11, !ar100:PE17, !ar100:PB2




[static_digital_output enable_high_power]

pins: !ar100:PG2




[static_digital_output over_current_alarm]

pins: !ar100:PG1




[static_digital_output endstop_5V_12V]

pins: ar100:PG11, ar100:PG8




[static_digital_output thermistor_pullups]

pins: ar100:PD6, ar100:PD24, ar100:PF0, ar100:PF1




[static_digital_output user_led]

pins: PA12




[tmc2209 stepper_x]

uart_pin: ar100:PB1

tx_pin: ar100:PB0

uart_address: 0

microsteps: 16

run_current: 0.500

hold_current: 0.500

stealthchop_threshold: 250

driver_internal_rsense: 1

ref_resistor: 6800




[tmc2209 stepper_y]

uart_pin: ar100:PB1

tx_pin: ar100:PB0

uart_address: 1

microsteps: 16

run_current: 0.500

hold_current: 0.500

stealthchop_threshold: 250

driver_internal_rsense: 1

ref_resistor: 6800




[tmc2209 stepper_z]

uart_pin: ar100:PB1

tx_pin: ar100:PB0

uart_address: 2

microsteps: 16

run_current: 0.500

hold_current: 0.500

stealthchop_threshold: 250

driver_internal_rsense: 1

ref_resistor: 6800




[tmc2209 extruder]

uart_pin: ar100:PB1

tx_pin: ar100:PB0

uart_address: 3

microsteps: 16

run_current: 0.500

hold_current: 0.500

stealthchop_threshold: 250

driver_internal_rsense: 1

ref_resistor: 6800





[stepper_x]

step_pin: ar100:PL4

dir_pin: ar100:PE8

endstop_pin: !ar100:PH9

step_distance: .0225

position_endstop: 0

position_max: 152

homing_speed: 2.0




[stepper_y]

step_pin: ar100:PL5

dir_pin: ar100:PE9

endstop_pin: !ar100:PH8

step_distance: .0225

position_endstop: 0

position_max: 152

homing_speed: 2.0




# probe




[probe]

pin: ar100:PH4

z_offset: 2.122




[stepper_z]

step_pin: ar100:PL8

dir_pin: ar100:PE12

endstop_pin: probe:z_virtual_endstop

position_min: -2

#endstop_pin: !ar100:PH7

step_distance: .0225

#position_endstop: 0

position_max: 152

homing_speed: 10.0




[extruder]

step_pin: ar100:PL7

dir_pin: ar100:PE11

heater_pin: PA8

sensor_type: EPCOS 100K B57560G104F

sensor_pin: PA0

step_distance: .0225

nozzle_diameter: 0.400

filament_diameter: 1.75

control: pid

pid_Kp: 22.2

pid_Ki: 1.08

pid_Kd: 114

min_extrude_temp: 30

min_temp: 0

max_temp: 300

pullup_resistor: 4755

adc_ref: 3.301

vo_ref: 3.21206

pullup_ref: 3.27



# Uncomment the below lines to handle your heated bed

#[heater_bed]

#heater_pin: PA11

#sensor_type: EPCOS 100K B57560G104F

#sensor_pin: PA3

#control: watermark

#min_temp: 0

#max_temp: 300

#pullup_resistor: 4755

#adc_ref: 3.301

#vo_ref: 3.21206

#pullup_ref: 3.27





#[extruder1]

#step_pin: ar100:PL8

#dir_pin: ar100:PE12

#step_distance: .004242

#nozzle_diameter: 0.500

#filament_diameter: 1.75

#heater_pin: PA9

#sensor_pin: PA1

#sensor_type: EPCOS 100K B57560G104F

#control: pid

#pid_Kp: 22.2

#pid_Ki: 1.08

#pid_Kd: 114

#min_temp: 0

#max_temp: 210




#[extruder2]

#step_pin: ar100:PL9

#dir_pin: ar100:PE13

#step_distance: .004242

#nozzle_diameter: 0.500

#filament_diameter: 1.75

#heater_pin: PA10

#sensor_pin: PA2

#sensor_type: EPCOS 100K B57560G104F

#control: pid

#pid_Kp: 22.2

#pid_Ki: 1.08

#pid_Kd: 114

#min_temp: 0

#max_temp: 210





# Print cooling fan (omit section if fan not present).

[fan]

pin: PB0




#[output_pin fan1]

#pin: PB1




#[output_pin fan2]

#pin: PB3




#[output_pin fan3]

#pin: PB4




[temperature_sensor board]

sensor_type: EPCOS 100K B57560G104F

sensor_pin: PA6

gcode_id: Board




[adc_temperature v]

temperature1: 0

voltage1: 0

temperature2: 24

voltage2: 3.3




[temperature_sensor voltage]

sensor_pin: PA4

sensor_type: v

gcode_id: Voltage




[adc_temperature current]

temperature1: 0

voltage1: 0

temperature2: 24

voltage2: 3.3




[temperature_sensor current]

sensor_pin: PA5

sensor_type: current

gcode_id: Current


...

If you get bored and want to learn more:

  1. https://hackaday.com/2021/06/14/recore-hacks-the-hidden-microcontroller-for-3d-printing/
  2. https://wiki.iagent.no/wiki/Main_Page

If you think these tests are not correct, please do comment or make your own assumptions/calculations and reply one day.

Seth

P.S. Attaching the Recore to the PrintrBot Metal Simple 1403 via your cables, wires, and knowledge is on you! This is a short and should be thought of it as that idea. If you want more, please see this:

  • https://wiki.iagent.no/wiki/Refactor for Refactor

and...

  • https://wiki.iagent.no/wiki/Recore_A6 for Recore A6 edition and the processes and other relative info. for it.


Currently...my slicer from CURA has an incomplete setup.

So, the prints are working a bit differently compared to what I would normally see.

I set up CURA to handle the PrintrBot Simple Metal but I will try another method, i.e. as the sliced 3D Prints are going to far away from my current config. in my printer.cfg file.


Anyway...I will update this post soon to reflect current changes and working ideas on the setup.


The prints have changed a bit w/ the Refactor 3.0.3 revision. I am still trying to perfect the exact configurations I need for my specific PrintrBot Simple Metal 1403. For some reason, my printer keeps printing slanted, e.g. the print prints a couple lines high at a specific XY location and then, out of nowhere, it just changes the XY positioning while moving more upward along the Z-Axis. I have not figured it out yet.

###############################################################################################

To update the Recore A5 with the correct image, there are three ways.

  1. Read over the board configuration and Pin Muxing available at Recore A5 - iagent
  2. Read over this wiki article:

Recore booting

Recore comes with Refactor pre-installed.

The Recore images will need to be flashed to a USB flash drive, as there is no SD slot on the board. Recore's uboot is designed to attempt to boot from a USB drive if there is no OS on the eMMC.

There are several stages to booting Recore, and depending on which media is installed, the boot process will try and boot either from eMMC, USB host or USB device.

Booting Recore from eMMC (the normal way)

  1. Turn on power
  2. The BROM will load u-boot SPL from eMMC
  3. The u-boot SPL will load u-boot
  4. u-boot will load Linux
  5. Linux will load the rootfs from eMMC.

Booting Recore from eMMC, but load rootfs from USB

Note

Using a root file system on a different drive work well if the kernel version is the same on both media. The kernel version has changed between Refactor v3.0.2-RC3 and v3.0.2-RC4. The board will still boot, but will not load kernel modules as expected, including nft that maps OctoPrint to the HTTP port (80).

If the board is working normally and you are able to log in through ssh, but want to try out a new Refactor version you can let the rootfs be loaded from a USB drive (mass storage device):

  1. Download Refactor and flash it to a USB drive
  2. Insert the USB drive in the board.
  3. Boot the board normally
  4. Open the Refactor tab in OctoPrint.
  5. Select run from USB
  6. or
  7. Use SSH to log into the board: ssh root@recore.local
  8. Run the command set-boot-media usb
  9. Reboot

The board should now be have the rootfs from the USB drive.

Booting Recore from USB, load Linux kernel from USB drive

This method requires a UART to USB adapter that can plug into a host computer. There is a 4 pin header on Recore marked DBG, where UART 0 is routed. All u-boot and kernel messages will appear here. The baud rate is 115200. If the eMMC is partitioned and has an OS, u-boot will launch right into that. In order to override that and load the boot script from a USB drive, stop u-boot by pressing a key and then write:

  1. Download Refactor and flash it to a USB drive
  2. Insert the USB drive in the board and apply power
  3. When the boot process gets to u-boot, you will see: Hit any key to stop autoboot:
  4. Hit the Any key.
  5. Then write run bootcmd_usb0

This will load the U-boot script from the USB drive and use the USB drive as the rootfs.

Boot Recore from a USB stick using the FEL button

If u-boot should be loaded from a host computer and kernel and rootfs is loaded from a USB drive:

  1. Flash the Refactor Linux distro to a USB drive.
  2. Insert the USB drive in the Recore board.
  3. Insert the Recore board in a host computer with the USB-C connector.
  4. If the "FEL" button is pressed, the board will go into bootloader mode.
  5. Upload SPL, TF-A and u-boot through the USB port:
  6. Download the Recore repository https://github.com/intelligent-agent/Recore
  7. Install the sunxi-tools program
  8. Run make fel

You can read more about the steps needed to boot aboard in FEL mode on the Sunxi wiki: https://linux-sunxi.org/FEL

Upgrading Refactor

After upgrading refactor, if the recore board is A5 or older, you can set the device tree to a different version by running the command

use-recore-revision a5

After a reboot, you can check that the loaded device tree matches the revision of firmware.

cat /sys/firmware/devicetree/base/model

It's also worth noting that the klipper configuration is a bit different between the A5 and A6 revisions. The A6 is the now the default configuration, but A5 is also present for use. It can be found on github or on the board.

cat /home/debian/klipper/config/generic-recore-a5.cfg

Upgrading Debian via apt upgrade

mount -o remount,rw /boot

Upgrading Refactor from OctoPrint

The only way to upgrade Refactor is by flashing a new version. In OctoPrint there is a "Refactor" plugin that can aid with this. If Refactor is run from a USB stick, a new version of can be downloaded and flashed on the eMMC.

Upgrading Refactor from the command line

To reboot into a USB drive:

set-boot-media usb

Then once the board has booted from USB, you can download an image:

wget https://github.com/intelligent-agent/Refactor/releases/download/v3.0.3-RC5/Refactor-recore-v3.0.3-RC5-2022-01-31.img.xz

Once the image has been downloaded you can flash that image to the eMMC:

flash-recore Refactor-recore-v3.0.3-RC5-2022-01-31.img.xz


BUT! Only pick one. Do not act like I did and think that upgrading Refactor to 3.0.3 from 3.0.2 was an easy step that took a lack of reading and understanding. PICK ONE only...

Oh and do not, I REPEAT, do not use this one (yet):


Upgrading Debian via apt upgrade

mount -o remount,rw /boot


It causes the chip to, and this is a bit undereducated on my part, alter itself a bit in manner that is not consistent with a working system. So, please take this precaution when applying this update, i.e. as it is a bit sporadic for now on what may or may not happen when using this method.

###############################################################################################


So, outside of the precautions and ideas, I will update and upgrade this short on the Recore, Refactor, OctoPrint, and Klipper soon. Enjoy!


****************************************************************************************************************************************

This below config. script called printer.cfg is not good for the Recore A5 on Refactor 3.0.3. I learned why and what mistakes I made for a conclusion to be made. I wrote the image three times over on the same eMMC which caused some chaos on the chip in question. So, THIS BELOW CONFIGURATION is not just or correct as of now. I will be updating soon.

****************************************************************************************************************************************


When this is configured and complete, I will post the Recore Configuration for the 3.0.3 revision of Refactor.

# Recore_1403 config




[recore]

revision: A5




gain_t0: 1

gain_t1: 1

gain_t2: 1

gain_t3: 1

pullup_t0: 1

pullup_t1: 1

pullup_t2: 1

pullup_t3: 1

#offset_t0: 0

#offset_t1: 0

#offset_t2: 0

#offset_t3: 0




# The STM32F031 mcu

[mcu]

serial: /dev/ttyS4

baud: 250000

restart_method: command




# The AR100 mcu

[mcu ar100]

serial: /dev/ttyS1

baud: 1500000




#[static_digital_output endstops_5V_enable]

#pins: ar100:PG11, ar100:PG8




# pin high = 12V, pin low = 5V

[static_digital_output endstop_ES0_5V_12V]

pins: ar100:PG11, ar100:PG8




#[static_digital_output temperature_5V_enable]

#pins: ar100:PF1




#[static_digital_output over_current_alarm]

#pins: !ar100:PG1




[static_digital_output user_led_enable]

pins: PA12




#[static_digital_output enable_high_power]

#pins: !ar100:PG2




#[static_digital_output thermistor_pullups]

#pins: ar100:PD6, ar100:PD24, ar100:PF1




# Load "thermocouple" sensor

#[thermocouple]




[printer]

kinematics: cartesian

max_velocity: 500

max_accel: 3000

max_z_velocity: 25

max_z_accel: 10




[tmc2209 stepper_x]

uart_pin: ar100:PB1

tx_pin: ar100:PB0

uart_address: 0

run_current: 0.700

#hold_current: 0.500

#microsteps: 16

stealthchop_threshold: 250

driver_internal_rsense: 1

ref_resistor: 6800




[tmc2209 stepper_y]

uart_pin: ar100:PB1

tx_pin: ar100:PB0

uart_address: 1

run_current: 0.700

#hold_current: 0.500

#microsteps: 16

stealthchop_threshold: 250

driver_internal_rsense: 1

ref_resistor: 6800




[tmc2209 stepper_z]

uart_pin: ar100:PB1

tx_pin: ar100:PB0

uart_address: 2

run_current: 0.700

#hold_current: 0.500

#mircosteps: 16

stealthchop_threshold: 250

driver_internal_rsense: 1

ref_resistor: 6800




[tmc2209 extruder]

uart_pin: ar100:PB1

tx_pin: ar100:PB0

uart_address: 3

run_current: 0.700

#hold_current: 0.500

#microsteps: 16

stealthchop_threshold: 250

driver_internal_rsense: 1

ref_resistor: 6800




[stepper_x]

step_pin: ar100:PL4

dir_pin: ar100:PE8

endstop_pin: ar100:PH5

rotation_distance: 35

microsteps: 16

position_endstop: 0

position_max: 152

homing_speed: 15.0




[stepper_y]

step_pin: ar100:PL5

dir_pin: ar100:PE9

endstop_pin: ar100:PH6

rotation_distance: 35

microsteps: 16

position_endstop: 0

position_max: 152

homing_speed: 15.0




# probe

[probe]

pin: ar100:PH4

z_offset: 0.20

x_offset: 0.0

y_offset: 0.0




[stepper_z]

step_pin: ar100:PL6

dir_pin: !ar100:PE10

endstop_pin: probe:z_virtual_endstop

#endstop_pin: !ar100:PH6

rotation_distance: 1.50

microsteps: 16

#position_endstop: 0

position_max: 152.0

homing_speed: 8.0




[extruder]

step_pin: ar100:PL7

dir_pin: ar100:PE11

heater_pin: PA9

sensor_type: EPCOS 100K B57560G104F

sensor_pin: PA1

rotation_distance: 35

microsteps: 16

nozzle_diameter: 0.375

filament_diameter: 1.75

control: pid

pid_Kp: 22.2

pid_Ki: 1.08

pid_Kd: 114

min_extrude_temp: 30

min_temp: 0

max_temp: 300





#[extruder1]

#step_pin: ar100:PL8

#dir_pin: ar100:PE12

#rotation_distance: 40

#microsteps: 16

#nozzle_diameter: 0.400

#filament_diameter: 1.75

#heater_pin: PA9

#sensor_pin: PA1

#sensor_type: RECORE PT1000

#control: pid

#pid_Kp: 22.2

#pid_Ki: 1.08

#pid_Kd: 114

#min_temp: 0

#max_temp: 300




#[extruder2]

#step_pin: ar100:PL9

#dir_pin: ar100:PE13

#rotation_distance: 40

#microsteps: 16

#nozzle_diameter: 0.400

#filament_diameter: 1.75

#heater_pin: PA10

#sensor_pin: PA2

#sensor_type: PT100 INA826

#adc_voltage: 3.27

#control: pid

#pid_Kp: 22.2

#pid_Ki: 1.08

#pid_Kd: 114

#min_temp: 0

#max_temp: 300




#[heater_bed]

#heater_pin: PA11

#sensor_type: EPCOS 100K B57560G104F

#sensor_pin: PA3

#control: watermark

#min_temp: 0

#max_temp: 300




[fan]

pin: PB0




#[output_pin fan1]

#pin: PB1




#[output_pin fan2]

#pin: PB5




#[output_pin fan3]

#pin: PB4




# Set up board voltage, current, temperature.




[temperature_sensor board]

sensor_type: EPCOS 100K B57560G104F

sensor_pin: PA6

max_temp: 110

gcode_id: Board




[temperature_sensor cold_junction]

sensor_type: EPCOS 100K B57560G104F

sensor_pin: PA7

gcode_id: CJ




# Vout = Vin * 10K/110K = Vin*11

[adc_temperature v]

temperature1: 0.35

voltage1: 0

temperature2: 36.65

voltage2: 3.3




[temperature_sensor voltage]

adc_voltage: 3.3

sensor_pin: PA4

sensor_type: v

gcode_id: Voltage




# 1 A = 20 mV

[adc_temperature current]

temperature1: 0

voltage1: 0

temperature2: 165

voltage2: 3.3




[temperature_sensor current]

adc_voltage: 3.3

sensor_pin: PA5

sensor_type: current

max_temp: 20

gcode_id: Current




#[gcode_button over_current_alarm]

#pin: !ar100:PG1

#press_gcode: M112



Printing Nice Things

kno.jpg
knoOne.jpg

Hello,


The PrintrBot 1403 needs to be a cautious printer when printing at above 50mm/s with the Recore and Klipper after slicing with CURA 4.13.1.


I tried at 60mm/s and the machine kept slipping and skipping steps. So, if you find your prints are missing a couple exactness when moving vertically from your build plate, try to slow your mm/s (millimeters a second) down and retry.


Also...there are some other things to take into account here. I am not using a heated bed nor am I setting up macros for particular start/stop actions in the Klipper source or in gcode.


So far, as you can see from the latest print of a knurled knob, things at 50mm/s on the PrintrBot 1403 are working nicely. The main reason I kept this printer, even after the board got boring, was to use it in the future, now, with an updated board. The other reason is that this PrintrBot 1403 is super beefy and strong. The plates it is made with or was made with during its manufacturing are strong, thick, and tend to not bend all that much, e.g. even with the belts being tightened too heavily.


Nice.


Seth



This Is Show and Tell

Recore and PrintrBot 1403 doing the printing of PETG...

This is PETG with a PLA base for adhesion. I used the PrintrBot Simple Metal 1403 along with the Recore A5, OctoPrint, and Klipper as the source for managing the motors and so on...

...

I would like to take time out now to discuss specific entries in 3D Printing.

...

I am sure you have wanted to venture out and print in another type of filament. I have ventured out and tried PETG. It is not the easiest to print as I have found. It is extremely stringy, very flexible, and does not attach to non-heated beds well, e.g. this is why using PLA to be the base would be a way to go forth.

...

I actually came across this method by mistake. I printed PETG on the Ubis hotend on the PrintrBot 1403 with the listed source and hardware a couple times. It always came unstuck and would not adhere to my print bed.

...

I will keep printing in PETG to try to fix the adhesion characteristics of it. I have a heated bed. I might want to try the heated bed, i.e. as it is a recommended piece of hardware for the PETG printing.

...

Now, if you have never printed in anything other than PLA (Polylactic Acid), reaching new "heights" in printing is possible with a bit of research, some good foundations, and patience. Nothing works 100% of the time and there are reasons for errors and debugging may need to take place in hardware and software sides to 3D Printing.

...

PETG (glycol modified Polyethylene Terephthalate) is seen as an "easy" to print modified filament. Not true in my book but I am dealing with a 50mm/s print speed and without the heated bed at the moment. So, my calculations could be incorrect as of now.

...

There are some good resources online for learning about different filaments, how to and how to not print with them, and all while online. Books are another good resource for 3D Printing mechanics, source, and ideas.

Seth

P.S. If you get bored and want to learn more about what you are doing:

  1. Ultimate Materials Guide - Tips for 3D Printing with PETG (simplify3d.com)
  2. Ultimate Materials Guide - Tips for 3D Printing with ABS (simplify3d.com)
  3. Ultimate Materials Guide - Tips for 3D Printing with ASA (simplify3d.com)
  4. Ultimate Materials Guide - 3D Printing with Carbon Fiber (simplify3d.com)

So, if you get a good mind to read up, simplify3d.com is a nice resource and there are unlimited * infinity resources online now. Enjoy!