Picture of the setup described in the article, with PCI-E cards strewn around the desk, all interconnected, and a powered-up laptop, a large TV screen behind the laptop

This Laptop Gets All The PCIe Devices

Did you ever feel like your laptop’s GPU was sub-optimal, or perhaps that your laptop could use a SAS controller? [Rob Rogers] felt like that too, so now he has the only Dell Latitude business-class laptop that’s paired with an AMD RX580 GPU – and more. Made possible because of a PCIe link he hijacked from the WiFi card, he managed to get a SAS controller, a USB 3.0 expansion card, the aforementioned GPU and a dual-port server network adapter, all in a single, desk-top setup, as the video demonstrates.

First off, we see a PCIe packet switch board based on a PLX-made chip, wrapped in blue tape, splitting a single PCIe x1 link into eight. The traditional USB 3.0 cables carry the downstream x1 links to the four PCIe cards connected, all laid out on [Rob]’s desk. [Rob] demonstrates that all of the cards indeed function correctly – the SAS controller connected to a server backplane with whole 22 TB of storage in it, a few devices plugged into a USB 3.0 card, an Ethernet cable with an active link in the network card, and wrapping up the video showing 3DMark results of the RX580 clearly paired with the laptop’s mobile CPU. There’s four more spots on the PCIe switch card, so if you wanted to connect a few NVMe SSDs without the costly USB enclosures that usually entails, you absolutely could!

The setup on the desk, laptop-less, still interconnected and with the mini pci-e adapter visibleNow, there’s a reason why we don’t see more of such hacks. This seems to be a Latitude E5440 and the card is plugged into a mini-PCIe slot, which means the entire contraption is bound by a single PCI-E Gen2 x1 link, heavily offsetting the gains you’d get from an external GPU when, say, gaming. However, when it comes to the types and amount of peripherals, this is unbeatable – if you want to add an external GPU, high-speed networking and a SAS controller to the same computer that you usually lug around, there isn’t really a dock station you can buy for that!

Our collection of cool PCIe hacks has been growing, with hackers adding external GPUs through ExpressCard and mini PCIe alike, fitting PCIe slots where the factory refused to provide one, and extending the onboard M.2 slots for full-size PCIe cards. Nowadays, with these packet switches, it’s easy as ever to outfit any PCIe capable device with a whole slew of features – as this Raspberry Pi Computer Module motherboard with eleven PCIe slots demonstrates. Wonder how PCIe works, and why all of that is possible? We’ve written an entire article on that!

Continue reading “This Laptop Gets All The PCIe Devices”

Laptop USB-C Charging Hack Lets You Leave The Brick At Home

At their best, laptops are a compromise design. Manufacturers go to great lengths to make the slimmest, lightest, whatever-est laptops possible, and the engineering that goes into doing so is truly amazing. But then they throw in the charger, which ends up being a huge brick with wire attached to it, and call it a day.

Does it have to be that way? Probably, but that doesn’t mean we can’t try to slim down the overall footprint of laptops at least a little. That’s what [Joe Gaz] did when he hacked his laptop to allow for USB-C charging. Tired of the charger anchoring down his HP X360, [Joe] realized that he could harvest the PCB from a USB-C charger adapter dongle and embed it inside his laptop. We’ve seen similar modifications made to Thinkpads in the past, and it’s good to see the process isn’t that far removed with other brands.

After popping open the laptop, which is always an adventure in reverse mechanical engineering, he found that removing the OEM charger jack left just enough room for the USB-C charger. Mounting the board required a 3D printed bracket, while enlarging the original hole in the side of the laptop case took some cringe-inducing work with a file. It looked like it was going to be pretty sloppy at first, but he ended up doing a pretty neat job in the end. The whole modification process is in the video below.

The end result is pretty slick — [Joe] can now carry a much more compact USB wall-wart-style charger, or eschew the charger altogether and rely on public USB charging stations. Either way, it sure beats lugging a brick around. If you’re interested in laptop hacking, or even if you just want to harvest the goodies from a defunct machine, check out this guide to laptop anatomy by our own [Arsenijs Picugins].

Continue reading “Laptop USB-C Charging Hack Lets You Leave The Brick At Home”

An 128x64 OLED display with a weird image on it, showing a mouse cursor, date and time in the bottom right corner, and a whole lot of presumably dithered dots

Making Your Own Technically-HDMI OLED Monitor

One day, [mitxela] got bored and decided to build his own HDMI monitor – the unconventional way. HDMI has a few high-speed differential pairs, but it also has an I2C interface used for detecting the monitor’s resolution and issuing commands like brightness control. In fact, I2C is the backbone for a lot of side channels like these – it’s also one of our preferred interfaces for connecting to cool sensors, and in this case, an OLED display!

[mitxela] describes his journey from start to end, with all the pitfalls and detours. Going through the pinout with a broken hence sacrificial HDMI cable in hand, he figured out how to probe the I2C lines with Linux command-line tools and used those to verify that the display was recognized on the HDMI-exposed I2C bus. Then, he turned to Python and wrote a short library for the display using the smbus bindings – and, after stumbling upon an FPS limitation caused by SMBus standard restrictions, rewrote his code to directly talk to the I2C device node, raising FPS from 2 to 5-10.

From there, question arose – what’s the best software route to take? He tried making a custom X modeline on the HDMI port the display was technically attached to, but that didn’t work out. In the end, he successfully employed the Linux capability called “virtual monitors”, and found out about an interesting peculiarity – there was no mouse cursor to be seen. Turns out, they’re typically hardware-accelerated and overlaid by our GPUs, but in [mitxela]’s case, the GPU was not involved, so he added cursor support to the picture forwarding code, too.

With partial refresh, the display could be redrawn even faster, but that’s where [mitxela] decided he’s reached a satisfactory conclusion to this journey. The write-up is a great read, and if videos are more your forte, he also made a video about it all – embedded below.

We first covered the ability to get I2C from display ports 14 years ago, and every now and then, this fun under-explored opportunity has been popping up in hackers’ projects. We’ve even seen ready-to-go breakouts for getting I2C out of VGA ports quickly. And if you go a bit further, with your I2C hacking skills, you can even strip HDCP!

We thank [sellicott] and [leo60228] for sharing this with us!

Continue reading “Making Your Own Technically-HDMI OLED Monitor”

Novena Open Source Laptop Reborn As Desktop Machine

When your 5-year-old laptop dies it’s usually time for a replacement. But [Andrew Menadue]’s Novena laptop is fully open-source. He has full access to all the documentation, so he decided to try his hand at repairing it instead. The power supply circuit board went up in smoke one day — he attributes this to poor battery health due to him not using it frequently enough. Given his usage pattern, he decided to switch the Novena into a desktop machine.

He made the conversion with a new pass-through power supply board, and the computer booted up but with no display. It seems that the power supply failure took out additional circuits as well. [Andrew] goes down a deep rabbit hole of board and chip swapping, all to no avail. Eventually the display suddenly springs to life, and he concludes the problem was with the EEPROM configuration settings and not LCD display hardware.

Experimenting with LCD Outputs on the Mainboard

It’s comforting to know that you can easily spin a replacement PCB for your computer when needed. But this situation is far from mainstream. Furthermore, all projects, open-sourced or not, face the issue of part obsolescence, even Novena. Back in 2019 founders [Bunnie] and [Xobs] issued an end-of-life announcement on the project’s five year anniversary for this very reason. The fact that Novena availability even lasted five years was due to up-front purchases of critical parts.

We wrote about the Novena way back in 2014, and more recently the MNT Reform project. What are your thoughts on these open source laptop projects? Do you have any laptops that you’ve rehabilitated after five or more years? Let us know in the comments below.

A PoE adapter's RJ45 jack added inside an Acer laptop

Laptop Empty Space Filled With RS485 And PoE

Out of all the laptop upgrade options typically available, you wouldn’t expect this specific one. [controlmypad] decided to take a part of his RS485 device programming workflow and put it inside of a spare laptop he picked up for cheap. Typically, he’d occupy some desk space and lay out an unwieldy combination of a USB-RS485 dongle, a PoE power injector, a PSU for that injector, and a few cables to join it all – being extra weight in the tool bag, cluttering the workspace when laid out, and the RS485 adapter slowly wearing out the USB ports during the work-related motions. No reason that all of this couldn’t be packed inside a laptop, however.

What helps a lot is that, in many modern cheap laptops, the motherboard is fairly small, and the DVD drive plastic placeholder can be omitted without second thought. Cutting off the plastic molding from both of the adapters turns them into a nicely reusable circuit board and a small PoE module, respectively. After laborious yet careful cutting of the laptop case with a hobby knife, the PoE injector fits right in and, essentially, adds an extra RJ45 port to the laptop. From where the Hackaday.io write-up left off, it doesn’t seem like this mod got fully completed, but most of the important details are there for us to learn from. What got left out is connecting it to an internal USB port (should help that the motherboard’s schematics are available online), as well as creating 12V-24V from the laptop’s power rails. At this point, however, this mod is a big step forward usability-wise, even if it still requires an external PSU.

Laptop internal upgrade projects are rare but cherished – it’s a combination of “daring”, “inquisitive” and “meticulous” that results in people successfully hacking on a thing they certainly were not meant to hack, and have that thing serve their needs better. Apart from all the EEE PC upgrade options that set the bar for a generation of laptop modders, there’s a myriad of unconventional laptop modification vectors – you could do a thorough from-scratch Type-C charging port conversion, replace your webcam with an FSF-endorsed open firmware WiFi dongle, build in a “12-axis” sensor for auto-orientation and data-logging, or invent a remote self-destruct mechanism for your laptop. Those are, indeed, quite a few things you won’t typically find in the list of available options while customizing your laptop at the manufacturer website.

the SoM module used to power a Dell Mini 1210, in an extended SODIMM form-factor

When Dell Built A Netbook With An X86 System-on-Module

Just like with pre-touchscreen cellphones having fancy innovative features that everyone’s forgotten about, there’s areas that laptop manufacturers used to venture in but no longer dare touch. On Twitter, [Kiwa] talks a fascinating attempt by Dell to make laptops with user-replaceable CPU+RAM modules. In 2008, Dell released the Inspiron Mini 1210, with its CPU, chipset and RAM soldered to a separate board in an “extended SODIMM” form-factor – not unlike the Raspberry Pi Compute Modules pre-CM4! Apparently, different versions of such “processor cards” existed for their Inspiron Mini lineup, with varying amounts of RAM and CPU horsepower. With replacement CPU+RAM modules still being sold online, that makes these Dell netbooks to be, to our knowledge, the only x86 netbooks with upgradable CPUs.

You could try and get yourself one of these laptops or replacement CPU modules nowadays, if you like tinkering with old tech – and don’t mind having a subpar experience on even Linux, thanks to the Poulsbo chipset’s notorious lack of openness. Sadly, Dell has thoroughly abandoned the concept of x86 system-on-module cards, and laptops have been getting less modular as we go – we haven’t been getting socketed CPUs since the third generation of mobile Intel boards, and even RAM is soldered to the motherboard more and more often. In theory, the “CPU daughterboard” approach could improve manufacturing yields and costs, making it possible to use a simpler large board for the motherboard and only have the CPU board be high-layer-count. However, we can only guess that this wasn’t profitable enough overall, even with all the theoretical upsides. Or, perhaps, Google-style, someone axed this project internally because of certain metrics unmet.

If you think about it, a laptop motherboard is a single-board computer; however, that’s clearly not enough for our goals of upgradability and repairability. If you’re looking to have your own way and upgrade your laptop regardless of manufacturer’s intentions, here’s an old yet impressive story about replacing the soldered-in CPU on the original Asus EEE, and a more recent story about upgrading soldered-in RAM in a Dell XPS ultrabook. And if you’re looking for retrocomputing goodness, following [Kiwa] on Twitter is a must – last seen liveblogging restoration and renovation of a Kaypro someone threw out on the curb.

Linux Fu: The Ultimate Dual Boot Laptop?

I must confess, that I try not to run Windows any more than absolutely necessary. But for many reasons, it is occasionally necessary. In particular, I have had several laptops that are finicky with Linux. I still usually dual boot them, but I often leave Windows on them for one reason or another. I recently bought a new Dell Inspiron and the process of dual booting it turned out to be unusually effective but did bring up a few challenges.

If you ever wanted a proper dual-booting laptop, you’ll be interested in how this setup works. Sure, you can always repartition the drive, but the laptop has a relatively small drive and is set up very specifically to work with the BIOS diagnostics and recovery so it is always a pain to redo the drive without upsetting the factory tools.

Since the laptop came with a 512 GB NVMe drive, I wanted to upgrade the drive anyway. So one option would have been to put a bigger drive in and then go the normal route. That was actually my intention, but I wound up going a different way.

Continue reading “Linux Fu: The Ultimate Dual Boot Laptop?”