{"product_id":"growpros-4-viper-under-canopy-grow-lights-model-4-150w-dual-channel-80-red-white-far-red-730nm","title":"GrowPros 4' Viper Under Canopy Grow Lights Model 4 - 150W Dual Channel 80% Red + White \/ Far Red (730nm)","description":"\u003ch2\u003eBoost bud quality and increase yields by lighting up the lower canopy with a compact dual-channel system designed for deeper, more uniform flower development.\u003c\/h2\u003e\n\u003cp\u003e\u003cstrong\u003eGrowPros Solutions' first-ever under-canopy lights with dual channels\u003c\/strong\u003e are engineered to enhance the yield and color of lower flowers. These supplemental lights can significantly enlarge B-buds and C-buds, promoting better growth and development in areas that typically underperform. By targeting the understory, Growpros Solutions ensures a more uniform and abundant harvest, maximizing the potential of every plant.\u003c\/p\u003e\n\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003eDesigned for aggressive flowering strategies, Viper UCL Model 4 delivers \u003cstrong\u003eapproximately 80 percent red spectrum on Channel 1\u003c\/strong\u003e, with an \u003cstrong\u003eindependent 730nm far red Channel 2\u003c\/strong\u003e. This setup activates the \u003cstrong\u003eEmerson Effect\u003c\/strong\u003e, where deep red and far red light together increase photosynthetic efficiency beyond their individual impact. The result is improved \u003cstrong\u003elight penetration\u003c\/strong\u003e, \u003cstrong\u003ephytochrome shifting\u003c\/strong\u003e, and \u003cstrong\u003eearlier bud set\u003c\/strong\u003e.\u003c\/p\u003e\n\u003ch3 class=\"elementor-heading-title elementor-size-default\" style=\"text-align: center;\"\u003eADJUSTABLE SPECTRUM\u003c\/h3\u003e\n\u003cdiv data-settings='{\"background_background\":\"classic\"}' data-element_type=\"container\" data-id=\"b8cbdd1\" class=\"elementor-element elementor-element-b8cbdd1 e-flex e-con-boxed e-con e-parent e-lazyloaded\"\u003e\n\u003cdiv class=\"e-con-inner\"\u003e\n\u003cdiv data-settings='{\"background_background\":\"classic\"}' data-element_type=\"container\" data-id=\"567dbcc\" class=\"elementor-element elementor-element-567dbcc e-con-full e-flex e-con e-child\"\u003e\n\u003cdiv data-widget_type=\"text-editor.default\" data-element_type=\"widget\" data-id=\"a47eaa5\" class=\"elementor-element elementor-element-a47eaa5 elementor-widget elementor-widget-text-editor\"\u003e\n\u003cdiv class=\"elementor-widget-container\"\u003e\n\u003cscript src=\"https:\/\/cdn.jsdelivr.net\/npm\/chart.js\"\u003e\u003c\/script\u003e \u003cscript src=\"https:\/\/code.jquery.com\/jquery-3.6.0.min.js\"\u003e\u003c\/script\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cstyle\u003e\n\/* Chart Container *\/\n#chartcontainer_4ftuclm4 .chart-container4ftuclm4 {\nwidth: 100%;\nmargin: 10px auto;\ndisplay: flex;\njustify-content: center;\n}\n\n\/* Control Panels *\/\n#chartcontainer_4ftuclm4 #control-panels4ftuclm4 {\ndisplay: flex;\njustify-content: space-around;\nmargin-bottom: 20px;\nflex-wrap: wrap;\n}\n\n#chartcontainer_4ftuclm4 .control-panel4ftuclm4 {\nwidth: 100%;\nborder: 1px dashed #000000;\npadding: 20px;\nborder-radius: 2px;\nbox-shadow: 0 0 10px rgba(0, 0, 0, 0.1);\n}\n\n#chartcontainer_4ftuclm4 .slider-title {\nfont-family: Jost, sans-serif;\nfont-size: 20px;\nmargin-bottom: 15px;\ncolor: #000000;\n}\n\n#chartcontainer_4ftuclm4 .slider-paratitle {\ndisplay: flex;\nflex-direction: row;\njustify-content: space-between;\nmargin-top: 10px;\n}\n\n#chartcontainer_4ftuclm4 .slider-paratitle .current-value {\ntext-align: right;\nwidth: 100%;\nfont-weight: bold;\ncolor: #000000;\n}\n#chartcontainer_4ftuclm4 .slider-paratitle span {\ncolor:#cccccc;\n}\n\/* Custom Process Bar Styles *\/\n#chartcontainer_4ftuclm4 .process-container4ftuclm4 {\nwidth: 100%;\nheight: 16px;\nbackground-color: #333333;\nposition: relative;\ncursor: pointer;\nborder-radius:2px;\n}\n\n#chartcontainer_4ftuclm4 .process-bar {\nheight: 100%;\nbackground-color: #999999;\nwidth: 0;\nposition: absolute;\ntop: 0;\nleft: 0;\ntransform: translateX(0);\nwill-change: width, transform;\nborder-radius:2px;\n}\n\n#chartcontainer_4ftuclm4 .process-thumb {\nwidth: 20px;\nheight: 20px;\nbackground-color: #046e82;\nborder: 1px solid #111111;\nborder-radius: 2px;\nposition: absolute;\ntop: 50%;\ntransform: translate(-50%, -50%) translateX(0);\nleft: 0;\ncursor: pointer;\ntouch-action: none;\ntransition: none;\nwill-change: transform;\n}\n@media screen and (min-width: 768px) and (max-width: 1024px){\n#chartcontainer_4ftuclm4 .control-panel4ftuclm4 { padding:10px 20px;}\n#chartcontainer_4ftuclm4 .slider-title {\nfont-size:10px;\nmargin-bottom:8px ;\n}\n#chartcontainer_4ftuclm4 .process-container4ftuclm4 { height:14px; }\n#chartcontainer_4ftuclm4 .process-thumb { width: 16px; height: 22px; }\n#chartcontainer_4ftuclm4 .slider-paratitle span {font-size:12px;}\n}\n\/* Responsive adjustments *\/\n@media screen and (max-width: 767px) {\n#chartcontainer_4ftuclm4 #control-panels4ftuclm4 {\nflex-direction: column;\n}\n#chartcontainer_4ftuclm4 .control-panel4ftuclm4 {\nwidth: 100%;\nmargin-bottom: 20px;\npadding:10px;\n}\n#chartcontainer_4ftuclm4 .slider-title { font-size:8px; margin-bottom:4px; }\n#chartcontainer_4ftuclm4 .slider-title span { font-size: 7px; }\n#chartcontainer_4ftuclm4 .process-container4ftuclm4 { height:14px; }\n#chartcontainer_4ftuclm4 .process-thumb { width: 16px; height: 22px; }\n#chartcontainer_4ftuclm4 .slider-paratitle span { font-size:10px; }\n}\n\u003c\/style\u003e\n\u003cdiv data-settings='{\"background_background\":\"classic\"}' id=\"chartcontainer_4ftuclm4\" data-element_type=\"container\" data-id=\"b8cbdd1\" class=\"elementor-element elementor-element-b8cbdd1 e-flex e-con-boxed e-con e-parent e-lazyloaded\"\u003e\n\u003cdiv class=\"e-con-inner\"\u003e\n\u003cdiv data-settings='{\"background_background\":\"classic\"}' data-element_type=\"container\" data-id=\"567dbcc\" class=\"elementor-element elementor-element-567dbcc e-con-full e-flex e-con e-child\"\u003e\n\u003cdiv data-widget_type=\"text-editor.default\" data-element_type=\"widget\" data-id=\"a47eaa5\" class=\"elementor-element elementor-element-a47eaa5 elementor-widget elementor-widget-text-editor\"\u003e\n\u003cdiv class=\"elementor-widget-container\"\u003e\n\u003cdiv class=\"chart-container4ftuclm4\"\u003e\u003ccanvas height=\"610\" width=\"1221\" style=\"display: block; box-sizing: border-box; height: 305px; width: 610px;\" id=\"myChart_4ftuclm4\"\u003e\u003c\/canvas\u003e\u003c\/div\u003e\n\u003cscript\u003e\nvar chart4ftuclm4 = jQuery.noConflict(true);\nchart4ftuclm4(document).ready(function($) {\n\/\/ Chart.js Setup\nconst ctx = chart4ftuclm4('#myChart_4ftuclm4')[0].getContext('2d');\nlet chart;\n\nconst dataset14ftuclm4 = {\nlabel: 'Channel 1',\nlabels: ['','', '360', '', '', '', '', '395', '', '', '', '', '', '450', '', '', '', '', '', '500', '', '', '', '', '', '', '', '', '', '600', '', '', '', '', '660', '', '', '', '', '', '', '730', '', '', '', '', '', '780', '', '', '', '', '', ''],\ndata: [0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 2, 7, 12, 7.5, 3.6, 2.3, 2.5, 3.6, 4.8, 5.8, 6.8, 8, 8.6, 9.2, 9.6, 10.2, 10.43, 10.4, 10.5, 11.1, 16, 30, 60, 100, 50, 15, 6, 2.4, 1.1, 0.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]\n};\nconst dataset24ftuclm4 = {\nlabel: 'Channel 2',\ndata: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.4, 1.2, 2.6, 5.6, 12, 18.2, 21, 18.2, 12, 6, 2.7, 1.2, 0.2, 0, 0, 0]\n};\nconst colors = ['#111a39','#111a39','#111a39', '#111a39', '#111a39','#111a39','#111a39', '#111a39', '#162143', '#162143', '#162143', '#053390', '#1c4a9d', '#1c4a9d','#265aa8', '#3173b8', '#3698d5','#45bee3','#6fc4be', '#6ebf80', '#69b72d','#69b72d', '#6bb72d', '#79bc28','#97c626','#a8cc2b', '#c8d933','#d8e036', '#f1eb36','#f4c41c','#f19518', '#ed761b', '#e95619','#e62718','#e11713','#ce141b', '#b91c22', '#a91f24', '#951e23', '#851123', '#7f191e', '#7d191d','#76161b', '#6a1216', '#631014', '#5f0e12', '#51050a','#440104', '#380103','#230304','#221714', '#221714', '#221714','#221714', '#221714', '#221714','#221714', '#221714','#221714', '#221714'];\n\nlet scale1 = 1;\nlet scale2 = 1;\n\nfunction createGradient(ctx, chartArea, colors) {\nconst gradient = ctx.createLinearGradient(chartArea.left, 0, chartArea.right, 1);\ncolors.forEach((color, index) =\u003e {\ngradient.addColorStop(index \/ (colors.length - 1), color);\n});\nreturn gradient;\n}\n\nfunction createChart(labels, combinedData) {\nif (chart) {\nchart.destroy();\n}\n\nchart = new Chart(ctx, {\ntype: 'line',\ndata: {\nlabels: labels,\ndatasets: [\n{\ntype: 'line',\nlabel: 'PPF',\ndata: combinedData,\nborderWidth: 0.1,\nbackgroundColor: function(context) {\nconst chart = context.chart;\nconst {ctx, chartArea} = chart;\n\nif (!chartArea) {\nreturn null;\n}\n\nreturn createGradient(ctx, chartArea, colors);\n},\nborderColor: function(context) {\nconst chart = context.chart;\nconst {ctx, chartArea} = chart;\n\nif (!chartArea) {\nreturn null;\n}\n\nreturn createGradient(ctx, chartArea, colors);\n},\nfill: true,\ntension: 0.4 \/\/ Smoothing effect\n},\n{\ntype: 'line',\nlabel: 'Outline',\ndata: combinedData,\nborderWidth: 2,\nbackgroundColor: 'transparent',\nborderColor: '#000000', \/\/ Outline color\nfill: false,\ntension: 0.4\n}\n]\n},\noptions: {\nresponsive: true,\nmaintainAspectRatio: true,\nscales: {\nx: {\nstacked: true,\ngrid: {\ndisplay: false \/\/ Hide y-axis grid lines\n},\nticks: {\ncolor: '#000000',\nautoSkip: false, \/\/ Prevent auto-skipping of labels\nmaxRotation: 0, \/\/ Prevent label rotation\nminRotation: 0, \/\/ Prevent label rotation\nmaxTicksLimit: labels.length \/\/ Ensure all labels are shown\n},\nborder: {\nwidth:2,\ncolor: '#000000' \/\/ Change x-axis line color\n}\n},\ny: {\nbeginAtZero: true,\nmax: 100, \/\/ Set a static max value for y-axis to accommodate added values\ngrid: {\ncolor: '#000000',\n},\nborder: {\nwidth:2,\ncolor: '#000000' \/\/ Change y-axis line color\n},\nticks: {\ncolor: '#000000',\ncallback: function(value) {\nreturn value % 20 === 0 ? value + '%' : ''; \/\/ Custom label formatting\n}\n}\n}\n},\nevents: null,\nradius: 0,\nplugins: {\nfiller: {propagate: true}, \/\/ Enable filler\nlegend: { display: false },\n},\nanimation: {\nduration: 0 \/\/ Animation duration for smoother updates\n}\n}\n});\n}\n\nfunction combineData(data1, data2) {\nreturn data1.map((value, index) =\u003e {\nreturn value + data2[index];\n});\n}\n\nfunction updateChart() {\nconst scaledData1 = dataset14ftuclm4.data.map(value =\u003e value * scale1);\nconst scaledData2 = dataset24ftuclm4.data.map(value =\u003e value * scale2);\nconst combinedData = combineData(scaledData1, scaledData2);\n\nif (chart) {\nchart.data.datasets[0].data = combinedData;\nchart.data.datasets[1].data = combinedData; \/\/ Update outline dataset\nchart.options.animation.duration = 300;\nchart.update();\n}\n}\n\nfunction createProcessBar(containerId, valueId, maxWattage) { \/\/ Added maxWattage parameter\nconst $container = chart4ftuclm4(`#${containerId}`);\nconst $controlPanel = $container.closest('.control-panel4ftuclm4');\nconst $thumb = $container.find('.process-thumb');\nconst $bar = $container.find('.process-bar');\nconst $currentValue = chart4ftuclm4(`#${valueId}`);\nlet dragging = false;\nlet containerOffset = $controlPanel.offset().left;\nlet containerWidth = $controlPanel.width();\nlet processContainerWidth = $container.width();\nlet currentW = maxWattage; \/\/ Initialize to maxWattage\n\n\/\/ Update container metrics on resize\nfunction updateContainerMetrics() {\ncontainerOffset = $controlPanel.offset().left;\ncontainerWidth = $controlPanel.width();\nprocessContainerWidth = $container.width();\nsetBarByWattage(currentW);\n}\n\nchart4ftuclm4(window).on('resize', updateContainerMetrics);\n\n\/\/ Initialize container metrics\nupdateContainerMetrics();\n\n\/\/ Function to set the bar and thumb position based on wattage\nfunction setBarByWattage(wattage) {\ncurrentW = Math.min(Math.max(wattage, 0), maxWattage);\nconst touchRatio = currentW \/ maxWattage;\nconst thumbLeft = touchRatio * processContainerWidth;\n\n\/\/ Update bar width\n$bar.css('width', `${touchRatio * 100}%`);\n\/\/ Update thumb position\n$thumb.css('transform', `translate(-50%, -50%) translateX(${thumbLeft}px)`);\n\/\/ Update displayed value\n$currentValue.text(`${currentW.toFixed(0)}W`);\n\/\/ Update the corresponding scale variable and chart\nif (containerId === 'process-container14ftuclm4') {\nscale1 = currentW \/ maxWattage;\n} else if (containerId === 'process-container24ftuclm4') {\nscale2 = currentW \/ maxWattage;\n}\nupdateChart();\n}\n\n\/\/ Function to handle the dragging logic\nfunction handleDrag(pageX) {\nconst newLeft = pageX - containerOffset;\nconst clampedLeft = Math.min(Math.max(newLeft, 0), containerWidth);\nconst touchRatio = clampedLeft \/ containerWidth;\nconst newWattage = touchRatio * maxWattage;\nsetBarByWattage(newWattage);\n}\n\n\/\/ Throttle dragging using requestAnimationFrame\nlet rafId = null;\n\nfunction onDrag(pageX) {\nif (rafId) return; \/\/ If a frame is already requested, do nothing\nrafId = requestAnimationFrame(() =\u003e {\nhandleDrag(pageX);\nrafId = null;\n});\n}\n\n\/\/ Mouse events\n$thumb.on('mousedown', function(e) {\ne.preventDefault();\ndragging = true;\n});\n\nchart4ftuclm4(document).on('mousemove', function(e) {\nif (dragging) {\nonDrag(e.pageX);\n}\n});\n\nchart4ftuclm4(document).on('mouseup', function() {\ndragging = false;\n});\n\n\/\/ Touch events bound to control panel\n$controlPanel.on('touchstart', function(e) {\ne.preventDefault();\ndragging = true;\nconst touch = e.originalEvent.touches[0];\nonDrag(touch.pageX);\n});\n\nchart4ftuclm4(document).on('touchmove', function(e) {\nif (dragging) {\nconst touch = e.originalEvent.touches[0];\nonDrag(touch.pageX);\ne.preventDefault();\n}\n});\n\nchart4ftuclm4(document).on('touchend touchcancel', function() {\ndragging = false;\n});\n\n\/\/ Click on the control panel to set the thumb position\n$controlPanel.on('click', function(e) {\nconst pageX = e.pageX;\nonDrag(pageX);\n});\n\n\/\/ Initialize the bar to maxWattage\nsetBarByWattage(currentW);\n}\n\n\/\/ Initialize the chart\nfunction initializeChart() {\nconst scaledData1 = dataset14ftuclm4.data.map(value =\u003e value * scale1);\nconst scaledData2 = dataset24ftuclm4.data.map(value =\u003e value * scale2);\nconst initialCombinedData = combineData(scaledData1, scaledData2);\ncreateChart(dataset14ftuclm4.labels, initialCombinedData);\n}\n\n\/\/ Initial load\ninitializeChart();\n\n\/\/ Create Process Bars for Channel 1 and Channel 2 with different max wattages\ncreateProcessBar('process-container14ftuclm4', 'global-value14ftuclm4', 125); \/\/ Channel 1 with 125W max\ncreateProcessBar('process-container24ftuclm4', 'global-value24ftuclm4', 25); \/\/ Channel 2 with 25W max\n\n\/\/ Debounced Resize Handler to Redraw Chart on Screen Size Change\nlet resizeTimeout;\nchart4ftuclm4(window).on('resize', function(){\n\nclearTimeout(resizeTimeout);\nresizeTimeout = setTimeout(function(){\nif(chart){\nchart.resize();\n}\n\/\/ Update container metrics for process bars\nchart4ftuclm4('.process-container4ftuclm4').each(function(){\nconst containerId = chart4ftuclm4(this).attr('id');\nconst valueId = chart4ftuclm4(this).siblings('.slider-paratitle').find('.current-value').attr('id');\n\/\/ The process bars are already handling their own resize events\n\/\/ No additional action is needed here\n});\n}, 200); \/\/ Adjust the timeout as needed\n});\n});\n\u003c\/script\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv data-settings='{\"background_background\":\"classic\"}' data-element_type=\"container\" data-id=\"9f42342\" class=\"elementor-element elementor-element-9f42342 e-con-full e-flex e-con e-child\"\u003e\n\u003cdiv data-widget_type=\"heading.default\" data-element_type=\"widget\" data-id=\"9681445\" class=\"elementor-element elementor-element-9681445 elementor-widget__width-inherit elementor-widget elementor-widget-heading\"\u003e\n\u003cdiv class=\"elementor-widget-container\"\u003e\n\u003ch3 style=\"text-align: center;\" class=\"elementor-heading-title elementor-size-default\"\u003eSlide the Bar to See How the Spectrum Changes\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv id=\"control-panels4ftuclm4\" data-element_type=\"container\" data-id=\"214c828\" class=\"elementor-element elementor-element-214c828 e-flex e-con-boxed e-con e-child\"\u003e\n\u003cdiv class=\"e-con-inner\"\u003e\n\u003cdiv data-element_type=\"container\" data-id=\"0c28797\" class=\"elementor-element elementor-element-0c28797 e-con-full e-flex e-con e-child\"\u003e\n\u003cdiv data-widget_type=\"text-editor.default\" data-element_type=\"widget\" data-id=\"63a8a0a\" class=\"elementor-element elementor-element-63a8a0a elementor-widget elementor-widget-text-editor\"\u003e\n\u003cdiv class=\"elementor-widget-container\"\u003e\n\u003cdiv class=\"control-panel4ftuclm4\"\u003e\n\u003ch3 class=\"slider-title\"\u003eChannel 1: \u003cspan style=\"color: #ff3333;\"\u003e80% Red + White \u003c\/span\u003e\n\u003c\/h3\u003e\n\u003cdiv id=\"process-container14ftuclm4\" class=\"process-container4ftuclm4\"\u003e\n\u003cdiv style=\"width: 100%;\" class=\"process-bar\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv style=\"transform: translate(-50%, -50%) translateX(206.094px);\" class=\"process-thumb\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"slider-paratitle\"\u003e\n\u003cstrong\u003e\u003cspan style=\"color: rgb(0, 0, 0);\" class=\"value\"\u003e0W\u003c\/span\u003e\u003c\/strong\u003e \u003cspan id=\"global-value14ftuclm4\" class=\"current-value\"\u003e125W\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv data-element_type=\"container\" data-id=\"063d3cd\" class=\"elementor-element elementor-element-063d3cd e-con-full e-flex e-con e-child\"\u003e\n\u003cdiv data-widget_type=\"text-editor.default\" data-element_type=\"widget\" data-id=\"1d6dc00\" class=\"elementor-element elementor-element-1d6dc00 elementor-widget elementor-widget-text-editor\"\u003e\n\u003cdiv class=\"elementor-widget-container\"\u003e\n\u003cdiv class=\"control-panel4ftuclm4\"\u003e\n\u003ch3 class=\"slider-title\"\u003eChannel 2: \u003cspan style=\"color: #cc0000;\"\u003eFar Red (730nm)\u003c\/span\u003e\n\u003c\/h3\u003e\n\u003cdiv id=\"process-container24ftuclm4\" class=\"process-container4ftuclm4\"\u003e\n\u003cdiv style=\"width: 100%;\" class=\"process-bar\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv style=\"transform: translate(-50%, -50%) translateX(206.094px);\" class=\"process-thumb\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"slider-paratitle\"\u003e\n\u003cstrong\u003e\u003cspan style=\"color: rgb(0, 0, 0);\" class=\"value\"\u003e0W\u003c\/span\u003e\u003c\/strong\u003e \u003cspan id=\"global-value24ftuclm4\" class=\"current-value\"\u003e25W\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003ch3\u003eUsage Guidelines\u003c\/h3\u003e\n\u003cdiv style=\"text-align: left;\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0856\/1428\/files\/GrowPros-Under-Canopy-Light-4ft-Model-3-Attentions_3452f4f5-44a8-45c5-a535-472c1623bd70.jpg?v=1738839923\u0026amp;width=700\" alt=\"Installation safety instructions for under-canopy lighting\" style=\"float: none;\"\u003e\u003c\/div\u003e\n\u003ch3\u003eFeatures\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCompatible with 120V or 240V power cords (sold separately)\u003c\/li\u003e\n\u003cli\u003eOptional accessories: stands, bench bridge stands, and interconnect cable (all sold separately)\u003c\/li\u003e\n\u003cli\u003eDual Channel Spectrum - Red + White \/ Far Red optimized for veg and flowering stages\u003c\/li\u003e\n\u003cli\u003eDimmable via RJ12 Data Cable, compatible with most major controllers\u003c\/li\u003e\n\u003cli\u003eEnhances plant growth by improving light exposure to lower canopy areas\u003c\/li\u003e\n\u003cli\u003eBuilt-in driver, compact slim profile, and low-heat operation\u003c\/li\u003e\n\u003cli\u003eBoosts lower flower and fruit growth to match top canopy size and quality\u003c\/li\u003e\n\u003cli\u003eImproves structure, density, and color for higher-quality harvests\u003c\/li\u003e\n\u003cli\u003eEasy to maneuver during harvest, especially with bench bridge stands\u003c\/li\u003e\n\u003cli\u003eQuick to install or remove between grow cycles\u003c\/li\u003e\n\u003cli\u003ePower + data chaining via single connection - no extra components required\u003c\/li\u003e\n\u003cli\u003eDo not mix or daisy-chain different models or lengths\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eWhat's Included?\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGrowPros 4' Under Canopy Grow Lights Model 4 Dual Channel 150W\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eInterconnect Cables and Power Cords\u003c\/h3\u003e\n\u003cp\u003eGrow Pros Solutions Under Canopy Lights \u003cstrong\u003edo not include a power cord\u003c\/strong\u003e. Each lighting run requires at least one \u003cstrong\u003eUnder Canopy Light Power Cord 240V with Attached Data Cable\u003c\/strong\u003e to connect the first fixture to a power source and enable data communication. Additional fixtures can then be connected using the \u003cstrong\u003eUnder Canopy Light Interconnect Cable\u003c\/strong\u003e, which carries both power and data between lights.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eInterconnect cables are not required when mounting lights end-to-end. \u003c\/strong\u003eThey are only needed to bridge gaps of up to 4 feet between fixtures or to create a U-shaped layout with two rows of lights on a single bench.\u003c\/p\u003e\n\u003cp\u003eRefer to the daisy-chain chart below for the maximum number of fixtures that can be connected to a single power cord based on your operating voltage.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eOrder your cords and cables below:\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eInterconnect Cables\u003c\/li\u003e\n\u003cli\u003ePower Cords\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eMaximum Power Electrical Data\u003c\/h3\u003e\n\u003cp\u003e\u003cstrong\u003eAC Current\u003c\/strong\u003e: 120V - 1.27A | 208V - 0.73A | 220V - 0.68A | 240V - 0.63A | 277V - 0.53A\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eAC Power\u003c\/strong\u003e: 120V - 152W | 208V - 151W | 220V - 150.5W | 240V - 150W | 277V - 148W\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003ePower Factor\u003c\/strong\u003e: 120V - 0.99 | 208V - 0.98 | 220V - 0.97 | 240V - 0.96 | 277V - 0.94\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eDaisy Chain\u003c\/strong\u003e: 8 pcs @120V | 12 pcs @208V | 14 pcs @220V | 16 pcs @240V | 18 pcs @277V\u003c\/p\u003e\n\u003ch3\u003eController\u003c\/h3\u003e\n\u003cp\u003eA controller with an RJ-12 signal is required to operate. We recommend the GrowPros controller.\u003c\/p\u003e\n\u003ch3\u003eDownload Resources\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSpec Sheet\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"GrowPros","offers":[{"title":"120V \/ No","offer_id":62852581916753,"sku":"wrt1791545170218","price":130.65,"currency_code":"USD","in_stock":true},{"title":"120V \/ Pair of Stands (+$25)","offer_id":62852581949521,"sku":"hzt1791545170219","price":154.0,"currency_code":"USD","in_stock":true},{"title":"240V \/ No","offer_id":62852581982289,"sku":"lca1791545170220","price":128.7,"currency_code":"USD","in_stock":true},{"title":"240V \/ Pair of Stands (+$25)","offer_id":62852582015057,"sku":"qmd1791545170221","price":134.2,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1044\/6562\/9265\/files\/growpros-4-viper-under-canopy-grow-lights-model-4---150w-dual-channel-80-red-whi_1.jpg?v=1791545176","url":"https:\/\/satinflowclad.shop\/products\/growpros-4-viper-under-canopy-grow-lights-model-4-150w-dual-channel-80-red-white-far-red-730nm","provider":"My Store","version":"1.0","type":"link"}