Skip to content

Instantly share code, notes, and snippets.

@tcr
Last active August 19, 2016 10:54
Show Gist options
  • Save tcr/992978a5dbe5bff2e18f495c5c0973c3 to your computer and use it in GitHub Desktop.
Save tcr/992978a5dbe5bff2e18f495c5c0973c3 to your computer and use it in GitHub Desktop.
Fix for Tessel 2 on Windows

Update (August 2016)

Please take a look at these updated instructions on Github to troubleshoot issues you have with Windows and Tessel 2.

 


 

Older instructions (pre-August 2016)

A holdover fix for Tessel 2 drivers on Windows:

  1. Download and unzip the archive on this gist, t2-windows-fix.zip

  2. Open a Command Prompt in the newly unzipped folder using Run as administrator.

  3. Unplug Tessel 2 from your computer.

  4. Run node driver-clean.js.

  5. Hold down the reset button near the edge of Tessel 2 (by the antennas). Plug in Tessel 2. It will now be in DFU mode.

  6. Run node driver-install.js.

  7. Tessel will reboot and working Windows drivers will be loaded. In about 30s, run t2 list to see if this was successful.

Having run the above steps, your computer will have uninstalled the old Tessel 2 drivers. Tessel 2 is now flashed with firmware that works on Windows out of the box.

NOTE: A Tessel 2 with updated firmware can use t2 update as normal. You do not need to repeat the above steps on a new computer that has not been exposed to the old firmware.

@rwaldron
Copy link

rwaldron commented May 5, 2016

To enable the Windows 10 administrator account do the following:

  1. Tap on the Windows-key. ...
  2. Type cmd and wait for the results to be displayed.
  3. Right-click no the Command Prompt result and select "run as administrator" from the context menu.
  4. Run the command net user to display a list of all user accounts on the system.

Source

@rwaldron
Copy link

rwaldron commented May 5, 2016

1.Download and unzip the archive on this gist, t2-windows-fix.zip

Complete

2.Open a Command Prompt in the newly unzipped folder using Run as administrator.

Complete

3.Unplug Tessel 2 from your computer.

Complete

4.Run node driver-clean.js .

Complete

5.Hold down the reset button near the edge of Tessel 2 (by the antennas). Plug in Tessel 2. It will now be in DFU mode.

Complete

6.Run node driver-install.js .

C:\Users\Rick\Downloads\t2-windows-fix\t2-windows-fix>dfu-util-static.exe --list
dfu-util 0.8

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2014 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to dfu-util@lists.gnumonks.org

Cannot open DFU device 1209:7551

C:\Users\Rick\Downloads\t2-windows-fix\t2-windows-fix>node driver-install.js
note: make sure t2 is in dfu-util mode (hold down the reset button while plugging in)

Invalid DFU suffix signature
A valid DFU suffix will be required in a future dfu-util release!!!
No DFU capable USB device available
child_process.js:507
    throw err;
    ^

Error: Command failed: dfu-util-static.exe -a0 -d 1209:7551 -D firmware-winusb.bin
Invalid DFU suffix signature
A valid DFU suffix will be required in a future dfu-util release!!!
No DFU capable USB device available

    at checkExecSyncError (child_process.js:464:13)
    at execSync (child_process.js:504:13)
    at Object.<anonymous> (C:\Users\Rick\Downloads\t2-windows-fix\t2-windows-fix\driver-install.js:8:13)
    at Module._compile (module.js:435:26)
    at Object.Module._extensions..js (module.js:442:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:313:12)
    at Function.Module.runMain (module.js:467:10)
    at startup (node.js:136:18)
    at node.js:963:3

Tried again, went back to step 4:

C:\Users\Rick\Downloads\t2-windows-fix\t2-windows-fix>node driver-clean.js
devcon-x64.exe remove "@USB\VID_1209&PID_7551\0532FFS9DMD2VKD21MXYD2W9TS"
USB\VID_1209&PID_7551\0532FFS9DMD2VKD21MXYD2W9TS            : Removed
1 device(s) were removed.

t2 drivers have been uninstalled.

done. you can now run node driver-install.js with t2 in dfu mode.
(hold the reset button while plugging in t2 to enter this mode)

Still successful, that's good. Now, plugged t2 back in while holding button, then:

C:\Users\Rick\Downloads\t2-windows-fix\t2-windows-fix>node driver-install.js
note: make sure t2 is in dfu-util mode (hold down the reset button while plugging in)

Invalid DFU suffix signature
A valid DFU suffix will be required in a future dfu-util release!!!
No DFU capable USB device available
child_process.js:507
    throw err;
    ^

Error: Command failed: dfu-util-static.exe -a0 -d 1209:7551 -D firmware-winusb.bin
Invalid DFU suffix signature
A valid DFU suffix will be required in a future dfu-util release!!!
No DFU capable USB device available

    at checkExecSyncError (child_process.js:464:13)
    at execSync (child_process.js:504:13)
    at Object.<anonymous> (C:\Users\Rick\Downloads\t2-windows-fix\t2-windows-fix\driver-install.js:8:13)
    at Module._compile (module.js:435:26)
    at Object.Module._extensions..js (module.js:442:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:313:12)
    at Function.Module.runMain (module.js:467:10)
    at startup (node.js:136:18)
    at node.js:963:3

C:\Users\Rick\Downloads\t2-windows-fix\t2-windows-fix>dfu-util-static.exe --list
dfu-util 0.8

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2014 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to dfu-util@lists.gnumonks.org

@topiux
Copy link

topiux commented May 8, 2016

Same as rwaldron.

driver-clean.js runs without issues on Windows 7 x64.

$ node driver-clean.js
devcon-x64.exe remove "@USB\VID_1209&PID_7551\734GV4NQV4TGQZ2Y45MRVSWSWY"
USB\VID_1209&PID_7551\734GV4NQV4TGQZ2Y45MRVSWSWY            : Removed
1 device(s) were removed.

However, driver-install.js fails with "No DFU capable USB device available".


$ node driver-install.js
note: make sure t2 is in dfu-util mode (hold down the reset button while plugging in)

Invalid DFU suffix signature
A valid DFU suffix will be required in a future dfu-util release!!!
Cannot open DFU device 1209:7551
No DFU capable USB device available
child_process.js:507
    throw err;
    ^

Error: Command failed: dfu-util-static.exe -a0 -d 1209:7551 -D firmware-winusb.bin

I also tried repeating steps 3-6, to no avail.

Additionally, the automatic Windows driver install recognizes "Tessel DFU" but fails installing a driver.

image

@dudleyjosh
Copy link

dudleyjosh commented May 9, 2016

I just gave this a shot on a Windows 10 x64 machine (Surface Pro 2, it only has a single USB port) running Node 4.4.1 and it worked. I tried it on a Window 7 x64 machine running Node 4.4.0 and got the same issues as @rwaldron and @topiux.

@flaki
Copy link

flaki commented May 10, 2016

FWIW I've just tried this and it worked just fine, with Node 4.4.0 (Surface Pro 4, x64 Win 10, though I'm on an Insider build)

@shanselman
Copy link

Clean worked but I've got a "banged out" Tessel DFU in my Device Manager, and as such, "No DFU capable USB Device available." This is Windows 10 x64

@SQLScott
Copy link

Same as shanselman. I have tried with Node 4.4.1, 4.4.2, and 4.4.3. I have "No DFU capable USB Device available".

@Coder2012
Copy link

Windows 7 x64

$ node driver-install.js
note: make sure t2 is in dfu-util mode (hold down the reset button while plugging in)

Invalid DFU suffix signature
A valid DFU suffix will be required in a future dfu-util release!!!
Cannot open DFU device 1209:7551
No DFU capable USB device available
child_process.js:507
    throw err;
    ^

Error: Command failed: dfu-util-static.exe -a0 -d 1209:7551 -D firmware-winusb.b
in
Invalid DFU suffix signature
A valid DFU suffix will be required in a future dfu-util release!!!
Cannot open DFU device 1209:7551
No DFU capable USB device available

    at checkExecSyncError (child_process.js:464:13)
    at execSync (child_process.js:504:13)
    at Object.<anonymous> (E:\Users\nbrown\t2-windows-fix\driver-install.js:8:13)
    at Module._compile (module.js:409:26)
    at Object.Module._extensions..js (module.js:416:10)
    at Module.load (module.js:343:32)
    at Function.Module._load (module.js:300:12)
    at Function.Module.runMain (module.js:441:10)
    at startup (node.js:139:18)
    at node.js:968:3

@dcustodio
Copy link

same error with Win 10 Pro, node 4.4.4:

E:\t2-windows-fix\t2-windows-fix>node driver-install.js
note: make sure t2 is in dfu-util mode (hold down the reset button while plugging in)

Invalid DFU suffix signature
A valid DFU suffix will be required in a future dfu-util release!!!
Cannot open DFU device 1209:7551
No DFU capable USB device available
child_process.js:507
    throw err;
    ^

Error: Command failed: dfu-util-static.exe -a0 -d 1209:7551 -D firmware-winusb.bin
Invalid DFU suffix signature
A valid DFU suffix will be required in a future dfu-util release!!!
Cannot open DFU device 1209:7551
No DFU capable USB device available

    at checkExecSyncError (child_process.js:464:13)
    at execSync (child_process.js:504:13)
    at Object.<anonymous> (E:\t2-windows-fix\t2-windows-fix\driver-install.js:8:13)
    at Module._compile (module.js:409:26)
    at Object.Module._extensions..js (module.js:416:10)
    at Module.load (module.js:343:32)
    at Function.Module._load (module.js:300:12)
    at Function.Module.runMain (module.js:441:10)
    at startup (node.js:139:18)
    at node.js:968:3

@smrq
Copy link

smrq commented May 17, 2016

Cheers, worked for me. Cmd output in case it matters at all...

λ ver

Microsoft Windows [Version 10.0.10586]

λ node -v
v5.5.0

λ node driver-clean.js
devcon-x64.exe remove "@USB\VID_1209&PID_7551&MI_00\7&233A08B8&0&0000"
USB\VID_1209&PID_7551&MI_00\7&233A08B8&0&0000               : Removed
1 device(s) were removed.

devcon-x64.exe remove "@USB\VID_1209&PID_7551&MI_01\7&233A08B8&0&0001"
USB\VID_1209&PID_7551&MI_01\7&233A08B8&0&0001               : Removed
1 device(s) were removed.

devcon-x64.exe remove "@USB\VID_1209&PID_7551&MI_02\7&233A08B8&0&0002"
USB\VID_1209&PID_7551&MI_02\7&233A08B8&0&0002               : Removed
1 device(s) were removed.

devcon-x64.exe remove "@USB\VID_1209&PID_7551\HQKGTY679WC1X0ZZ6LLLWB5NMY"
USB\VID_1209&PID_7551\HQKGTY679WC1X0ZZ6LLLWB5NMY            : Removed
1 device(s) were removed.

t2 drivers have been uninstalled.

done. you can now run node driver-install.js with t2 in dfu mode.
(hold the reset button while plugging in t2 to enter this mode)

λ node driver-install.js
note: make sure t2 is in dfu-util mode (hold down the reset button while plugging in)

Invalid DFU suffix signature
A valid DFU suffix will be required in a future dfu-util release!!!
unable to read DFU status after completion
dfu-util 0.8

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2014 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to dfu-util@lists.gnumonks.org

Opening DFU capable USB device...
ID 1209:7551
Run-time device DFU version 0101
Claiming USB DFU Interface...
Setting Alternate Setting #0 ...
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 0101
Device returned transfer size 256
Copying data from PC to DFU device
Download        [=========================] 100%        14736 bytes
Download done.
state(7) = dfuMANIFEST, status(0) = No error condition is present


firmware flashing complete.

λ t2 list
INFO Searching for nearby Tessels...
        USB     Tessel-02A3069708B5

@wmmihaa
Copy link

wmmihaa commented May 26, 2016

I had the same problem as @shanselman but got it working after installing the driver using Zadig in DFU mode.

https://github.com/tessel/t2-cli/issues/742#issuecomment-220487881

@rlramirez77
Copy link

This process worked for me until I unplugged the Tessel 2; then when I plugged it back in a few days later, t2 list produced:

INFO Searching for nearby Tessels...
WARN Detected a Tessel that may be booting.

I repeated the same procedure as before, but no luck and I am back to square 1 on Windows 10 x64

@jandrieu
Copy link

Hi. Same problem. Windows 10 x64, Node v4.3.1.

Running the gist failed as @shanselman and @wmmihaa.
Adding the WinUSB driver for Tessel from DFU mode with Zadig helped (Thanks @wmmihaa!)

However, then I got the following error running t2 list:

Submit Crash Report to help Tessel Developers improve the CLI ?
    If yes(y), subsequent crashes will be submitted automatically. Yes
ERR! Error writing preference crash.reporter.prompt false
ERR! Detected CLI crash { [Error: ENOENT: no such file or directory, open 'C:\Users\Joe\.tessel\preferences.json']
ERR!   errno: -4058,
ERR!   code: 'ENOENT',
ERR!   syscall: 'open',
ERR!   path: 'C:\\Users\\Joe\\.tessel\\preferences.json' } Error: ENOENT: no such file or directory, open 'C:\Users\Joe\.tessel\preferences.json'
ERR!     at Error (native)
undefined
Submit Crash Report to help Tessel Developers improve the CLI ?
-   If yes(y), subsequent crashes will be submitted automatically. (Y/n) n|

WARN No Tessels Found.
Terminate batch job (Y/N)? y

Fortunately, all I needed to do was to create that .tessel directory.

C:\Users\Joe\Documents\Software\Tessel>t2 list
INFO Searching for nearby Tessels...
        USB     Tessel-02A37EC8C33C

Then it worked.

@jandrieu
Copy link

@rlramirez, are you waiting for the blue LED to stabilize? It's about a 30s boot.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment