|
Dobrica Pavlinušić's random unstructured stuff
Printrbot Plus: Revision 58
PrintrBot_Plus_LC.diff
Old 3D printer which never worked well. https://web.archive.org/web/20130115210644/http://printrbot.com/shop/plus/ PrintrBot Plus LCThe Printrbot PLUS is the larger printrbot kit–containing an 8x8x8 build volume, laser cut birch construction, an assembled Ubis hot end, and 12mm Z-axis rods in an all-in-one kit. This kit also includes 1 lb of ABS filament. This kit includes everything you need to build the printrbot PLUS:
nozzle
The Getting Started Guide says that all Printrbots currently ship with 0.4mm nozzles. infoMost of information about it vanished from internet so here is some overview: Rev.B https://github.com/Printrbot/printrboard/releases/tag/revB PrintrBoard pinoutAnnotated headers from http://blog.think3dprint3d.com/2012/07/panelolu-with-printrboard.html serial[Sun Mar 18 08:23:50 2018] usb 2-4.4: new full-speed USB device number 61 using xhci_hcd [Sun Mar 18 08:23:50 2018] usb 2-4.4: New USB device found, idVendor=16c0, idProduct=0483 [Sun Mar 18 08:23:50 2018] usb 2-4.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [Sun Mar 18 08:23:50 2018] usb 2-4.4: Product: USB Serial [Sun Mar 18 08:23:50 2018] usb 2-4.4: Manufacturer: Teensyduino [Sun Mar 18 08:23:50 2018] usb 2-4.4: SerialNumber: 12345 [Sun Mar 18 08:23:50 2018] cdc_acm 2-4.4:1.0: ttyACM0: USB ACM device dpavlin@nuc:~$ microcom p /dev/ttyACM0 connected to /dev/ttyACM0 Escape character: Ctrl\ Type the escape character to get to the prompt. start echo:PowerUp Brown out Reset Marlin: 1.0.0 RC2 echo: Last Updated: 2012-02-25 | Author: erik echo: Free Memory: 4907 Pla echo:SD init fail workDir open failed echo:Unknown command:"echo" ok echo:Unknown command:"SD init fail" ok echo:Unknown command:"workDir open failed" ok settingshttps://github.com/Printrbot/Marlin M501 echo:Stored settings retreived: echo:Steps per unit: echo: M92 X62.11 Y64.67 Z2272.72 E536.00 echo:Maximum feedrates (mm/s): echo: M203 X60.00 Y60.00 Z2.00 E14.00 echo:Maximum Acceleration (mm/s2): echo: M201 X2000 Y2000 Z30 E10000 echo:Acceleration: S=acceleration, T=retract acceleration echo: M204 S3000.00 T3000.00 echo:Advanced variables: S=Min feedrate (mm/s), T=Min travel feedrate (mm/s), B=minimum segment time (ms), X=maximum xY jerk (mm/s), Z=maximum Z jerk (mm/s) echo: M205 S0.00 T0.00 B20000 X20.00 Z0.40 E5.00 echo:PID settings: echo: M301 P22.20 I1.08 D114.00 M115 FIRMWARE_NAME:Marlin V1; Sprinter/grbl mashup for gen6 FIRMWARE_URL:http://www.mendel-parts.com PROTOCOL_VERSION:1.0 MACHINE_TYPE:Mendel EXTRUDER_COUNT:1 software bed levelerschematicsPrintrboard_RevB_Schematic150.pngPrintrboard-schematics.pdf Marlindpavlin@nuc:/nuc/PrintrBot$ git clone https://github.com/dpavlin/Marlin dpavlin@nuc:/nuc/PrintrBot$ cd Marlin/ compile Marlin 1.1.8https://github.com/dpavlin/Marlin/tree/PrintrBot_Plus_LC-1.1.8 dpavlin@nuc:/nuc/PrintrBot/Marlin$ git checkout PrintrBot_Plus_LC-1.1.8 dpavlin@nuc:/nuc/PrintrBot/Marlin$ platformio run -e printrboard Warning! Ignore unknown `envs_dir` option in `[platformio]` section Processing printrboard (platform: teensy; board: teensy20pp; framework: arduino) ----------------------------------------------------------------------------------------------------------------------- Verbose mode can be enabled via `-v, --verbose` option PLATFORM: Teensy > Teensy++ 2.0 SYSTEM: AT90USB1286 16MHz 8KB RAM (127KB Flash) compile Marlin 1.1.9different enviroment compared to 1.1.8? dpavlin@nuc:/nuc/PrintrBot/Marlin$ git checkout PrintrBot_Plus_LC-1.1.9 dpavlin@nuc:/nuc/PrintrBot/Marlin$ platformio run -e teensy20 flashingopen boot jumper, press button
[Sun Apr 15 12:20:34 2018] usb 1-1.1: new full-speed USB device number 30 using xhci_hcd
[Sun Apr 15 12:20:34 2018] usb 1-1.1: unable to get BOS descriptor
[Sun Apr 15 12:20:34 2018] usb 1-1.1: New USB device found, idVendor=03eb, idProduct=2ffb
[Sun Apr 15 12:20:34 2018] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[Sun Apr 15 12:20:34 2018] usb 1-1.1: Product: AT90USB128 DFU
[Sun Apr 15 12:20:34 2018] usb 1-1.1: Manufacturer: ATMEL
[Sun Apr 15 12:20:34 2018] usb 1-1.1: SerialNumber: 1.0.0
root@nuc:/nuc/PrintrBot/Marlin# apt-get install dfu-programmer
root@nuc:/nuc/PrintrBot/Marlin# dfu-programmer --targets 2>&1 | grep at90usb128
at89c5132 at90usb1287 at90usb1286 at90usb1287-4k
at90usb1286-4k at90usb647 at90usb646 at90usb162
root@nuc:/nuc/PrintrBot/Marlin# dfu-programmer at90usb1286 dump --debug 99
target: at90usb1286
chip_id: 0x2ffb
vendor_id: 0x03eb
command: dump
quiet: false
debug: 99
device_type: AVR
------ command specific below ------
commands.c:625: dump 122880 bytes
atmel.c:579: atmel_read_flash( 0x7ffe83facaf0, 0x00000000, 0x0001e000, 0x564ef5df7000, 122880, false )
atmel.c:847: atmel_select_page( 0x7ffe83facaf0, 0 )
atmel.c:510: __atmel_read_page( 0x7ffe83facaf0, 0, 65536, 0x564ef5df7000, false )
atmel.c:537: result: -9
Unknown error. Try enabling debug.
Failed to read 122880 bytes from device.
other useful debug levels are 100, 200, 300 - https://www.avrfreaks.net/forum/how-use-dfu-programmer hmmm... can't backup firmware? flash firmware
dpavlin@nuc:/nuc/PrintrBot/Marlin$ dfu-programmer at90usb1286 erase
dpavlin@nuc:/nuc/PrintrBot/Marlin$ dfu-programmer at90usb1286 flash .pioenvs/printrboard/firmware.hex
Validating...
Flash did not validate. Did you erase first?
dpavlin@nuc:/nuc/PrintrBot/Marlin$ dfu-programmer at90usb1286 erase --debug 100
target: at90usb1286
chip_id: 0x2ffb
vendor_id: 0x03eb
command: erase
quiet: false
debug: 100
device_type: AVR
------ command specific below ------
validate: true
commands.c:69: erase 122879 bytes
atmel.c:281: atmel_erase_flash( 0x7ffc5df9bff0, 4 )
atmel.c:671: atmel_blank_check( 0x7ffc5df9bff0, 0x00000000, 0x0001dfff )
atmel.c:847: atmel_select_page( 0x7ffc5df9bff0, 0 )
atmel.c:647: __atmel_blank_check_internal( 0x7ffc5df9bff0, 0x00000000, 0x0000ffff )
atmel.c:847: atmel_select_page( 0x7ffc5df9bff0, 1 )
atmel.c:647: __atmel_blank_check_internal( 0x7ffc5df9bff0, 0x00000000, 0x0000dfff )
teensy setup pjrc
udev rule: https://www.pjrc.com/teensy/49-teensy.rules unlock chip using flipIt seems that chip is protected. However, trying to erase and program it did destry data in it (expect bootloader) for some reason, and it seem that dfu-programmer doesn't know how to work with protection features. So, next step is to try atmel's flip under linux but this also doesn't work well.
root@nuc:/nuc/PrintrBot/flip.3.2.1# cat debian-install.sh sudo apt-get install openjdk-9-jre:i386 libusb-0.1-4:i386 root@nuc:/nuc/PrintrBot/flip.3.2.1# cat env.sh export JAVA_HOME=/usr/lib/jvm/java-9-openjdk-i386/ export FLIP_HOME=/nuc/PrintrBot/flip.3.2.1/bin/ root@nuc:/nuc/PrintrBot/flip.3.2.1# cd bin/ root@nuc:/nuc/PrintrBot/flip.3.2.1/bin# cp -apv libatlibusbdfu.so libatlibusbdfu.so.orig root@nuc:/nuc/PrintrBot/flip.3.2.1/bin# sed 's/\/sys\/bus\/usb/\/dev\/bus\/usb/g' libatlibusbdfu.so.orig > libatlibusbdfu.so # run from bin directory or it won't work (?!) root@nuc:/nuc/PrintrBot/flip.3.2.1/bin# ./flip.sh avrdudemade cable to convert 10 pin ICSP on usbasp to 6 pin ICSP on printrboard http://reprap.org/wiki/Printrboard#Bootloaders Pin 1 (not red wire on my harness because of re-wiring) is closest to the SD card slot. root@nuc:/nuc/PrintrBot# avrdude -p usb1286 -c usbasp avrdude: warning: cannot set sck period. please check for usbasp firmware update. avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.00s avrdude: Device signature = 0x1e9782 (probably usb1287) avrdude: safemode: Fuses OK (E:F3, H:99, L:5E) avrdude done. Thank you. ok, factory bootloader fuses
# disable jtag
avrdude -c usbtiny -p at90usb1286 -U lfuse:w:0xde:m -U hfuse:w:0xdb:m -U efuse:w:0xf0:m
# enabled jtag
avrdude -c usbtiny -p at90usb1286 -U lfuse:w:0xDE:m -U hfuse:w:0x9B:m -U efuse:w:0xF0:m
root@nuc:/nuc/PrintrBot# avrdude -c usbtiny -p at90usb1286 -U lfuse:w:0xde:m -U hfuse:w:0xdb:m -U efuse:w:0xf0:m
avrdude: Error: Could not find USBtiny device (0x1781/0xc9f)
avrdude done. Thank you.
root@nuc:/nuc/PrintrBot# avrdude -c usbasp -p at90usb1286 -U lfuse:w:0xde:m -U hfuse:w:0xdb:m -U efuse:w:0xf0:m
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude: Device signature = 0x1e9782 (probably usb1287)
avrdude: reading input file "0xde"
avrdude: writing lfuse (1 bytes):
Writing | | 0% 0.00s ***failed;
Writing | ################################################## | 100% 0.06s
avrdude: 1 bytes of lfuse written
avrdude: verifying lfuse memory against 0xde:
avrdude: load data lfuse data from input file 0xde:
avrdude: input file 0xde contains 1 bytes
avrdude: reading on-chip lfuse data:
Reading | ################################################## | 100% 0.00s
avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
0x5e != 0xde
avrdude: verification error; content mismatch
avrdude: safemode: lfuse changed! Was de, and is now 5e
[Tue Apr 17 07:12:19 2018] usb 1-1.4: USB disconnect, device number 20
[Tue Apr 17 07:12:19 2018] usb 1-1.4: USB disconnect, device number 20
Would you like this fuse to be changed back? [y/n]
Would you like this fuse to be changed back? [y/n] n
avrdude: safemode: Fuses OK (E:F3, H:99, L:DE)
avrdude done. Thank you.
root@nuc:/nuc/PrintrBot# avrdude -p usb1286 -c usbasp
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude: Device signature = 0x1e9782 (probably usb1287)
avrdude: safemode: Fuses OK (E:F3, H:99, L:5E)
avrdude done. Thank you.
flash bootloaderhuh, hum, program bootloader anyway from http://blog.lincomatic.com/?p=548 root@nuc:/nuc/PrintrBot# avrdude -p usb1286 -c usbasp -U flash:w:BootloaderDFU.hex power cycle, return jumper re-try programming fuses root@nuc:/nuc/PrintrBot# avrdude -c usbasp -p at90usb1286 -U lfuse:w:0xDE:m -U hfuse:w:0x9B:m -U efuse:w:0xF0:m dfu programming worksre-try dfu programming root@nuc:/nuc/PrintrBot# dfu-programmer at90usb1286 erase root@nuc:/nuc/PrintrBot# dfu-programmer at90usb1286 flash Marlin/.pioenvs/printrboard/firmware.hex Validating... 61322 bytes used (49.90%) avrdude programming
dpavlin@nuc:/nuc/PrintrBot/Marlin$ avrdude -c usbasp -p usb1286 -U flash:w:.pioenvs/printrboard/firmware.hex
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude: Device signature = 0x1e9782 (probably usb1287)
avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: reading input file ".pioenvs/printrboard/firmware.hex"
avrdude: input file .pioenvs/printrboard/firmware.hex auto detected as Intel Hex
avrdude: writing flash (87280 bytes):
Writing | ################################################## | 100% 58.04s
avrdude: 87280 bytes of flash written
avrdude: verifying flash memory against .pioenvs/printrboard/firmware.hex:
avrdude: load data flash data from input file .pioenvs/printrboard/firmware.hex:
avrdude: input file .pioenvs/printrboard/firmware.hex auto detected as Intel Hex
avrdude: input file .pioenvs/printrboard/firmware.hex contains 87280 bytes
avrdude: reading on-chip flash data:
Reading | ################################################## | 100% 38.49s
avrdude: verifying ...
avrdude: 87280 bytes of flash verified
avrdude: safemode: Fuses OK (E:F0, H:9B, L:DE)
avrdude done. Thank you.
RepRapDiscount Full Graphic Smart Controllerpinoutsprintrboard-lcd-pinout.png![]() Marlin pinoutdiff --git a/Marlin/pins_PRINTRBOARD.h b/Marlin/pins_PRINTRBOARD.h index 42632d174..8146505a3 100644 --- a/Marlin/pins_PRINTRBOARD.h +++ b/Marlin/pins_PRINTRBOARD.h @@ -166,3 +166,19 @@ #endif #endif // ULTRA_LCD && NEWPANEL + +// XXX dpavlin -- my pinout +#define LCD_PINS_RS 9 // E1 JP11-11 +#define LCD_PINS_ENABLE 8 // E0 JP11-10 +#define LCD_PINS_D4 7 // D7 JP11-8 +#define LCD_PINS_D5 6 // D6 JP11-7 +#define LCD_PINS_D6 5 // D5 JP11-6 +#define LCD_PINS_D7 4 // D4 JP11-5 + +#define BTN_EN1 10 // C0 JP11-12 +#define BTN_EN2 11 // C1 JP11-13 +#define BTN_ENC 12 // C2 JP11-14 + +// display delays are added to +// Marlin/ultralcd_st7920_u8glib_rrd.h + diff --git a/Marlin/ultralcd_st7920_u8glib_rrd.h b/Marlin/ultralcd_st7920_u8glib_rrd.h index db6224e47..8474bef24 100644 --- a/Marlin/ultralcd_st7920_u8glib_rrd.h +++ b/Marlin/ultralcd_st7920_u8glib_rrd.h @@ -49,7 +49,7 @@ #define CPU_ST7920_DELAY_1 DELAY_NS(0) #define CPU_ST7920_DELAY_2 DELAY_NS(0) #define CPU_ST7920_DELAY_3 DELAY_NS(50) -#elif MB(3DRAG) || MB(K8200) || MB(K8400) || MB(SILVER_GATE) +#elif MB(3DRAG) || MB(K8200) || MB(K8400) || MB(SILVER_GATE) || MB(PRINTRBOARD) #define CPU_ST7920_DELAY_1 DELAY_NS(0) #define CPU_ST7920_DELAY_2 DELAY_NS(188) #define CPU_ST7920_DELAY_3 DELAY_NS(0) Hardware upgradeRAMPS1.4 LCD 12864
LM8UU
Y axis coupler
belts and pulleys
Y axes rod
Needs 3d printed adapter for nut to fit: https://www.thingiverse.com/thing:2963508 Nut is friction fit which I consider somewhat as safety feature, if I found problems with it, I will probably add a bit of ABS goo in holes to fix it in place bed levelingself-made sensor from RFID card, paper clip and case intrusion switch, connected in parallel with z-axis switch (it has to be normally closed, so that trigger interrupts signal) BL touch
http://www.geeetech.com/wiki/index.php/3DTouch_Auto_Leveling_Sensor pinout, right to left
Needs additional pin for servo control (S - servo) Marlin configuration
commit 18396a8cd25585d5d562d4345ed851b91fb58821 (HEAD -> PrintrBot_Plus_LC-1.1.9)
Author: Dobrica Pavlinusic <dpavlin@rot13.org>
Date: Sat Sep 8 11:05:54 2018 +0200
probe offset from extruder
diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h
index 438494220..aeed322a7 100644
--- a/Marlin/Configuration.h
+++ b/Marlin/Configuration.h
@@ -770,8 +770,8 @@
* O-- FRONT --+
* (0,0)
*/
-#define X_PROBE_OFFSET_FROM_EXTRUDER 10 // X offset: -left +right [of the nozzle]
-#define Y_PROBE_OFFSET_FROM_EXTRUDER 10 // Y offset: -front +behind [the nozzle]
+#define X_PROBE_OFFSET_FROM_EXTRUDER 35 // X offset: -left +right [of the nozzle]
+#define Y_PROBE_OFFSET_FROM_EXTRUDER 5 // Y offset: -front +behind [the nozzle]
#define Z_PROBE_OFFSET_FROM_EXTRUDER 0 // Z offset: -below +above [the nozzle]
// Certain types of probes need to stay away from edges
commit 2329e561e0f2997e78495c249706e9ce62608293
Author: Dobrica Pavlinusic <dpavlin@rot13.org>
Date: Sat Sep 8 10:51:07 2018 +0200
enable bed leveling
AUTO_BED_LEVELING_UBL doesn't seem to compile for me ATM
diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h
index 38e0c343b..438494220 100644
--- a/Marlin/Configuration.h
+++ b/Marlin/Configuration.h
@@ -969,7 +969,7 @@
*/
//#define AUTO_BED_LEVELING_3POINT
//#define AUTO_BED_LEVELING_LINEAR
-//#define AUTO_BED_LEVELING_BILINEAR
+#define AUTO_BED_LEVELING_BILINEAR
//#define AUTO_BED_LEVELING_UBL
//#define MESH_BED_LEVELING
@@ -1023,6 +1023,8 @@
//#define FRONT_PROBE_BED_POSITION MIN_PROBE_EDGE
//#define BACK_PROBE_BED_POSITION (Y_BED_SIZE - MIN_PROBE_EDGE)
+ #define RIGHT_PROBE_BED_POSITION 190 // dpavlin -- probe overhangs on the right
+
// Probe along the Y axis, advancing X after each column
//#define PROBE_Y_FIRST
commit b867a948cd3b64d69e900b99a1306631d62753df
Author: Dobrica Pavlinusic <dpavlin@rot13.org>
Date: Sun Sep 2 08:40:52 2018 +0200
added bltouch config and pin on e-stop
diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h
index fd8463456..38e0c343b 100644
--- a/Marlin/Configuration.h
+++ b/Marlin/Configuration.h
@@ -721,7 +721,7 @@
/**
* The BLTouch probe uses a Hall effect sensor and emulates a servo.
*/
-//#define BLTOUCH
+#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
#endif
@@ -1909,7 +1909,7 @@
* Set this manually if there are extra servos needing manual control.
* Leave undefined or set to 0 to entirely disable the servo subsystem.
*/
-//#define NUM_SERVOS 3 // Servo index starts with 0 for M280 command
+#define NUM_SERVOS 1 // Servo index starts with 0 for M280 command
// Delay (in milliseconds) before the next move will start, to give the servo time to reach its target angle.
// 300ms is a good value but you can try less delay.
diff --git a/Marlin/pins_PRINTRBOARD.h b/Marlin/pins_PRINTRBOARD.h
index 8146505a3..a68802725 100644
--- a/Marlin/pins_PRINTRBOARD.h
+++ b/Marlin/pins_PRINTRBOARD.h
@@ -182,3 +182,9 @@
// display delays are added to
// Marlin/ultralcd_st7920_u8glib_rrd.h
+// bltouch - use e-stop for servo
+// dpavlin@nuc:/nuc/PrintrBot/Marlin$ grep E5 m43-pins.txt
+// PIN: 37 Port: E5 <unused/unknown> Input = 1
+//
+#define SERVO0_PIN 37 // E5 E-STOP
+
gcode for bl-touchM280 P0 S10 ; pushes the pin down M280 P0 S90 ; pulls the pin up M280 P0 S120 ; Self test – keeps going until you do pin up/down or release alarm M280 P0 S160 ; Release alarm |