Bills of material and hardware compenent features

Ceiling module | AT34 USB Tester

grafik.png

This is used to check the voltage of Raspberry Pi and to validate occuring undervoltage happenings. It's a really useful helper.

Ceiling module | Duet 2 Ethernet v1.04

grafik.png grafik.png grafik.png grafik.png grafik.png 

grafik.png grafik.png

Description (copied from https://www.duet3d.com/DuetEthernet)

This is the latest PCB revision of the Duet 2 Ethernet, v1.04.

The Duet 2 Ethernet is an advanced 32 bit electronics board for the control of 3D printers and other CNC machines. It has the same features as the Duet 2 Wifi, other than providing ethernet connectivity rather than Wifi, a full feature description is available on our documentation, in summary:

The Duet 2 Ethernet can have Thermistors connected directly, alternatively we have two different temperature sensing daughterboards available:

We also supply genuine e3d PT100 and thermocouple sensors compatible with their range of hotends:

Wiring

grafik.png

Replacement parts

https://duet3d.dozuki.com/Wiki/Connector_and_spare_part_numbers

Fan mosfet

If you short out a PWM fan, the fan driver mosfet will burn out. The replacement part number is PMV40UN2 or PMV40UN2R which is available from the usual electronic component distributors such as Farnell/Newark/element14, Digikey, Mouser and RS. You can also use type PMV20XNER or AO3400A which have a higher peak current rating. The component identifiers on the board are:

To remove the old mosfet, you will need either a hot air desoldering tool with a small nozzle, or low melting point solder such as ChipQuik . If using hot air, use a shield made from e.g. corrugated cardboard covered with Kapton tape to shield connectors and other plastic components from the hot air. The new mosfet can be soldered in place using a fine-tipped soldering iron, or by putting a little no-clean flux on the pads, placing the new mosfet on top, and using hot air again. Hot air soldering/desoldering is easier if you heat the whole board to about 100-125C on an electric hotplate.

Heater MOSFETs

Note when removing any of the heater MOSFETs there is significant heat-sinking into the copper of the board. A combination of hot air rework, Chipquick, and a heated plate may be needed to remove one successfully.

Mini blade fuses

TFT panel backlight inverter IC

If the TFT panel of a non-integrated PanelDue assembly suddenly refuses to light up, chances are that the backlight inverter chip has failed. This is a 6-pin chip marked L6CE or L6EN or L6GE or similar (the Pin 1 marking bar can easily be mistaken for a letter I in front of the L). The part number is MP3202DJ. It is available from RS Components, Digikey and Mouser, and also on eBay and Ali Express.

Other things

Duet has no support for POE and will be fried if it get's connected to passive POE like Shanqiu Mini UPS FX5-48 / Vultec Continuity UPS30PW-DC has got.

Ceiling module | Gyroscope and acceleration sensor GY-521 (MPU6050)

grafik.png grafik.png grafik.png

MPU6050 pin configuration

Pin number

Pin name

Description

1

Vcc

Provides power for the module, can be +3V to +5V. Typically +5V is used

2

Ground

Connected to Ground of system

3

Serial Clock (SCL)

Used for providing clock pulse for I2C Communication

4

Serial Data (SDA)

Used for transferring Data through I2C communication

5

Auxiliary Serial Data (XDA)

Can be used to interface other I2C modules with MPU6050. It is optional

6

Auxiliary Serial Clock (XCL)

Can be used to interface other I2C modules with MPU6050. It is optional

7

AD0

If more than one MPU6050 is used a single MCU, then this pin can be used to vary the address

8

Interrupt (INT)

Interrupt pin to indicate that data is available for MCU to read.

MPU6050 features

Key words

Enable I2C on Raspberry Pi

vim /boot/config.txt
dtparam=i2c_arm=on
vim /etc/modules
i2c-bcm2708
i2c-dev

Finde installierte I2C Module.

i2cdetect -y 1 #returns 0x68

By default, each MPU 6050 has the same address with bit 0x68. An enable signal can be sent via pin "AD0", which redirects the sensor to 0x69. Pin AD0 got a fixed solderding to give the secondary address 0x69.

grafik.png

i2cdetect -y 1 #now returns 0x69

 

Debugging

Sometimes the gyros do not properly work when connected. While working within Trikarus project, multiple errors occured. There were errors thrown like "OSError: [Errno 121] Remote I/O error - has occurred". Especially making DMP work was a horror trip because it threw a lot of errors while with regular raw values this was not the big deal. It seems to be a problem with long wire, unstable clock frequency and pullup resistors.

There are multiple solutions to fix the situation.

Monitoring → MPU 6050 (GY-521) Gyro + Accelerometer monitoring

C++ script to read the data (quickly show the output to console)

At https://github.com/richardghirst/PiBits there's a good example to use MPU6050 with raw data or filterered by DMP.

Configure and build

apt install libgtkmm-3.0-dev
git clone https://github.com/richardghirst/PiBits.git
cd MPU6050-Pi-Demo/
 
#adjust I2C basics
vim I2Cdev.cpp #change all "/dev/i2c-0" to "/dev/i2c-1"
 
#to change I2C 0x69 or 0x69 change MPU6050 accelgyro; to MPU6050 accelgyro(MPU6050_ADDRESS_AD0_HIGH);
vim demo_raw.cpp
 
#to change I2C 0x69 or 0x69 change MPU6050 mpu; to MPU6050 mpu(MPU6050_ADDRESS_AD0_HIGH);
vim demo_dmp.cpp
 
make

Run

#raw mode
./demo_raw
 
 
#DMP mode
./demo_dmp
#this will sometimes fail with
Initializing I2C devices...
Testing device connections...
MPU6050 connection successful
Initializing DMP...
DMP Initialization failed (code 1)
 
#You can also run gdb to debug:
gdb ./demo_dmp
#then enter "run"

 

Ceiling module | Raspberry Pi 3 B

grafik.png

Ceiling module | Shanqiu Mini UPS FX5-48 / Vultec Continuity UPS30PW-DC

grafik.png grafik.png grafik.png 

grafik.png grafik.png grafik.png grafik.png

Notes

Ceiling module | Smart Stepper rev 1/20/2019 by MisfitTech

Electrical Components on the MisfitTech Smart Stepper Board

grafik.png grafik.png grafik.png

grafik.png

Neodymium magnets and encoder sensor

The reference magnet for the AS5047D encoder is a magnet of strength N35H with dimensions of 8 mm diameter and 3 mm thickness. Tropical Labs uses https://www.kjmagnetics.com/proddetail.asp?prod=D42DIA for their Mechaduinos. The used magnet for Smart Stepper has size of 6.35 x 3.175 mm to fit into usual holes of Nema 17 motors. You need to use diametral ("diamagnetic") neodynium magnets instead of usual axial magnets because the magnetic field direction is important for the encoder. The Hall array center is located in the center of the IC package.and has an array radius of 1.1 mm. The required orthogonal component of the magnetic field strength measured at the die's surface along a circle of 1.1 mm is 35 - 70 mT. Without a good working encoder data the whole Smart Stepper would be useless. See also https://github.com/Misfittech/nano_stepper/issues/56

Hardware + firmware forks

MisfitTech Smart Stepper were called "nano zero stepper" before they were changed into "Smart Stepper". They represent a fork of the open hardware project called Mechaduino by Tropical Labs. Smart Stepper were forked too. The forking roughly looks like this

You can find more forks by checking out this: https://techgaun.github.io/active-forks/index.html. It is good to know about fork projects to find useful firmware modifications or hardware updates. A lot of good tips for operating closed loop steppers and information or ideas about mounting hardware parts can be found at the root project Mechaduino. Have a loot at https://github.com/jcchurch13/Mechaduino-Firmware/blob/master/Mechaduino%20Manual%200.1.3.pdf.

Finding more help

Buttons and colors

Tips for installation

Bootup times (measured)

Troubleshooting typical problems with hardware and software

  1. OLED display is blank

    1. reset button stucks physically

    2. firmware has a problem (some older versions included a bug)
  2. reset LED is on all the time
    1. reboot Smart Stepper to fix this problem
  3. capacitor gets really hot (> 80°C) and Smart Stepper does not react as exspected

    1. re-flash the firmware
  4. motor does not move
    1. check the A/B phase wiring of the 4 leads
  5. stepper motor moves randomly
    1. check the wiring. If the DIR cable is not fixed properly it leads to un-wanted signal generation
  6. USB serial interface does not respond
    1. happens if the interface does not get handled properly by the connected device (Raspberry Pi in this case). Only possibility is to power off and repowering the Smart Stepper, or
    2. reset button stucks which may lead to permently red lighting LED. Unstuck the button and try to reset until LED goes off
  7. loud noise
    1. calibration is bad, or
    2. magnet was not mounted well on the motor, or
    3. Smart Stepper PCB is not correctly fixed on the motor back. If it does not sit tight errors by vibrations have high influence on encoder accuracy.
  8. Smart Stepper sounds like doubling the steps while running calibration

    1. do a factory reset by entering the command on console

  9. Smart Stepper is moving endless and never reaches it's target position
    1. do a factory reset by entering the command on console
  10. current settings do not apply when changing at display or console

    1. do a factory reset by entering the command on console


Ceiling module | Relay JQC-3FF-S-Z

grafik.png grafik.png grafik.png grafik.png grafik.png

This relay is used to switch on the Power Supply by Raspberry Pi GPIO.

Specifications

Ceiling module | Relay JQC3F-05VDC-C

grafik.png grafik.png grafik.png

This relay is used to control the LED stripes and spots of Trikarus.

Effector (mover) | Duet IR Probe (Mini height sensor board) v1.3

This documentation is a copy from https://miscsolutions.wordpress.com/mini-height-sensor-board

grafik.png

Specification

Mounting the board

The board needs to be mounted with the two fixing holes at the top, and the bottom edge of the board (where the infrared components are mounted) facing the bed and at right angles to it. The sensing area is approximately in the middle of the bottom edge of the board, below the cylindrical capacitor. In order to minimise the effect of any tilt of the hot end as it moves in the XY plane, this area should be as close to the nozzle as reasonably possible, without being so close that the board or the components on it get hot. Mounting it with the back facing the nozzle is recommended, because it reduces the chance of the optical components getting contaminated by extruded filament, and shields the optical components from the heat of the nozzle.

The bottom edge of the board should be no more than 2mm higher than the tip of the nozzle, to ensure that it will trigger before the nozzle touches the bed. To avoid the risk of the board fouling on the print, we suggest that the bottom edge is at least 1mm higher than the tip of the nozzle. So aim for 1.5mm.

Very important! Check that there is no possibility of the board shorting against anything (e.g. the printer frame or the nozzle heating block), even if the head moves outside the normal printing range. Note that the heater block on E3Dv6 and similar hot ends is liable to rotate about the heat break! If the back of the sensor is close to the heater block, you should trim any protruding wire stubs and header pins on the back of the board, and put at least two layers of Kapton tape or alternative high-temperature electrical insulation on the back of the board. It is also a good idea to fit a silicone sock over the heater block, because this will provide additional electrical and thermal insulation. E3D now includes silicone socks with their hot ends, and they can supply socks to retrofit to earlier hot ends that were supplied without them.

Note for delta printer owners: It is important that the effector does not change its tilt relative to the horizontal as it moves in the XY plane. Otherwise, the height difference between the tip of the nozzle and the bottom of the sensor board will vary with XY position, giving rise to calibration errors when you use the sensor to auto-calibrate your printer. If you are using Duet electronics then you can compensate for effector tilt in the bed.g file, but it is better to avoid it in the first place.

Bed surface

For best results, the sensor needs to sense the reflection from the top surface of the bed. There is a potential problem when the sensor is used with a transparent bed material that reflects infrared light weakly and there is a surface below the transparent material that reflects IR much more strongly. Here is a guide to using the sensor with different print surfaces:

If you need to paint the top of an aluminium heat spreader or the underside of a PEI sheet matt black, then I recommend using spray-on barbecue & stove paint. It needs to be cured at an elevated temperature to harden. I have found 2 hours at 170C in a domestic electric fan oven works well. Caution: the temperature in a domestic oven without a fan will vary greatly in different parts of the oven.

Connecting the board

Looking at the board from the component side, with the mounting holes at the top and the cylindrical capacitor at the bottom, the pads for the 3-pin connector are near the top. These pads are labelled from left to right on the front of the board as follows:

There are also pads for a 6-pin connector, on the right of the board looking at it from the component side. Ignore those pads – they are used for programming only.

Duet 0.8.5 and Duet WiFi electronics: wire the sensor to the 4-pin PROBE connector. Connect sensor GND and VCC pins to Duet GND and 3V3 pins respectively. The OUT pin of the sensor should be connected to the AD12 or IN pin on the probe connector. Leave the AD14 or PC10 or MOD pin on the probe connector unconnected.

Testing and commissioning the board

Testing with Duet electronics

In your config.g file, use probe type P1 in your M558 command and trigger threshold P500 in your G31 command.

Start with the hot end and sensor some distance above the bed. Power up the Duet using USB power only. About 4 seconds after power is applied, the LED on the sensor should flash four times, indicating that the board has started in analog output mode. If it does not flash, check the power connections to the board.

Connect to the Duet from a PC using the web interface. On the Control page you can see a continuous readout of the Z probe reading.

Send M558 P1 to the Duet, then send G31 P500 Z1.0.

Move a suitable target (e.g. white paper or glass) up underneath the sensor. Check that you get the following readings:

If you get the expected readings, then you can apply 12V power and continue with commissioning. If not, check your wiring.

With 12V power applied, send M558 P1 followed by G31 P500 Z1.0 to the Duet again. Note: if your printer does not use the Z probe to home any axes, you also need to add parameters X0 Z0 to the M558 P1 command.

To calibrate the sensor for Z homing and bed probing, home X and Y, then position the head over the centre of the bed. With the nozzle at operating temperature, lower the head so that it is just touching the bed or just gripping a sheet of paper, then send G92 Z0 to define that position as Z=0. Raise the head 5mm and remove the paper. Then send command G30 S-1 to probe the bed at that point without adjusting the Z height setting. Read off the Z height in the “Head Position” box in Duet Web Control, or from the Z coordinate shown on the Control page of PanelDue, or send M114 to retrieve the head position if using a USB host program on a PC. It should be in the range 0.5 to 2.5mm. Use that value for the Z parameter in your G31 command in config.g. Please note:

Troubleshooting

LED illuminates (more dimly than normal) as soon as the board is connected. This usually means that you have plugged the 3-pin connector the wrong way round on the board, thereby transposing the Vcc and Out connections. Turn the power off and check your wiring.

LED turns on/off to indicate triggering, but the printer firmware does not recognise whether or not it is triggered. Check that you are getting the correct number of flashes from the LED after power up (4 if you are using Duet electronics or RADDS electronics running RepRapFirmware, 2 for other electronics). If you are getting 4 flashes but expecting 2, then either the sensor output pin is not connected to your electronics correctly, or the pullup resistor is not enabled in your printer firmware, or the pullup resistor has too high a value. If you are getting 2 flashes but the firmware always indicates that the sensor is triggered even when it is not, then the value of the pullup resistor may be too low – see the note for Smoothieboard users above.

Trigger height relative to nozzle varies with XY position. This may mean that there is a large variation in the surface of your print bed, or (if it is a glass bed) in the reflectivity of the surface underneath the glass. Check that the bed surface is the same everywhere you are probing. Another common cause is that the print head is tilting slightly by an amount that depends on XY position (this is common on delta printers). Mounting the sensor close to the nozzle will reduce the effect of any such tilt.

If you cannot eliminate the variation of trigger height with XY position, then if you are using Duet electronics running my fork of RepRapFirmware version 1.09e or later, you can compensate for differences in trigger height using the H parameter on the G30 commands in the bed.g file.

Trigger height too low. This usually means that you have mounted the board too high. The bottom edge of the board should be between 1mm and 2mm higher than the tip of the nozzle. This should give you a trigger height between 0.5mm and 1.5mm. Another possibility is that you are using a glass or PEI bed and the surface underneath the glass is reflective – you should use a black surface underneath the glass or PEI.

Board dimensions and mounting holes

If the bottom left corner of the board is position (0, 0) then other points on the board are at the following (X, Y) coordinates, in mm:

Top right corner (24.0, 17.62)
Mounting hole centres (2.70, 14.92) and (21.11, 14.92)
Mounting hole diameter 2.8

Effector (mover) | Encoder KY-040 by Keyes - filament monitor

grafik.png grafik.png grafik.png grafik.png grafik.png

Technical data:

Warning: Wrong wiring can destroy CLK/DT lines (painfully tested)

Used for

Basic example script for testing with Raspberry Pi (not used in production!)

https://pypi.org/project/pigpio-encoder
https://github.com/joan2937/pigpio

apt install python3-pip
pip3.7 install pigpio_encoder
cd /opt/gpio/
git clone https://github.com/modmypi/Rotary-Encoder/
cd Rotary-Encoder
vim rotaryEncoder.py #used pins: clk=6, dt=12, sw=5
from pigpio_encoder import pigpio_encoder
 
def rotary_callback(counter):
    print("Counter value: ", counter)
 
def sw_short():
    print("Switch short press")
 
def sw_long():
    print("Switch long press")
 
my_rotary = pigpio_encoder.Rotary(clk=6, dt=12, sw=5)
my_rotary.setup_rotary(min=10, max=300, scale=5, debounce=200, rotary_callback=rotary_callback)
my_rotary.setup_switch(debounce=200, long_press=True, sw_short_callback=sw_short, sw_long_callback=sw_long)
 
my_rotary.watch()
#enable pigpiod daemon (required to run pigpio things)
vim /etc/systemd/system/pigpiod.service
 
[Unit]
Description=Pigpio daemon
 
[Service]
Type=forking
#disallow port 8888 from outside
ExecStart=/usr/bin/pigpiod -l
 
[Install]
WantedBy=multi-user.target
 
systemctl enable pigpiod.service
systemctl start pigpiod.service
service pigpiod restart
#finally run the script
python3.7 /opt/gpio/rotaryEncoder.py #do not use Python2 because it will fail

Effector (mover) | Spirit level acrylic 36' 55x15x15mm

grafik.png

Details

Effector (mover) | Aero Titan Extruder and SuperVolcano Hotend by E3D

grafik.png grafik.png

Effector (mover) | Inertial Measurement Unit MPU 9250 / GY-250 InvenSense

grafik.png grafik.png grafik.png 

Features

Specifications

Used wiring address

keywords

Effector (mover) | Stepper Motor MT-1703HSM168RE by Motech Motors

grafik.png grafik.png grafik.png

grafik.png grafik.png

Generic used parts and base frame parts | chainflex CF2.02.24 cable by igus

grafik.png

Core packages

Bundle Conductor no. Colours according to DIN ISO 47100
1 1 white
1 2 brown
1 3 green
1 4 yellow
2 5 grey
2 6 pink
2 7 blue
2 8 red
3 9 black
3 10 violet
3 11 grey-pink
3 12 red-blue
4 13 white-green
4 14 brown-green
4 15 white-yellow
4 16 yellow-brown
5 17 white-grey
5 18 grey-brown
5 19 white-pink
5 20 pink-brown
6 21 white-blue
6 22 brown-blue
6 23 white-red
6 24 brown-red

 

Generic used parts and base frame parts | Emergency push button and opener M22-K01 by Eaton

grafik.png grafik.png grafik.png grafik.png

Generic used parts and base frame parts | Fishing line FireLine Smoke 270m 0,50 mm by Berkley

grafik.png

 

Generic used parts and base frame parts | LED stripe 24V

grafik.png grafik.png canvas.png

Generic used parts and base frame parts | Self wrapping cable sleeve

https://www.ebay.de/itm/2-m-Kabel-Schutz-Schlauch-Gewebe-Installations-Kanal-selbstschlie%C3%9Fend-flexibel/301815929370?ssPageName=STRK%3AMEBIDX%3AIT&var=600627190685&_trksid=p2057872.m2749.l2649

grafik.png grafik.png

Search keywords: Kabelgewebeschlauch selbstschließend, Techflex, Self Wrapping Flat, Sleeve, Kabelschutz, Schlauch, Gewebe, Installationskanal, selbstschließend, flexibel

 

Generic used parts and base frame parts | Tablet Lifetab P9812 by Medion