Categories
Technical analysis

Not all USB C ports are equal

I kind of already knew but not realized it, until I got my new Flex 15 from Lenovo. This laptop comes with one USB C port. Lenovo proposes a travel hub as an accessory. That hub fits into the USB C port, offering one USB 3.1 port, one HDMI output and one Ethernet port. Unfortunately, that hub won’t work, not because it is defective, but because it is not compatible with the Flex 15! This article tries to explain why and outlines some possible uses of the limited USB C port provided by that laptop.

USB C is the successor of USB 3.1, with a completely different connector. USB 3 connectors fit in USB 2 and even USB 1 ports, but USB C connector is not compatible with USB 3 ports.

The USB C connector looks as follows.

Example of a USB C connector

The port is also different, smaller than the USB 3 and the connector can be plugged both sides. The female connector looks like this.

USB C causes quite a bit of problems, because it is too new and because not all ports are equal, without any clear way of determining its capabilities. Main issues will be, for the time being, compatibility with existing devices and the different variants of host controllers.

New connector = new devices?

The first problem is compatibility. As the connector is different, a USB C port accepts only USB C connectors, but most USB devices at the time I’m writing this are USB 3, not USB C. This won’t be a problem on most systems. At worst, the USB C port will just be a cool artifact that will be never used, a bit like Firewire connector on some older laptops. However, there are some ultrabooks with just USB C ports, like Dell’s newer XPS models. I was quite shocked to see this and thought a user of such a machine would need to buy all new devices. That’s fortunately not the case, as I found out later.

Then, what can be done with that USB C port? First, a couple of devices have a USB C port and comes with a USB A to C cable. You can use that cable, or purchase a USB C to C cable to hook the device through the new USB C port. Examples of such devices are newer Android phones like the Google’s Pixel 2 and 3, V3 WASD CODE keyboards and the ROLI’s BLOCK and Seaboard.

I also found adapters turning a USB C port into a USB A; they look as follows.

A USB C to A adapter

Such adapters allow to use USB C ports like regular USB 3.1 ones, pretty much adding USB ports to the laptop.

Hubs also exist, but that’s were things become tricky and quite annoying. Some USB C ports are not compatible with all hubs!

Variants of host controller

The capabilities of the USB C ports depend not on the physical connector but rather on what is linking it to the system’s motherboard. We call this the host controller. As far as I know, there are the three following variants of such controllers.

  • Thunderbolt 3. This is the most powerful and versatile port. A Thunderbolt 3 port can be used as a regular USB 3.1 port using an adapter, it can carry over display information and can transfer enough power to charge most laptops. You’ll need a hub or docking station to expose this; the connector itself won’t allow it. Thunderbolt 3 also allows the transmission of PCI Express lanes through a cable, pretty much offering extensibility to a system. You can for example hook up an external graphic card or high performance hard drive. The problem with Thunderbolt is that the previous standard relied on a different mini-DisplayPort cable, and many devices will be claimed as Thunderbolt-compatible; you won’t know for sure it is Thunderbolt 2 or 3 unless you look very carefully on the device’s pictures, search on forums, email the vendor, and maybe even then, you may get a Thunderbolt 2 device while expecting a Thunderbolt 3 and have to return/exchange it. Quite annoying. A device claimed to be Thunderbolt 3 compatible should be fine though.
  • USB C with display and power. The port can be used for regular USB 3.1 devices (with an adapter or hub) or transfer display and power, enough power to charge a laptop through just that small USB C connector. Hubs providing HDMI output can be used with such ports. Some docking stations exist and can be used to charge a laptop and extend its display capabilities with one or two extra ports. Docking relying on proprietary connectors is now achievable with a generic, smaller, reversible connector. That’s quite amazing, and a USB C docking station should work with all laptops supporting USB C with display and charging, PC or Mac!
  • Regular USB 3.1 only. USB C doesn’t require support for display and power (Thunderbolt 3 does), so some vendors ship limited USB C ports that can just be used with adapters or hubs providing only USB C or 3.1 ports! Trying to hook up a hub or docking station with display or charging capabilities on such ports will likely fail. Windows will report the device malfunctioned, making you think it is defective. But it is not; this is the port that is limited. But not defective, it will work with USB 3.1 devices (with proper adapter).

Lenovo’s Flex 15 has such a limited USB C port. Hooking up the travel hub, offered as an optional accessory while purchasing the laptop, will always fail. The hub wasn’t defective, I tested it on my work’s laptop that has a USB C port with display support, and it worked. But not on the Flex 15. All that can be done with the hub is a RMA. Sad but true.

Categories
Bug

A dying laptop

My Lenovo Ideapad Yoga 15 is dying.

It happened the second time today, and that’s quite concerning. Suddenly, the machine freezes, keyboard is not responding, the mouse is moving but clicking does nothing. There is no way out other than rebooting, and when I did it, the screen became black with an error message displayed in white on a blue background.

The machine was telling me that there was no boot device or boot failed. What? This Lenovo laptop has a builtin mSATA SSD. I didn’t disassemble the laptop, ever, so why suddenly either the SSD became faulty, or the connection between the SSD and the motherboard is now unstable? Fixing any of these would require disassembling the laptop, with the risk of not being able to put it together again afterwards. The keyboard that needs to be removed to reach the components is clipped, and clips can break when trying to remove.

As the last time, during the holidays, powering off the laptop and booting up again “fixed” it. But who knows if that will last. Maybe it will fail tonight, maybe the next week, I don’t know. And next time it fails, maybe it won’t boot up again.

Besides of that, the battery lasts not really more than 2 hours and the wi-fi is now so clunky that most of the time, I need to plug in a USB to Ethernet or 802.11 adapter.

I’m wondering if that is Windows 10 that is killing this machine. As soon as I upgraded, the laptop became slower. A few months later, the battery life was reduced. If I could make Ableton Live work on Linux, I would attempt a switch to Ubuntu, but nope, no Linux version. All major DAWs have just Windows or Mac builds, no Linux. Things may change in 10-20 years, but that doesn’t matter to me, my passion may not be there at that time.

I’m kind of hopeless now to get any type of working laptop in the 10-20 next years. They all suck. Any candidate, any, I can find bad reports on some forums. People are slowly but surely stopping to use computers and/or migrating to Mac, which I cannot do because of font size issues. Maybe home computing is coming to an end, replaced by “smart” but limited phones and tablets not offering any efficient way of typing text. People are working around by posting meaningless pictures with any description, that’s what I see every day on Facebook: XYZ added on his story, no text, just a picture. I came to the point of disabling Facebook notifications on my smartphone and debating the possibility of closing my Facebook account.

But I want a solution. As a computer scientist, I just cannot give up having a computer, that makes just no sense to me.

Categories
Configuration

Trying to salvage a lemon

My sister got a Thinkpad G500 from Lenovo pretty much at the same time I purchased my Ideapad Yoga 13 from the same brand. My Ideapad, while suffering from battery life and wi-fi issues and being stuck with a too small SSD, still performs reasonably. It still boots fast and doesn’t exhibit hardware issues. The upgrade to Windows 10 seems to be the change that made it worse, but it still works… compared to the G500 of my sister. That machine was painfully slow and, I discovered, suffered from various hardware issues I didn’t know about.

Assuming the only issue was slowness, I proposed my sister to replace the hard drive of the laptop with a SSD. Before doing so, however, I checked in the user’s manual of the laptop how to replace the drive. It was possible to do it by removing the back cover of the machine and unscrewing the drive, no need to disassemble the keyboard, remove the memory, the display, etc., like on my Ideapad or even worse, on a MacBook. If there is too high risk of breaking something while dissassembling the laptop to reach the hard drive, it is better to leave that machine alone and invest in a new one later on. This is what I chose to do for my Ideapad, because of brittle keyboard clips that could completely break, preventing the keyboard to hold on afterwards. I also needed to make sure a 2.5″ SATA SSD would fit, because maybe I could need a M2 instead. If something intermediate is needed, like a mSATA, upgrading is less worth it. A SATA or M2 SSD can at least be reused in another system if the target laptop fails later on.

The SSD doesn’t fit! WHY?

I started to work on the laptop January 5, 2018. I first removed the battery, unscrewed the back cover and located the hard drive. It was attached to the system using a bracket screwed into the chassis. I removed the screw and was able to disconnect and pull off the drive. I then needed to unscrew the bracket from the hard drive and screw it to the SSD instead. That part didn’t work well. No matter how hard I was trying, I wasn’t able to fit the screws. I thought the laptop had a 1.5″ hard drive instead of a 2.5″, but no, it ended up working. The SSD had something written on both sides so I was trying to install the bracket on the wrong side. After I was able to screw the bracket, I connected the SSD to the laptop.

After I installed the SSD, I put back the cover and the battery. Then I turned on the laptop and booted using a USB key containing Ubuntu Live. I used that to run a SMART check on the SSD, making sure it wasn’t flawed right from the start. This is more likely to happen with an hard drive, but it CAN happen with a SSD as well. Doing a self-test before installing anything can thus save a lot of time.

Stuck at Lenovo logo, requiring RMA

After that check, I inserted my USB-based Windows 10 installation medium. I got this medium from Microsoft, it can now be downloaded freely as opposed to previously, requiring the purchase of a CD or DVD. Getting the medium is now easy, the challenge is to get the activation working now.

But before tackling the activation issues, I had to make this laptop boot the USB medium. Instead of booting, the laptop just froze at the Lenovo logo. The only thing I could do is hit ctrl-alt-delete, get a blank screen, and the logo back again. I tried to power off the laptop, power it back on, to no avail.

I searched on Google and found other occurrences of this issue. Several people are experiencing that problem, with no other solution than contacting Lenovo’s technical support and get the laptop replaced… when it is under warranty. It seems more and more that when warranty is over, a laptop is now a piece of crap that is just good to be thrown away, which annoyed me quite a lot. Fortunately, after a couple of attempts, removing the battery, putting it back in, rebooting again, again and again, I got past the frozen Lenovo logo. After that hurdle, I was able to install Windows 10.

Windows 10 asked me to connect to a Microsoft account. I used mine in order to perform the installation, but I knew I would need to do something to hook up my sister’s account, so she could login without me having to give her my main password.

Activation working without efforts? Strange…

After I finished installing Windows 10, I noticed from the system properties it was activated. Cool. However, I found that without even asking me, the system used the same product key as my own Lenovo Idepad Yoga 13 ultrabook. I was worried that the Microsoft’s tool creating the USB medium customized the installation USB key with my product key, so I was attempting to activate Windows on multiple computers with the same key. Maybe at some point, Microsoft will detect that and deactivate one of the two copies, either mine or the one of my sister, after she got her laptop back.

After significant amount of wasted time searching on Google, I figured out that this situation happened to others. It seems that the product key is used by several laptops of a given brand. Either the key is hard-wired somewhere in a read-only store of the machine, maybe the trusted platform module, or there is a registry at Microsoft of OEM machine ids mapped to product keys. Anyhow, my sister got a fully activated Windows 10 without any effort from me.

I was worried I would need to have her purchase a new license key or reactivate her current license via phone. Or maybe even worse, the current license would work for Windows 8, not Windows 10, and my sister would prefer to get back Windows 8. All my concerns went away with this effortless activation, but keep in mind things will not always be as smooth.

Looping Windows Update

That one caused me a lot of wasted time. There was a bug with one of the updates that failed to install. However, the update was partially installed. The failure caused Windows to retry installing the update each and every time the computer was shut down or rebooted. This pretty much wiped out the benefits of having a SSD because of increased shut down, reboot and even boot time, since at boot, Windows was finalizing the installation of the faulty update and failing!

I searched a long time for that one, tried to manually install the update to no avail. Some forum posts were referring to that problem without a known solution. Sometimes, it worked at some point after a lot of attempts. Other times, it required reinstallation. I even read a post from a user who called Microsft, got a new ISO image of Windows 10, installed that and the update worked! But then, why is there a medium creation tool if we need to get an ISO from elsewhere? Will everybody reinstalling Windows 10 from scratch need to call Microsoft to get that alternate ISO? Really? That is a serious bummer in my opinion. I thought about asking a link to that ISO, but that would have given me the English version while my sister wanted the French one.

At some point, I got so pissed off that I started searching a way to disable the automatic updates. This is possible by changing group policies… on the Pro version of Windows 10. My sister had the Home version. But the problem didn’t happen on my systems, probably because I started from Windows 8, then got 8.1, then 10. Maybe I’d need to go that same route on that Thinkpad?

Fortunately, there is a tool from Microsoft called Show or hide updates. I installed that tool, and told it to hide the offending update. That fixed the issue without having to tentatively reinstall, call Microsoft or try to install Windows 8, then upgrade to 8.1, then upgrade to 10!

Short-term laptop to be replaced after warranty?

What happened after the installation of Windows 10 pretty much lead me to believe what the section’s title states. I was really shocked and annoyed and questioning my trust against Lenovo. A PC is not like a simple appliance you just plug in and start. It has settings, it has applications installed, there is sometimes even a physical configuration to get used to. I cannot afford having to fully replace that configuration every year or two! That’s a serious non-sense, and not counting the very bad ecological impact of such a short-sighted offering. I know, it was not my laptop, but my next laptop could very well suffer from these more and more common flaws.

The freezing at Lenovo logo was just the tip of the iceberg! I then discovered that only Windows 8 drivers were offered for that Thinkpad G500 on the Lenovo website, no Windows 10 drivers at all. However, the preinstalled drivers coming with Windows 10 allowed the machine to pretty much work. Later on, I also found out that the DVD drive was also broken, not detected at all by Windows. Moreover, the Webcam was broken, showing a black screen.

Wi-fi started to go bad, the mouse pointer started to move erratically, the machine just became totally unusable. I had to plug in that laptop to an external keyboard, mouse and even an Ethernet cable.

Again, for the DVD drive and Webcam, the only solution was to contact Lenovo and get replacements, IF the laptop was still under warranty. At this point, I was stuck. Without another idea, I would have had to give up and tell my system the best solution is to throw that laptop away.

Pulling some things off

I noticed a black tape at the place of the Webcam. Maybe that tape is not supposed to be there and can be removed. I removed it and started the Camera application again: I got an image, yeah!

I then found out that some people were having issues with both the DVD drive and the freezing at boot. Could these two be related? If the DVD drive is flaky, it can slow down or even prevent boot as the BIOS/UEFI will try to query it in order to figure out if a disk is inserted.

The solution was quick and simple: just remove the optical drive from the machine, yes, really, pull it off. After I did that, the laptop booted flawlessly. I tested it several times, also tried to reboot, without any freezing issue. It also seemed, although I didn’t benchmark it formally, that the boot was faster. There would be a hole in the laptop casing instead of the DVD drive, because I didn’t have any other drive or something dummy to go into the bay. But at least, it would work.

Transferring ownership without my password

A small but significant step remained: how to allow my sister to log in to her “new” laptop without giving her my personal password in order for her to create her Microsoft account, or me getting her password to connect to her account? There are two ways to solve this cleanly, and I implemented both to be sure.

  1. Create a new account based on a known email address linked to a Microsoft account. I knew my sister’s email address and was sure she used that to create her Microsoft account, so I just had to create the account with that address; no need to enter the password until logging in. There are two pitfalls though. Firstly, the person needs to be connected to Internet for the first login, and not sure wi-fi will work, maybe just wired Ethernet since you need to be logged in to set up wi-fi! Secondly, the created account is not Administrator by default; I had to fix that so my sister would be able to install new programs on her machine.
  2. It is still possible to create a local account, so I did it and set a dummy password my sister can change after, or remove the local account altogether. Again, I needed to make sure the local account was in the Administrators group; by default it is not!

My sister was amazed at the speed increase we achieved by replacing the hard drive with a SSD. She thought that laptop was good for the thrash can before I fixed it. Even funnier, later on her boyfriend got an HP 15-bw028ca that although more recent, happened to be slower than that old fixed Thinkpad!

Eventually that HP piece of junk will benefit from a similar treatment. Maybe that will deserve another post.