Lulzbot TAZ 1.0
From HacDC Wiki
TAZ v.1.0 Marlin firmware
Last edited by Ubuntourist ([email protected]) (kjc) 2019.02.14
See the forked Lulzbot TAZ 1.0 git repository on GitLab.
Determining which version of the TAZ and connecting to it
The “newest” addition to our collection of 3D printers is actually the oldest: The Lulzbot TAZ is actually, a Lulzbot TAZ 1.0 (according to the serial number on the back: KT-PR0010-5147).
The index.html
at http://devel.lulzbot.com/TAZ/ says, among other things: *"B" - KT-PR0010 - TAZ 1.0
Using minicom
, the baud rate was determined to be 115200. Sending G28
to home it made it grind gears.
$ pronsole offline> connect /dev/ttyACM2 115200 ttyACM2 21°>
Eventually, I found http://download.lulzbot.com/TAZ/1.0/hardware/electronics/RAMBo/ which identifies the board as “based off of the Arduino MEGA” with “5 stepper drivers” and “5 MOSFET switched outputs” with documentation at http://reprap.org/wiki/rambo
As near as I can tell, the latest in firmware and other software lives at http://download.lulzbot.com/TAZ/1.0/software/current/firmware/Marlin/
Lulzbot offers instructions on re-flashing your 3D printer’s firmware and see also RepRap’s RAMBo firmware page.
Because we neither have the original paperwork for the TAZ, nor were the EEPROM settings previously enabled, we may be forced to determine the ESTEPS settings via, IMHO, a method fraught with inaccuracy by trying to manually calibrate using the OHAI instructions.
Adding a dynamic symlink to the TAZ…
After massaging the OS with the procedures listed in Dynamic symlinks for 3D printers we see:
$ pronsole WARNING:root:Could not setup DBus for sleep inhibition: org.freedesktop.DBus.Error.NotSupported: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11 Welcome to the printer console! Type "help" for a list of available commands. offline> offline> connect /dev/TAZ 115200 start Printer is now online External Reset Marlin 1.0.0 Last Updated: 2013-03-06 | Author: LulzBot Compiled: Apr 17 2015 Free Memory: 5504 PlannerBufferBytes: 1232 TAZ PC> TAZ 21°>
Note the details on the firmware. Namely:
- Marlin 1.0.0
- Last Updated: 2013-03-06 | Author: LulzBot
- Compiled: Apr 17 2015
Fixing Arduino
The Arduino IDE complains
Ignoring bad library name <@pronterhost> The library "U8glib-new" cannot be used. Library names must contain only basic letters and numbers. (ASCII only and no spaces, and it cannot start with a number.)
Und zo, after tracking down the symbolic links and such…
sudo -i $ cd /usr/share/arduino/libraries $ rm U8glib-new $ mv /home/demo/Taz/Marlin/ArduinoAddons/Arduino_1.x.x/libraries/U8glib-new /home/demo/Taz/Marlin/ArduinoAddons/Arduino_1.x.x/libraries/U8glibNew $ ln -s /home/demo/Taz/Marlin/ArduinoAddons/Arduino_1.x.x/libraries/U8glibNew . $ exit
Calibrating the TAZ
$ pronsole WARNING:root:Could not setup DBus for sleep inhibition: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.ScreenSaver was not provided by any .service files Welcome to the printer console! Type "help" for a list of available commands. offline> connect /dev/TAZ 115200 Printer is now online TAZ 21°> move z 10 TAZ 21°> move x 10 TAZ 21°> move x 10 TAZ 21°> move x 10 TAZ 21°> move x 10 TAZ 21°> move x 10 TAZ 21°> move x 10 TAZ 21°> move x 10 TAZ 21°> settemp 215 Setting hotend temperature to 215.0 degrees Celsius. TAZ 21°> TAZ 21°/215°> TAZ 21°/215°> TAZ 21°/215°> TAZ 22°/215°> . . . TAZ 215°/215°> TAZ 215°/215°> extrude 10 TAZ 215°/215°> extrude 10 TAZ 215°/215°> extrude 10 TAZ 215°/215°> extrude 40 . . .
NOTE: Moving Z 10 “mm” resulted in the extruder assembly climbing WAY too high (especially compared to the multiple X movements which, even after 7 of them resulted in considerably less distance total.)
(Extrusion repeated until green filament residue became clear filament.) At which point Bobby took over and deemed the current feed calibration to be “close enough” but the ESTEPS value is still unknown.
BTW, Bobby says the Y calibration is 0.24 mm per step.
Fun with Firmware Flashing
Downloading all the firmware:
$ wget -r -np -R "index.html*" -e robots=off http://download.lulzbot.com/TAZ/1.0/software/current/firmware/Marlin/Marlin/
In order to get the current settings from the TAZ, EEPROM_SETTINGS
needs to be enabled which is apparently done in Configuration.h
Hopefully, the arcane details can be ferreted out of the Marlin Configuration,h documentation
First, Configuration.h
has ridiculously long lines, now word-wrapped for sanity.
Next, a more vexing problem, I think: pronterhost
has Arduino v.2.1.0.5+dfsg2-4.1
. Naturally, Marlin only offers Arduino add-ons for Arduino 0.xx
and Arduino 1.x.x
.
Fortunately, further research yielded a tidbit from the Arduino Playground: An SPI library is now included in the Arduino software. See the SPI library reference for details.
$ cd Marlin/ArduinoAddons $ find . -type f ./Arduino_0.xx/Gen6/boards.txt ./Arduino_0.xx/libraries/SPI/keywords.txt ./Arduino_0.xx/libraries/SPI/SPI.cpp ./Arduino_0.xx/libraries/SPI/SPI.h ./Arduino_0.xx/libraries/LiquidCrystal/keywords.txt ./Arduino_0.xx/libraries/LiquidCrystal/LiquidCrystal.cpp ./Arduino_0.xx/libraries/LiquidCrystal/LiquidCrystal.h ./Arduino_0.xx/Sanguino/boards.txt ./Arduino_0.xx/Sanguino/programmers.txt ./Arduino_0.xx/Gen7/boards.txt ./Arduino_1.x.x/libraries/SPI/keywords.txt ./Arduino_1.x.x/libraries/SPI/SPI.cpp ./Arduino_1.x.x/libraries/SPI/SPI.h ./Arduino_1.x.x/libraries/LiquidCrystal/keywords.txt ./Arduino_1.x.x/libraries/LiquidCrystal/LiquidCrystal.cpp ./Arduino_1.x.x/libraries/LiquidCrystal/LiquidCrystal.h ./Arduino_1.x.x/sanguino/boards.txt
According to the SPI library reference documentation, the SPI stands for Serial Peripheral Interface`.
The LiquidCrystal library, as one might guess, allows Arduino to control LCDs. Since we don't have an LCD on this machine, it's currently irrelevant.
In a previous life, I used a tool called dfu-programmer
to flash a PrintrBot's firmware... (Under Arch Linux, I have both the dfu-programmer
and dfu-util
packages installed.)