chiark / gitweb /
Initial fakeouts for Mangrove
[cura.git] / Cura / gui / configWizard.py
index 08afffaebc24c2e30e7184e62e50fe34b1b51d73..b5d8fa92f5f3d1300186eb7df39162fd53b49e09 100644 (file)
@@ -156,6 +156,16 @@ class ImageButton(wx.Panel):
                                if ImageButton.__last_group__ == self:
                                        ImageButton.__last_group__ = None
 
+       def TriggerGroupCallbacks(self):
+               if self.group:
+                       for ib in ImageButton.__groups__[self.group]:
+                               if ib.GetValue() and ib.callback:
+                                       ib.callback()
+                                       break
+               else:
+                       if self.GetValue() and self.callback:
+                               self.callback()
+
        def OnLeftClick(self, e):
                self.SetValue(True)
 
@@ -1095,8 +1105,6 @@ class LulzbotMachineSelectPage(InfoPage):
 
        def __init__(self, parent):
                super(LulzbotMachineSelectPage, self).__init__(parent, _("Select your machine"))
-               self.AddBitmap(wx.Bitmap(resources.getPathForImage('Lulzbot_logo.png')))
-               self.AddText(_("Select your printer :"))
 
                self.panel = self.AddPanel()
 
@@ -1104,16 +1112,22 @@ class LulzbotMachineSelectPage(InfoPage):
                self.LulzbotMini = self.AddImageButton(self.panel, 0, 0, _("LulzBot Mini"),
                                                                                           'Lulzbot_mini.jpg', image_size, style=ImageButton.IB_GROUP)
                self.LulzbotMini.OnSelected(self.OnLulzbotMiniSelected)
-               self.LulzbotMini.SetValue(True)
-               self.LulzbotTaz5 = self.AddImageButton(self.panel, 0, 1, _("LulzBot TAZ 5"),
+               
+               self.LulzbotTaz6 = self.AddImageButton(self.panel, 0, 1, _("LulzBot TAZ 6"),
+                                                                                          'Lulzbot_TAZ6.jpg', image_size)
+               self.LulzbotTaz6.OnSelected(self.OnLulzbotTaz6Selected)
+               
+               self.LulzbotTaz = self.AddImageButton(self.panel, 1, 0, _("LulzBot TAZ 4 or 5"),
                                                                                           'Lulzbot_TAZ5.jpg', image_size)
-               self.LulzbotTaz5.OnSelected(self.OnLulzbotTazSelected)
-               self.LulzbotTaz4 = self.AddImageButton(self.panel, 1, 0, _("LulzBot TAZ 4"),
-                                                                                          'Lulzbot_TAZ4.jpg', image_size)
-               self.LulzbotTaz4.OnSelected(self.OnLulzbotTazSelected)
+               self.LulzbotTaz.OnSelected(self.OnLulzbotTazSelected)
+               
                self.OtherPrinters = self.AddImageButton(self.panel, 1, 1, _("Other Printers"),
                                                                                                 'Generic-3D-Printer.png', image_size)
                self.OtherPrinters.OnSelected(self.OnOthersSelected)
+               self.LulzbotMini.SetValue(True)
+
+       def OnPageShown(self):
+               self.LulzbotMini.TriggerGroupCallbacks()
 
        def OnOthersSelected(self):
                wx.wizard.WizardPageSimple.Chain(self, self.GetParent().machineSelectPage)
@@ -1121,10 +1135,13 @@ class LulzbotMachineSelectPage(InfoPage):
        def OnLulzbotMiniSelected(self):
                wx.wizard.WizardPageSimple.Chain(self, self.GetParent().lulzbotMiniToolheadPage)
                wx.wizard.WizardPageSimple.Chain(self.GetParent().lulzbotMiniToolheadPage,
-                                                                                self.GetParent().lulzbotFirmwarePage)
+                                                                                self.GetParent().lulzbotReadyPage)
+
+       def OnLulzbotTaz6Selected(self):
+               wx.wizard.WizardPageSimple.Chain(self, self.GetParent().lulzbotTaz6SelectPage)
 
        def OnLulzbotTazSelected(self):
-               wx.wizard.WizardPageSimple.Chain(self, self.GetParent().lulzbotTazHotendPage)
+               wx.wizard.WizardPageSimple.Chain(self, self.GetParent().lulzbotTazSelectPage)
 
        def AllowNext(self):
                return True
@@ -1133,26 +1150,8 @@ class LulzbotMachineSelectPage(InfoPage):
                return False
 
        def StoreData(self):
-               if self.LulzbotTaz4.GetValue() or self.LulzbotTaz5.GetValue() or self.LulzbotMini.GetValue():
-                       if self.LulzbotTaz4.GetValue():
-                               # Nozzle diameter will be set in the toolhead selection page
-                               # We set the machine_type here so later pages can differenciate between TAZ 4 and 5
-                               profile.putMachineSetting('machine_width', '290')
-                               profile.putMachineSetting('machine_depth', '275')
-                               profile.putMachineSetting('machine_height', '250')
-                               profile.putMachineSetting('machine_type', 'lulzbot_TAZ_4')
-                               profile.putMachineSetting('machine_name', 'LulzBot TAZ 4')
-                               profile.putMachineSetting('serial_baud', '115200')
-                               profile.putMachineSetting('extruder_head_size_min_x', '0.0')
-                               profile.putMachineSetting('extruder_head_size_max_x', '0.0')
-                               profile.putMachineSetting('extruder_head_size_min_y', '0.0')
-                               profile.putMachineSetting('extruder_head_size_max_y', '0.0')
-                               profile.putMachineSetting('extruder_head_size_height', '0.0')
-                       elif self.LulzbotTaz5.GetValue():
-                               # Nozzle diameter will be set in the toolhead selection page
-                               # We set the machine_type here so later pages can differenciate between TAZ 4 and 5
-                               profile.putMachineSetting('machine_type', 'lulzbot_TAZ_5')
-                               profile.putMachineSetting('machine_name', 'LulzBot TAZ 5')
+               if self.LulzbotTaz.GetValue() or self.LulzbotMini.GetValue():
+                       if self.LulzbotTaz.GetValue():
                                profile.putMachineSetting('machine_width', '290')
                                profile.putMachineSetting('machine_depth', '275')
                                profile.putMachineSetting('machine_height', '250')
@@ -1186,33 +1185,23 @@ class LulzbotMachineSelectPage(InfoPage):
 class LulzbotReadyPage(InfoPage):
        def __init__(self, parent):
                super(LulzbotReadyPage, self).__init__(parent, _("LulzBot TAZ/Mini"))
-               self.AddBitmap(wx.Bitmap(resources.getPathForImage('Lulzbot_logo.png')))
                self.AddText(_('Cura is now ready to be used with your LulzBot 3D printer.'))
                self.AddSeperator()
                self.AddText(_('For more information about using Cura with your LulzBot'))
                self.AddText(_('3D printer, please visit www.LulzBot.com/cura'))
                self.AddSeperator()
 
-class LulzbotToolheadSelectPage(InfoPage):
-       def __init__(self, parent, title):
-               super(LulzbotToolheadSelectPage, self).__init__(parent, title)
-               self.AddBitmap(wx.Bitmap(resources.getPathForImage('Lulzbot_logo.png')))
-               self.AddText(_('Picking the correct Tool Head is important.'))
-               txt = self.AddText(_('WARNING: Printing with the incorrect firmware can damage your LulzBot printer!'))
-               txt.SetForegroundColour(wx.RED)
-               self.AddSeperator()
-
-class LulzbotMiniToolheadSelectPage(LulzbotToolheadSelectPage):
+class LulzbotMiniToolheadSelectPage(InfoPage):
        def __init__(self, parent, allowBack = True):
                super(LulzbotMiniToolheadSelectPage, self).__init__(parent, _("LulzBot Mini Tool Head Selection"))
 
                self.allowBack = allowBack
                self.panel = self.AddPanel()
                image_size=(LulzbotMachineSelectPage.IMAGE_WIDTH, LulzbotMachineSelectPage.IMAGE_HEIGHT)
-               self.standard = self.AddImageButton(self.panel, 0, 0, _('Single Extruder v2'),
-                                                                                       'Lulzbot_Toolhead_Mini_Standard.jpg', image_size,
+               self.standard = self.AddImageButton(self.panel, 0, 0, _('Standard LulzBot Mini'),
+                                                                                       'Lulzbot_mini.jpg', image_size,
                                                                                        style=ImageButton.IB_GROUP)
-               self.flexy = self.AddImageButton(self.panel, 0, 1, _('Flexystruder v2'),
+               self.flexy = self.AddImageButton(self.panel, 0, 1, _('LulzBot Mini with Flexystruder'),
                                                                                        'Lulzbot_Toolhead_Mini_Flexystruder.jpg', image_size)
                self.standard.SetValue(True)
 
@@ -1223,18 +1212,115 @@ class LulzbotMiniToolheadSelectPage(LulzbotToolheadSelectPage):
                if self.standard.GetValue():
                        profile.putProfileSetting('nozzle_size', '0.5')
                        profile.putMachineSetting('extruder_amount', '1')
-                       profile.putMachineSetting('toolhead', 'Single Extruder V2')
+                       profile.putMachineSetting('toolhead', 'Single Extruder v2')
                        profile.putMachineSetting('toolhead_shortname', '')
                        profile.putMachineSetting('machine_type', 'lulzbot_mini')
                else:
                        profile.putProfileSetting('nozzle_size', '0.6')
                        profile.putMachineSetting('extruder_amount', '1')
-                       profile.putMachineSetting('toolhead', 'Flexystruder V2')
+                       profile.putMachineSetting('toolhead', 'Flexystruder v2')
                        profile.putMachineSetting('toolhead_shortname', 'Flexystruder')
                        profile.putMachineSetting('machine_type', 'lulzbot_mini_flexystruder')
 
+class LulzbotTaz6SelectPage(InfoPage):
+       def __init__(self, parent):
+               super(LulzbotTaz6SelectPage, self).__init__(parent, _("LulzBot TAZ 6 Selection"))
+
+               self.panel = self.AddPanel()
+               image_size=(LulzbotMachineSelectPage.IMAGE_WIDTH, LulzbotMachineSelectPage.IMAGE_HEIGHT)
+               self.taz6 = self.AddImageButton(self.panel, 0, 0, _('Tilapia'),
+                                                                               'Lulzbot_Toolhead_TAZ_Tilapia.jpg', image_size,
+                                                                               style=ImageButton.IB_GROUP)
+               self.taz6.OnSelected(self.OnTilapiaSelected)
+               self.taz6.SetValue(True)
+
+       def OnPageShown(self):
+               self.taz6.TriggerGroupCallbacks()
+
+       def OnTilapiaSelected(self):
+               wx.wizard.WizardPageSimple.Chain(self, self.GetParent().lulzbotReadyPage)
+
+       def StoreData(self):
+               profile.putProfileSetting('nozzle_size',  '0.5')
+               profile.putMachineSetting('extruder_amount', '1')
+               profile.putMachineSetting('toolhead', 'Single Extruder Tilapia')
+               profile.putMachineSetting('toolhead_shortname', 'Tilapia')
+               profile.putMachineSetting('machine_type', 'lulzbot_TAZ_6_Single_Tilapia')
+               profile.putMachineSetting('machine_name', 'LulzBot TAZ 6')
+
+class LulzbotTazSelectPage(InfoPage):
+       def __init__(self, parent):
+               super(LulzbotTazSelectPage, self).__init__(parent, _("LulzBot TAZ 4-5 Selection"))
+
+               self.panel = self.AddPanel()
+               image_size=(LulzbotMachineSelectPage.IMAGE_WIDTH, LulzbotMachineSelectPage.IMAGE_HEIGHT)
+               self.taz5 = self.AddImageButton(self.panel, 0, 0, _('Stock TAZ 5 (PEI && v2)'),
+                                                                               'Lulzbot_TAZ_5_Hex_and_PEI.jpg', image_size,
+                                                                               style=ImageButton.IB_GROUP)
+               self.taz5.OnSelected(self.OnTaz5Selected)
+               self.taz4 = self.AddImageButton(self.panel, 0, 1, _('Stock TAZ 4 (PET && v1)'),
+                                                                               'Lulzbot_TAZ_4_Buda_and_PET.jpg', image_size)
+               self.taz4.OnSelected(self.OnTaz4Selected)
+               self.modified = self.AddImageButton(self.panel, 1, 0, _('Modified LulzBot TAZ 4 or 5'),
+                                                                                       'Lulzbot_TAZ5.jpg', image_size)
+               self.modified.OnSelected(self.OnModifiedSelected)
+               self.taz5.SetValue(True)
+
+       def OnPageShown(self):
+               self.taz5.TriggerGroupCallbacks()
+
+       def OnTaz5Selected(self):
+               wx.wizard.WizardPageSimple.Chain(self, self.GetParent().lulzbotTaz5NozzleSelectPage)
+               wx.wizard.WizardPageSimple.Chain(self.GetParent().lulzbotTaz5NozzleSelectPage,
+                                                                                self.GetParent().lulzbotReadyPage)
+
+       def OnTaz4Selected(self):
+               wx.wizard.WizardPageSimple.Chain(self, self.GetParent().lulzbotReadyPage)
+
+       def OnModifiedSelected(self):
+               wx.wizard.WizardPageSimple.Chain(self, self.GetParent().lulzbotTazBedSelectPage)
+               wx.wizard.WizardPageSimple.Chain(self.GetParent().lulzbotTazBedSelectPage,
+                                                                                self.GetParent().lulzbotTazHotendPage)
+
+       def StoreData(self):
+               if self.taz5.GetValue():
+                       profile.putProfileSetting('nozzle_size',  '0.5')
+                       profile.putMachineSetting('extruder_amount', '1')
+                       profile.putMachineSetting('toolhead', 'Single Extruder V2')
+                       profile.putMachineSetting('toolhead_shortname', '')
+                       profile.putMachineSetting('machine_type', 'lulzbot_TAZ_5_SingleV2')
+                       profile.putMachineSetting('machine_name', 'LulzBot TAZ 5')
+               elif self.taz4.GetValue():
+                       profile.putProfileSetting('nozzle_size', '0.35')
+                       profile.putMachineSetting('extruder_amount', '1')
+                       profile.putMachineSetting('toolhead', 'Single Extruder V1')
+                       profile.putMachineSetting('toolhead_shortname', '')
+                       profile.putMachineSetting('machine_type', 'lulzbot_TAZ_4_SingleV1')
+                       profile.putMachineSetting('machine_name', 'LulzBot TAZ 4')
+
+class LulzbotTazBedSelectPage(InfoPage):
+       def __init__(self, parent):
+               super(LulzbotTazBedSelectPage, self).__init__(parent, _("Bed Surface"))
+
+               self.panel = self.AddPanel()
+               image_size=(LulzbotMachineSelectPage.IMAGE_WIDTH, LulzbotMachineSelectPage.IMAGE_HEIGHT)
+               self.pei = self.AddImageButton(self.panel, 0, 0, _('PEI'),
+                                                                          'Lulzbot_TAZ_PEI_Bed.jpg', image_size,
+                                                                          style=ImageButton.IB_GROUP)
+               self.pet = self.AddImageButton(self.panel, 0, 1, _('PET'),
+                                                                          'Lulzbot_TAZ_PET_Bed.jpg', image_size)
+               self.pei.SetValue(True)
 
-class LulzbotTazToolheadSelectPage(LulzbotToolheadSelectPage):
+       def StoreData(self):
+               if self.pei.GetValue():
+                       profile.putMachineSetting('machine_type', 'lulzbot_TAZ_5')
+                       profile.putMachineSetting('machine_name', 'LulzBot TAZ 5')
+               else:
+                       profile.putMachineSetting('machine_type', 'lulzbot_TAZ_4')
+                       profile.putMachineSetting('machine_name', 'LulzBot TAZ 4')
+
+
+class LulzbotTazToolheadSelectPage(InfoPage):
        def __init__(self, parent):
                super(LulzbotTazToolheadSelectPage, self).__init__(parent, _("LulzBot TAZ Tool Head Selection"))
 
@@ -1279,6 +1365,7 @@ class LulzbotTazToolheadSelectPage(LulzbotToolheadSelectPage):
                                wx.wizard.WizardPageSimple.Chain(self.GetParent().lulzbotTaz5NozzleSelectPage, self.GetParent().lulzbotFirmwarePage)
                        else:
                                wx.wizard.WizardPageSimple.Chain(self, self.GetParent().lulzbotFirmwarePage)
+               wx.wizard.WizardPageSimple.Chain(self.GetParent().lulzbotFirmwarePage, self.GetParent().lulzbotReadyPage)
 
        def OnSingleV2(self):
                wx.wizard.WizardPageSimple.Chain(self, self.GetParent().lulzbotTaz5NozzleSelectPage)
@@ -1323,9 +1410,9 @@ class LulzbotTazToolheadSelectPage(LulzbotToolheadSelectPage):
                        profile.putMachineSetting('machine_type', 'lulzbot_TAZ_%d_FlexyDuallyV%d' % version)
 
 
-class LulzbotHotendSelectPage(LulzbotToolheadSelectPage):
+class LulzbotHotendSelectPage(InfoPage):
        def __init__(self, parent, allowBack = True):
-               super(LulzbotHotendSelectPage, self).__init__(parent, _("LulzBot Tool Head Hotend Selection"))
+               super(LulzbotHotendSelectPage, self).__init__(parent, _("LulzBot Tool Head Hot end Selection"))
 
                self.allowBack = allowBack
                self.panel = self.AddPanel()
@@ -1333,7 +1420,7 @@ class LulzbotHotendSelectPage(LulzbotToolheadSelectPage):
                self.v1 = self.AddImageButton(self.panel, 0, 0, _('v1 (Budaschnozzle)'),
                                                                                        'Lulzbot_Toolhead_v1.jpg', image_size,
                                                                                        style=ImageButton.IB_GROUP)
-               self.v2 = self.AddImageButton(self.panel, 0, 1, _('v2 (Hexagon)'),
+               self.v2 = self.AddImageButton(self.panel, 0, 1, _('v2 (LulzBot Hexagon)'),
                                                                                        'Lulzbot_Toolhead_v2.jpg', image_size)
                self.v1.SetValue(True)
 
@@ -1343,20 +1430,20 @@ class LulzbotHotendSelectPage(LulzbotToolheadSelectPage):
        def StoreData(self):
                self.GetParent().lulzbotTazToolheadPage.SetVersion(1 if self.v1.GetValue() else 2)
 
-class LulzbotTaz5NozzleSelectPage(LulzbotToolheadSelectPage):
+class LulzbotTaz5NozzleSelectPage(InfoPage):
        url2='http://lulzbot.com/printer-identification'
 
        def __init__(self, parent):
-               super(LulzbotTaz5NozzleSelectPage, self).__init__(parent, _("LulzBot TAZ Single V2 Nozzle Selection"))
+               super(LulzbotTaz5NozzleSelectPage, self).__init__(parent, _("LulzBot TAZ Single v2 Nozzle Selection"))
 
-               self.AddText(_('Please select your Hexagon hotend\'s nozzle diameter:'))
+               self.AddText(_('Please select your LulzBot Hexagon Hot End\'s nozzle diameter:'))
                self.Nozzle35Radio = self.AddRadioButton("0.35 mm", style=wx.RB_GROUP)
                self.Nozzle35Radio.SetValue(True)
                self.Nozzle50Radio = self.AddRadioButton("0.5 mm")
                self.AddText(_(' '))
                self.AddSeperator()
 
-               self.AddText(_('If you are not sure which nozzle diameter you have'))
+               self.AddText(_('If you are not sure which nozzle diameter you have,'))
                self.AddText(_('please check this webpage: '))
                button = self.AddButton(LulzbotTaz5NozzleSelectPage.url2)
                button.Bind(wx.EVT_BUTTON, self.OnUrlClick)
@@ -1371,13 +1458,13 @@ class LulzbotTaz5NozzleSelectPage(LulzbotToolheadSelectPage):
                        taz_version = 5
                if self.Nozzle35Radio.GetValue():
                        profile.putProfileSetting('nozzle_size', '0.35')
-                       profile.putMachineSetting('toolhead', 'Single Extruder V2 (0.35mm nozzle)')
+                       profile.putMachineSetting('toolhead', 'Single Extruder v2 (0.35mm nozzle)')
                        profile.putMachineSetting('toolhead_shortname', '0.35 nozzle')
                        profile.putMachineSetting('machine_type', 'lulzbot_TAZ_%d_035nozzle' % taz_version)
 
                else:
                        profile.putProfileSetting('nozzle_size', '0.5')
-                       profile.putMachineSetting('toolhead', 'Single Extruder V2 (0.5mm nozzle)')
+                       profile.putMachineSetting('toolhead', 'Single Extruder v2 (0.5mm nozzle)')
                        profile.putMachineSetting('toolhead_shortname', '0.5 nozzle')
                        profile.putMachineSetting('machine_type', 'lulzbot_TAZ_%d_05nozzle' % taz_version)
 
@@ -1385,17 +1472,14 @@ class LulzbotFirmwareUpdatePage(InfoPage):
        def __init__(self, parent):
                super(LulzbotFirmwareUpdatePage, self).__init__(parent, _("LulzBot Firmware Update"))
 
-               self.AddBitmap(wx.Bitmap(resources.getPathForImage('Lulzbot_logo.png')))
-
-               self.AddText(_('Your LulzBot printer\'s firmware will now be updated.'))
+               self.AddText(_("Your LulzBot printer\'s firmware will now be updated.\n" +
+               "Note: this will overwrite your existing firmware."))
                self.AddSeperator()
-               self.AddText(_("Firmware is the \"brain\" inside your 3D printer.\n" +
-                                          "It controls motors/heaters, regulates temperature\n" +
-                                          "and ultimately makes your printer work."))
-               self.AddHiddenSeperator()
-               self.AddText(_("When changing tool heads it is neccesary to update the firmware.\n" +
-                                          "Please connect (with a USB cable) the printer you are currently configuring and power it on.\n" +
-                                          "Disconnecting all other 3D printers helps reduce confusion."))
+               self.AddText(_("Follow these steps to prevent writing firmware to the wrong device:\n" +
+                                          "    1) Unplug all USB devices from your computer\n" +
+                                          "    2) Plug your 3D Printer into the computer with a USB cable\n" +
+                                          "    3) Turn on your 3D Printer\n" +
+                                          "    4) Click \"Flash the firmware\""))
                self.AddHiddenSeperator()
                upgradeButton, skipUpgradeButton = self.AddDualButton(_('Flash the firmware'), _('Skip upgrade'))
                upgradeButton.Bind(wx.EVT_BUTTON, self.OnUpgradeClick)
@@ -1407,13 +1491,16 @@ class LulzbotFirmwareUpdatePage(InfoPage):
        def OnUpgradeClick(self, e):
                if firmwareInstall.InstallFirmware():
                        self.GetParent().FindWindowById(wx.ID_FORWARD).Enable()
+                       self.GetParent().ShowPage(self.GetNext())
 
        def OnSkipClick(self, e):
                dlg = wx.MessageDialog(self,
-                               _("WARNING: You risk serious damage to your printer by not updating the firmware. This is not a recommended course of action!\n\n" + 
-                                 "Are you sure you want to skip the firmware upgrade?"),
-                               _('Skip firmware upgrade?'),
-                               wx.YES_NO | wx.ICON_EXCLAMATION)
+                       _("CAUTION: Updating firmware is necessary when changing the\n" \
+                         "tool head on your LulzBot desktop 3D Printer." \
+                         "\n\n" +
+                         "Are you sure you want to skip the firmware update?"),
+                       _('Skip firmware update?'),
+                       wx.YES_NO | wx.ICON_EXCLAMATION)
                skip = dlg.ShowModal() == wx.ID_YES
                dlg.Destroy()
                if skip:
@@ -1422,7 +1509,7 @@ class LulzbotFirmwareUpdatePage(InfoPage):
 
 class LulzbotChangeToolheadWizard(wx.wizard.Wizard):
        def __init__(self):
-               super(LulzbotChangeToolheadWizard, self).__init__(None, -1, _("Change Lulzbot Tool Head Wizard"))
+               super(LulzbotChangeToolheadWizard, self).__init__(None, -1, _("Change LulzBot Tool Head Wizard"))
 
                self._nozzle_size = profile.getProfileSettingFloat('nozzle_size')
                self._machine_name = profile.getMachineSetting('machine_name')
@@ -1439,9 +1526,11 @@ class LulzbotChangeToolheadWizard(wx.wizard.Wizard):
                self.lulzbotTazToolheadPage = LulzbotTazToolheadSelectPage(self)
                self.lulzbotTazHotendPage = LulzbotHotendSelectPage(self, False)
                self.lulzbotTaz5NozzleSelectPage = LulzbotTaz5NozzleSelectPage(self)
+               self.lulzbotTazBedSelectPage = LulzbotTazBedSelectPage(self)
+               self.lulzbotTazSelectPage = LulzbotTazSelectPage(self)
+               self.lulzbotTaz6SelectPage = LulzbotTaz6SelectPage(self)
 
-               wx.wizard.WizardPageSimple.Chain(self.lulzbotMiniToolheadPage, self.lulzbotFirmwarePage)
-               wx.wizard.WizardPageSimple.Chain(self.lulzbotFirmwarePage, self.lulzbotReadyPage)
+               wx.wizard.WizardPageSimple.Chain(self.lulzbotMiniToolheadPage, self.lulzbotReadyPage)
                wx.wizard.WizardPageSimple.Chain(self.lulzbotTazHotendPage, self.lulzbotTazToolheadPage)
 
                if profile.getMachineSetting('machine_type').startswith('lulzbot_mini'):
@@ -1462,6 +1551,8 @@ class LulzbotChangeToolheadWizard(wx.wizard.Wizard):
                        self.FindWindowById(wx.ID_BACKWARD).Enable()
                else:
                        self.FindWindowById(wx.ID_BACKWARD).Disable()
+               if hasattr(e.GetPage(), 'OnPageShown'):
+                       e.GetPage().OnPageShown()
 
        def OnCancel(self, e):
                profile.putProfileSetting('nozzle_size', self._nozzle_size)
@@ -1502,10 +1593,11 @@ class ConfigWizard(wx.wizard.Wizard):
                self.lulzbotTazHotendPage = LulzbotHotendSelectPage(self)
                self.lulzbotTaz5NozzleSelectPage = LulzbotTaz5NozzleSelectPage(self)
                self.lulzbotMachineSelectPage = LulzbotMachineSelectPage(self)
+               self.lulzbotTazBedSelectPage = LulzbotTazBedSelectPage(self)
+               self.lulzbotTazSelectPage = LulzbotTazSelectPage(self)
 
                wx.wizard.WizardPageSimple.Chain(self.lulzbotMachineSelectPage, self.lulzbotMiniToolheadPage)
-               wx.wizard.WizardPageSimple.Chain(self.lulzbotMiniToolheadPage, self.lulzbotFirmwarePage)
-               wx.wizard.WizardPageSimple.Chain(self.lulzbotFirmwarePage, self.lulzbotReadyPage)
+               wx.wizard.WizardPageSimple.Chain(self.lulzbotMiniToolheadPage, self.lulzbotReadyPage)
                wx.wizard.WizardPageSimple.Chain(self.lulzbotTazHotendPage, self.lulzbotTazToolheadPage)
                wx.wizard.WizardPageSimple.Chain(self.machineSelectPage, self.ultimakerSelectParts)
                wx.wizard.WizardPageSimple.Chain(self.ultimakerSelectParts, self.ultimakerFirmwareUpgradePage)
@@ -1529,6 +1621,8 @@ class ConfigWizard(wx.wizard.Wizard):
                        self.FindWindowById(wx.ID_BACKWARD).Enable()
                else:
                        self.FindWindowById(wx.ID_BACKWARD).Disable()
+               if hasattr(e.GetPage(), 'OnPageShown'):
+                       e.GetPage().OnPageShown()
 
        def OnCancel(self, e):
                new_machine_index = int(profile.getPreferenceFloat('active_machine'))