Tired PCI-Express Extension Cable Caused System Instability

I was ready for a break from working on the Luggable PC Mark II project and wanted to enjoy the results of my labor for a while. I started learning PIC programming but was frustrated by an unstable computer.

Revision A proved that the system works, and all components can happily run together reliably for a few weeks. But revision B was a problem child. It started off with occasional temporary recoverable system freezes. Then the system freezes would not recover and I had to power cycle the computer. Degrading further, the unpredictable failures would spontaneously reboot the computer.

The unpredictable nature of these events makes diagnosis difficult. Sometimes many hours would pass before an event, sometimes they would happen twice within the same minute. When one variable is changed, the system has to be left running to test if the change helped. Sometimes this meant running a system for hours before another reset occurred.

My initial suspicion was on overheating because a tremendous heat wave hit Los Angeles this week. But there was little correlation between temperature and stability. One of the “reboot itself multiple times within a minute” events occurred during the cool night.

The next suspicion was on power, as an under-voltage could cause these symptoms and the heat wave means a lot of air conditioners running in the neighborhood. But reboots continued after swapping in a different power supply and putting the system on an UPS.

The key insight was a system freeze during a work session where I had music playing in the background. The music continued but the screen is frozen, implying the video subsystem.

The PCI-Express extension cable was an unknown. I explicitly excluded one from Luggable Mark I just to eliminate that variable. As a test, the video card is inserted directly into the motherboard. The system is not luggable at all in this state but it proved informative because the system stayed stable for 24 hours.

NonLuggableState

Looking at the cable I removed from the system, I can see a lot of wrinkles from all the times I experimented with the layout and changed relative dimension of the components. Hypothesis: metal fatigue has started cracking some of the wires in this ribbon cable causing intermittent connections and general system chaos.

Wrinkly Cable

Normally a system installer would bend the ribbon cable into place once and leave it. I consider my usage pattern of performing many different bends over many weeks beyond normal expectation. Like bending a paperclip back and forth until it breaks.

In short: “My bad”.

I ordered another cable from the same vendor off Amazon, installed the replacement, and that restored system reliability. I plan to leave this second cable alone as much as possible. When I start working on revision C, I will use the old cable (now labelled “TEST”) to try out different layout ideas. Bend and flex and twist as I experiment. I won’t change the bends on the new cable until I settle on a layout.

Gigabyte Z270N-WiFi and its F1 Firmware

When I embarked on the Luggable PC project, the primary goal was to build a computer using components I already had on hand. This translated into the requirement to accommodate full-sized desktop PC components. Now that I’ve used it for a while and started to like carrying my full-time computer around, I’m building up for an upgrade. This time, instead of building a chassis around components I already had, I will buy smaller components with the intent of assembling a new luggable chassis.

First up: The motherboard. Out of all the commodity form factors, the best balance of small size, computation power, and reasonable price is the Mini-ITX form factor. I’ve already worked with a few boards of that form factor, but none with leading edge components. This changes with the purchase of a Gigabyte Z270N-WiFi.

GigabyteZ270N-WiFi
Image by Gigabyte

The specifications of the motherboard looked great on paper. In additional to the small Mini-ITX form factor, the features important to my project are:

  • Support for Intel’s latest Kaby Lake generation of processors
  • M.2 slot for SSD
  • PCIe x16 slot for full-power GPU
  • Wireless networking

Factors that were not critical, but used as tie-breakers against its competition:

  • Dual-port Intel gigabit wired Ethernet
  • 6 SATA ports
  • USB-C port
  • Bluetooth

Looks great on paper! Sadly in reality the motherboard made a very poor first impression due to the onboard firmware. It was heavy on flashy looks and light on usefulness. I ran into many problems with basic functionality.

Example 1: The USB mouse support was useless: I could move the cursor around with the mouse, but clicking has no effect.

Example 2: Upon startup, it shows a full-screen Gigabyte logo (basically an advertisement) that I find annoying. If I select the firmware option to disable the logo, the motherboard no longer boots: I have to reset the firmware settings via jumper to get back to square 1. This was such an unexpected thing that it took three resets before I determined it was the logo setting that caused the problem.

So the “F1” version of the motherboard firmware was a disaster. Fortunately by the time I bought the board, Gigabyte has released updates and is currently on “F4”. Upgrading allowed me to disable the Gigabyte advertisement and still have a functional computer, in addition to addressing other functional annoyances.

This motherboard was clearly pushed out the door with incomplete firmware and the expectation on users to upgrade. I now have a good motherboard, but there’s a sour taste in my mouth from the bad out-of-box experience.