{"product_id":"tetra2go-4-port-wi-fi-pixel-controller","title":"Tetra2Go 4-Port Wi-Fi Pixel Controller","description":"\u003c!--\nRGB2Go Tetra2Go product description block\nPaste into the Shopify product description HTML\/code view.\nNo product images are embedded here; the product gallery already carries photos.\n--\u003e\n\n\u003cstyle\u003e\n  .rgb2go-product-copy,\n  .rgb2go-product-copy * {\n    box-sizing: border-box;\n  }\n\n  .rgb2go-product-copy {\n    --r2g-red: #d62828;\n    --r2g-green: #2e9d52;\n    --r2g-blue: #2364d2;\n    --r2g-ink: #172033;\n    --r2g-muted: #5d687a;\n    --r2g-soft: #f6f8fb;\n    --r2g-line: #e3e8f0;\n    --r2g-warn: #fff5df;\n    --r2g-warn-line: #f2c66d;\n    color: var(--r2g-ink);\n    font-size: 20px;\n    line-height: 1.55;\n  }\n\n  .rgb2go-product-copy a {\n    color: var(--r2g-blue);\n    text-decoration: underline;\n    text-underline-offset: 3px;\n  }\n\n  .rgb2go-product-copy .r2g-hero {\n    border: 1px solid var(--r2g-line);\n    border-radius: 18px;\n    padding: 28px;\n    background:\n      radial-gradient(circle at top left, rgba(214,40,40,.11), transparent 28%),\n      radial-gradient(circle at top right, rgba(35,100,210,.12), transparent 30%),\n      linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);\n    margin: 0 0 18px;\n  }\n\n  .rgb2go-product-copy .r2g-eyebrow {\n    display: inline-flex;\n    align-items: center;\n    gap: 8px;\n    margin: 0 0 8px;\n    color: var(--r2g-blue);\n    font-weight: 700;\n    letter-spacing: .04em;\n    text-transform: uppercase;\n    font-size: 1.1rem;\n  }\n\n  .rgb2go-product-copy h3,\n  .rgb2go-product-copy h4 {\n    color: var(--r2g-ink);\n    line-height: 1.2;\n    margin: 0 0 10px;\n  }\n\n  .rgb2go-product-copy h3 {\n    font-size: clamp(2rem, 3vw, 2.65rem);\n  }\n\n  .rgb2go-product-copy h4 {\n    font-size: 1.35rem;\n  }\n\n  .rgb2go-product-copy p {\n    margin: 0 0 12px;\n  }\n\n  .rgb2go-product-copy .r2g-card p,\n  .rgb2go-product-copy .r2g-section p,\n  .rgb2go-product-copy .r2g-list li,\n  .rgb2go-product-copy .r2g-warning p,\n  .rgb2go-product-copy .r2g-note p {\n    font-size: 1.16rem;\n  }\n\n  .rgb2go-product-copy .r2g-spec span,\n  .rgb2go-product-copy .r2g-tier span {\n    font-size: 1.12rem;\n  }\n\n  .rgb2go-product-copy .r2g-lede {\n    color: var(--r2g-muted);\n    font-size: 1.35rem;\n    max-width: 760px;\n  }\n\n  .rgb2go-product-copy .r2g-chip-row {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 8px;\n    margin-top: 16px;\n  }\n\n  .rgb2go-product-copy .r2g-chip {\n    border: 1px solid var(--r2g-line);\n    border-radius: 999px;\n    padding: 10px 15px;\n    background: #fff;\n    color: #2f3a4d;\n    font-size: 1.1rem;\n    font-weight: 650;\n  }\n\n  .rgb2go-product-copy .r2g-grid {\n    display: grid;\n    grid-template-columns: repeat(3, minmax(0, 1fr));\n    gap: 12px;\n    margin: 16px 0;\n    align-items: stretch;\n  }\n\n  .rgb2go-product-copy .r2g-card {\n    border: 1px solid var(--r2g-line);\n    border-radius: 16px;\n    padding: 20px;\n    background: #fff;\n    height: 100%;\n  }\n\n  .rgb2go-product-copy .r2g-card.red { border-top: 4px solid var(--r2g-red); }\n  .rgb2go-product-copy .r2g-card.green { border-top: 4px solid var(--r2g-green); }\n  .rgb2go-product-copy .r2g-card.blue { border-top: 4px solid var(--r2g-blue); }\n\n  .rgb2go-product-copy .r2g-card p,\n  .rgb2go-product-copy .r2g-note p,\n  .rgb2go-product-copy .r2g-warning p {\n    margin-bottom: 0;\n  }\n\n  .rgb2go-product-copy .r2g-section {\n    border: 1px solid var(--r2g-line);\n    border-radius: 18px;\n    padding: 20px;\n    background: #fff;\n    margin: 16px 0;\n  }\n\n  .rgb2go-product-copy .r2g-section.soft {\n    background: var(--r2g-soft);\n  }\n\n  .rgb2go-product-copy .r2g-list {\n    margin: 10px 0 0;\n    padding-left: 1.2rem;\n  }\n\n  .rgb2go-product-copy .r2g-list li {\n    margin: 6px 0;\n  }\n\n  .rgb2go-product-copy .r2g-specs {\n    display: grid;\n    grid-template-columns: repeat(2, minmax(0, 1fr));\n    gap: 10px;\n    margin-top: 12px;\n  }\n\n  .rgb2go-product-copy .r2g-spec {\n    border: 1px solid var(--r2g-line);\n    border-radius: 14px;\n    padding: 16px;\n    background: #fff;\n  }\n\n  .rgb2go-product-copy .r2g-spec strong {\n    display: block;\n    margin-bottom: 3px;\n    color: var(--r2g-ink);\n  }\n\n  .rgb2go-product-copy .r2g-spec span {\n    color: var(--r2g-muted);\n  }\n\n  .rgb2go-product-copy .r2g-warning {\n    border: 1px solid var(--r2g-warn-line);\n    border-left: 6px solid #e6a400;\n    border-radius: 16px;\n    padding: 20px;\n    background: var(--r2g-warn);\n    margin: 16px 0;\n  }\n\n  .rgb2go-product-copy .r2g-note {\n    border: 1px solid #cfe0ff;\n    border-left: 6px solid var(--r2g-blue);\n    border-radius: 16px;\n    padding: 20px;\n    background: #f4f8ff;\n    margin: 16px 0;\n  }\n\n  .rgb2go-product-copy .r2g-ports {\n    display: grid;\n    grid-template-columns: repeat(4, minmax(0, 1fr));\n    gap: 8px;\n    margin-top: 12px;\n  }\n\n  .rgb2go-product-copy .r2g-port {\n    border: 1px solid var(--r2g-line);\n    border-radius: 12px;\n    padding: 14px;\n    background: #fff;\n    text-align: center;\n  }\n\n  .rgb2go-product-copy .r2g-port strong {\n    display: block;\n  }\n\n  .rgb2go-product-copy .r2g-port span {\n    color: var(--r2g-muted);\n    font-size: 1.1rem;\n  }\n\n  .rgb2go-product-copy .r2g-performance {\n    display: grid;\n    grid-template-columns: repeat(4, minmax(0, 1fr));\n    gap: 10px;\n    margin-top: 12px;\n  }\n\n  .rgb2go-product-copy .r2g-tier {\n    border: 1px solid var(--r2g-line);\n    border-radius: 14px;\n    padding: 16px;\n    background: #fff;\n  }\n\n  .rgb2go-product-copy .r2g-tier strong {\n    display: block;\n    margin-bottom: 3px;\n  }\n\n  .rgb2go-product-copy .r2g-tier.recommended {\n    border-color: rgba(46,157,82,.45);\n    background: #f3fbf6;\n  }\n\n  .rgb2go-product-copy .r2g-license {\n    font-size: 1.12rem;\n    color: var(--r2g-muted);\n  }\n\n  @media (max-width: 820px) {\n    .rgb2go-product-copy .r2g-grid,\n    .rgb2go-product-copy .r2g-specs,\n    .rgb2go-product-copy .r2g-performance {\n      grid-template-columns: 1fr;\n    }\n\n    .rgb2go-product-copy .r2g-ports {\n      grid-template-columns: repeat(2, minmax(0, 1fr));\n    }\n  }\n\u003c\/style\u003e\n\n\u003cdiv class=\"rgb2go-product-copy\"\u003e\n  \u003csection class=\"r2g-hero\"\u003e\n    \u003cdiv class=\"r2g-eyebrow\"\u003e4-port Wi-Fi pixel controller\u003c\/div\u003e\n    \u003ch3\u003eCompact controller, clean pixel runs.\u003c\/h3\u003e\n    \u003cp class=\"r2g-lede\"\u003eTetra2Go is an ESP32-based pixel controller for builders who want four local outputs in a small, repairable board. It ships with WLED installed, works with xLights, and supports 5V, 12V, and 24V 3-wire pixels.\u003c\/p\u003e\n    \u003cdiv class=\"r2g-chip-row\"\u003e\n      \u003cspan class=\"r2g-chip\"\u003e4 local pixel outputs\u003c\/span\u003e\n      \u003cspan class=\"r2g-chip\"\u003eExpandable to 8 outputs\u003c\/span\u003e\n      \u003cspan class=\"r2g-chip\"\u003eWLED 16.0.1 installed\u003c\/span\u003e\n      \u003cspan class=\"r2g-chip\"\u003e2.4GHz Wi-Fi\u003c\/span\u003e\n      \u003cspan class=\"r2g-chip\"\u003exLights compatible\u003c\/span\u003e\n      \u003cspan class=\"r2g-chip\"\u003eModular and repairable\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003cdiv class=\"r2g-grid\"\u003e\n    \u003cdiv class=\"r2g-card red\"\u003e\n      \u003ch4\u003eBuilt for pixels\u003c\/h4\u003e\n      \u003cp\u003eFour fused outputs make it easier to split props into cleaner runs instead of pushing everything through one long string.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"r2g-card green\"\u003e\n      \u003ch4\u003eBeginner-friendly WLED\u003c\/h4\u003e\n      \u003cp\u003eWLED comes pre-installed so you can connect, configure your outputs, and start testing without compiling firmware.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"r2g-card blue\"\u003e\n      \u003ch4\u003eRoom to grow\u003c\/h4\u003e\n      \u003cp\u003eThe expansion header supports add-on modules such as Ethernet, differential, SD card, and audio-reactive modules. Modules sold separately.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003csection class=\"r2g-section soft\"\u003e\n    \u003ch4\u003eWhat it supports\u003c\/h4\u003e\n    \u003cul class=\"r2g-list\"\u003e\n      \u003cli\u003e5V, 12V, and 24V pixels and strip, using 3-wire data only. No clock\/data pixel types.\u003c\/li\u003e\n      \u003cli\u003e5V data output through 33 ohm resistors.\u003c\/li\u003e\n      \u003cli\u003eWLED effects, presets, segments, playlists, and network control.\u003c\/li\u003e\n      \u003cli\u003exLights use through WLED-supported network protocols.\u003c\/li\u003e\n      \u003cli\u003eOptional Ethernet, Differential, SD Card, and Audio-Reactive Modules through the expansion header.\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"r2g-section\"\u003e\n    \u003ch4\u003ePower layout\u003c\/h4\u003e\n    \u003cp\u003eTetra2Go uses one DC power input for the controller and the four local pixel outputs. Set the voltage jumper correctly for your pixel voltage before powering up.\u003c\/p\u003e\n    \u003cdiv class=\"r2g-specs\"\u003e\n      \u003cdiv class=\"r2g-spec\"\u003e\n        \u003cstrong\u003eDC power input\u003c\/strong\u003e\n        \u003cspan\u003eFeeds the onboard step-down supply for the ESP32 and powers ports 1-4.\u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"r2g-spec\"\u003e\n        \u003cstrong\u003eExpansion options\u003c\/strong\u003e\n        \u003cspan\u003eAdd-on modules can extend the controller for Ethernet, differential outputs, SD card storage, or audio-reactive builds.\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003cdiv class=\"r2g-warning\"\u003e\n    \u003ch4\u003ePower-up safety note\u003c\/h4\u003e\n    \u003cp\u003eReverse polarity protection helps protect the controller, but it does not protect pixels connected to the outputs. After wiring DC power, power the controller with no pixels connected first. Confirm polarity and settings before plugging in your pixels.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n  \u003csection class=\"r2g-section\"\u003e\n    \u003ch4\u003eRecommended pixel counts\u003c\/h4\u003e\n    \u003cp\u003eThe ESP32 can drive a lot of pixels, but performance depends on pixel count, frame rate, effects, Wi-Fi quality, and your layout. For a smooth beginner experience, start smaller and grow once everything is working.\u003c\/p\u003e\n    \u003cdiv class=\"r2g-performance\"\u003e\n      \u003cdiv class=\"r2g-tier recommended\"\u003e\n        \u003cstrong\u003eRecommended\u003c\/strong\u003e\n        \u003cspan\u003e500 pixels\/output\u003cbr\u003e2,000 total pixels\u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"r2g-tier\"\u003e\n        \u003cstrong\u003eVery good\u003c\/strong\u003e\n        \u003cspan\u003e800 pixels\/output\u003cbr\u003e3,200 total pixels\u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"r2g-tier\"\u003e\n        \u003cstrong\u003eGood\u003c\/strong\u003e\n        \u003cspan\u003e1,000 pixels\/output\u003cbr\u003e4,000 total pixels\u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"r2g-tier\"\u003e\n        \u003cstrong\u003eOkay\u003c\/strong\u003e\n        \u003cspan\u003eUp to 8 outputs\u003cbr\u003ewith differential module\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cp style=\"margin-top:12px;\"\u003eFor runs over about 200 pixels on an output, plan on proper power injection. The controller output limit is 5A max per output, 20A total across the four local outputs.\u003c\/p\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"r2g-section soft\"\u003e\n    \u003ch4\u003eQuick specs\u003c\/h4\u003e\n    \u003cdiv class=\"r2g-specs\"\u003e\n      \u003cdiv class=\"r2g-spec\"\u003e\n\u003cstrong\u003eController revision\u003c\/strong\u003e\u003cspan\u003eRevision 1.4\u003c\/span\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"r2g-spec\"\u003e\n\u003cstrong\u003eProcessor\u003c\/strong\u003e\u003cspan\u003eESP32 based\u003c\/span\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"r2g-spec\"\u003e\n\u003cstrong\u003eWi-Fi\u003c\/strong\u003e\u003cspan\u003e2.4GHz only\u003c\/span\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"r2g-spec\"\u003e\n\u003cstrong\u003eDimensions\u003c\/strong\u003e\u003cspan\u003e115mm x 58mm, about 4.5\" x 2.25\"\u003c\/span\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"r2g-spec\"\u003e\n\u003cstrong\u003eOutput current\u003c\/strong\u003e\u003cspan\u003e5A max per output, 20A total\u003c\/span\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"r2g-spec\"\u003e\n\u003cstrong\u003ePixel voltage\u003c\/strong\u003e\u003cspan\u003e5V, 12V, or 24V pixels\/strip\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"r2g-section\"\u003e\n    \u003ch4\u003eOutput GPIO map\u003c\/h4\u003e\n    \u003cdiv class=\"r2g-ports\"\u003e\n      \u003cdiv class=\"r2g-port\"\u003e\n\u003cstrong\u003ePort 1\u003c\/strong\u003e\u003cspan\u003eGPIO2\u003c\/span\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"r2g-port\"\u003e\n\u003cstrong\u003ePort 2\u003c\/strong\u003e\u003cspan\u003eGPIO13\u003c\/span\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"r2g-port\"\u003e\n\u003cstrong\u003ePort 3\u003c\/strong\u003e\u003cspan\u003eGPIO12\u003c\/span\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"r2g-port\"\u003e\n\u003cstrong\u003ePort 4\u003c\/strong\u003e\u003cspan\u003eGPIO14\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003cdiv class=\"r2g-note\"\u003e\n    \u003ch4\u003eOpen source firmware\u003c\/h4\u003e\n    \u003cp class=\"r2g-license\"\u003eTetra2Go ships with RGB2Go-branded WLED 16.0.1 firmware. This firmware is based on WLED and is licensed under the EUPL v1.2 or later. Source code is available at \u003ca href=\"https:\/\/github.com\/jasonsomers\/RGB2Go-WLED\"\u003egithub.com\/jasonsomers\/RGB2Go-WLED\u003c\/a\u003e. Version-specific source is available through the tagged releases in that repository. More WLED information is available at \u003ca href=\"https:\/\/github.com\/Aircoookie\/WLED\" rel=\"noopener\" target=\"_blank\"\u003egithub.com\/Aircoookie\/WLED\u003c\/a\u003e.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e","brand":"RGB 2 Go","offers":[{"title":"Default Title","offer_id":67602721603620,"sku":"Tetra2Go","price":59.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0714\/9839\/9780\/files\/20250703_084023_1.jpg?v=1791176470","url":"https:\/\/electroeshop.com\/products\/tetra2go-4-port-wi-fi-pixel-controller","provider":"Electroeshop","version":"1.0","type":"link"}