Give Your Thinkpad X1 Nano An Internal USB Port

Assembled FPC PCB panels of the project

How hard could it be to add an extra USB port inside your laptop? As [Joshua Stein] shows, it can be decently hard, but you will have fun along the way. His journey involves a Thinkpad X1 Nano, and his tech setup means it’d be most comfortable for him to have a USB port inside its case, for a Logitech mouse’s USB receiver. It wasn’t smooth sailing all throughout, but the end result is no doubt beautifully executed.

M.2 B-key, A-key and E-key slots have USB 2.0 available on them – you’d think that’s perfect for such a receiver, and there’s even plug and play adapters for this on places like eBay. Unfortunately, none of these, as Lenovo implements wireless card whitelists to this day. Tinkering with the whitelist on [Joshua]’s laptop resulted in BIOS digital signature check failures, and the USB-connected fingerprint reader was ultimately chosen as the most viable path.

Initially, he’s tested the fingerprint reader with an FPC breakout, having the USB connection work – many a hacker would stop here, pulling a few bodge wires from the breakout. [Joshua], however, raised the bar, creating a flexible PCB that would pull the fingerprint connector signals to a spot in the case where the USB receiver could fit neatly, with a 5 V step-up on the board, too.

[Joshua] tops it off by showing a 3D-printed spacer that goes into now-vacant spot where the fingerprint reader used to be. This mod is not open-source as far as we can see, but it’s definitely an inspiration. Want to put even more USB devices inside your laptop? Perhaps a tiny USB hub would help, in line with the EEE PC mods that aimed to stuff the tiny laptop with the largest amount of USB devices possible.

16 thoughts on “Give Your Thinkpad X1 Nano An Internal USB Port

      1. It’s not the same thing. Also there are high polling rate wireless mice.

        I’m surpised he didn’t check to see if the dongle was native 3.3v and bypass the internal regulator. Once its inside the laptop it won’t matter much will it?

      1. Pretty much.. Bluetooth has almost perfect features, and mostly good functions with pairing and whatnot.
        But they keep ruining it with godawful restrictions, for example that you don’t get to choose to use the mic on a headset AND high quality audio at the same time. If this was not the case, I cannot fathom that no producer is using it for a gaming headset.
        My theory is that they are strict with this to maximize energy savings… Something that Bluetooth is genuinely great at. But it also misses the whole point, better with a shorter battery and actual function than not.
        Same with a mouse, sure, polling more often WILL use more battery, but again if they would just have made this configurable then it would be great

    1. If you read the linked article, you’d see that 1) they don’t use the fingerprint reader and keep it disabled in the bios and 2) they run OpenBSD on this laptop and so the fingerprint reader is almost certainly dead weight anyway.

  1. Reminds me of an old article (a few on here) of people modding Dell and Asus Netbooks and somepeople replace the webcam with a USB port or solder in GPS or other USB Dongles.

  2. I wish manufacturers would just do this already. Most laptops I’ve seen have dead space somewhere I them, and a USB dongle isn’t that big to have to hide. Even if it was just a standard size zif or ribbon connector configured for USB 2.0 that would be fine – you could order a ribbon + USB PCB from wherever and put it in yourself.

  3. All these comments about “why not just find empty space in the laptop?”. I have a nano and you aren’t fitting anything extra in it, trust me. I run a hub velcroed to the back of the screen. I wish they made a proper docking station for this thing instead of a USB C hub that they call a dock. Unless they do??

      1. I want the form factor of a docking station. I specifically said that. I’m not hung up over the protocol it uses. I want to be able to drop this into it and eject it out with a button (if you need details of how a station works).

  4. While the hardware hack was clever, BIOS modding is a thing. But you can’t just hack at a UEFI image with a hex editor. Well, you can, but the image a PC uses will be based on the platform initialization spec and there are tools for working with these images instead of updating all the required data by hand in a hex editor.

    I’d guess it was a bit much for Joshua, especially with an alternative in scope of his expertise but others who find themselves in a similar situation shouldn’t be discouraged. things like UEFITool (https://github.com/LongSoft/UEFITool) and UEFI-Editor (https://github.com/BoringBoredom/UEFI-Editor/blob/master/README.md) exist.

    You can get the UEFI and many related specs without having to do anything more than find the right URL. For example, here is the platform initialization spec: https://uefi.org/sites/default/files/resources/PI_Spec_1_6.pdf

    And there is a lot of code that implements large parts of these specs that is open source: https://github.com/tianocore/edk2/
    Here is a header file in C that implements the header data structures mentioned in the firmware file system part of the PI spec: https://github.com/tianocore/edk2/blob/master/MdePkg/Include/Pi/PiFirmwareFile.h

    I picked that because what Joshua almost certainly ran into was his edits being flagged then IntegrityCheck.Checksum.Header was checked against the newly calculated checksum.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.