This guide walks you through the complete setup, from hardware connections to software testing, ensuring everything works together.
- Hardware Setup
- Power Connections
- LED Tube Connection
- Network Configuration
- Controller Configuration
- Software Installation
- Testing Procedure
- Troubleshooting
- ✅ Raspberry Pi (any model with Ethernet port)
- ✅ T-790K LED Controller
- ✅ DMX512 LED Tube (24 pixels/meter)
- ✅ Mean Well LRS-350-24 Power Supply (24V, 350W)
- ✅ Ethernet cable
- ✅ Power cables
- ✅ LED tube connection cable
- ✅ MicroSD card (for Raspberry Pi, 8GB minimum)
- ✅ Power adapter for Raspberry Pi
┌─────────────┐
│ Power Outlet│
└──────┬──────┘
│
├─────────────────┐
│ │
┌──────▼──────┐ ┌──────▼──────┐
│ Power │ │ Power │
│ Supply │ │ Adapter │
│ (24V) │ │ (5V) │
└──────┬──────┘ └──────┬──────┘
│ │
│ │
┌──────▼──────┐ ┌──────▼──────┐
│ T-790K │ │ Raspberry │
│ Controller │ │ Pi │
└──────┬──────┘ └──────┬──────┘
│ │
│ │
│ Ethernet Cable
│ │
│ ┌────▼────┐
│ │ Network │
│ │ Switch/ │
│ │ Router │
│ └────┬─────┘
│ │
│ (Same Network)
│ │
└─────────────────┘
│
┌──────▼──────┐
│ LED Tube │
└────────────┘
-
Input Power (AC)
- Connect AC power cord to power supply
- Ensure voltage switch matches your region (110V or 220V)
- Power supply has screw terminals labeled:
L(Line/Hot) - Connect to one AC wireN(Neutral) - Connect to other AC wireFG(Ground) - Connect to ground wire
-
Output Power (DC 24V)
- Locate DC output terminals:
V+or+(Positive)V-or-(Negative/Common)
- DO NOT connect LED tube yet - we'll do this after controller setup
- Locate DC output terminals:
-
Power Supply Verification
- Turn on power supply
- Check LED indicator (should light up)
- Measure output voltage with multimeter (should read ~24V DC)
- Turn off power supply before proceeding
- Connect Raspberry Pi power adapter (5V, 2-3A)
- Insert microSD card with Raspberry Pi OS
- Connect to monitor/keyboard or use SSH (headless setup)
The LED tube has connection points at both ends:
- Input end: Receives power and data
- Output end: Can connect to next tube (if chaining)
-
Identify Connection Points
- LED tube typically has 4 wires:
- Red: +24V (Power positive)
- Black: GND (Power ground)
- Green/White: Data signal
- Blue/Yellow: Clock signal (if applicable)
- LED tube typically has 4 wires:
-
Connect to Controller
- Connect LED tube to Port 1 of T-790K controller
- Controller ports have screw terminals or connectors
- Match wire colors to controller labels:
- Power: V+ and V- (or GND)
- Data: D+ or Data
- Clock: C+ or Clock (if needed)
-
Power Connection
- Connect power supply output to controller:
- Power supply V+ → Controller V+ input
- Power supply V- → Controller V- input
- Controller distributes power to LED ports
- Connect power supply output to controller:
-
Verify Connections
- Double-check all connections are secure
- Ensure no loose wires
- Check for short circuits
-
Connect Ethernet Cable
- Connect Raspberry Pi to router/switch
- Connect T-790K controller to same router/switch
-
Find Raspberry Pi IP Address
# On Raspberry Pi, run: hostname -I # Example output: 192.168.1.50
-
Configure Static IP (Optional but Recommended)
# Edit network configuration sudo nano /etc/dhcpcd.conf # Add at the end: interface eth0 static ip_address=192.168.1.50/24 static routers=192.168.1.1 static domain_name_servers=192.168.1.1 # Save and reboot sudo reboot
-
Configure WiFi
sudo raspi-config # Navigate to: System Options > Wireless LAN # Enter SSID and password
-
Find IP Address
hostname -I
-
Connect Controller to Network
- Connect Ethernet cable to controller
- Controller should get IP via DHCP automatically
-
Find Controller IP Address
Method 1: Controller LCD Display
- Power on controller
- Check LCD screen for IP address
- Note the IP (e.g., 192.168.1.100)
Method 2: Router Admin Panel
- Log into router (usually 192.168.1.1)
- Check DHCP client list
- Look for device named "T-790K" or similar
Method 3: Network Scan
# On Raspberry Pi, scan network nmap -sn 192.168.1.0/24 # Look for devices on the network
Method 4: Ping Test
# Try common IP ranges ping 192.168.1.100 ping 192.168.1.101 # Controller should respond if IP is correct
-
Set Static IP on Controller (Recommended)
- Access controller web interface (if available)
- Or use controller's LCD menu to set static IP
- Recommended IP: 192.168.1.100 (or similar)
# From Raspberry Pi, test connectivity
ping 192.168.1.100 # Replace with controller IP
# Should see:
# 64 bytes from 192.168.1.100: icmp_seq=1 ttl=64 time=1.23 msIf ping fails:
- Check Ethernet cables
- Verify both devices on same network
- Check router/switch connections
- Verify controller is powered on
-
Power On Controller
- Connect power supply to controller
- Turn on power supply
- Controller should boot up (LED indicators)
-
Check Controller Display
- LCD should show:
- Model: T-790K
- IP address
- Status information
- LCD should show:
-
Configure Protocol
- Controller should support Art-Net by default
- If needed, access configuration:
- Use controller buttons/menu
- Or web interface (if available)
- Set to Art-Net mode
-
Configure DMX Universe
- Set Universe to 1 (default)
- Verify port configuration
- Ensure Port 1 is enabled
-
Test Controller
- Controller may have built-in test mode
- Check manual for test button/function
- LEDs should respond if working
# Update system
sudo apt update
sudo apt upgrade -y
# Install Node.js (version 18)
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs
# Verify installation
node --version # Should show v18.x.x or higher
npm --version # Should show 9.x.x or higher# Navigate to project directory
cd led-control
# Install dependencies
npm install
# Verify installation
ls node_modules # Should show installed packages# Edit the example files to set correct IP
nano examples/simple-test.js
# Change this line:
host: '192.168.1.100', # Replace with your controller IP- Power supply connected and verified (24V output)
- LED tube connected to controller Port 1
- Controller powered on and showing IP address
- Raspberry Pi powered on and connected to network
- Both devices on same network
- Network connectivity verified (ping test successful)
- Node.js installed on Raspberry Pi
- Project dependencies installed
- Controller IP address configured in code
# On Raspberry Pi, test network connection
ping 192.168.1.100 # Your controller IP
# Should get responses
# Press Ctrl+C to stopExpected Result: Successful ping responses
If Failed: Check network connections, IP addresses
# Run simple test
cd led-control
node examples/simple-test.jsWhat to Expect:
- Console shows "Starting LED test..."
- LEDs turn RED (2 seconds)
- LEDs turn GREEN (2 seconds)
- LEDs turn BLUE (2 seconds)
- LEDs turn WHITE (2 seconds)
- LEDs turn OFF (1 second)
- Console shows "Test complete!"
If LEDs Don't Respond:
- Check LED tube power connection
- Verify controller is receiving data
- Check DMX address settings
- Verify port 1 is enabled
# Run rainbow effect
node examples/rainbow-effect.jsWhat to Expect:
- Smooth rainbow animation across LED strip
- Colors continuously cycling
- No flickering
- Smooth transitions
To Stop: Press Ctrl+C
If Not Working:
- Check update rate (may be too fast/slow)
- Verify all pixels are responding
- Check for network latency
# Run chase effect
node examples/chase-effect.jsWhat to Expect:
- Moving light effect
- Smooth motion across strip
- Consistent brightness
To Stop: Press Ctrl+C
Create a test file:
nano test-manual.jsPaste this code:
const LEDController = require('./index');
const leds = new LEDController({
protocol: 'artnet',
host: '192.168.1.100', // Your controller IP
pixelsPerMeter: 24,
tubeLength: 1
});
console.log('Setting pixel 0 to red...');
leds.setPixel(0, 255, 0, 0);
leds.update();
setTimeout(() => {
console.log('Setting pixel 5 to green...');
leds.setPixel(5, 0, 255, 0);
leds.update();
setTimeout(() => {
console.log('Setting pixel 10 to blue...');
leds.setPixel(10, 0, 0, 255);
leds.update();
setTimeout(() => {
console.log('Setting all to white...');
leds.setAll(255, 255, 255);
leds.update();
setTimeout(() => {
console.log('Clearing...');
leds.clear();
process.exit(0);
}, 2000);
}, 2000);
}, 2000);
}, 2000);Run it:
node test-manual.jsExpected Result: Individual pixels light up in sequence
Check Power:
- Verify power supply is on
- Measure voltage at LED tube (should be ~24V)
- Check power connections are secure
- Verify controller is receiving power
Check Data Connection:
- Verify data wire is connected
- Check wire polarity (if applicable)
- Try different port on controller
- Check for loose connections
Check Controller:
- Verify controller is powered on
- Check controller status LEDs
- Verify port is enabled
- Check DMX address settings
Ping Fails:
# Check if devices are on same network
ip addr show # On Raspberry Pi
# Compare network addresses (should match first 3 numbers)
# Check router/switch
# Verify both devices connected to same network deviceSolutions:
- Use wired connection (more reliable)
- Check Ethernet cables
- Restart router/switch
- Set static IPs on both devices
- Check firewall settings
RGB Channel Order:
- Some LED strips use different channel order
- Try swapping RGB values
- Check LED tube documentation
DMX Address:
- Verify starting DMX address
- Check if address offset needed
- Some controllers start at channel 1, others at 0
Network Issues:
- Check network latency:
ping -c 10 192.168.1.100 - Use wired connection instead of WiFi
- Check for network congestion
Power Issues:
- Verify adequate power supply capacity
- Check for voltage drops
- Ensure proper grounding
Update Rate:
- Reduce update frequency if too fast
- Increase delay between updates
"Cannot find module":
# Reinstall dependencies
npm install"Connection refused":
- Verify controller IP address
- Check network connectivity
- Verify controller is powered on
"Port already in use":
- Close other instances
- Check for background processes
- Restart Raspberry Pi
Enable verbose logging by modifying index.js:
// Add at the beginning of update() method
console.log('Sending data:', this.ledBuffer);
console.log('Host:', this.host);
console.log('Universe:', this.universe);After complete setup, verify:
- Power supply provides 24V DC
- LED tube receives power
- Controller is powered and shows IP
- Raspberry Pi is on network
- Ping test successful
- Node.js installed and working
- Project dependencies installed
- Simple test runs successfully
- LEDs respond to commands
- Colors are correct
- Effects work smoothly
Once everything is working:
-
Experiment with Colors
leds.setAll(255, 128, 0); // Orange leds.update();
-
Create Custom Effects
- Modify existing effects
- Create new patterns
- Combine multiple effects
-
Expand System
- Add more LED tubes
- Use multiple controller ports
- Create complex patterns
-
Integrate with Other Systems
- Web interface
- Sensor input
- Audio visualization
- Time-based scheduling
- Disconnect power before making connections
- Double-check wire polarities
- Use appropriate wire gauges
- Ensure proper grounding
- Don't exceed power supply capacity
- Keep connections secure and protected
Controller IP: 192.168.1.100 (change as needed)
Raspberry Pi IP: 192.168.1.50 (change as needed)
Universe: 1
Port: 1
Protocol: artnet
Pixels: 24 per meter
Test Command:
node examples/simple-test.jsNetwork Test:
ping 192.168.1.100If issues persist:
- Review troubleshooting section
- Check all connections
- Verify network settings
- Test with minimal configuration
- Consult controller manual
- Check LED tube specifications