Page MenuHomeAleph Objects Inc

Missing Rambo Driver
Closed, ResolvedPublic

Description

Cura LE Version: N/A but tried on both 3.6.3 and one of the 3.2's

Operating System: Windows 8 & 8.1

Printer: LulzBot Mini (Gladiola)

Tool Head: N/A

Description of issue: Upon opening cura the connect, disconnect, and console buttons were not illuminated/clickable. I tried clearing my cache, changing usb ports, turning off and on the printer with no luck. After doing some digging I found that Windows was not connecting to the rambo because it didn't have a driver. I tried "Automatically searching for drivers" with no luck. There was no documentation on the LulzBot website but I was finally able to resolve by downloading drivers from the ultimachine website.

Steps to reproduce:

Upload cura-lulzbot.log (attachment)

Event Timeline

Does TSR see this issue? @TyTh

TyTh added a comment.Mon, Feb 25, 12:17 PM

@jebba
We have seen this before. The button to automatically download the drivers can sometimes be unclicked so no drivers are downloaded.
We do have a guide on installing them here: https://ohai.lulzbot.com/project/windows-drivers/maintenance-repairs/

@eBeardslee Did you unclick it so it didn't download? I don't fully understand how drivers work in the windows world, and we're trying to figure this out for FSF RYF certification too.

That OHAI documentation is so old it talks about the AO-101!

The link to Ultimachine's driver (?) is from the TAZ 3.1 repository. The contents of the ZIP are a text file and a signing certificate. It doesn't contain executable code or drivers.

The text file in the Ultimachine zip:

; Copyright 2013 UltiMachine

[Strings]
DriverPackageDisplayName="3D Printer (RAMBo)"
ManufacturerName="UltiMachine"
ServiceName="USB RS-232 Emulation Driver"
rambo.name="3D Printer powered by RAMBo"

[DefaultInstall]
CopyINF=rambo.inf

[Version]
Class=Ports
ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}
Signature="$Windows NT$"
Provider=%ManufacturerName%
DriverPackageDisplayName=%DriverPackageDisplayName%
CatalogFile=rambo.cat
DriverVer=02/13/2013,1.0.0.0

[Manufacturer]
%ManufacturerName%=DeviceList, NTamd64, NTia64

[DestinationDirs]
FakeModemCopyFileSection=12
DefaultDestDir=12

[DeviceList]
%rambo.name%=DriverInstall, USB\VID_27B1&PID_0001

[DeviceList.NTamd64]
%rambo.name%=DriverInstall, USB\VID_27B1&PID_0001

[DeviceList.NTia64]
%rambo.name%=DriverInstall, USB\VID_27B1&PID_0001

[DriverInstall]
include=mdmcpq.inf,usb.inf
CopyFiles = FakeModemCopyFileSection
AddReg=DriverAddReg

[DriverAddReg]
HKR,,DevLoader,,*ntkern 
HKR,,NTMPDriver,,usbser.sys 
HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"

[DriverInstall.Services]
include=mdmcpq.inf
AddService=usbser, 0x00000002, DriverService

[DriverService]
DisplayName=%ServiceName%
ServiceType=1
StartType=3
ErrorControl=1
ServiceBinary=%12%\usbser.sys
LoadOrderGroup=Base
TyTh added a comment.Mon, Feb 25, 12:36 PM

It is fairly old but we find it still works for users. I'm not sure exactly how drivers work but it does the job.

The other file included, which looks like a signature file to me, is referenced in the text file as:

CatalogFile=rambo.cat

The rambo.cat file looks like an Ultimachine certificate issued by Thawte.

Thawte Code Signing CA

I think this certificate isn't needed to use the driver, but without it Windows may complain it isn't signed. Does anyone know more about how this works in winbloz that can explain it?

I proceeded through the install wizard with all default settings so I did not uncheck anything. Once completed, Cura was stuck on "No printers connected" with no option to connect. I was able to see that there was no driver for the printer under the windows device manager. When searching for solutions, I did find our ohai but the driver looked to be pretty old since it mentioned the AO's and kittaz so I eventually when straight to the ultimachine website. I was able to figure it out but to someone unfamiliar with our printers and the electronics inside this might be a long path to discovering a solution.

@TyTh How often are you needing to point people to manual install directions for the RAMBo driver on windows?

TyTh added a comment.Mon, Feb 25, 12:45 PM

@karrad
Maybe about once a week, it isn't super common but it isn't exactly rare

@TyTh Do you know what version of windows they are running? Like is it everyone on version 8? Can this happen on all versions? In sum, why does this happen to some users, but not others?

TyTh added a comment.Mon, Feb 25, 12:49 PM

@jebba We do not usually check the windows version as it doesn't seem to make a difference.
I don't have a windows machine I can test on but I just installed Cura personally on Friday and know about the checkbox. I think people just accidentally unclick it.

For me, I do recall one of the three options being grayed out on one of my computers, almost like it was indicating I was unable to change it. However, I am relatively certain I did not accidentally uncheck a box during setup on both my computers.

jebba added a comment.Mon, Feb 25, 1:11 PM

If we get a call once a week about this, we should really improve the docs... It should be updated so it doesn't appear to be from the stone age. Also, it shouldn't have to be referenced at all, as this should appear in the main docs or somewhere.

jebba added a comment.Mon, Feb 25, 1:12 PM

We should also drill down and figure out why this happens to some users and not others. I'd be surprised if it was identical for all versions of Windows. Can you see if in the TSR mail archive if in any of these tickets people mention their OS version?

jebba added a comment.Mon, Feb 25, 1:20 PM

I searched the helpdesk for this and got 2 hits, both in from 2017:

https://ohai.lulzbot.com/project/windows-drivers/maintenance-repairs/

I searched the helpdesk for this and got 32 hits. 6 in 2016, 5 in 2017, 19 in 2018, and 2 in 2019.

https://download.lulzbot.com/TAZ/3.1/software/current/drivers/windows/RAMBo_USBdriver.zip

The helpdesk archive goes back to 2013.

jebba added a comment.Mon, Feb 25, 1:59 PM

Going thru the helpdesk tickets, I see this:

OS Version:

1 Mac
5 Windows 7
8 Windows 10
1 Ubuntu
13 Unknown
1 Other Issue

Cura Version:
1 15.02.1-1.03
1 17.10
1 19
1 20.02-104c0 (suggested upgrading to this to fix issue, but didn't work)
1 21.03
3 21.08
1 2.6.66
1 2.6.69
1 3.2
1 3.2.19
1 3.2.21
1 3.2.27
3 3.2.32 (in one case 3.2.32 failed, but 21.08 worked)
1 Simplify3D
8 Unknown
1 Other Issue

Printer:

9 Mini
1 TAZ (unknown version)
3 TAZ 5
13 TAZ 6
5 Unknown
1 Other Issue

For "Other Issue", the customer wasn't really having an issue with their printer, they were doing arduino hacking and we pointed them to that. Note, in one case, it was working for the user under Windows, but not Ubuntu. On one, the Windows 7 was working, but Windows 10 wasn't. A couple cases looked like they had the wrong firmware on the printer.

Who is best to figure this out on Windows? ICS? @victor_larchenko ?

karrad added a subscriber: Yahuba.Mon, Feb 25, 2:17 PM

@jebba It would be best for @Yahuba to test on the various Windows builds after manually un-installing the RAMBo driver.

It looks like we are currently testing windows 7 and 10 during the smoke tests: https://code.alephobjects.com/w/cura-lulzbot/test_documents/smoke_test/

jebba added a comment.Mon, Feb 25, 2:23 PM

The only Windows versions that came up in the helpdesk tickets were Windows 7 and Windows 10. Is that all pretty much people run nowadays? No Vista, XP, NT, or whatever else? Did the other ones not come up because no one uses them, or they work by default?

Pretty much all anyone runs now adays. There was a 2 year period where windows was offering free upgrades to 10 from Windows 7 and Windows 8, as windows 8 was such a disaster. I am not 100% sure, but I haven't heard of Vista or any of the others in a quite a while.

@TyTh Any legacy windows users coming through HD or pretty much 7/10?

jebba added a comment.Mon, Feb 25, 2:36 PM

From what I understand now, it looks like users can download the whole arduino package, just to get the drivers or they can get a copy from Ultimachine (either our servers or theirs). The Ultimachine file we distribute, doesn't actually contain any binaries or executables. It just has a config file and a certificate signed by Ultimachine using Thawte as a Certificate Authority (CA).

The config file has this section, which is where it tells it which drivers are needed:

[DriverInstall]
include=mdmcpq.inf,usb.inf
CopyFiles = FakeModemCopyFileSection
AddReg=DriverAddReg

So it tells it to install two drivers: mdmcpq and USB, which are part of the main OS. It is basically telling it that this "RAMBo" device needs the operating system drivers: USB and mdmcpq. Both of those drivers are built into Windows, no external files are needed. The USB one is obviously USB, which is in Windows. The mdmcpq is the serial driver, which is built into Windows, afaict.

From ms doc (danger, MS link!):

https://docs.microsoft.com/en-us/windows-hardware/drivers/usbcon/usb-driver-installation-based-on-compatible-ids
https://docs.microsoft.com/en-us/windows-hardware/drivers/usbcon/supported-usb-classes

In Windows 8.1 and earlier versions, Usbser.sys is not automatically loaded. To load the driver, you need to write an INF that references the modem INF (mdmcpq.inf) and includes [Install] and [Needs] sections.

Our printer in Windows appears as a modem, is another way to look at it. The same is true under the Linux kernel. In Windows, this driver is included in the main OS. So we don't need to have users install external drivers, or download files from Arduino, use dpinst* or anything like that. They just need those two files, neither of which is non-free software.

jebba added a comment.Mon, Feb 25, 2:45 PM

It may be good to ping Ultimachine as well, to see what they know.

@jebba @karrad dpinst can be replaced with

rundll32.exe setupapi,InstallHinfSection

function, which is a part of a system. So we can easily include only rambo driver to cura installer.

alexei triaged this task as Normal priority.Thu, Mar 7, 12:02 PM
alexei changed the edit policy from "Custom Policy" to "Cura LulzBot Edition (Project)".
alexei added a subscriber: alexei.Fri, Mar 8, 10:27 AM

@victor_larchenko ,
I've merged these commits to master so that @Yahuba can test them.

I just installed CuraLE 3.6.5 from 2019-03-11 08:50 154M
When I connected the printer, I got a Windows message that drivers for this device needed to be installed followed by another Windows message moments later that a driver for the device could not be found. The connect button in Cura was disabled. I also attempted to flash FW but got a message that FW can not be flashed because there as no printer connected (printer was connected and turned on).

@alexei @Yahuba Looks like installer script is not used since cura1, that means vcredist is not installed too. Now install command for drivers should be executed.

I retested on Windows 10 machine that had been wiped and reset using CuraLE 3.6.5 - 3.6.5 2019-03-13 06:00 154M
The good news: I was able to successfully connect to the printer, send move commands, pre-heat bed and extruder.
The bad news: I kept getting a connection closed message a few minutes after attempting to start a print. I also noticed that when the screen went into screenlock mode, the connection was closed as well. I dont know if the screen going into lock triggered it. Even while keeping screen active, I was still losing connection to the printer.
Log is attached:

Also tested on our Windows 7 system. Same results as Win 10 except In this case, we started to get the connection loss right as I attempted to pre-heat nozzle.

alexei closed this task as Resolved.Thu, Mar 14, 9:02 AM

@Yahuba ,

Good, closing this one as resolved then. The issue that you see is different:

2019-03-14 10:19:36,201 - ERROR - [(9004)-MainThread] USBPrinting.USBPrinterOutputDevice._log [54]: Unexpected error while accessing serial port. cannot use a bytes pattern on a string-like object

which is most probably related to merge of T5688