{"product_id":"cansub","title":"CANsub: CAN interface with Webpage UI streaming tool","description":"\u003cp\u003e\u003cspan\u003eThe CANsub.2 and CANsub.4 stream CAN and CAN FD data in real time over USB or Ethernet. Configuration and monitoring run through webCAN, a browser-based tool hosted on the device itself — no drivers or software install. The device also works with python-can, SavvyCAN, and PlotJuggler, and exposes an open REST API (configuration) and WebSocket API (data streaming) for custom integrations.\u003c\/span\u003e\u003c\/p\u003e\n\u003ch3\u003e\u003cbr\u003e\u003c\/h3\u003e\n\u003ch3\u003ewebCAN: the interface built into the device\u003c\/h3\u003e\n\u003cp\u003eMost CAN interfaces require you to install proprietary software and drivers before you can see a single frame. The CANsub skips that step: webCAN is served directly from the device over HTTPS, so any modern browser on Windows, macOS, Linux, iOS, or Android can open it — laptop, tablet, or phone, with no OS-specific build to install.\u003c\/p\u003e\n\u003cp\u003ewebCAN runs entirely client-side. Nothing is loaded from an external CDN — decoding, plotting, and export all happen locally in your browser, and DBC file assignments persist in local browser storage. That makes it a fit for air-gapped networks, vehicles without cellular coverage, and facilities where outbound internet access is restricted.\u003c\/p\u003e\n\u003cp\u003eInside webCAN you can:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eSet bit-rates manually or use auto-detection\u003c\/li\u003e\n\u003cli\u003eApply hardware ID filters, silent mode, and CAN error monitoring\u003c\/li\u003e\n\u003cli\u003eBuild custom transmit sequences, with an optional DBC encoder\u003c\/li\u003e\n\u003cli\u003eStream from multiple CAN channels in parallel at 20,000+ frames\/second\u003c\/li\u003e\n\u003cli\u003eLoad and assign DBC files per channel for real-time decoding\u003c\/li\u003e\n\u003cli\u003eReview summary statistics by CAN ID or by decoded signal\u003c\/li\u003e\n\u003cli\u003eView, filter, export, and re-import trace data — up to 2 million frames\u003c\/li\u003e\n\u003cli\u003eDecode multi-frame transport protocols, including J1939 TP, ISO-TP, and NMEA 2000 Fast Packets\u003c\/li\u003e\n\u003cli\u003ePlot decoded signals in real time, with a fullscreen mode for shared monitors\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003ch3\u003eGetting started\u003c\/h3\u003e\n\u003cp\u003eConnect your CAN bus to the device, then connect the CANsub to your PC with a USB-C cable. Once it powers on and shows its URL on the display, enter that URL in your browser and webCAN loads immediately. Set your bit-rate — or let the device auto-detect it — and start streaming. Load a DBC file if you want signals decoded on the way in.\u003c\/p\u003e\n\u003ch3\u003e\u003cbr\u003e\u003c\/h3\u003e\n\u003ch3\u003eReverse engineer CAN signals with a Claude Code skill\u003c\/h3\u003e\n\u003cp\u003eMost CAN bus data is proprietary. Without the OEM's decoding rules, a raw CAN frame is just a string of bytes, and finding one signal's ID, start bit, length, byte order, scale, and offset by hand can take hours. CSS Electronics built an open-source Claude Code skill that automates this against a CANsub: it surveys the bus, correlates candidate bits against a reference signal, isolates the exact field with a bit search, fits the scale and offset, and outputs a DBC file you can load directly into webCAN.\u003c\/p\u003e\n\u003cp\u003e\u003ciframe width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/jQDqWuL5-nQ?si=qBkNl6oaSDw6ZSzV\" title=\"YouTube video player\"\u003e\u003c\/iframe\u003e\u003c\/p\u003e\n\u003cp\u003eThis walkthrough uses a CANsub.2, python-can, and the skill to decode speed, RPM, and more in minutes, across three examples: speed and RPM from an OBD2 reference in under 5 minutes, vehicle speed from a dashboard video via vision OCR, and gauge positions from a simple human-input reference. With a clean reference signal, the skill decodes 90%+ of signals in 5 to 10 minutes each — roughly 95% faster than manual tools like SavvyCAN. The video passed 100,000 views in its first month, which makes it a useful reference point for engineers evaluating the CANsub for diagnostics or reverse engineering.\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003ch3\u003eWhere engineers put it to work\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eBench or field diagnostics over USB\u003c\/strong\u003e. Connect the CAN bus (via the device's connector, plus a DB9 or DB25-to-DB9 adapter as needed) and plug into a laptop over USB-C. Configure bit-rates or auto-detect them, then stream from all channels immediately — useful for diagnostics or reverse engineering on the spot.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eA shared device in a test lab\u003c\/strong\u003e. Connect the CANsub to your network over Ethernet and give the team a bookmarked URL. Multiple engineers can pull data from the same device without installing anything.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eWireless access on a vehicle or machine\u003c\/strong\u003e. Connect the CANsub to a WiFi router mounted on the asset. Technicians connect from a laptop or tablet without opening a panel or plugging in directly — mTLS keeps the connection restricted to authorized users even if the WiFi itself is compromised.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eRemote access from anywhere\u003c\/strong\u003e. Pair the device with an LTE router and a VPN, and engineers can reach it from across the building or across the world, streaming data or sending commands as though they were on-site.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eCustom tooling\u003c\/strong\u003e. Build against the REST and WebSocket APIs directly — including pure web apps — using the JS\/TS libraries as a starting point. The python-can integration covers scripted automation and data processing.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003e\u003cbr\u003e\u003c\/h3\u003e\n\u003ch3\u003eChoosing between the CANsub.2 and CANsub.4\u003cbr\u003e\n\u003c\/h3\u003e\n\u003ctable width=\"100%\" style=\"width: 99.9802%; height: 156.818px;\"\u003e\n\u003ctbody\u003e\n\u003ctr style=\"height: 19.6023px;\"\u003e\n\u003ctd style=\"width: 33.3333%; height: 19.6023px;\"\u003e \u003c\/td\u003e\n\u003ctd style=\"width: 33.3333%; height: 19.6023px;\"\u003e\u003cstrong\u003eCANsub.2\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd style=\"width: 33.3334%; height: 19.6023px;\"\u003e\u003cstrong\u003eCANsub.4\u003c\/strong\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 19.6023px;\"\u003e\n\u003ctd style=\"width: 33.3333%; height: 19.6023px;\"\u003eCAN channels\u003c\/td\u003e\n\u003ctd style=\"width: 33.3333%; height: 19.6023px;\"\u003e2\u003c\/td\u003e\n\u003ctd style=\"width: 33.3334%; height: 19.6023px;\"\u003e4\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 78.4091px;\"\u003e\n\u003ctd style=\"width: 33.3333%; height: 78.4091px;\"\u003eConnector\u003c\/td\u003e\n\u003ctd style=\"width: 33.3333%; height: 78.4091px;\"\u003e2 x standard DB9 (D-sub9) — plugs directly into standard DB9 adapter cables (e.g. \u003ca href=\"https:\/\/www.gridconnect.com\/products\/can-bus-cable-odb9-connector-2-meter?variant=44728569266199\" title=\"CAN bus cable ODB2 connector - 2 meter DB9 OBD2\"\u003eOBD2-DB9\u003c\/a\u003e, \u003ca href=\"https:\/\/www.gridconnect.com\/products\/can-bus-cable-j1939-type-2-connector-2-meter\" title=\"CAN bus cable J1939 Type 2 connector - 2 meter\"\u003eJ1939-DB9\u003c\/a\u003e)\u003c\/td\u003e\n\u003ctd style=\"width: 33.3334%; height: 78.4091px;\"\u003e1 x DB25 (D-sub25) — requires the optional \u003ca href=\"https:\/\/www.gridconnect.com\/products\/db25-to-4x-db9-4-can-cable-adapter?variant=41532240822295\" title=\"DB25-to-4x-DB9: 4 x CAN Cable Adapter\"\u003eDB25-4xDB9 adapter cable\u003c\/a\u003e to break it into 4 standard DB9 connections\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 19.6023px;\"\u003e\n\u003ctd style=\"width: 33.3333%; height: 19.6023px;\"\u003ePin out matches\u003c\/td\u003e\n\u003ctd style=\"width: 33.3333%; height: 19.6023px;\"\u003e\u003ca href=\"https:\/\/www.gridconnect.com\/collections\/canedge-series\" title=\"CANedge products\"\u003eCANedge\u003c\/a\u003e\u003c\/td\u003e\n\u003ctd style=\"width: 33.3334%; height: 19.6023px;\"\u003e\u003ca href=\"https:\/\/www.gridconnect.com\/products\/canmod-router-4-can-to-1-can-or-usb-converter?variant=41532240363543\" title=\"CANmod.router: 4 CAN to 1 CAN (or USB) Converter\"\u003eCANmod.router\u003c\/a\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 19.6023px;\"\u003e\n\u003ctd style=\"width: 33.3333%; height: 19.6023px;\"\u003eMPN\u003c\/td\u003e\n\u003ctd style=\"width: 33.3333%; height: 19.6023px;\"\u003eD025\u003c\/td\u003e\n\u003ctd style=\"width: 33.3334%; height: 19.6023px;\"\u003eD026\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\n\u003cp\u003eBoth models share the same electronics, firmware, software, and API — the only differences are channel count, connector type, and price.\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\n\u003ch3\u003ePinouts\u003c\/h3\u003e\n\u003cp\u003e\u003cstrong\u003eCANsub.2\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eThe CANsub.2 uses two DB9 ports for the two galvanically isolated CAN buses.\u003c\/p\u003e\n\u003cdiv style=\"text-align: left;\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0026\/8579\/6388\/files\/cansub2_buses_480x480.png?v=1786038373\" alt=\"The CANsub.2 uses two DB9 ports for the two galvanically isolated CAN buses.\" style=\"margin-bottom: 16px; float: none;\"\u003e\u003c\/div\u003e\n\u003cp\u003e\u003cstrong\u003eYellow\u003c\/strong\u003e\u003cspan\u003e: CAN-H \u003c\/span\u003e\u003cstrong\u003eGreen\u003c\/strong\u003e\u003cspan\u003e: CAN-L \u003c\/span\u003e\u003cstrong\u003eBlack\u003c\/strong\u003e\u003cspan\u003e: Isolated GND (ground\u003c\/span\u003e\u003c\/p\u003e\n\u003ctable class=\"docutils align-default\" id=\"id3\"\u003e\n\u003ccaption\u003e\u003cbr\u003e\u003c\/caption\u003e\n\u003ccolgroup\u003e \u003ccol\u003e \u003ccol\u003e \u003ccol\u003e \u003c\/colgroup\u003e\n\u003cthead\u003e\n\u003ctr class=\"row-odd\"\u003e\n\u003cth class=\"head\"\u003e\n\u003cp\u003ePin #\u003c\/p\u003e\n\u003c\/th\u003e\n\u003cth class=\"head\"\u003e\n\u003cp\u003eCH1\u003c\/p\u003e\n\u003c\/th\u003e\n\u003cth class=\"head\"\u003e\n\u003cp\u003eCH2\u003c\/p\u003e\n\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr class=\"row-even\"\u003e\n\u003ctd\u003e\n\u003cp\u003e1\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd\u003e\n\u003cp\u003eNC\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd\u003e\n\u003cp\u003eNC\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"row-odd\"\u003e\n\u003ctd\u003e\n\u003cp\u003e2\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd\u003e\n\u003cp\u003eCAN L\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd\u003e\n\u003cp\u003eCAN L\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"row-even\"\u003e\n\u003ctd\u003e\n\u003cp\u003e3\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd\u003e\n\u003cp\u003eGND (isolated)\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd\u003e\n\u003cp\u003eGND (isolated)\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"row-odd\"\u003e\n\u003ctd\u003e\n\u003cp\u003e4\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd\u003e\n\u003cp\u003eNC\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd\u003e\n\u003cp\u003eNC\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"row-even\"\u003e\n\u003ctd\u003e\n\u003cp\u003e5\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd\u003e\n\u003cp\u003eNC\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd\u003e\n\u003cp\u003eNC\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"row-odd\"\u003e\n\u003ctd\u003e\n\u003cp\u003e6\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd\u003e\n\u003cp\u003eGND (isolated, optional)\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd\u003e\n\u003cp\u003eGND (isolated, optional)\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"row-even\"\u003e\n\u003ctd\u003e\n\u003cp\u003e7\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd\u003e\n\u003cp\u003eCAN H\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd\u003e\n\u003cp\u003eCAN H\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"row-odd\"\u003e\n\u003ctd\u003e\n\u003cp\u003e8\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd\u003e\n\u003cp\u003eNC\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd\u003e\n\u003cp\u003eNC\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"row-even\"\u003e\n\u003ctd\u003e\n\u003cp\u003e9\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd\u003e\n\u003cp\u003eNC\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd\u003e\n\u003cp\u003eNC\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003ch3\u003e\u003cbr\u003e\u003c\/h3\u003e\n\u003cp\u003e\u003cstrong\u003eCANsub.4\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eThe CANsub.4 uses one DB25 port for the four galvanically isolated CAN buses.\u003c\/p\u003e\n\u003cdiv style=\"text-align: left;\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0026\/8579\/6388\/files\/cansub4_buses_480x480.png?v=1786038373\" alt=\"The CANsub.4 uses one DB25 port for the four galvanically isolated CAN buses.\" style=\"margin-bottom: 16px; float: none;\"\u003e\u003c\/div\u003e\n\u003cp\u003eThe pins associated with each bus are grouped as indicated by the dashed lines.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eYellow\u003c\/strong\u003e: CAN-H \u003cstrong\u003eGreen\u003c\/strong\u003e: CAN-L \u003cstrong\u003eBlack\u003c\/strong\u003e: Isolated GND (ground)\u003c\/p\u003e\n\u003ctable class=\"docutils align-default\" id=\"id3\"\u003e\n\u003ccaption\u003e\u003cbr\u003e\u003c\/caption\u003e\n\u003cthead\u003e\n\u003ctr class=\"row-odd\"\u003e\n\u003cth class=\"head\"\u003e\n\u003cp\u003eBus\u003c\/p\u003e\n\u003c\/th\u003e\n\u003cth class=\"head\"\u003e\n\u003cp\u003eFunction\u003c\/p\u003e\n\u003c\/th\u003e\n\u003cth class=\"head\"\u003e\n\u003cp\u003ePin #\u003c\/p\u003e\n\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr class=\"row-even\"\u003e\n\u003ctd rowspan=\"3\"\u003e\n\u003cp\u003eCH1\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd\u003e\n\u003cp\u003eCAN-H\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd\u003e\n\u003cp\u003e12\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"row-odd\"\u003e\n\u003ctd\u003e\n\u003cp\u003eCAN-L\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd\u003e\n\u003cp\u003e13\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"row-even\"\u003e\n\u003ctd\u003e\n\u003cp\u003eIsolated GND\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd\u003e\n\u003cp\u003e25\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"row-odd\"\u003e\n\u003ctd rowspan=\"3\"\u003e\n\u003cp\u003eCH2\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd\u003e\n\u003cp\u003eCAN-H\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd\u003e\n\u003cp\u003e22\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"row-even\"\u003e\n\u003ctd\u003e\n\u003cp\u003eCAN-L\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd\u003e\n\u003cp\u003e21\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"row-odd\"\u003e\n\u003ctd\u003e\n\u003cp\u003eIsolated GND\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd\u003e\n\u003cp\u003e9\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"row-even\"\u003e\n\u003ctd rowspan=\"3\"\u003e\n\u003cp\u003eCH3\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd\u003e\n\u003cp\u003eCAN-H\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd\u003e\n\u003cp\u003e18\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"row-odd\"\u003e\n\u003ctd\u003e\n\u003cp\u003eCAN-L\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd\u003e\n\u003cp\u003e17\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"row-even\"\u003e\n\u003ctd\u003e\n\u003cp\u003eIsolated GND\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd\u003e\n\u003cp\u003e5\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"row-odd\"\u003e\n\u003ctd rowspan=\"3\"\u003e\n\u003cp\u003eCH4\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd\u003e\n\u003cp\u003eCAN-H\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd\u003e\n\u003cp\u003e1\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"row-even\"\u003e\n\u003ctd\u003e\n\u003cp\u003eCAN-L\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd\u003e\n\u003cp\u003e2\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"row-odd\"\u003e\n\u003ctd\u003e\n\u003cp\u003eIsolated GND\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd\u003e\n\u003cp\u003e14\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003ch3\u003e\u003cbr\u003e\u003c\/h3\u003e\n\u003ch3\u003eIs the CANsub the right tool for your use case?\u003c\/h3\u003e\n\u003cp\u003eThe CANsub is built for real-time streaming to a connected client — a laptop running webCAN, python-can, or a custom app. If you instead need a device that logs CAN and LIN data standalone to an SD card over days, weeks, or months with no PC attached, look at the \u003ca href=\"https:\/\/www.gridconnect.com\/collections\/canedge-series\" title=\"CANedge products\"\u003eCANedge series\u003c\/a\u003e instead. The two aren't mutually exclusive: many teams use a CANsub for live diagnostics and a CANedge for unattended field logging.\u003c\/p\u003e\n\u003cp\u003eIf your primary need is CAN routing or gateway functionality — merging, splitting, or filtering buses — the CANmod.router covers that role and can also stream over USB, though it lacks webCAN, Ethernet, and the display, and timestamps at 1000 microseconds versus 1 microsecond on the CANsub. For streaming as the primary task, the CANsub is the more direct fit.\u003c\/p\u003e\n\u003ch3\u003e\u003cbr\u003e\u003c\/h3\u003e\n\u003ch3\u003eOrder Options\u003c\/h3\u003e\n\u003ctable width=\"100%\" style=\"width: 99.9802%; height: 98.0114px;\"\u003e\n\u003ctbody\u003e\n\u003ctr style=\"height: 39.2045px;\"\u003e\n\u003ctd style=\"width: 33.3333%; height: 39.2045px;\"\u003e SKU\u003c\/td\u003e\n\u003ctd style=\"width: 33.3333%; height: 39.2045px;\"\u003eCAN channels\u003c\/td\u003e\n\u003ctd style=\"width: 33.3334%; height: 39.2045px;\"\u003e    \u003cbr\u003eManufacturer Part # (MPN)\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 19.6023px;\"\u003e\n\u003ctd style=\"width: 33.3333%; height: 19.6023px;\"\u003eGC-CSS-CANSUB2\u003c\/td\u003e\n\u003ctd style=\"width: 33.3333%; height: 19.6023px;\"\u003e2\u003c\/td\u003e\n\u003ctd style=\"width: 33.3334%; height: 19.6023px;\"\u003eD025\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 19.6023px;\"\u003e\n\u003ctd style=\"width: 33.3333%; height: 19.6023px;\"\u003eGC-CSS-CANSUB4\u003c\/td\u003e\n\u003ctd style=\"width: 33.3333%; height: 19.6023px;\"\u003e4\u003c\/td\u003e\n\u003ctd style=\"width: 33.3334%; height: 19.6023px;\"\u003eD026\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e","brand":"CSS Electronics ApS","offers":[{"title":"2 (CANsub.2)","offer_id":45378026995735,"sku":"GC-CSS-CANSUB2","price":439.95,"currency_code":"USD","in_stock":true},{"title":"4 (CANsub.4)","offer_id":45378027028503,"sku":"GC-CSS-CANSUB4","price":619.95,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0026\/8579\/6388\/files\/CANsub2-CAN-bus-interface-usb-ethernet-2x-CAN.jpg?v=1786035598","url":"https:\/\/www.gridconnect.com\/products\/cansub","provider":"Grid Connect","version":"1.0","type":"link"}