{"id":247,"date":"2024-07-26T01:12:53","date_gmt":"2024-07-26T01:12:53","guid":{"rendered":"https:\/\/nocoffei.com\/?p=247"},"modified":"2024-07-26T12:09:14","modified_gmt":"2024-07-26T12:09:14","slug":"meta-thunderbolt","status":"publish","type":"post","link":"https:\/\/nocoffei.com\/?p=247","title":{"rendered":"Meta-Thunderbolt"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">I recently moved to an area with an excellent local flea market, which has, over the last few months, given me an opportunity to answer some questions that have been floating around in my head for a few years.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Those questions led me here.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"461\" src=\"https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240722_092448-1-1024x461.jpg\" alt=\"\" class=\"wp-image-264\" style=\"width:850px;height:auto\" srcset=\"https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240722_092448-1-1024x461.jpg 1024w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240722_092448-1-300x135.jpg 300w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240722_092448-1-768x346.jpg 768w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240722_092448-1-1536x691.jpg 1536w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240722_092448-1-2048x922.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><em><strong>Freeze-Frame<\/strong> Yeah, that&#8217;s me. You&#8217;re probably wondering how I got here.<\/em><\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">So<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">I have a love-hate relationship with Thunderbolt. <a href=\"https:\/\/nocoffei.com\/?p=202\">Last time<\/a>, I wrote a rant about my failed attempts to build a home server using this cursed technology.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Apparently, I forgot to untick the &#8220;unlist&#8221; button I have set up in WordPress back then?? So almost two months after posting that article, the only people who read it are those I directly sent it to?? Whoops.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">I remain convinced that Thunderbolt is an technology completely unsuited to practical, serious workloads. <em>However<\/em>, that definition does not extend to absurd setups which are more art than work&#8230;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The Instigator<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">When I was still a Thunderbolt believer in 2021, I purchased this PCIe Add-In Card.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1000\" height=\"900\" src=\"https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/image.png\" alt=\"\" class=\"wp-image-248\" style=\"width:437px;height:auto\" srcset=\"https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/image.png 1000w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/image-300x270.png 300w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/image-768x691.png 768w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The Titan Ridge is a Thunderbolt controller card that connects over a PCIe 3.0 x4 link. Once plugged in, this card offers two Thunderbolt 3 ports. The back of the card has a few more connectors, all of which the instruction manual states must be attached to operate:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/image-1.png\" alt=\"\" class=\"wp-image-249\" style=\"width:502px;height:auto\" srcset=\"https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/image-1.png 1024w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/image-1-300x225.png 300w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/image-1-768x576.png 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Right to left:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>2x PCIe 6-pin power connectors. The card advertises 100W USB-C Power Delivery, but I&#8217;ve never actually seen this work.<\/li>\n\n\n\n<li>A USB 2.0 internal header, intended to connect to the motherboard.<\/li>\n\n\n\n<li>A secret-sauce, proprietary 5-pin header intended to connect to a special Thunderbolt header on Gigabyte motherboards. Every major vendor sells their own add-in card with their own secret sauce header and a matching header on their motherboard. The reason for this eludes me.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">More Thunderbolt talk<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">There&#8217;s something else we need to discuss about Thunderbolt before proceeding to the question. As I mentioned in the last article, Thunderbolt is a physical connection layer that lets one tunnel PCIe traffic over a USB-C cable. The speed of Thunderbolt 3\/Thunderbolt 4 is PCIe 3.0 x4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Certain (pricey!) adapters recognize this capability and the flexibility of PCIe to expose an outright PCIe connector at the end of a Thunderbolt connection. This can range from a <a href=\"https:\/\/sabrent.com\/products\/ec-t3ns\">simple adapter for NVMe SSDs<\/a> (which are also just PCIe devices, in a different connector) to outright PCIe slots like those found on motherboards. This is the backbone of the &#8220;external GPU&#8221; or &#8220;eGPU&#8221; concept&#8211; the promise that PCIe can be had via an easily accessible connector which would allow one to connect a full-size desktop GPU to their laptop. There&#8217;s a whole forum dedicated to ecking the most performance possible out of eGPUs over at <a href=\"http:\/\/egpu.io\">egpu.io<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">There are three problems with eGPUs that prevent them from going mainstream:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The chips necessary to expose a PCIe connector are extremely expensive and uncommon. The few domestic manufacturers like Razer who made complete eGPU enclosures sold them for north of $300, while if you&#8217;re willing to order sketchy devices off AliExpress the price historically went down to &#8220;only&#8221; $150.<\/li>\n\n\n\n<li>Thunderbolt incurs a very large practical performance penalty over a normal PCIe connection. Todays graphics cards require PCIe 3.0 x16 to reach their maximum performance. A PCIe 3.0 x4 link is roughly equal to a PCIe 1.1 x16 link (PCIe speeds double with each generation.) An RTX 4090 loses <a href=\"https:\/\/www.techpowerup.com\/review\/nvidia-geforce-rtx-4090-pci-express-scaling\/28.html\">roughly 20% of its performance over PCIe 1.1 x16<\/a>, which is indeed the <a href=\"https:\/\/videocardz.com\/newz\/desktop-nvidia-geforce-rtx-4090-loses-20-performance-when-used-as-external-gpu\">practical performance loss when one is run over Thunderbolt 3<\/a>.<\/li>\n\n\n\n<li>Thunderbolt is a mess of a protocol that is not useful for serious workloads. Even if it was, connecting and disconnecting a GPU from a computer while turned on (&#8220;hot-plugging&#8221;) doesn&#8217;t really work today and usually just crashes.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Now we have all the necessary info (and fun facts) necessary to pose the question:<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><em>What happens if I plug my Thunderbolt Add-In Card to an eGPU connector?<\/em><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The Titan Ridge card creates a Thunderbolt 3 link given a PCIe 3.0 x4 interface. An eGPU connector provides a PCIe 3.0 x4 interface given a Thunderbolt 3 link. Could it be possible to drive one off the other in a demented daisy-chain? Could I create a Thunderbolt-over-Thunderbolt connection?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This past weekend, I was finally able to answer this question thanks to the monthly flea market. An individual tabling sold me a barebones eGPU enclosure for $80.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" src=\"https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240721_215607-768x1024.jpg\" alt=\"\" class=\"wp-image-250\" style=\"width:401px;height:auto\" srcset=\"https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240721_215607-768x1024.jpg 768w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240721_215607-225x300.jpg 225w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240721_215607-1152x1536.jpg 1152w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240721_215607-1536x2048.jpg 1536w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240721_215607-scaled.jpg 1920w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><figcaption class=\"wp-element-caption\"><em>Included is a downstream Thunderbolt port and a single USB-A port. It even charges the connected laptop!<\/em><\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The enclosure requires an ATX power supply to operate, so I ran over to another booth and picked up a spare one for $10. Then I got home and the magic began.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">My victim machine was a ThinkPad T480s, purchased the same day to replace another laptop whose soldered RAM had failed the previous week.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" src=\"https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240721_215512-768x1024.jpg\" alt=\"\" class=\"wp-image-251\" style=\"width:376px;height:auto\" srcset=\"https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240721_215512-768x1024.jpg 768w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240721_215512-225x300.jpg 225w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240721_215512-1152x1536.jpg 1152w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240721_215512-1536x2048.jpg 1536w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240721_215512-scaled.jpg 1920w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">A sanity check was in order first to ensure that the enclosure worked. I plugged in a spare GPU, an <a href=\"https:\/\/www.techpowerup.com\/gpu-specs\/radeon-pro-wx-2100.c2979\">AMD Radeon Pro WX 2100<\/a>. Sure enough, the GPU came up and output to a display, no problem!<\/p>\n\n\n\n<div class=\"wp-block-kadence-tabs alignnone\"><div class=\"kt-tabs-wrap kt-tabs-id247_a21a90-14 kt-tabs-has-2-tabs kt-active-tab-1 kt-tabs-layout-tabs kt-tabs-tablet-layout-inherit kt-tabs-mobile-layout-inherit kt-tab-alignment-left \"><ul class=\"kt-tabs-title-list\"><li id=\"tab-photoview\" class=\"kt-title-item kt-title-item-1 kt-tabs-svg-show-always kt-tabs-icon-side-right kt-tab-title-active\"><a href=\"#tab-photoview\" data-tab=\"1\" class=\"kt-tab-title kt-tab-title-1 \"><span class=\"kt-title-text\">Photo View<\/span><\/a><\/li><li id=\"tab-screenshotview\" class=\"kt-title-item kt-title-item-2 kt-tabs-svg-show-always kt-tabs-icon-side-right kt-tab-title-inactive\"><a href=\"#tab-screenshotview\" data-tab=\"2\" class=\"kt-tab-title kt-tab-title-2 \"><span class=\"kt-title-text\">Screenshot View<\/span><\/a><\/li><\/ul><div class=\"kt-tabs-content-wrap\">\n<div class=\"wp-block-kadence-tab kt-tab-inner-content kt-inner-tab-1 kt-inner-tab_7ac671-a7\"><div class=\"kt-tab-inner-content-inner\">\n<figure class=\"wp-block-image aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"462\" src=\"https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240721_220251-1024x462.jpg\" alt=\"\" class=\"wp-image-252\" srcset=\"https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240721_220251-1024x462.jpg 1024w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240721_220251-300x135.jpg 300w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240721_220251-768x347.jpg 768w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240721_220251-1536x693.jpg 1536w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240721_220251-2048x924.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><em>Wall art by <a href=\"https:\/\/heyitszray.storenvy.com\/\">Zray<\/a>.<\/em><\/figcaption><\/figure>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-tab kt-tab-inner-content kt-inner-tab-2 kt-inner-tab_519835-ae\"><div class=\"kt-tab-inner-content-inner\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/Screenshot_20240721_222109-1024x576.png\" alt=\"\" class=\"wp-image-253\" srcset=\"https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/Screenshot_20240721_222109-1024x576.png 1024w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/Screenshot_20240721_222109-300x169.png 300w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/Screenshot_20240721_222109-768x432.png 768w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/Screenshot_20240721_222109-1536x864.png 1536w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/Screenshot_20240721_222109-2048x1152.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div><\/div>\n<\/div><\/div><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Moving on, could I get the Titan Ridge card to work? What about that special connector we need to attach to the motherboard?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Turns out the connector is completely unnecessary for the card to operate correctly. Years ago, someone posted a very simple solution: <a href=\"https:\/\/forum.level1techs.com\/t\/thunderbolt-3-titan-ridge-on-asus-x399-prime-a-in-windows-10\/141226\">Just bridge pins 3 and 5 of the connector, and it&#8217;ll work in any motherboard<\/a>. <\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240721_220724-1024x768.jpg\" alt=\"\" class=\"wp-image-255\" style=\"width:536px;height:auto\" srcset=\"https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240721_220724-1024x768.jpg 1024w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240721_220724-300x225.jpg 300w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240721_220724-768x576.jpg 768w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240721_220724-1536x1152.jpg 1536w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240721_220724-2048x1536.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">I wired up the 6-pin PCIe power connectors, but didn&#8217;t have the cables necessary to connect the USB headers (I would have needed something like <a href=\"https:\/\/90a1c75758623581b3f8-5c119c3de181c9857fcb2784776b17ef.ssl.cf2.rackcdn.com\/607492_955195_01_front_comping.jpg\">this<\/a>.) Might as well try anyway, right&#8230;?<\/p>\n\n\n\n<div class=\"wp-block-kadence-tabs alignnone\"><div class=\"kt-tabs-wrap kt-tabs-id247_6f5f97-8f kt-tabs-has-2-tabs kt-active-tab-1 kt-tabs-layout-tabs kt-tabs-tablet-layout-inherit kt-tabs-mobile-layout-inherit kt-tab-alignment-left \"><ul class=\"kt-tabs-title-list\"><li id=\"tab-photoview\" class=\"kt-title-item kt-title-item-1 kt-tabs-svg-show-always kt-tabs-icon-side-right kt-tab-title-active\"><a href=\"#tab-photoview\" data-tab=\"1\" class=\"kt-tab-title kt-tab-title-1 \"><span class=\"kt-title-text\">Photo View<\/span><\/a><\/li><li id=\"tab-screenshotview\" class=\"kt-title-item kt-title-item-2 kt-tabs-svg-show-always kt-tabs-icon-side-right kt-tab-title-inactive\"><a href=\"#tab-screenshotview\" data-tab=\"2\" class=\"kt-tab-title kt-tab-title-2 \"><span class=\"kt-title-text\">Screenshot View<\/span><\/a><\/li><\/ul><div class=\"kt-tabs-content-wrap\">\n<div class=\"wp-block-kadence-tab kt-tab-inner-content kt-inner-tab-1 kt-inner-tab_7db74f-ac\"><div class=\"kt-tab-inner-content-inner\">\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240721_222451-1024x768.jpg\" alt=\"\" class=\"wp-image-254\" style=\"width:850px;height:auto\" srcset=\"https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240721_222451-1024x768.jpg 1024w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240721_222451-300x225.jpg 300w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240721_222451-768x576.jpg 768w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240721_222451-1536x1152.jpg 1536w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240721_222451-2048x1536.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-tab kt-tab-inner-content kt-inner-tab-2 kt-inner-tab_bf5253-05\"><div class=\"kt-tab-inner-content-inner\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/Screenshot_20240721_222516-1024x576.png\" alt=\"\" class=\"wp-image-256\" srcset=\"https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/Screenshot_20240721_222516-1024x576.png 1024w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/Screenshot_20240721_222516-300x169.png 300w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/Screenshot_20240721_222516-768x432.png 768w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/Screenshot_20240721_222516-1536x864.png 1536w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/Screenshot_20240721_222516.png 1919w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div><\/div>\n<\/div><\/div><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">It just worked. <code>dmesg<\/code> showed a very lengthy bringup process and <code>lspci<\/code> showed the controller fully present and online.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I quickly grabbed a ThinkPad Thunderbolt dock and plugged in some devices, then attached the dock to the card.<\/p>\n\n\n\n<div class=\"wp-block-kadence-tabs alignnone\"><div class=\"kt-tabs-wrap kt-tabs-id247_4eeefb-1b kt-tabs-has-2-tabs kt-active-tab-1 kt-tabs-layout-tabs kt-tabs-tablet-layout-inherit kt-tabs-mobile-layout-inherit kt-tab-alignment-left \"><ul class=\"kt-tabs-title-list\"><li id=\"tab-photoview\" class=\"kt-title-item kt-title-item-1 kt-tabs-svg-show-always kt-tabs-icon-side-right kt-tab-title-active\"><a href=\"#tab-photoview\" data-tab=\"1\" class=\"kt-tab-title kt-tab-title-1 \"><span class=\"kt-title-text\">Photo View<\/span><\/a><\/li><li id=\"tab-screenshotview\" class=\"kt-title-item kt-title-item-2 kt-tabs-svg-show-always kt-tabs-icon-side-right kt-tab-title-inactive\"><a href=\"#tab-screenshotview\" data-tab=\"2\" class=\"kt-tab-title kt-tab-title-2 \"><span class=\"kt-title-text\">Screenshot View<\/span><\/a><\/li><\/ul><div class=\"kt-tabs-content-wrap\">\n<div class=\"wp-block-kadence-tab kt-tab-inner-content kt-inner-tab-1 kt-inner-tab_19fd02-65\"><div class=\"kt-tab-inner-content-inner\">\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240722_082125-1024x768.jpg\" alt=\"\" class=\"wp-image-257\" style=\"width:850px;height:auto\" srcset=\"https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240722_082125-1024x768.jpg 1024w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240722_082125-300x225.jpg 300w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240722_082125-768x576.jpg 768w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240722_082125-1536x1152.jpg 1536w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240722_082125-2048x1536.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-tab kt-tab-inner-content kt-inner-tab-2 kt-inner-tab_477e37-f8\"><div class=\"kt-tab-inner-content-inner\">\n<figure class=\"wp-block-image aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/Screenshot_20240722_081747-1024x576.png\" alt=\"\" class=\"wp-image-258\" srcset=\"https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/Screenshot_20240722_081747-1024x576.png 1024w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/Screenshot_20240722_081747-300x169.png 300w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/Screenshot_20240722_081747-768x432.png 768w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/Screenshot_20240722_081747-1536x864.png 1536w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/Screenshot_20240722_081747.png 1919w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div><\/div>\n<\/div><\/div><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">It worked. It just worked. I couldn&#8217;t believe it. I almost choked myself with laughter. Not a single piece of debugging was necessary, just a lot of checking cables and rebooting. I had no clue how this unholy contraption wasn&#8217;t catching fire, let alone functioning correctly, but it was.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">I&#8217;m guessing those USB headers were to facilitate plugging USB-C devices directly in to the port; when I tried to directly attach a flash drive, nothing happened.<\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">What about display output?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The primary use case for Thunderbolt is laptop docks. On top of PCIe traffic, Thunderbolt can transmit USB and DisplayPort traffic at the same time, muxing each data stream together. Thunderbolt controllers integrated into laptops have a DisplayPort output from the GPU routed into them, but the Titan Ridge card doesn&#8217;t have that luxury, being a &#8220;normal&#8221; PCIe device. It therefore provides two mini-PCIe input ports, one for each Thunderbolt port, and some mini-DP to DP cables to plug in to your GPU.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"950\" height=\"714\" src=\"https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/titanridgearrow.jpg\" alt=\"\" class=\"wp-image-259\" style=\"width:479px\" srcset=\"https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/titanridgearrow.jpg 950w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/titanridgearrow-300x225.jpg 300w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/titanridgearrow-768x577.jpg 768w\" sizes=\"auto, (max-width: 950px) 100vw, 950px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">In order to get display output working under this card, we&#8217;ll need to get a DisplayPort connection to these ports. I started with a cheap, $20 USB-C to DisplayPort adapter I had lying around.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240722_091300-1024x768.jpg\" alt=\"\" class=\"wp-image-260\" style=\"width:585px;height:auto\" srcset=\"https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240722_091300-1024x768.jpg 1024w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240722_091300-300x225.jpg 300w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240722_091300-768x576.jpg 768w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240722_091300-1536x1152.jpg 1536w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240722_091300-2048x1536.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">This seemed to work, but only at 1080p@60hz. My display is 1440p@144hz, and this setup only got a black screen with occasional flickers at that resolution. Bad connection? Crummy adapter?<em> <\/em>Either way, a better idea presented itself with two facts:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>I had purchased a second ThinkPad Thunderbolt dock from the flea market a few months back.<\/li>\n\n\n\n<li>The ThinkPad T480s I was driving this off of only had one Thunderbolt 3 port&#8230; But the PCIe enclosure had a downstream Thunderbolt port.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">So, I could take the second Thunderbolt dock, attach it to the PCIe enclosure, and use its DisplayPort output to reroute to the Titan Ridge display input, which would then drive a display over the first Thunderbolt dock all the way to my monitor.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Here&#8217;s a delusional diagram of this demented setup:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"791\" height=\"232\" src=\"https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/the_chain.png\" alt=\"\" class=\"wp-image-270\" srcset=\"https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/the_chain.png 791w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/the_chain-300x88.png 300w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/the_chain-768x225.png 768w\" sizes=\"auto, (max-width: 791px) 100vw, 791px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">And yes, it works.<\/p>\n\n\n\n<div class=\"wp-block-kadence-tabs alignnone\"><div class=\"kt-tabs-wrap kt-tabs-id247_fcb728-85 kt-tabs-has-3-tabs kt-active-tab-2 kt-tabs-layout-tabs kt-tabs-tablet-layout-inherit kt-tabs-mobile-layout-inherit kt-tab-alignment-left \"><ul class=\"kt-tabs-title-list\"><li id=\"tab-photoview\" class=\"kt-title-item kt-title-item-1 kt-tabs-svg-show-always kt-tabs-icon-side-right kt-tab-title-inactive\"><a href=\"#tab-photoview\" data-tab=\"1\" class=\"kt-tab-title kt-tab-title-1 \"><span class=\"kt-title-text\">Photo View<\/span><\/a><\/li><li id=\"tab-close-up\" class=\"kt-title-item kt-title-item-2 kt-tabs-svg-show-always kt-tabs-icon-side-right kt-tab-title-active\"><a href=\"#tab-close-up\" data-tab=\"2\" class=\"kt-tab-title kt-tab-title-2 \"><span class=\"kt-title-text\">Close-up<\/span><\/a><\/li><li id=\"tab-screenshotview\" class=\"kt-title-item kt-title-item-3 kt-tabs-svg-show-always kt-tabs-icon-side-right kt-tab-title-inactive\"><a href=\"#tab-screenshotview\" data-tab=\"3\" class=\"kt-tab-title kt-tab-title-3 \"><span class=\"kt-title-text\">Screenshot View<\/span><\/a><\/li><\/ul><div class=\"kt-tabs-content-wrap\">\n<div class=\"wp-block-kadence-tab kt-tab-inner-content kt-inner-tab-1 kt-inner-tab_5ac4d4-3d\"><div class=\"kt-tab-inner-content-inner\">\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"461\" src=\"https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240722_092448-1-1024x461.jpg\" alt=\"\" class=\"wp-image-264\" style=\"width:850px;height:auto\" srcset=\"https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240722_092448-1-1024x461.jpg 1024w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240722_092448-1-300x135.jpg 300w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240722_092448-1-768x346.jpg 768w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240722_092448-1-1536x691.jpg 1536w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240722_092448-1-2048x922.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-tab kt-tab-inner-content kt-inner-tab-2 kt-inner-tab_f601d2-1b\"><div class=\"kt-tab-inner-content-inner\">\n<figure class=\"wp-block-image aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240722_092806-1024x768.jpg\" alt=\"\" class=\"wp-image-263\" style=\"object-fit:cover\" srcset=\"https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240722_092806-1024x768.jpg 1024w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240722_092806-300x225.jpg 300w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240722_092806-768x576.jpg 768w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240722_092806-1536x1152.jpg 1536w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240722_092806-2048x1536.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-tab kt-tab-inner-content kt-inner-tab-3 kt-inner-tab_c2db7c-a6\"><div class=\"kt-tab-inner-content-inner\">\n<figure class=\"wp-block-image aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/Screenshot_20240722_092502-1024x576.png\" alt=\"\" class=\"wp-image-262\" srcset=\"https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/Screenshot_20240722_092502-1024x576.png 1024w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/Screenshot_20240722_092502-300x169.png 300w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/Screenshot_20240722_092502-768x432.png 768w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/Screenshot_20240722_092502-1536x864.png 1536w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/Screenshot_20240722_092502-2048x1152.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div><\/div>\n<\/div><\/div><\/div>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"622\" height=\"889\" src=\"https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/announcer.jpg\" alt=\"\" class=\"wp-image-269\" style=\"width:438px;height:auto\" srcset=\"https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/announcer.jpg 622w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/announcer-210x300.jpg 210w\" sizes=\"auto, (max-width: 622px) 100vw, 622px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">What else?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">As I write this, I&#8217;m still shocked that instead of opening a portal to a Lovecraftian horror dimension, this absurd setup just worked as expected. What more is there to say?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Well, we could try going in the other direction.<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\"><strong><em>What happens when you attach an eGPU enclosure to a Thunderbolt card?<\/em><\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The answer to this is much closer to what I was expecting.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I attempted this setup with two motherboards- an old Gigabyte GA-Z170P-SLI with an Intel i5-6500 in it, and my daily driver, the Gigabyte X570 Aorus Pro with a Ryzen 9 3950X. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The Intel board did not cooperate with the Thunderbolt card at all. Despite having a Thunderbolt header, the card refused to start unless I bridged the header as shown earlier. It then displayed a variety of symptoms, most often doing nothing but occasionally crashing or failing to POST. Eventually the behavior settled to &#8220;it crashes on hotplugging the enclosure, but if you try to boot with it plugged in the PCIe bus goes out to lunch&#8221;:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240722_121712-1024x768.jpg\" alt=\"\" class=\"wp-image-265\" style=\"width:619px;height:auto\" srcset=\"https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240722_121712-1024x768.jpg 1024w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240722_121712-300x225.jpg 300w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240722_121712-768x576.jpg 768w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240722_121712-1536x1152.jpg 1536w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240722_121712-2048x1536.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><em>The fact that Linux can&#8217;t read its own boot disk suggests that the PCIe bus crashed.<\/em><\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The X570 was the board I purchased this Thunderbolt card for originally. I daily drove it for a few years to use a Thunderbolt dock. I was able to bring up an NVMe drive with the enclosure attached without too much trouble (only a handful or reboots and kernel command-line changes&#8211; about par for the course with Thunderbolt) but my AMD GPU stubbornly refused to boot. Checking the dmesg logs, this appeared about 30 seconds after power on:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Nov 27 12:23:32 a kernel: &#91;drm:amdgpu_bo_init &#91;amdgpu]] *ERROR* Unable to set WC memtype for the aperture base\nNov 27 12:23:32 a kernel: &#91;drm:amdgpu_device_init.cold &#91;amdgpu]] *ERROR* sw_init of IP block &lt;gmc_v10_0&gt; failed -22<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This led me to this <a href=\"https:\/\/gitlab.freedesktop.org\/drm\/amd\/-\/issues\/1081\">open bug report<\/a>, which pointed out that, as I said earlier, that hot-plugging GPUs generally doesn&#8217;t work. Clearly my GPU was attempting to attach after boot and therefore failing.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">However, this motherboard has full awareness of Thunderbolt including BIOS options for it. By settings the &#8220;USB Type-C with Titan Ridge Boot Support&#8221; to enabled, I got the BIOS to detect the Thunderbolt-attached PCIe device on boot, and it came up successfully.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240722_144643-1-1024x768.jpg\" alt=\"\" class=\"wp-image-267\" style=\"width:590px;height:auto\" srcset=\"https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240722_144643-1-1024x768.jpg 1024w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240722_144643-1-300x225.jpg 300w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240722_144643-1-768x576.jpg 768w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240722_144643-1-1536x1152.jpg 1536w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/IMG_20240722_144643-1-2048x1536.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><em>Apparently KDE can&#8217;t detect this multi-GPU setup, so I had to only have the Thunderbolt GPU plugged in to get a display.<\/em><\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">So, not nearly as instantly functional as the other way around, and it only really works with help from the BIOS. But hey, I did get it working!<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"1024\" src=\"https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/gymnastics-1024x1024.jpg\" alt=\"\" class=\"wp-image-268\" style=\"width:567px;height:auto\" srcset=\"https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/gymnastics-1024x1024.jpg 1024w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/gymnastics-300x300.jpg 300w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/gymnastics-150x150.jpg 150w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/gymnastics-768x768.jpg 768w, https:\/\/nocoffei.com\/wp-content\/uploads\/2024\/07\/gymnastics.jpg 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading has-x-large-font-size\">Conclusion<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Certain people in my life continuously tell me that I&#8217;m cursed. I think they&#8217;re right&#8211; I can&#8217;t reliably use a computer without it breaking in some fashion or another.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><img decoding=\"async\" src=\"https:\/\/imgs.xkcd.com\/comics\/laptop_issues_2x.png\" alt=\"\"\/><figcaption class=\"wp-element-caption\"><em><a href=\"https:\/\/xkcd.com\/2083\/\">https:\/\/xkcd.com\/2083\/<\/a><\/em><br><em>Alternatively, <a href=\"https:\/\/xkcd.com\/1316\/\">https:\/\/xkcd.com\/1316\/<\/a><\/em><\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The nature of the curse, at least this year, seems to be &#8220;you cannot use a computer without it breaking, but you can construct Rube Goldberg machines worth over $900 at MSRP to force signals to travel further than reasonable and it&#8217;ll just work&#8221;.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I wonder what would happen if I bought another eGPU enclosure and continued the chain further.<br><br><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Lightning strikes&#8230; Then strikes again. And again. The gods are trying to smite me<\/p>\n","protected":false},"author":1,"featured_media":272,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-247","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/nocoffei.com\/index.php?rest_route=\/wp\/v2\/posts\/247","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nocoffei.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nocoffei.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nocoffei.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/nocoffei.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=247"}],"version-history":[{"count":0,"href":"https:\/\/nocoffei.com\/index.php?rest_route=\/wp\/v2\/posts\/247\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nocoffei.com\/index.php?rest_route=\/wp\/v2\/media\/272"}],"wp:attachment":[{"href":"https:\/\/nocoffei.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=247"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nocoffei.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=247"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nocoffei.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=247"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}