Actions

Lulzbot TAZ 1.0

From HacDC Wiki

Revision as of 19:28, 14 February 2019 by Ubuntourist (talk | contribs) (Minor edit)

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.)