ThinkPad Bluetooth 4.0 on Windows 10 version 1607

Windows 10 Anniversary Update

It cause a lot of trouble. A lot of apps hangs on copy&paste operation or just hangs without reason.

After update Win 10 to 1607, bluetooth on Thinkpad T430 stopped working. It shows connected devices but it does not work.

ThinkPad Bluetooth 4.0
Broadcom BCM20702A0 Bluetooth
Broadcom BCM20702 Bluetooth 4.0 USB Adapter
USB\VID_0A5C&PID_21E6&REV_0112
USB\VID_0A5C&PID_21E6
Drivers version 12.0.1.940 16.02.2016 (dd.mm.yyyy)

The solution is reinstall drivers.

  • First you have to remove all current drivers. In programs and functions uninstall ThinkPad Bluetooth with Enhanced Data Rate Software or any other Bluetooth software.
  • In device manager you have to remove all bluetooth devices (right click on it -> uninstall and check box to remove software)
    Thinkpad Bluetooth Broadcom
  • Download Broadcom Bluetooth drivers for Windows 10:
    https://www.broadcom.com/support/bluetooth
    BTW_12.0.1.940_win8_10_x64.zip
    http://www.mediafire.com/download/eyc7bxhxddaagdn/BTW_12.0.1.940_win8_10_x64.zip
    or
    BTW_12.0.1.940_win8_10_x86.zip
    http://www.mediafire.com/download/y7xlx1pncr3vttj/BTW_12.0.1.940_win8_10_x86.zip
  • Run Setup.exe and install software. Bluetooth will work only if you got a finish message:
    Broadcom Bluetooth drirvers installation
  • Reboot computer.
  • If it won’t help you can install manually drivers.

Lenovo and Ericsson H5321gw, C5621gw and N5321gw on Windows 10

One more time i will describe, step by step how to make it work on windows 10. (GPS and 3G)

Download Section:

  1. Ericsson Firmware R4D02 for (H5321gw, C5621gw, N5321gw): grwq13ww.exe
    from lenovo:
    http://support.lenovo.com/pl/en/products/laptops-and-netbooks/thinkpad-t-series-laptops/thinkpad-t430/downloads/DS039685
    mirror for R8AX01_CXP9018817_1_mupdater.exe:
    http://www.mediafire.com/download/p2wj8493carl5wb/R8AX01_CXP9018817_1_mupdater.zip
    R8AX01_CXP9018817_1_mupdater
    readme:
    Readme (Application Firmware R4D02, Protocol Firmware R3C11 )
  2. Drivers for Windows 10 Mobile Broadband Driver Version 8.2.5.0: grwp05ww.exe. These drivers will not install GPS COM port!
    lenovo:
    http://support.lenovo.com/pl/en/products/laptops-and-netbooks/thinkpad-t-series-laptops/thinkpad-t430/downloads/DS103819

    mirror:
    http://www.mediafire.com/download/u96d6449ii1ln7f/MBM_ln_v8.2.5.zip
    Mobile Broadband Drivers v8.2.5

  3. ThinkVantage GPS Version 2.81 from Windows 7:
    lenovo:
    http://support.lenovo.com/pl/en/products/laptops-and-netbooks/thinkpad-t-series-laptops/thinkpad-t430/downloads/ds015017
    mirror:
    http://www.mediafire.com/download/95kbcku9be7773k/ThinkVantage-GPS-2.81.zip

    Readme Think Vantage GPS

  4. Ericsson H5321gw/F5521gw Mobile Broadband Driver for Windows 7: g1wo11ww.exe
    Version 7.2.5, 7.2.5.0, 7.2.0.1
    lenovo:
    http://support.lenovo.com/pl/en/products/laptops-and-netbooks/thinkpad-t-series-laptops/thinkpad-t430/downloads/DS029034

    mirror:
    Mobile Broadband Drivers Ericsson AB 7.2.5.4 (installer)

How to enable GPS COM port on windows 10?

Tutorial tested for H5321gw. You have install all these soft above:

  1. First you have to upgrade firmware to R4D02 (install win 7 on separate partition and update FW for modem) then run Win 10.
  2. Install drivers: Mobile Broadband Driver Version 8.2.5.0: grwp05ww.exe
  3. Install ThinkVantage GPS Version 2.81 from Windows 7
  4. Run TvGpsApp.exe from:
    C:\Program Files (x86)\Lenovo\GPS Enabler if it will show this error:
    The GPS NMEA COM port is not available.
    thinkvantage gps nmea com port error
    go to next step.
  5. Uninstall 8.2.5 drivers with uninstaller
  6. Install 7.2.4 drivers. Yhe installer will install wmcore service that will allow run GPS.
  7. TIP: Select from disk and choose wwanuss.inf. Windows will search for correct device in other inf files.

    Manual install driver 7.2.4 for H5321 gw Mobile Broadband Device
    device in Device manager -> Universal Serial Bus TAB
    device manager gps lenovo thinkpad

  8. Install drivers 7.2.x for 3 new devices:
    • H5321 gw Mobile Broadband Device Management
    • H5321 gw Mobile Broadband GPS Port
    • H5321 gw Mobile Broadband Network Adapter
  9. Run again TvGpsApp.exe from:
    C:\Program Files (x86)\Lenovo\GPS Enabler\TvGpsApp.exe
    then click start, go outside and wait few minutes to get fix:
    thinkvantage-gps-fix-3d-start

I have no idea what’s wrong with 8.2.5 drivers, only 7.2.5 works correct with GPS on port COM.

Some GPS apps wil recognize only COM1 to COM4 so you have change it manually in device manager to port from this range. (do not forget run ThinkVantage GPS)

Lenovo T430 Bluetooth MAP SMS/MMS Driver

After fresh install Windows 10 on Lenovo T430 there is still unknown device after installing all drivers from Lenovo support page.

Other device: MAP SMS/MMS

Device name: Bluetooth Message Access
BTHENUM\{00001132-0000-1000-8000-00805F9B34FB}_LOCALMFG&000F\8&35EBEE24&0&88708CCF5DDB_C00000000
BTHENUM\{00001132-0000-1000-8000-00805f9b34fb}_LOCALMFG&000f

Driver file names: btwavdt.inf, btwavdt.sys, btwavdt.cat

I’ve got this drivers from PackardBell: Bluetooth_Broadcom_6.4.0.901_W7x64_A.zip. You have to install it manually in device manager.

Extracted drivers: Bluetooth Message Access MAP SMS MMS DRIVER
http://www.mediafire.com/download/bgbsm4uo72d1ajg/Bluetooth_Broadcom_6.4.0.901_W7x64_A.zip

Original drivers: http://global-download.packardbell.com/GDFiles/Driver/Bluetooth/Bluetooth_Broadcom_6.4.0.901_W7x64_A.zip?acerid=634310122415718335&Step1=Notebook&Step2=EasyNote&Step3=EN%20LS11HR&OS=731&LC=en&BC=Packard%20Bell&SC=PA_7&hardware_id=BTHENUM\{0000110E-0000-1000-8000-00805F9B34FB}_LOCALMFG&000F&driver_inf_file_id=475596&scanid=6B54F4568DD7486581649EA72CE7CCB2
http://www.mediafire.com/download/bgbsm4uo72d1ajg/Bluetooth_Broadcom_6.4.0.901_W7x64_A.zip

ASUS RT-AC66U CFE and DD-WRT on H/W version B0

When you try to flash DD-WRT on Asus AC66U you will stuck on ASUS Recovery Page. DD-WRT won’t work because ASUS will close their hardware to third party software.

If your router is in recovery page just flash original TRX firmware file.

ASUS MIPS Broadcom routers have something like bootloader called CFE. It contains built-in configuration like MAC addresses, interfaces configs etc.

DD-WRT won’t boot on new CFE: 1.0.2.0 (EU) so I downgrade CFE to 1.0.1.6 (EU). Be carefull, you can brick your router.

Resources

  • HEX editor, on windows you can use HxD: https://mh-nexus.de/en/hxd/
  • Pendrive (FAT32 file system)
  • PuTTY for telnet connection: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
  • CFE collection for AC66U: http://www.mediafire.com/download/h3v61arkqaqg6zg/CFE-AC66U.zip
  • CFE collection for other ASUS routers: http://www.mediafire.com/download/yoxw8f2xt9j87ca/CFE_AIO.zip
  • MTD-WRITE ARM: http://www.mediafire.com/download/q2dbo6ngwpdn87q/mtd-write-arm.zip

CFE source: http://www.snbforums.com/threads/asus-routers-cfe-dumps-collection.17793/

Before you start you have to read this warning and check which version do you have:
cfe ac66u warning hw version

Check information and prepare

You have to check current H/W version, bl version (CFE) and memory manufacturer.

  • Activate Telnet access in webpanel: [Advanced Settings] -> [Administration] -> [System] -> Enable Telnet – check Yes -> Click [Apply]
  • Run putty and set telnet to 192.168.1.1, click Open: telnet asus
  • Run command to check bl version:
    nvram get bl_version
  • Run command and read part output to check memory chip vendor (work only on ASUS WRT):
    dmesg | grep -e "flash" -e "nand" -e "amd" /tmp/syslog.log
    output:

    Found a Zentel NAND flash with 2048B pages or 128KB blocks; total size 128MB

  • Connect pendrive and make current CFE backup. Check the correct path to pendrive:
    ls /tmp/mnt/
    cd /tmp/mnt/sda/
  • Make a backup:
    cat /dev/mtd0 > /tmp/mnt/sda/original_cfe.bin
    dd if=/dev/mtd0 of=/tmp/mnt/sda/original_cfe1.bin
  • Umount pendrive in webpanel (USB icon right-top corner).
  • Connect pendrive to computer, copy files (original_cfe.bin and original_cfe1.bin) to safe place. Open one file in HxD – hex editor and search hw_version
  • Read and copy three MAC addresses in hex editor, these variables:
    et0macaddr=
    pci/1/1/macaddr=
    pci/2/1/macaddr=
  • Read H/W version from the box of router

Information about my router.

ASUS RT-AC66U:
H/W Version: B0 hw_version=1.5
CFE: 1.0.2.0 bl_version=1.0.2.0
EU version

I decided to downgrade to 1.0.1.6 (EU).

Prepare CFE and flash it

  • Copy MTD-WRITE v3 to penrive
  • Open chosen CFE version [1.0.1.6 (EU)] in hex editor:
    asus cfe
  • Replace three mac addresses with correct which was red before.

    et0macaddr=XX:XX:XX:XX:XX:XX
    pci/1/1/macaddr=XX:XX:XX:XX:XX:XX
    pci/2/1/macaddr=XX:XX:XX:XX:XX:XX

    asus cfe mac address
    Be careful at the beginning and at the end there is 00 (null) in visible part is a dot, do not remove or replace it.

  • Save modified file as new_cfe.bin on pendrive.
  • Make sure you want do this.
  • Connect pendrive to router and flash CFE with putty:
    cd /tmp/mnt/sdb/
    chmod +x mtd-write
  • Flash CFE
    mtd-write -i new_cfe.bin -d pmon
    mtd-erase -d nvram
    reboot
  • Skip wizard, activate telnet and check with putty CFE version:
    nvram get bl_version
  • Done. You can flash any DD-WRT Version.

Rescue from Marshall London HS-USB Diagnostics 9006 mode

After flashing Lenovo S60 from 4.4.4 to 5.0.2 (or 5.0.1) i ove got weird mode: Marshall London HS-USB Diagnostics 9006 and a lot of removable media.

In this mode you can access directly eMMC memory in phone. Use EMMC RAW TOOL to backup (read) all partitions!!!

Easy way: flash with MiFlash

Download and install: MiPhone 2.11.6 (MiFlash). (yes, just use miflash to flash lenovo)
http://www.mediafire.com/download/x3feqw4lmsk5s3a/MiFlash-MiPhone-2.11.6.zip
Run MiFlash choose Advanced:
miflash flash
and browse for all correct files:
miphone miflash flash
Then click ok and in the main windows flash and wait.

qualcomm-mmc-storage-usb-device

Another way: eMMC memory

http://www.mediafire.com/download/9e3lsu3hq83a5iy/EMMCRAW_1.4.0.0.zip
You can just read and write eMMC memory in this mode. I will use eMMC RAW Tool 1.4.0.0 (source: http://4pda.ru/forum/index.php?showtopic=655617 ).

Backup IMEI
In this mode you can backup all partition. You should do that first! Click Read Selected Partitions. First Select gpt_main0.bin file.

Write partitions images:

  1. First do the read partitions!!!! Browse > Select gpt_main0.bin file > Click Load partition structure then read.
  2. Load GPT partition table. In write column Browse > Select gpt_main0.bin file > Click Load partition structure > Make sure in presets is MBR-GPT-OTHER > Click Write selected partitions:
    emmc raw tool partition structure
  3. Do the same with partitions image what you have. Choose preset, browse for correct file and click write selected partitions. Do not make a mistake (wrong preset with wrong image file).

    You can check correct files in rawprogram0.xml:
    filename="NON-HLOS.bin" label="modem"

    1. MBR-GPT-OTHER – gpt_main0.bin
    2. MODEM – NON-HLOS.bin
    3. SBL1 and SBL1BAK – sbl1.mbn and sbl1.mbn_sbl1bak

    Do not flash these, only do a BACKUP (read):
    There is a IMEI and other important settings!

    • fsc
    • ssd
    • DDR
    • sec
    • mrd
    • pad
    • modemst1
    • modemst2
    • fsg
    • persist
    • misc
    • config
    • keystore
    • oem
  4. After correctly writing images you can reset phone by pressing Power button for 10-30 seconds.
  5. Do the factory reset in recovery menu. (without it phone will stuck in boot, just press Vol+ and Vol- and pwr buutton, choose english and fuse wipe data, cache or choose power off and press vol- and connect usb cable, choose factory default)
  6. Flash again the same ROM which cause trouble, it should work now!

USBASP V2.0 – warning: cannot set sck period

Cheap USBASP programmer which you china buy on ebay, ali and others. Official project WebPage: http://www.fischl.de/usbasp/

usbasp-v2.0-board-pinout

  • JP1 – Supply Target – Choose between 5V and 3.3V.
  • JP2 – Self Program – jumper on for self program, normally free
  • JP3 – Slow SCK – Jumper on only if the target clock is lower than 1.5 MHz.
  • LED R – Programmer communicating with target device
  • LED G – Power on
  • IDC pinout:
    usbasp-v2.0-idc-pinout

I will write how to solve:

avrdude: warning: cannot set sck period. please check for usbasp firmware update

You have to flash a new firmware version: usbasp.2011-05-28. Precompiled bin to flash is in \bin\firmware\ directory.

I’ve got USBASP with Atmega8 so I will use usbasp.atmega8.2011-05-28.hex and Arduino UNO R3 as ISP to flash it.

  1. First open ArduinoISP example in Arduino IDE 1.6.8 and upload the sketch (CTRL+U). Disconnect Arduino.
  2. Connect arduino to usb asp directly (without any adapter only cables) as follows:
    Arduino<->USBASP
    10<------>5 (RESET)
    11<------>1 (MOSI)
    12<------>9 (MISO)
    13<------>7 (SCK)
    5V<------>2 (VCC +5V)
    GND<----->10 (GROUND)
  3. Set jumper on JP2 (you can solder goldpins).
  4. Set power jumper for 5V (JP1)
  5. Connect only Arduino to USB and check which port com it use. You must not connect usbasp to usb!
  6. Download AVRDUDE avrdude-6.3-mingw32.zip: http://download.savannah.gnu.org/releases/avrdude/
  7. Copy correct hex file to avrdude.exe file directory.
  8. Check the connection with command:
    avrdude -c avrisp -P COMX -b 19200 -p ATmega8 -v

    avrdude: Version 6.3, compiled on Feb 17 2016 at 09:25:53
    Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
    Copyright (c) 2007-2014 Joerg Wunsch

    System wide configuration file is „C:\WinAVR-20100110\bin\avrdude.conf”

    Using Port : COM4
    Using Programmer : avrisp
    Overriding Baud Rate : 19200
    AVR Part : ATmega8
    Chip Erase delay : 10000 us
    PAGEL : PD7
    BS2 : PC2
    RESET disposition : dedicated
    RETRY pulse : SCK
    serial program mode : yes
    parallel program mode : yes
    Timeout : 200
    StabDelay : 100
    CmdexeDelay : 25
    SyncLoops : 32
    ByteDelay : 0
    PollIndex : 3
    PollValue : 0x53
    Memory Detail :

    Block Poll Page Polled
    Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
    ———– —- —– —– —- —— —— —- —— —– —– ———
    eeprom 4 20 128 0 no 512 4 0 9000 9000 0xff 0xff
    flash 33 10 64 0 yes 8192 64 128 4500 4500 0xff 0x00
    lfuse 0 0 0 0 no 1 0 0 2000 2000 0x00 0x00
    hfuse 0 0 0 0 no 1 0 0 2000 2000 0x00 0x00
    lock 0 0 0 0 no 1 0 0 2000 2000 0x00 0x00
    calibration 0 0 0 0 no 4 0 0 0 0 0x00 0x00
    signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00

    Programmer Type : STK500
    Description : Atmel AVR ISP
    Hardware Version: 2
    Firmware Version: 1.18
    Topcard : Unknown
    Vtarget : 0.0 V
    Varef : 0.0 V
    Oscillator : Off
    SCK period : 0.1 us

    avrdude: AVR device initialized and ready to accept instructions

    Reading | ################################################## | 100% 0.04s

    avrdude: Device signature = 0x1e9307 (probably m8)
    avrdude: safemode: hfuse reads as D9

    avrdude: safemode: hfuse reads as D9
    avrdude: safemode: Fuses OK (E:FF, H:D9, L:9F)

    avrdude done. Thank you.

    replace COMX with correct com port for arduino.

  9. Set the fuses like on Readme file:

    # TARGET=atmega8 HFUSE=0xc9 LFUSE=0xef
    # TARGET=atmega48 HFUSE=0xdd LFUSE=0xff
    # TARGET=atmega88 HFUSE=0xdd LFUSE=0xff

    with command:

    avrdude -c avrisp -P COM3 -b 19200 -p ATmega8 -v -e -u -U hfuse:w:0xC9:m -U lfuse:w:0xEF:m
  10. If it recognize the M8 you can flash it:
    avrdude -c avrisp -P COMx -b 19200 -p ATmega8 -v -U flash:w:usbasp.atmega8.2011-05-28.hex

    avrdude: Version 6.3, compiled on Feb 17 2016 at 09:25:53
    Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
    Copyright (c) 2007-2014 Joerg Wunsch

    System wide configuration file is „C:\WinAVR-20100110\bin\avrdude.conf”

    Using Port : COM4
    Using Programmer : avrisp
    Overriding Baud Rate : 19200
    AVR Part : ATmega8
    Chip Erase delay : 10000 us
    PAGEL : PD7
    BS2 : PC2
    RESET disposition : dedicated
    RETRY pulse : SCK
    serial program mode : yes
    parallel program mode : yes
    Timeout : 200
    StabDelay : 100
    CmdexeDelay : 25
    SyncLoops : 32
    ByteDelay : 0
    PollIndex : 3
    PollValue : 0x53
    Memory Detail :

    Block Poll Page Polled
    Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
    ———– —- —– —– —- —— —— —- —— —– —– ———
    eeprom 4 20 128 0 no 512 4 0 9000 9000 0xff 0xff
    flash 33 10 64 0 yes 8192 64 128 4500 4500 0xff 0x00
    lfuse 0 0 0 0 no 1 0 0 2000 2000 0x00 0x00
    hfuse 0 0 0 0 no 1 0 0 2000 2000 0x00 0x00
    lock 0 0 0 0 no 1 0 0 2000 2000 0x00 0x00
    calibration 0 0 0 0 no 4 0 0 0 0 0x00 0x00
    signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00

    Programmer Type : STK500
    Description : Atmel AVR ISP
    Hardware Version: 2
    Firmware Version: 1.18
    Topcard : Unknown
    Vtarget : 0.0 V
    Varef : 0.0 V
    Oscillator : Off
    SCK period : 0.1 us

    avrdude: AVR device initialized and ready to accept instructions

    Reading | ################################################## | 100% 0.04s

    avrdude: Device signature = 0x1e9307 (probably m8)
    avrdude: safemode: hfuse reads as D9
    avrdude: NOTE: „flash” memory has been specified, an erase cycle will be performed
    To disable this feature, specify the -D option.
    avrdude: erasing chip
    avrdude: reading input file „usbasp.atmega8.2011-05-28.hex”
    avrdude: input file usbasp.atmega8.2011-05-28.hex auto detected as Intel Hex
    avrdude: writing flash (4700 bytes):

    Writing | ################################################## | 100% 7.34s

    avrdude: 4700 bytes of flash written
    avrdude: verifying flash memory against usbasp.atmega8.2011-05-28.hex:
    avrdude: load data flash data from input file usbasp.atmega8.2011-05-28.hex:
    avrdude: input file usbasp.atmega8.2011-05-28.hex auto detected as Intel Hex
    avrdude: input file usbasp.atmega8.2011-05-28.hex contains 4700 bytes
    avrdude: reading on-chip flash data:

    Reading | ################################################## | 100% 3.89s

    avrdude: verifying …
    avrdude: 4700 bytes of flash verified

    avrdude: safemode: hfuse reads as D9
    avrdude: safemode: Fuses OK (E:FF, H:D9, L:9F)

    avrdude done. Thank you.

  11. Done. Disconnect Arduino.

USBASP Drivers on Windows 8, 8.1 and Windows 10
You have to first disable check signed drivers on windows 8, 8.1 and 10!
(pull Shift and click to restart > Troubleshoot > Advanced options > Startup Settings > Restart button again > On the Startup Settings screen press 7 or F7 to disable driver signature enforcement.)
Download: usbasp-windriver.2011-05-28

Then install it manually in device manager.