LulzBot Mini Research and Development

The LulzBot Mini has recently (November 15, 2016) had a huge overhaul with the introduction of Mini v1.04 (codenamed Gladiola). The changes made needed to be subtle enough whereas a SKU change did not have to be made, making the improvements even more challenging to pull off.

The requirements for the electrical system in this release were the following:

  • Use completely new and custom cabling which can handle continuous flexing and outlast the printers’ lifetime (praised by users)
  • Significantly reduce the complexity of installation and assembly for the electronics and wiring; increase rate of production (manufacturing’s assembly instructions)
  • Eliminate an extreme falure mode which would destroy the MCU when the contents of the hotend’s heating element is shorted to its housing
  • Increase the EMC repeatability of the machines; Introduce proper grounding, masking, shielding, filtering, and low impedance return path schemes (test report, more docs)
  • Overall reduction in electronics related RMAs
  • Use the latest revision of Ultimachine’s Mini-RAMBo (with more unintentional radiating antennas)

The EMC improvements made could only be done at the machine/wiring level due to the electronics having been designed in proprietary software. Several Gladiola machines were tested and passed Class B, significantly increasing our sample size. Without proper grounding, shielding, and filtering the PCB could produce quasi-peaks which are as much as 10dB above the Class A limit. The radiated emissions were also found to be lower than several competitors.

mini_before_after
Figure 1: Electronics enclosure before (v1.03 and earlier) and after (v1.04)
mini_chamber

Figure 2: LulzBot Mini v1.04 (3 Meter) Test Setup for Radiated Emissions

The requirements for the firmware in this release were the following:

  • Base the release off of upstream Marlin 1.1.0
  • Eliminate an extreme failure mode which causes the toolhead to crash into to the bed when probing fails (praised by users, commit, see Figure 3)
  • Measurably improve the extruder fan consistency during operation; the solution was modifying the PWM frequency by changing AVR register values (commit)
  • Create an additional branch which allows for a GLCD controller to be used
  • Account for dimensional changes between v1.03 (and earlier) and 1.04, backwards compatibility with all previous Minis
  • Add proper thermal runaway protection (commits: 247f680ef509d957f9543734)
  • Eliminate several bugs present in upstream (such as serial ring buffer overflow)
  • Create pull requests and have them merged upstream for all significant bug fixes and improvements to the firmware (commits merged upstream)
  • Create a makefile which can be used to build the firmware
  • Create a manufacturing firmware checksum script and procedure
LulzBot-Mini-PEI-bed-damage

Figure 3: Failure Mode Prevented by Second Bullet Point

GLCD Development

In addition to each of these improvements, I also re-drew the GLCD board in KiCad with improved routing, proper grounding, and ESD protection (project files).

glcd

Figure 4: GLCD KiCad Layout and 3D Rendering in FreeCAD

IMG_20170316_133416

Figure 5: Back of the GLCD PCB

IMG_20170316_133407

Figure 6: Front of the GLCD PCB

IMG_20170317_075144

Figure 7: Custom GLCD Controller on a Mini