<div align="center">
# ๐ ESP-Linker
### Professional Wireless GPIO Control for ESP8266
[](https://pypi.org/project/esp-linker)
[](https://pypi.org/project/esp-linker/)
[](https://opensource.org/licenses/MIT)
[](https://pepy.tech/project/esp-linker)
[](https://github.com/skr-electronics-lab/esp-linker)
[](https://www.youtube.com/@skr_electronics_lab)
[](https://www.instagram.com/skr_electronics_lab)
**๐ฏ Transform your ESP8266 into a powerful wireless GPIO controller**
*Complete IoT development platform with PyFirmata-inspired interface*
[๐ Documentation](https://www.skrelectronicslab.com/esp-linker) โข [๐ Quick Start](#-quick-start-guide) โข [๐ก Examples](#-advanced-usage) โข [๐ฅ Video Tutorials](https://www.youtube.com/@skr_electronics_lab)
</div>
---
## ๐ **What is ESP-Linker?**
**ESP-Linker** is a comprehensive IoT development platform created by **SKR Electronics Lab** that revolutionizes ESP8266 development. It provides professional wireless GPIO control with a familiar PyFirmata-inspired interface, making IoT development accessible to everyone from beginners to professionals.
### ๐ฏ **Why Choose ESP-Linker?**
| Traditional ESP8266 Development | ESP-Linker Advantage |
|--------------------------------|----------------------|
| Complex WiFi setup code | Interactive WiFi wizard |
| Manual device discovery | Automatic mDNS discovery |
| Basic GPIO control | Professional API with error handling |
| No device management | Multi-device management system |
| Command-line only | CLI tools + Web dashboard |
| Separate firmware needed | Built-in firmware (365KB) |
## โจ **Complete Feature Overview**
<details>
<summary><h3>๐ก <strong>Wireless GPIO Control System</strong></h3></summary>
Transform your ESP8266 into a powerful wireless GPIO controller with professional-grade features:
#### ๐ **Digital I/O Operations**
- **Digital Write**: Control LEDs, relays, motors with `board.write(pin, value)`
- **Digital Read**: Read button states, sensor outputs with `board.read(pin)`
- **Pull-up Support**: Built-in pull-up resistor configuration for reliable readings
- **Pin State Caching**: Optimized performance with intelligent state management
#### โก **PWM (Pulse Width Modulation)**
- **8 PWM Channels**: Simultaneous control of multiple PWM outputs
- **0-1023 Resolution**: Fine-grained control for precise applications
- **LED Brightness Control**: Smooth dimming and color mixing
- **Motor Speed Control**: Variable speed control for DC motors
- **Servo Positioning**: Precise servo angle control (0-180ยฐ)
#### ๐ **Analog Input System**
- **10-bit ADC**: High-resolution analog readings (0-1024)
- **A0 Pin Support**: Read sensors, potentiometers, voltage dividers
- **Real-time Sampling**: Continuous data collection for monitoring
- **Calibration Support**: Built-in calibration for accurate measurements
#### ๏ฟฝ **Batch Operations**
- **Multiple Pin Control**: Efficient bulk GPIO operations
- **Atomic Transactions**: Ensure synchronized pin state changes
- **Performance Optimization**: Reduced network overhead for complex operations
</details>
<details>
<summary><h3>๐ <strong>Intelligent Auto-Discovery & Device Management</strong></h3></summary>
Professional device management system for seamless multi-device operations:
#### ๐ **mDNS Auto-Discovery**
- **Zero-Configuration**: Automatic device detection without IP addresses
- **Network Scanning**: Intelligent network topology discovery
- **Service Broadcasting**: ESP8266 devices announce themselves automatically
- **Cross-Platform Support**: Works on Windows, Linux, macOS networks
#### ๐ฑ **Multi-Device Management**
- **Device Registration**: Persistent device database with automatic updates
- **Centralized Control**: Manage multiple ESP8266 boards from single interface
- **Device Grouping**: Organize devices by location, function, or project
- **Status Monitoring**: Real-time health checks and connectivity status
#### ๐ **Connection Health Monitoring**
- **Auto-Retry Logic**: Intelligent reconnection with exponential backoff
- **Heartbeat System**: Continuous connectivity verification
- **Failover Support**: Automatic switching between available devices
- **Network Resilience**: Handles WiFi disconnections and network changes
#### ๐พ **Persistent Configuration**
- **Device Profiles**: Save device settings, pin configurations, and preferences
- **Configuration Backup**: Export/import device configurations
- **Version Control**: Track configuration changes and rollback support
</details>
<details>
<summary><h3>โก <strong>Professional CLI Tools Suite</strong></h3></summary>
Comprehensive command-line interface for professional development workflows:
#### ๐ง **Firmware Management**
- **Built-in Firmware**: 365KB complete ESP8266 firmware included
- **Visual Progress Bars**: Real-time flashing progress with tqdm integration
- **Auto-Port Detection**: Intelligent ESP8266 board detection
- **Multiple Baud Rates**: Support for 115200, 460800, 921600 baud rates
- **Chip Verification**: Automatic chip ID and flash size detection
#### ๐ถ **WiFi Configuration Wizard**
- **Interactive Setup**: Step-by-step WiFi configuration process
- **Network Scanning**: Discover available WiFi networks with signal strength
- **Security Support**: WPA/WPA2 encryption with password validation
- **Connection Testing**: Verify connectivity before saving configuration
- **Multiple Methods**: Serial, wireless, and AP-mode configuration options
#### ๐ **Device Discovery & Testing**
- **Network Discovery**: Find ESP-Linker devices on local network
- **Port Detection**: Automatically detect connected ESP8266 boards
- **Functionality Testing**: Comprehensive device testing with LED, PWM, servo tests
- **Performance Benchmarks**: Measure response times and throughput
- **Diagnostic Tools**: Network connectivity and device health checks
#### ๐ **Device Management Commands**
```bash
esp-linker devices list # List all managed devices
esp-linker devices discover # Find and add new devices
esp-linker devices stats # Show device statistics
esp-linker devices remove # Remove devices from management
esp-linker devices monitor # Real-time device monitoring
```
</details>
<details>
<summary><h3>๐ <strong>Professional Web Dashboard</strong></h3></summary>
Modern, responsive web interface for device control and monitoring:
#### ๐จ **Modern UI/UX Design**
- **Responsive Layout**: Perfect on desktop, tablet, and mobile devices
- **Dark/Light Themes**: Professional themes with smooth transitions
- **Real-time Updates**: Live device status and GPIO state updates
- **Interactive Controls**: Touch-friendly sliders, buttons, and switches
#### ๏ฟฝ **Device Monitoring**
- **Live GPIO States**: Real-time pin status visualization
- **Analog Data Plots**: Interactive charts for sensor data
- **Device Statistics**: Uptime, memory usage, WiFi signal strength
- **Historical Data**: Data logging and trend analysis
#### ๐๏ธ **Control Interface**
- **GPIO Control Panel**: Visual pin control with instant feedback
- **PWM Sliders**: Smooth PWM control with real-time preview
- **Servo Control**: Angle control with visual servo position
- **Batch Operations**: Control multiple pins simultaneously
#### ๐ง **Advanced Features**
- **Device Configuration**: Change device settings through web interface
- **Firmware Updates**: OTA firmware updates through browser
- **Export/Import**: Configuration backup and restore
- **API Documentation**: Built-in API reference and testing tools
</details>
<details>
<summary><h3>๐ง <strong>Enhanced Development Experience</strong></h3></summary>
Professional development tools and features for efficient IoT development:
#### ๐ก๏ธ **Robust Error Handling**
- **Auto-Retry Logic**: Intelligent retry with exponential backoff
- **Connection Recovery**: Automatic reconnection on network failures
- **Timeout Management**: Configurable timeouts for different operations
- **Error Reporting**: Detailed error messages with troubleshooting hints
#### ๐ **Professional Logging**
- **Structured Logging**: JSON-formatted logs for easy parsing
- **Log Levels**: Debug, info, warning, error levels with filtering
- **File Logging**: Persistent logs with rotation and compression
- **Real-time Monitoring**: Live log streaming for debugging
#### ๐ **Security Features**
- **Secure Communication**: HTTPS support for encrypted communication
- **Authentication**: Device authentication and access control
- **CORS Support**: Cross-origin resource sharing for web applications
- **Network Isolation**: Support for isolated network environments
#### ๐ **Performance Optimization**
- **Connection Pooling**: Efficient connection management
- **Caching System**: Intelligent caching for improved performance
- **Batch Processing**: Optimized bulk operations
- **Memory Management**: Efficient memory usage and garbage collection
</details>
## ๐ฆ **Professional Installation Guide**
<div align="center">
### ๐ **One-Command Installation**
</div>
#### ๐ฏ **Standard Installation** (Recommended)
```bash
pip install esp-linker
```
*Includes: Core library, CLI tools, firmware, auto-discovery*
#### ๐ **Full Installation** (With Web Dashboard)
```bash
pip install esp-linker[dashboard]
```
*Includes: Everything + Flask web dashboard*
#### ๐ง **Developer Installation** (Complete Package)
```bash
pip install esp-linker[all]
```
*Includes: All features + development tools*
#### ๐ **System Requirements**
- **Python**: 3.7+ (3.8+ recommended)
- **Operating System**: Windows 10+, Linux, macOS 10.14+
- **Hardware**: ESP8266 board (NodeMCU, Wemos D1, etc.)
- **Network**: WiFi connection for ESP8266 and development machine
#### โ
**Verify Installation**
```bash
esp-linker --version # Check CLI installation
python -c "import esp_linker; print('ESP-Linker ready!')"
```
## ๐ **Complete Quick Start Guide**
<div align="center">
### โก **From Zero to IoT in 5 Minutes**
</div>
<details>
<summary><h3>๐ฅ <strong>Step 1: Flash ESP8266 Firmware</strong></h3></summary>
Transform your ESP8266 into an ESP-Linker device with our built-in firmware:
#### ๐ฏ **Automatic Flashing** (Recommended)
```bash
esp-linker flash
```
*Auto-detects ESP8266 board and flashes firmware with progress bars*
#### ๐ง **Manual Port Selection**
```bash
esp-linker flash --port COM3 # Windows
esp-linker flash --port /dev/ttyUSB0 # Linux
esp-linker flash --port /dev/cu.usbserial # macOS
```
#### โ๏ธ **Advanced Options**
```bash
esp-linker flash --baud 921600 # High-speed flashing
esp-linker flash --no-erase # Skip chip erase
esp-linker flash --firmware-info # Show firmware details
```
#### ๐ **What Gets Flashed**
- **ESP-Linker Firmware**: Complete 365KB firmware
- **WiFi Stack**: Professional WiFi management
- **GPIO API**: RESTful GPIO control interface
- **mDNS Service**: Auto-discovery capability
- **Web Server**: Built-in HTTP server for control
</details>
<details>
<summary><h3>๐ถ <strong>Step 2: Configure WiFi Connection</strong></h3></summary>
Set up WiFi connectivity with our interactive wizard:
#### ๐งโโ๏ธ **Interactive WiFi Wizard**
```bash
esp-linker setup-wifi --port COM3
```
**What the wizard does:**
1. **Scans Networks**: Discovers available WiFi networks
2. **Shows Signal Strength**: Displays RSSI for optimal selection
3. **Security Detection**: Identifies WPA/WPA2 encryption
4. **Credential Input**: Secure password entry
5. **Connection Testing**: Verifies connectivity before saving
#### ๐ง **Manual WiFi Configuration**
```bash
esp-linker configure-wifi --ssid "YourNetwork" --password "YourPassword"
```
#### ๐ก **WiFi Status Check**
```bash
esp-linker wifi-status --port COM3
```
</details>
<details>
<summary><h3>๐ <strong>Step 3: Discover Your Device</strong></h3></summary>
Find your ESP-Linker device on the network:
#### ๐ **Auto-Discovery**
```bash
esp-linker discover
```
*Uses mDNS to find ESP-Linker devices automatically*
#### ๐ฏ **Advanced Discovery**
```bash
esp-linker discover --timeout 60 # Extended search
esp-linker discover --json # JSON output
esp-linker devices discover # Add to device manager
```
#### ๐ฑ **Device Management**
```bash
esp-linker devices list # Show managed devices
esp-linker devices stats # Device statistics
```
</details>
<details>
<summary><h3>๐ <strong>Step 4: Python Programming</strong></h3></summary>
Start controlling your ESP8266 with Python:
#### ๐ **Basic GPIO Control**
```python
from esp_linker import connect_auto
# Auto-discover and connect
board = connect_auto()
# Digital I/O
board.write(2, 1) # Turn on LED (pin 2)
button_state = board.read(4) # Read button (pin 4)
# Analog input
sensor_value = board.analog_read() # Read A0 pin
# PWM control (0-1023)
board.pwm(5, 512) # 50% brightness
# Servo control (0-180ยฐ)
board.servo(14, 90) # Center position
# Device info
info = board.get_device_info()
print(f"Device: {info['firmware_name']} v{info['firmware_version']}")
print(f"Uptime: {info['uptime']} seconds")
print(f"Free Memory: {info['free_heap']} bytes")
board.close()
```
#### ๐ง **Advanced Control**
```python
from esp_linker import ESPBoard
# Manual connection
board = ESPBoard("192.168.1.100")
# Batch operations
pins_states = {2: 1, 4: 0, 5: 1}
board.write_multiple(pins_states)
# PWM with custom frequency
board.pwm_freq(1000) # Set PWM frequency to 1kHz
board.pwm(5, 256) # 25% duty cycle
# Servo with speed control
board.servo_speed(14, 90, speed=50) # Slow movement
# Connection monitoring
if board.ping():
print("Device is responsive")
else:
print("Device not responding")
```
#### ๐ **Web Dashboard Access**
```python
# Launch web dashboard
from esp_linker.dashboard import run_dashboard
run_dashboard(port=8080)
```
</details>
<details>
<summary><h3>๐๏ธ <strong>Step 5: Web Dashboard Control</strong></h3></summary>
Access the professional web interface:
#### ๐ **Launch Dashboard**
```bash
esp-linker dashboard
```
*Opens at http://localhost:5000*
#### โ๏ธ **Custom Configuration**
```bash
esp-linker dashboard --host 0.0.0.0 --port 8080 --debug
```
#### ๐ฑ **Dashboard Features**
- **Real-time GPIO Control**: Interactive pin control
- **Live Monitoring**: Device status and sensor data
- **Device Management**: Add, remove, configure devices
- **Data Visualization**: Charts and graphs for sensor data
- **Mobile Responsive**: Perfect on phones and tablets
</details>
## ๐ ๏ธ Advanced Usage
### Manual Connection
```python
from esp_linker import ESPBoard
# Connect to specific IP address
board = ESPBoard("192.168.1.100")
# Or connect via URL
board = ESPBoard("http://192.168.1.100")
```
### Device Management
```python
from esp_linker import get_device_manager
# Get device manager instance
manager = get_device_manager()
# Discover and add new devices
new_devices = manager.discover_and_add_devices(timeout=10)
# List all managed devices
devices = manager.list_devices()
for device in devices:
print(f"Device: {device.name} at {device.ip}")
# Get device statistics
stats = manager.get_device_stats()
print(f"Total devices: {stats['total_devices']}")
```
### CLI Commands Reference
```bash
# Device discovery and management
esp-linker discover --timeout 30 # Network discovery
esp-linker devices list # List managed devices
esp-linker devices discover # Add new devices
esp-linker devices stats # Device statistics
# Firmware and hardware
esp-linker flash --firmware-info # Show firmware details
esp-linker detect --json # Detect ESP8266 boards
esp-linker test --device 192.168.1.100 # Test device functionality
# Web interface
esp-linker dashboard --port 8080 # Launch web dashboard
```
## ๐ Web Dashboard
Launch the professional web dashboard:
```bash
esp-linker dashboard
```
Features:
- Real-time device monitoring
- Interactive GPIO control
- Device status and statistics
- Responsive design for mobile/desktop
- Multi-device management
## ๐ System Requirements
- **Python**: 3.7 or higher
- **Operating System**: Windows, Linux, macOS
- **Hardware**: ESP8266 board (NodeMCU, Wemos D1, etc.)
- **Network**: WiFi connection for ESP8266 and development machine
## ๐ง **Hardware Compatibility Matrix**
<div align="center">
### ๐ฏ **Tested & Verified ESP8266 Boards**
</div>
| Board | Status | Flash Size | GPIO Pins | Special Features |
|-------|--------|------------|-----------|------------------|
| **NodeMCU v1.0** | โ
Fully Supported | 4MB | 11 usable | Built-in USB, LED on pin 2 |
| **NodeMCU v0.9** | โ
Fully Supported | 4MB | 11 usable | Older version, fully compatible |
| **Wemos D1 Mini** | โ
Fully Supported | 4MB | 11 usable | Compact size, perfect for projects |
| **Wemos D1 R2** | โ
Fully Supported | 4MB | 11 usable | Arduino Uno form factor |
| **ESP8266-01** | โ ๏ธ Limited Support | 1MB | 2 usable | Minimal pins, requires adapter |
| **ESP8266-12E** | โ
Fully Supported | 4MB | 16 usable | Raw module, requires breakout |
| **ESP8266-12F** | โ
Fully Supported | 4MB | 16 usable | Improved antenna design |
| **Adafruit Feather HUZZAH** | โ
Fully Supported | 4MB | 9 usable | Battery connector, compact |
| **SparkFun ESP8266 Thing** | โ
Fully Supported | 4MB | 11 usable | LiPo charging circuit |
| **Generic ESP8266** | โ
Usually Supported | Varies | Varies | Most ESP8266 boards work |
### ๐ **Pin Configuration Reference**
#### **NodeMCU Pin Mapping**
```
NodeMCU Pin | ESP8266 GPIO | Function | ESP-Linker Support
------------|--------------|----------|-------------------
D0 | GPIO16 | Digital | โ
Digital I/O only
D1 | GPIO5 | Digital | โ
Digital + PWM + Servo
D2 | GPIO4 | Digital | โ
Digital + PWM + Servo
D3 | GPIO0 | Digital | โ
Digital I/O (Boot pin)
D4 | GPIO2 | Digital | โ
Digital + PWM + LED
D5 | GPIO14 | Digital | โ
Digital + PWM + Servo
D6 | GPIO12 | Digital | โ
Digital + PWM + Servo
D7 | GPIO13 | Digital | โ
Digital + PWM + Servo
D8 | GPIO15 | Digital | โ
Digital + PWM + Servo
A0 | ADC0 | Analog | โ
10-bit ADC input
```
#### **Wemos D1 Mini Pin Mapping**
```
D1 Mini Pin | ESP8266 GPIO | Function | ESP-Linker Support
------------|--------------|----------|-------------------
D0 | GPIO16 | Digital | โ
Digital I/O only
D1 | GPIO5 | Digital | โ
Digital + PWM + Servo + I2C SCL
D2 | GPIO4 | Digital | โ
Digital + PWM + Servo + I2C SDA
D3 | GPIO0 | Digital | โ
Digital I/O (Flash button)
D4 | GPIO2 | Digital | โ
Digital + PWM + Built-in LED
D5 | GPIO14 | Digital | โ
Digital + PWM + Servo + SPI CLK
D6 | GPIO12 | Digital | โ
Digital + PWM + Servo + SPI MISO
D7 | GPIO13 | Digital | โ
Digital + PWM + Servo + SPI MOSI
D8 | GPIO15 | Digital | โ
Digital + PWM + Servo + SPI CS
A0 | ADC0 | Analog | โ
10-bit ADC (0-1024)
```
### โก **Power Requirements**
- **Operating Voltage**: 3.3V (regulated on most boards)
- **Input Voltage**: 5V via USB or 7-12V via Vin pin
- **Current Consumption**:
- Active: ~80mA
- Deep Sleep: ~20ยตA
- WiFi Transmit: ~170mA peak
### ๐ง **Connection Requirements**
- **USB Cable**: Micro-USB (NodeMCU) or USB-C (newer boards)
- **WiFi Network**: 2.4GHz (ESP8266 doesn't support 5GHz)
- **Computer**: Windows/Linux/macOS with Python 3.7+
## ๐ API Reference
### ESPBoard Class
```python
class ESPBoard:
def __init__(self, ip_or_url: str, timeout: float = 10.0)
def write(self, pin: int, value: int) -> bool
def read(self, pin: int) -> int
def analog_read(self) -> int
def pwm(self, pin: int, value: int) -> bool
def servo(self, pin: int, angle: int) -> bool
def get_device_info(self) -> dict
def ping(self) -> bool
def close(self) -> None
```
### Utility Functions
```python
def connect_auto(timeout: float = 10.0) -> ESPBoard
def discover_devices(timeout: float = 30.0) -> List[dict]
def flash_esp8266(port: str = None, baud: int = 115200) -> bool
def detect_esp8266() -> List[str]
```
## ๐ฏ **Real-World Use Cases & Project Examples**
<div align="center">
### ๐ **Transform Ideas into Reality**
</div>
<details>
<summary><h3>๐ <strong>Smart Home Automation</strong></h3></summary>
Create intelligent home automation systems with ESP-Linker:
#### ๐ก **Smart Lighting Control**
```python
from esp_linker import connect_auto
import time
board = connect_auto()
# Smart dimming based on time of day
def auto_dimming():
current_hour = time.localtime().tm_hour
if 6 <= current_hour <= 8: # Morning
board.pwm(2, 300) # 30% brightness
elif 18 <= current_hour <= 22: # Evening
board.pwm(2, 700) # 70% brightness
else: # Night
board.pwm(2, 100) # 10% brightness
auto_dimming()
```
#### ๐ก๏ธ **Climate Control System**
```python
# Temperature-based fan control
temp_sensor = board.analog_read() # Temperature sensor on A0
temp_celsius = (temp_sensor * 3.3 / 1024 - 0.5) * 100
if temp_celsius > 25:
board.pwm(5, 1023) # Full speed fan
elif temp_celsius > 22:
board.pwm(5, 512) # Half speed fan
else:
board.pwm(5, 0) # Fan off
```
#### ๐ช **Smart Door Lock**
```python
# RFID-controlled door lock
def check_access_card():
card_detected = board.read(4) # RFID reader signal
if card_detected:
board.servo(14, 90) # Unlock (servo to 90ยฐ)
time.sleep(5)
board.servo(14, 0) # Lock (servo to 0ยฐ)
```
</details>
<details>
<summary><h3>๐ค <strong>Robotics & Automation</strong></h3></summary>
Build sophisticated robotic systems:
#### ๐ **Remote-Controlled Robot**
```python
from esp_linker import ESPBoard
robot = ESPBoard("192.168.1.100")
class RobotController:
def __init__(self, board):
self.board = board
self.left_motor = 5 # PWM pin for left motor
self.right_motor = 6 # PWM pin for right motor
def move_forward(self, speed=512):
self.board.pwm(self.left_motor, speed)
self.board.pwm(self.right_motor, speed)
def turn_left(self, speed=300):
self.board.pwm(self.left_motor, 0)
self.board.pwm(self.right_motor, speed)
def stop(self):
self.board.pwm(self.left_motor, 0)
self.board.pwm(self.right_motor, 0)
robot_ctrl = RobotController(robot)
robot_ctrl.move_forward(400) # Move at 40% speed
```
#### ๐ฆพ **Robotic Arm Control**
```python
# Multi-servo robotic arm
class RoboticArm:
def __init__(self, board):
self.board = board
self.base = 12 # Base rotation servo
self.shoulder = 13 # Shoulder servo
self.elbow = 14 # Elbow servo
self.gripper = 15 # Gripper servo
def move_to_position(self, base_angle, shoulder_angle, elbow_angle):
self.board.servo(self.base, base_angle)
time.sleep(0.5)
self.board.servo(self.shoulder, shoulder_angle)
time.sleep(0.5)
self.board.servo(self.elbow, elbow_angle)
def grab_object(self):
self.board.servo(self.gripper, 180) # Close gripper
def release_object(self):
self.board.servo(self.gripper, 0) # Open gripper
arm = RoboticArm(robot)
arm.move_to_position(90, 45, 135) # Position arm
arm.grab_object() # Grab object
```
</details>
<details>
<summary><h3>๐ญ <strong>Industrial IoT & Monitoring</strong></h3></summary>
Implement professional industrial monitoring systems:
#### ๐ **Multi-Sensor Data Logger**
```python
import json
import time
from datetime import datetime
class IndustrialMonitor:
def __init__(self, board):
self.board = board
self.data_log = []
def read_sensors(self):
return {
'timestamp': datetime.now().isoformat(),
'temperature': self.read_temperature(),
'pressure': self.read_pressure(),
'vibration': self.read_vibration(),
'motor_status': self.board.read(2)
}
def read_temperature(self):
# Convert analog reading to temperature
raw = self.board.analog_read()
return (raw * 3.3 / 1024 - 0.5) * 100
def continuous_monitoring(self, interval=60):
while True:
data = self.read_sensors()
self.data_log.append(data)
# Alert if temperature too high
if data['temperature'] > 80:
self.board.write(4, 1) # Turn on alarm LED
time.sleep(interval)
monitor = IndustrialMonitor(board)
monitor.continuous_monitoring(30) # Log every 30 seconds
```
#### โ๏ธ **Equipment Control System**
```python
# Industrial equipment controller
class EquipmentController:
def __init__(self, board):
self.board = board
self.conveyor_motor = 5
self.sorting_servo = 14
self.alarm_led = 2
def start_production(self):
self.board.pwm(self.conveyor_motor, 800) # Start conveyor
self.board.write(self.alarm_led, 0) # Clear alarms
def emergency_stop(self):
self.board.pwm(self.conveyor_motor, 0) # Stop conveyor
self.board.write(self.alarm_led, 1) # Activate alarm
self.board.servo(self.sorting_servo, 0) # Reset sorting arm
```
</details>
<details>
<summary><h3>๐ <strong>Educational & Research Projects</strong></h3></summary>
Perfect for learning and research applications:
#### ๐ฌ **Science Experiment Controller**
```python
# Automated plant growth experiment
class PlantGrowthExperiment:
def __init__(self, board):
self.board = board
self.grow_light = 2 # LED grow light
self.water_pump = 5 # Water pump
self.fan = 6 # Ventilation fan
def daily_cycle(self):
# 12-hour light cycle
self.board.write(self.grow_light, 1)
time.sleep(12 * 3600) # 12 hours
self.board.write(self.grow_light, 0)
# Water plants twice daily
for _ in range(2):
self.board.write(self.water_pump, 1)
time.sleep(30) # Water for 30 seconds
self.board.write(self.water_pump, 0)
time.sleep(6 * 3600) # Wait 6 hours
def monitor_conditions(self):
light_level = self.board.analog_read()
if light_level < 200: # Too dark
self.board.write(self.grow_light, 1)
# Ventilation control
self.board.pwm(self.fan, 300) # Gentle air circulation
experiment = PlantGrowthExperiment(board)
```
#### ๐ก **IoT Weather Station**
```python
# Complete weather monitoring system
class WeatherStation:
def __init__(self, board):
self.board = board
self.wind_direction_servo = 14
self.data_led = 2
def read_weather_data(self):
# Read multiple sensors
temperature = self.read_temperature()
humidity = self.read_humidity()
wind_speed = self.read_wind_speed()
return {
'temperature': temperature,
'humidity': humidity,
'wind_speed': wind_speed,
'timestamp': time.time()
}
def upload_to_cloud(self, data):
# Blink LED to indicate data transmission
for _ in range(3):
self.board.write(self.data_led, 1)
time.sleep(0.2)
self.board.write(self.data_led, 0)
time.sleep(0.2)
# Upload data to cloud service
# (Implementation depends on cloud provider)
pass
weather = WeatherStation(board)
```
</details>
<details>
<summary><h3>๐ฎ <strong>Interactive & Entertainment Projects</strong></h3></summary>
Create engaging interactive projects:
#### ๐ต **Musical Light Show**
```python
# Synchronized music and lights
class MusicLightShow:
def __init__(self, board):
self.board = board
self.lights = [2, 4, 5, 12, 13, 14, 15] # Multiple LED pins
def beat_pattern(self, intensity):
# Create light patterns based on music intensity
for i, pin in enumerate(self.lights):
brightness = int(intensity * (i + 1) / len(self.lights) * 1023)
self.board.pwm(pin, brightness)
def rainbow_effect(self):
# Smooth rainbow color transition
for step in range(256):
for i, pin in enumerate(self.lights):
phase = (step + i * 36) % 256
brightness = int((math.sin(phase * math.pi / 128) + 1) * 512)
self.board.pwm(pin, brightness)
time.sleep(0.05)
light_show = MusicLightShow(board)
light_show.rainbow_effect()
```
#### ๐ฏ **Interactive Game Controller**
```python
# Motion-controlled game
class MotionGameController:
def __init__(self, board):
self.board = board
self.tilt_sensor_x = 4 # Tilt sensor X-axis
self.tilt_sensor_y = 5 # Tilt sensor Y-axis
self.button = 12 # Action button
self.score_display = 2 # Score LED
def read_motion(self):
x_tilt = self.board.read(self.tilt_sensor_x)
y_tilt = self.board.read(self.tilt_sensor_y)
button_pressed = self.board.read(self.button)
return {
'x': x_tilt,
'y': y_tilt,
'action': button_pressed
}
def update_score_display(self, score):
# Blink LED based on score
blinks = min(score, 10)
for _ in range(blinks):
self.board.write(self.score_display, 1)
time.sleep(0.1)
self.board.write(self.score_display, 0)
time.sleep(0.1)
game = MotionGameController(board)
```
</details>
## ๐ Security Features
- Secure WiFi configuration
- Connection encryption support
- Device authentication
- Network isolation compatibility
- Firewall-friendly communication
## ๐ Troubleshooting
### Common Issues
**Device not found:**
```bash
# Check network connectivity
esp-linker discover --timeout 60
# Verify device is on same network
ping 192.168.1.100
```
**Firmware flashing issues:**
```bash
# Auto-detect correct port
esp-linker detect
# Try different baud rate
esp-linker flash --baud 115200
```
**Connection timeouts:**
```python
# Increase timeout for slow networks
board = ESPBoard("192.168.1.100", timeout=30)
```
## ๐ Documentation & Support
- **Complete Documentation**: [www.skrelectronicslab.com/esp-linker](https://www.skrelectronicslab.com/esp-linker)
- **Video Tutorials**: [YouTube Channel](https://www.youtube.com/@skr_electronics_lab)
- **Community Support**: [Instagram](https://www.instagram.com/skr_electronics_lab)
- **Professional Support**: [skrelectronicslab@gmail.com](mailto:skrelectronicslab@gmail.com)
## ๐ Support the Project
If ESP-Linker helps your projects, consider supporting development:
- โญ Star the project on GitHub
- ๐ข Share with the maker community
- โ [Buy me a coffee](https://buymeacoffee.com/skrelectronics)
- ๐บ Subscribe to [SKR Electronics Lab YouTube](https://www.youtube.com/@skr_electronics_lab)
## ๐จโ๐ป **About the Developer**
<div align="center">
### ๐ **Meet SK Raihan - Founder of SKR Electronics Lab**
</div>
**SK Raihan** is a passionate electronics engineer and IoT specialist who founded **SKR Electronics Lab** with a mission to democratize electronics and IoT development. With extensive experience in embedded systems, wireless communication, and educational technology, SK Raihan has dedicated his career to creating professional-grade tools that make complex technology accessible to everyone.
#### ๐ฏ **Vision & Mission**
- **Vision**: Making IoT development accessible to everyone, from students to professionals
- **Mission**: Creating professional-grade, easy-to-use tools for the global maker community
- **Values**: Open-source collaboration, educational excellence, and innovation
#### ๐ **Achievements**
- **10,000+** developers using SKR Electronics Lab tools
- **100+** educational videos on YouTube
- **Professional IoT Solutions** for educational institutions
- **Open-Source Contributions** to the maker community
#### ๐ฌ **Expertise Areas**
- **Embedded Systems**: ESP8266, ESP32, Arduino, Raspberry Pi
- **IoT Development**: Wireless protocols, cloud integration, edge computing
- **Educational Technology**: Creating learning resources and tools
- **Professional Software**: Python libraries, CLI tools, web applications
<div align="center">
### ๐ **Connect with SKR Electronics Lab**
[](https://www.skrelectronicslab.com)
[](mailto:skrelectronicslab@gmail.com)
[](https://www.youtube.com/@skr_electronics_lab)
[](https://www.instagram.com/skr_electronics_lab)
[](https://github.com/skr-electronics-lab)
</div>
## ๐ **Support the Project**
<div align="center">
### ๏ฟฝ **Help ESP-Linker Grow**
</div>
If ESP-Linker has helped your projects, consider supporting its development:
#### โญ **Free Ways to Support**
- **Star the Project**: Give us a star on GitHub
- **Share with Community**: Tell other makers about ESP-Linker
- **Write Reviews**: Share your experience on social media
- **Contribute**: Submit bug reports, feature requests, or code contributions
#### โ **Financial Support**
- **Buy Me a Coffee**: [buymeacoffee.com/skrelectronics](https://buymeacoffee.com/skrelectronics)
- **Sponsor Development**: Contact us for sponsorship opportunities
- **Educational Licenses**: Special pricing for schools and universities
#### ๐บ **Follow Our Content**
- **Subscribe**: [SKR Electronics Lab YouTube](https://www.youtube.com/@skr_electronics_lab)
- **Follow**: [@skr_electronics_lab on Instagram](https://www.instagram.com/skr_electronics_lab)
- **Newsletter**: Get updates on new projects and tutorials
## ๏ฟฝ **Professional Support & Services**
<div align="center">
### ๐ฏ **Enterprise & Educational Solutions**
</div>
#### ๐ข **Enterprise Services**
- **Custom IoT Solutions**: Tailored ESP-Linker implementations
- **Training Programs**: Professional IoT development training
- **Consulting Services**: Expert guidance for IoT projects
- **Technical Support**: Priority support for commercial users
#### ๐ **Educational Programs**
- **Curriculum Development**: IoT courses using ESP-Linker
- **Workshop Materials**: Ready-to-use educational content
- **Student Licenses**: Special pricing for educational institutions
- **Teacher Training**: Professional development for educators
#### ๐ง **Contact Information**
- **General Inquiries**: [skrelectronicslab@gmail.com](mailto:skrelectronicslab@gmail.com)
- **Business Partnerships**: [skrelectronicslab@gmail.com](mailto:skrelectronicslab@gmail.com)
- **Technical Support**: [skrelectronicslab@gmail.com](mailto:skrelectronicslab@gmail.com)
- **Media Inquiries**: [skrelectronicslab@gmail.com](mailto:skrelectronicslab@gmail.com)
## ๐ **License & Legal**
ESP-Linker is released under the **MIT License**, ensuring maximum freedom for both personal and commercial use.
#### ๐ **What This Means**
- โ
**Commercial Use**: Use ESP-Linker in commercial products
- โ
**Modification**: Modify the code for your needs
- โ
**Distribution**: Distribute your modified versions
- โ
**Private Use**: Use privately without restrictions
- โ ๏ธ **Attribution**: Include original copyright notice
See [LICENSE](LICENSE) file for complete details.
---
<div align="center">
## ๐ **ESP-Linker: Professional IoT Development Made Simple**
*Developed with โค๏ธ by [SK Raihan](https://www.skrelectronicslab.com) & [SKR Electronics Lab](https://www.skrelectronicslab.com)*
**Transform your ESP8266 projects today!**
[](https://pypi.org/project/esp-linker/)
[](https://www.skrelectronicslab.com/esp-linker)
[](https://www.youtube.com/@skr_electronics_lab)
</div>
Raw data
{
"_id": null,
"home_page": "https://www.skrelectronicslab.com",
"name": "esp-linker",
"maintainer": "SKR Electronics Lab",
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": "skrelectronicslab@gmail.com",
"keywords": "esp8266, gpio, iot, wireless, arduino, microcontroller, automation, robotics, electronics, maker, diy, wifi, remote-control, pyfirmata, esp-linker, nodemcu, wemos, embedded, hardware, sensor, actuator, smart-home, internet-of-things, esp32, micropython, circuitpython, raspberry-pi, home-automation, industrial-iot, edge-computing, wireless-communication, web-dashboard, cli-tools, firmware, skr-electronics-lab, professional, production-ready, cross-platform",
"author": "SK Raihan",
"author_email": "skrelectronicslab@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/b2/29/e5cc564ebcfbad80edcff591618cdd52d988c9ecb3510262824d84ef1028/esp_linker-1.2.1.tar.gz",
"platform": null,
"description": "<div align=\"center\">\r\n\r\n# \ud83d\ude80 ESP-Linker\r\n### Professional Wireless GPIO Control for ESP8266\r\n\r\n[](https://pypi.org/project/esp-linker)\r\n[](https://pypi.org/project/esp-linker/)\r\n[](https://opensource.org/licenses/MIT)\r\n[](https://pepy.tech/project/esp-linker)\r\n\r\n[](https://github.com/skr-electronics-lab/esp-linker)\r\n[](https://www.youtube.com/@skr_electronics_lab)\r\n[](https://www.instagram.com/skr_electronics_lab)\r\n\r\n**\ud83c\udfaf Transform your ESP8266 into a powerful wireless GPIO controller**\r\n\r\n*Complete IoT development platform with PyFirmata-inspired interface*\r\n\r\n[\ud83d\udcda Documentation](https://www.skrelectronicslab.com/esp-linker) \u2022 [\ud83d\ude80 Quick Start](#-quick-start-guide) \u2022 [\ud83d\udca1 Examples](#-advanced-usage) \u2022 [\ud83c\udfa5 Video Tutorials](https://www.youtube.com/@skr_electronics_lab)\r\n\r\n</div>\r\n\r\n---\r\n\r\n## \ud83c\udf1f **What is ESP-Linker?**\r\n\r\n**ESP-Linker** is a comprehensive IoT development platform created by **SKR Electronics Lab** that revolutionizes ESP8266 development. It provides professional wireless GPIO control with a familiar PyFirmata-inspired interface, making IoT development accessible to everyone from beginners to professionals.\r\n\r\n### \ud83c\udfaf **Why Choose ESP-Linker?**\r\n\r\n| Traditional ESP8266 Development | ESP-Linker Advantage |\r\n|--------------------------------|----------------------|\r\n| Complex WiFi setup code | Interactive WiFi wizard |\r\n| Manual device discovery | Automatic mDNS discovery |\r\n| Basic GPIO control | Professional API with error handling |\r\n| No device management | Multi-device management system |\r\n| Command-line only | CLI tools + Web dashboard |\r\n| Separate firmware needed | Built-in firmware (365KB) |\r\n\r\n## \u2728 **Complete Feature Overview**\r\n\r\n<details>\r\n<summary><h3>\ud83d\udce1 <strong>Wireless GPIO Control System</strong></h3></summary>\r\n\r\nTransform your ESP8266 into a powerful wireless GPIO controller with professional-grade features:\r\n\r\n#### \ud83d\udd0c **Digital I/O Operations**\r\n- **Digital Write**: Control LEDs, relays, motors with `board.write(pin, value)`\r\n- **Digital Read**: Read button states, sensor outputs with `board.read(pin)`\r\n- **Pull-up Support**: Built-in pull-up resistor configuration for reliable readings\r\n- **Pin State Caching**: Optimized performance with intelligent state management\r\n\r\n#### \u26a1 **PWM (Pulse Width Modulation)**\r\n- **8 PWM Channels**: Simultaneous control of multiple PWM outputs\r\n- **0-1023 Resolution**: Fine-grained control for precise applications\r\n- **LED Brightness Control**: Smooth dimming and color mixing\r\n- **Motor Speed Control**: Variable speed control for DC motors\r\n- **Servo Positioning**: Precise servo angle control (0-180\u00b0)\r\n\r\n#### \ud83d\udcca **Analog Input System**\r\n- **10-bit ADC**: High-resolution analog readings (0-1024)\r\n- **A0 Pin Support**: Read sensors, potentiometers, voltage dividers\r\n- **Real-time Sampling**: Continuous data collection for monitoring\r\n- **Calibration Support**: Built-in calibration for accurate measurements\r\n\r\n#### \ufffd **Batch Operations**\r\n- **Multiple Pin Control**: Efficient bulk GPIO operations\r\n- **Atomic Transactions**: Ensure synchronized pin state changes\r\n- **Performance Optimization**: Reduced network overhead for complex operations\r\n\r\n</details>\r\n\r\n<details>\r\n<summary><h3>\ud83d\udd0d <strong>Intelligent Auto-Discovery & Device Management</strong></h3></summary>\r\n\r\nProfessional device management system for seamless multi-device operations:\r\n\r\n#### \ud83c\udf10 **mDNS Auto-Discovery**\r\n- **Zero-Configuration**: Automatic device detection without IP addresses\r\n- **Network Scanning**: Intelligent network topology discovery\r\n- **Service Broadcasting**: ESP8266 devices announce themselves automatically\r\n- **Cross-Platform Support**: Works on Windows, Linux, macOS networks\r\n\r\n#### \ud83d\udcf1 **Multi-Device Management**\r\n- **Device Registration**: Persistent device database with automatic updates\r\n- **Centralized Control**: Manage multiple ESP8266 boards from single interface\r\n- **Device Grouping**: Organize devices by location, function, or project\r\n- **Status Monitoring**: Real-time health checks and connectivity status\r\n\r\n#### \ud83d\udd04 **Connection Health Monitoring**\r\n- **Auto-Retry Logic**: Intelligent reconnection with exponential backoff\r\n- **Heartbeat System**: Continuous connectivity verification\r\n- **Failover Support**: Automatic switching between available devices\r\n- **Network Resilience**: Handles WiFi disconnections and network changes\r\n\r\n#### \ud83d\udcbe **Persistent Configuration**\r\n- **Device Profiles**: Save device settings, pin configurations, and preferences\r\n- **Configuration Backup**: Export/import device configurations\r\n- **Version Control**: Track configuration changes and rollback support\r\n\r\n</details>\r\n\r\n<details>\r\n<summary><h3>\u26a1 <strong>Professional CLI Tools Suite</strong></h3></summary>\r\n\r\nComprehensive command-line interface for professional development workflows:\r\n\r\n#### \ud83d\udd27 **Firmware Management**\r\n- **Built-in Firmware**: 365KB complete ESP8266 firmware included\r\n- **Visual Progress Bars**: Real-time flashing progress with tqdm integration\r\n- **Auto-Port Detection**: Intelligent ESP8266 board detection\r\n- **Multiple Baud Rates**: Support for 115200, 460800, 921600 baud rates\r\n- **Chip Verification**: Automatic chip ID and flash size detection\r\n\r\n#### \ud83d\udcf6 **WiFi Configuration Wizard**\r\n- **Interactive Setup**: Step-by-step WiFi configuration process\r\n- **Network Scanning**: Discover available WiFi networks with signal strength\r\n- **Security Support**: WPA/WPA2 encryption with password validation\r\n- **Connection Testing**: Verify connectivity before saving configuration\r\n- **Multiple Methods**: Serial, wireless, and AP-mode configuration options\r\n\r\n#### \ud83d\udd0d **Device Discovery & Testing**\r\n- **Network Discovery**: Find ESP-Linker devices on local network\r\n- **Port Detection**: Automatically detect connected ESP8266 boards\r\n- **Functionality Testing**: Comprehensive device testing with LED, PWM, servo tests\r\n- **Performance Benchmarks**: Measure response times and throughput\r\n- **Diagnostic Tools**: Network connectivity and device health checks\r\n\r\n#### \ud83d\udcca **Device Management Commands**\r\n```bash\r\nesp-linker devices list # List all managed devices\r\nesp-linker devices discover # Find and add new devices\r\nesp-linker devices stats # Show device statistics\r\nesp-linker devices remove # Remove devices from management\r\nesp-linker devices monitor # Real-time device monitoring\r\n```\r\n\r\n</details>\r\n\r\n<details>\r\n<summary><h3>\ud83c\udf10 <strong>Professional Web Dashboard</strong></h3></summary>\r\n\r\nModern, responsive web interface for device control and monitoring:\r\n\r\n#### \ud83c\udfa8 **Modern UI/UX Design**\r\n- **Responsive Layout**: Perfect on desktop, tablet, and mobile devices\r\n- **Dark/Light Themes**: Professional themes with smooth transitions\r\n- **Real-time Updates**: Live device status and GPIO state updates\r\n- **Interactive Controls**: Touch-friendly sliders, buttons, and switches\r\n\r\n#### \ufffd **Device Monitoring**\r\n- **Live GPIO States**: Real-time pin status visualization\r\n- **Analog Data Plots**: Interactive charts for sensor data\r\n- **Device Statistics**: Uptime, memory usage, WiFi signal strength\r\n- **Historical Data**: Data logging and trend analysis\r\n\r\n#### \ud83c\udf9b\ufe0f **Control Interface**\r\n- **GPIO Control Panel**: Visual pin control with instant feedback\r\n- **PWM Sliders**: Smooth PWM control with real-time preview\r\n- **Servo Control**: Angle control with visual servo position\r\n- **Batch Operations**: Control multiple pins simultaneously\r\n\r\n#### \ud83d\udd27 **Advanced Features**\r\n- **Device Configuration**: Change device settings through web interface\r\n- **Firmware Updates**: OTA firmware updates through browser\r\n- **Export/Import**: Configuration backup and restore\r\n- **API Documentation**: Built-in API reference and testing tools\r\n\r\n</details>\r\n\r\n<details>\r\n<summary><h3>\ud83d\udd27 <strong>Enhanced Development Experience</strong></h3></summary>\r\n\r\nProfessional development tools and features for efficient IoT development:\r\n\r\n#### \ud83d\udee1\ufe0f **Robust Error Handling**\r\n- **Auto-Retry Logic**: Intelligent retry with exponential backoff\r\n- **Connection Recovery**: Automatic reconnection on network failures\r\n- **Timeout Management**: Configurable timeouts for different operations\r\n- **Error Reporting**: Detailed error messages with troubleshooting hints\r\n\r\n#### \ud83d\udcdd **Professional Logging**\r\n- **Structured Logging**: JSON-formatted logs for easy parsing\r\n- **Log Levels**: Debug, info, warning, error levels with filtering\r\n- **File Logging**: Persistent logs with rotation and compression\r\n- **Real-time Monitoring**: Live log streaming for debugging\r\n\r\n#### \ud83d\udd12 **Security Features**\r\n- **Secure Communication**: HTTPS support for encrypted communication\r\n- **Authentication**: Device authentication and access control\r\n- **CORS Support**: Cross-origin resource sharing for web applications\r\n- **Network Isolation**: Support for isolated network environments\r\n\r\n#### \ud83d\ude80 **Performance Optimization**\r\n- **Connection Pooling**: Efficient connection management\r\n- **Caching System**: Intelligent caching for improved performance\r\n- **Batch Processing**: Optimized bulk operations\r\n- **Memory Management**: Efficient memory usage and garbage collection\r\n\r\n</details>\r\n\r\n## \ud83d\udce6 **Professional Installation Guide**\r\n\r\n<div align=\"center\">\r\n\r\n### \ud83d\ude80 **One-Command Installation**\r\n\r\n</div>\r\n\r\n#### \ud83c\udfaf **Standard Installation** (Recommended)\r\n```bash\r\npip install esp-linker\r\n```\r\n*Includes: Core library, CLI tools, firmware, auto-discovery*\r\n\r\n#### \ud83c\udf10 **Full Installation** (With Web Dashboard)\r\n```bash\r\npip install esp-linker[dashboard]\r\n```\r\n*Includes: Everything + Flask web dashboard*\r\n\r\n#### \ud83d\udd27 **Developer Installation** (Complete Package)\r\n```bash\r\npip install esp-linker[all]\r\n```\r\n*Includes: All features + development tools*\r\n\r\n#### \ud83d\udccb **System Requirements**\r\n- **Python**: 3.7+ (3.8+ recommended)\r\n- **Operating System**: Windows 10+, Linux, macOS 10.14+\r\n- **Hardware**: ESP8266 board (NodeMCU, Wemos D1, etc.)\r\n- **Network**: WiFi connection for ESP8266 and development machine\r\n\r\n#### \u2705 **Verify Installation**\r\n```bash\r\nesp-linker --version # Check CLI installation\r\npython -c \"import esp_linker; print('ESP-Linker ready!')\"\r\n```\r\n\r\n## \ud83d\ude80 **Complete Quick Start Guide**\r\n\r\n<div align=\"center\">\r\n\r\n### \u26a1 **From Zero to IoT in 5 Minutes**\r\n\r\n</div>\r\n\r\n<details>\r\n<summary><h3>\ud83d\udd25 <strong>Step 1: Flash ESP8266 Firmware</strong></h3></summary>\r\n\r\nTransform your ESP8266 into an ESP-Linker device with our built-in firmware:\r\n\r\n#### \ud83c\udfaf **Automatic Flashing** (Recommended)\r\n```bash\r\nesp-linker flash\r\n```\r\n*Auto-detects ESP8266 board and flashes firmware with progress bars*\r\n\r\n#### \ud83d\udd27 **Manual Port Selection**\r\n```bash\r\nesp-linker flash --port COM3 # Windows\r\nesp-linker flash --port /dev/ttyUSB0 # Linux\r\nesp-linker flash --port /dev/cu.usbserial # macOS\r\n```\r\n\r\n#### \u2699\ufe0f **Advanced Options**\r\n```bash\r\nesp-linker flash --baud 921600 # High-speed flashing\r\nesp-linker flash --no-erase # Skip chip erase\r\nesp-linker flash --firmware-info # Show firmware details\r\n```\r\n\r\n#### \ud83d\udcca **What Gets Flashed**\r\n- **ESP-Linker Firmware**: Complete 365KB firmware\r\n- **WiFi Stack**: Professional WiFi management\r\n- **GPIO API**: RESTful GPIO control interface\r\n- **mDNS Service**: Auto-discovery capability\r\n- **Web Server**: Built-in HTTP server for control\r\n\r\n</details>\r\n\r\n<details>\r\n<summary><h3>\ud83d\udcf6 <strong>Step 2: Configure WiFi Connection</strong></h3></summary>\r\n\r\nSet up WiFi connectivity with our interactive wizard:\r\n\r\n#### \ud83e\uddd9\u200d\u2642\ufe0f **Interactive WiFi Wizard**\r\n```bash\r\nesp-linker setup-wifi --port COM3\r\n```\r\n\r\n**What the wizard does:**\r\n1. **Scans Networks**: Discovers available WiFi networks\r\n2. **Shows Signal Strength**: Displays RSSI for optimal selection\r\n3. **Security Detection**: Identifies WPA/WPA2 encryption\r\n4. **Credential Input**: Secure password entry\r\n5. **Connection Testing**: Verifies connectivity before saving\r\n\r\n#### \ud83d\udd27 **Manual WiFi Configuration**\r\n```bash\r\nesp-linker configure-wifi --ssid \"YourNetwork\" --password \"YourPassword\"\r\n```\r\n\r\n#### \ud83d\udce1 **WiFi Status Check**\r\n```bash\r\nesp-linker wifi-status --port COM3\r\n```\r\n\r\n</details>\r\n\r\n<details>\r\n<summary><h3>\ud83d\udd0d <strong>Step 3: Discover Your Device</strong></h3></summary>\r\n\r\nFind your ESP-Linker device on the network:\r\n\r\n#### \ud83c\udf10 **Auto-Discovery**\r\n```bash\r\nesp-linker discover\r\n```\r\n*Uses mDNS to find ESP-Linker devices automatically*\r\n\r\n#### \ud83c\udfaf **Advanced Discovery**\r\n```bash\r\nesp-linker discover --timeout 60 # Extended search\r\nesp-linker discover --json # JSON output\r\nesp-linker devices discover # Add to device manager\r\n```\r\n\r\n#### \ud83d\udcf1 **Device Management**\r\n```bash\r\nesp-linker devices list # Show managed devices\r\nesp-linker devices stats # Device statistics\r\n```\r\n\r\n</details>\r\n\r\n<details>\r\n<summary><h3>\ud83d\udc0d <strong>Step 4: Python Programming</strong></h3></summary>\r\n\r\nStart controlling your ESP8266 with Python:\r\n\r\n#### \ud83d\ude80 **Basic GPIO Control**\r\n```python\r\nfrom esp_linker import connect_auto\r\n\r\n# Auto-discover and connect\r\nboard = connect_auto()\r\n\r\n# Digital I/O\r\nboard.write(2, 1) # Turn on LED (pin 2)\r\nbutton_state = board.read(4) # Read button (pin 4)\r\n\r\n# Analog input\r\nsensor_value = board.analog_read() # Read A0 pin\r\n\r\n# PWM control (0-1023)\r\nboard.pwm(5, 512) # 50% brightness\r\n\r\n# Servo control (0-180\u00b0)\r\nboard.servo(14, 90) # Center position\r\n\r\n# Device info\r\ninfo = board.get_device_info()\r\nprint(f\"Device: {info['firmware_name']} v{info['firmware_version']}\")\r\nprint(f\"Uptime: {info['uptime']} seconds\")\r\nprint(f\"Free Memory: {info['free_heap']} bytes\")\r\n\r\nboard.close()\r\n```\r\n\r\n#### \ud83d\udd27 **Advanced Control**\r\n```python\r\nfrom esp_linker import ESPBoard\r\n\r\n# Manual connection\r\nboard = ESPBoard(\"192.168.1.100\")\r\n\r\n# Batch operations\r\npins_states = {2: 1, 4: 0, 5: 1}\r\nboard.write_multiple(pins_states)\r\n\r\n# PWM with custom frequency\r\nboard.pwm_freq(1000) # Set PWM frequency to 1kHz\r\nboard.pwm(5, 256) # 25% duty cycle\r\n\r\n# Servo with speed control\r\nboard.servo_speed(14, 90, speed=50) # Slow movement\r\n\r\n# Connection monitoring\r\nif board.ping():\r\n print(\"Device is responsive\")\r\nelse:\r\n print(\"Device not responding\")\r\n```\r\n\r\n#### \ud83c\udf10 **Web Dashboard Access**\r\n```python\r\n# Launch web dashboard\r\nfrom esp_linker.dashboard import run_dashboard\r\nrun_dashboard(port=8080)\r\n```\r\n\r\n</details>\r\n\r\n<details>\r\n<summary><h3>\ud83c\udf9b\ufe0f <strong>Step 5: Web Dashboard Control</strong></h3></summary>\r\n\r\nAccess the professional web interface:\r\n\r\n#### \ud83c\udf10 **Launch Dashboard**\r\n```bash\r\nesp-linker dashboard\r\n```\r\n*Opens at http://localhost:5000*\r\n\r\n#### \u2699\ufe0f **Custom Configuration**\r\n```bash\r\nesp-linker dashboard --host 0.0.0.0 --port 8080 --debug\r\n```\r\n\r\n#### \ud83d\udcf1 **Dashboard Features**\r\n- **Real-time GPIO Control**: Interactive pin control\r\n- **Live Monitoring**: Device status and sensor data\r\n- **Device Management**: Add, remove, configure devices\r\n- **Data Visualization**: Charts and graphs for sensor data\r\n- **Mobile Responsive**: Perfect on phones and tablets\r\n\r\n</details>\r\n\r\n## \ud83d\udee0\ufe0f Advanced Usage\r\n\r\n### Manual Connection\r\n```python\r\nfrom esp_linker import ESPBoard\r\n\r\n# Connect to specific IP address\r\nboard = ESPBoard(\"192.168.1.100\")\r\n\r\n# Or connect via URL\r\nboard = ESPBoard(\"http://192.168.1.100\")\r\n```\r\n\r\n### Device Management\r\n```python\r\nfrom esp_linker import get_device_manager\r\n\r\n# Get device manager instance\r\nmanager = get_device_manager()\r\n\r\n# Discover and add new devices\r\nnew_devices = manager.discover_and_add_devices(timeout=10)\r\n\r\n# List all managed devices\r\ndevices = manager.list_devices()\r\nfor device in devices:\r\n print(f\"Device: {device.name} at {device.ip}\")\r\n\r\n# Get device statistics\r\nstats = manager.get_device_stats()\r\nprint(f\"Total devices: {stats['total_devices']}\")\r\n```\r\n\r\n### CLI Commands Reference\r\n```bash\r\n# Device discovery and management\r\nesp-linker discover --timeout 30 # Network discovery\r\nesp-linker devices list # List managed devices\r\nesp-linker devices discover # Add new devices\r\nesp-linker devices stats # Device statistics\r\n\r\n# Firmware and hardware\r\nesp-linker flash --firmware-info # Show firmware details\r\nesp-linker detect --json # Detect ESP8266 boards\r\nesp-linker test --device 192.168.1.100 # Test device functionality\r\n\r\n# Web interface\r\nesp-linker dashboard --port 8080 # Launch web dashboard\r\n```\r\n\r\n## \ud83c\udf10 Web Dashboard\r\n\r\nLaunch the professional web dashboard:\r\n```bash\r\nesp-linker dashboard\r\n```\r\n\r\nFeatures:\r\n- Real-time device monitoring\r\n- Interactive GPIO control\r\n- Device status and statistics\r\n- Responsive design for mobile/desktop\r\n- Multi-device management\r\n\r\n## \ud83d\udccb System Requirements\r\n\r\n- **Python**: 3.7 or higher\r\n- **Operating System**: Windows, Linux, macOS\r\n- **Hardware**: ESP8266 board (NodeMCU, Wemos D1, etc.)\r\n- **Network**: WiFi connection for ESP8266 and development machine\r\n\r\n## \ud83d\udd27 **Hardware Compatibility Matrix**\r\n\r\n<div align=\"center\">\r\n\r\n### \ud83c\udfaf **Tested & Verified ESP8266 Boards**\r\n\r\n</div>\r\n\r\n| Board | Status | Flash Size | GPIO Pins | Special Features |\r\n|-------|--------|------------|-----------|------------------|\r\n| **NodeMCU v1.0** | \u2705 Fully Supported | 4MB | 11 usable | Built-in USB, LED on pin 2 |\r\n| **NodeMCU v0.9** | \u2705 Fully Supported | 4MB | 11 usable | Older version, fully compatible |\r\n| **Wemos D1 Mini** | \u2705 Fully Supported | 4MB | 11 usable | Compact size, perfect for projects |\r\n| **Wemos D1 R2** | \u2705 Fully Supported | 4MB | 11 usable | Arduino Uno form factor |\r\n| **ESP8266-01** | \u26a0\ufe0f Limited Support | 1MB | 2 usable | Minimal pins, requires adapter |\r\n| **ESP8266-12E** | \u2705 Fully Supported | 4MB | 16 usable | Raw module, requires breakout |\r\n| **ESP8266-12F** | \u2705 Fully Supported | 4MB | 16 usable | Improved antenna design |\r\n| **Adafruit Feather HUZZAH** | \u2705 Fully Supported | 4MB | 9 usable | Battery connector, compact |\r\n| **SparkFun ESP8266 Thing** | \u2705 Fully Supported | 4MB | 11 usable | LiPo charging circuit |\r\n| **Generic ESP8266** | \u2705 Usually Supported | Varies | Varies | Most ESP8266 boards work |\r\n\r\n### \ud83d\udd0c **Pin Configuration Reference**\r\n\r\n#### **NodeMCU Pin Mapping**\r\n```\r\nNodeMCU Pin | ESP8266 GPIO | Function | ESP-Linker Support\r\n------------|--------------|----------|-------------------\r\nD0 | GPIO16 | Digital | \u2705 Digital I/O only\r\nD1 | GPIO5 | Digital | \u2705 Digital + PWM + Servo\r\nD2 | GPIO4 | Digital | \u2705 Digital + PWM + Servo\r\nD3 | GPIO0 | Digital | \u2705 Digital I/O (Boot pin)\r\nD4 | GPIO2 | Digital | \u2705 Digital + PWM + LED\r\nD5 | GPIO14 | Digital | \u2705 Digital + PWM + Servo\r\nD6 | GPIO12 | Digital | \u2705 Digital + PWM + Servo\r\nD7 | GPIO13 | Digital | \u2705 Digital + PWM + Servo\r\nD8 | GPIO15 | Digital | \u2705 Digital + PWM + Servo\r\nA0 | ADC0 | Analog | \u2705 10-bit ADC input\r\n```\r\n\r\n#### **Wemos D1 Mini Pin Mapping**\r\n```\r\nD1 Mini Pin | ESP8266 GPIO | Function | ESP-Linker Support\r\n------------|--------------|----------|-------------------\r\nD0 | GPIO16 | Digital | \u2705 Digital I/O only\r\nD1 | GPIO5 | Digital | \u2705 Digital + PWM + Servo + I2C SCL\r\nD2 | GPIO4 | Digital | \u2705 Digital + PWM + Servo + I2C SDA\r\nD3 | GPIO0 | Digital | \u2705 Digital I/O (Flash button)\r\nD4 | GPIO2 | Digital | \u2705 Digital + PWM + Built-in LED\r\nD5 | GPIO14 | Digital | \u2705 Digital + PWM + Servo + SPI CLK\r\nD6 | GPIO12 | Digital | \u2705 Digital + PWM + Servo + SPI MISO\r\nD7 | GPIO13 | Digital | \u2705 Digital + PWM + Servo + SPI MOSI\r\nD8 | GPIO15 | Digital | \u2705 Digital + PWM + Servo + SPI CS\r\nA0 | ADC0 | Analog | \u2705 10-bit ADC (0-1024)\r\n```\r\n\r\n### \u26a1 **Power Requirements**\r\n- **Operating Voltage**: 3.3V (regulated on most boards)\r\n- **Input Voltage**: 5V via USB or 7-12V via Vin pin\r\n- **Current Consumption**:\r\n - Active: ~80mA\r\n - Deep Sleep: ~20\u00b5A\r\n - WiFi Transmit: ~170mA peak\r\n\r\n### \ud83d\udd27 **Connection Requirements**\r\n- **USB Cable**: Micro-USB (NodeMCU) or USB-C (newer boards)\r\n- **WiFi Network**: 2.4GHz (ESP8266 doesn't support 5GHz)\r\n- **Computer**: Windows/Linux/macOS with Python 3.7+\r\n\r\n## \ud83d\udcda API Reference\r\n\r\n### ESPBoard Class\r\n```python\r\nclass ESPBoard:\r\n def __init__(self, ip_or_url: str, timeout: float = 10.0)\r\n def write(self, pin: int, value: int) -> bool\r\n def read(self, pin: int) -> int\r\n def analog_read(self) -> int\r\n def pwm(self, pin: int, value: int) -> bool\r\n def servo(self, pin: int, angle: int) -> bool\r\n def get_device_info(self) -> dict\r\n def ping(self) -> bool\r\n def close(self) -> None\r\n```\r\n\r\n### Utility Functions\r\n```python\r\ndef connect_auto(timeout: float = 10.0) -> ESPBoard\r\ndef discover_devices(timeout: float = 30.0) -> List[dict]\r\ndef flash_esp8266(port: str = None, baud: int = 115200) -> bool\r\ndef detect_esp8266() -> List[str]\r\n```\r\n\r\n## \ud83c\udfaf **Real-World Use Cases & Project Examples**\r\n\r\n<div align=\"center\">\r\n\r\n### \ud83c\udf1f **Transform Ideas into Reality**\r\n\r\n</div>\r\n\r\n<details>\r\n<summary><h3>\ud83c\udfe0 <strong>Smart Home Automation</strong></h3></summary>\r\n\r\nCreate intelligent home automation systems with ESP-Linker:\r\n\r\n#### \ud83d\udca1 **Smart Lighting Control**\r\n```python\r\nfrom esp_linker import connect_auto\r\nimport time\r\n\r\nboard = connect_auto()\r\n\r\n# Smart dimming based on time of day\r\ndef auto_dimming():\r\n current_hour = time.localtime().tm_hour\r\n if 6 <= current_hour <= 8: # Morning\r\n board.pwm(2, 300) # 30% brightness\r\n elif 18 <= current_hour <= 22: # Evening\r\n board.pwm(2, 700) # 70% brightness\r\n else: # Night\r\n board.pwm(2, 100) # 10% brightness\r\n\r\nauto_dimming()\r\n```\r\n\r\n#### \ud83c\udf21\ufe0f **Climate Control System**\r\n```python\r\n# Temperature-based fan control\r\ntemp_sensor = board.analog_read() # Temperature sensor on A0\r\ntemp_celsius = (temp_sensor * 3.3 / 1024 - 0.5) * 100\r\n\r\nif temp_celsius > 25:\r\n board.pwm(5, 1023) # Full speed fan\r\nelif temp_celsius > 22:\r\n board.pwm(5, 512) # Half speed fan\r\nelse:\r\n board.pwm(5, 0) # Fan off\r\n```\r\n\r\n#### \ud83d\udeaa **Smart Door Lock**\r\n```python\r\n# RFID-controlled door lock\r\ndef check_access_card():\r\n card_detected = board.read(4) # RFID reader signal\r\n if card_detected:\r\n board.servo(14, 90) # Unlock (servo to 90\u00b0)\r\n time.sleep(5)\r\n board.servo(14, 0) # Lock (servo to 0\u00b0)\r\n```\r\n\r\n</details>\r\n\r\n<details>\r\n<summary><h3>\ud83e\udd16 <strong>Robotics & Automation</strong></h3></summary>\r\n\r\nBuild sophisticated robotic systems:\r\n\r\n#### \ud83d\ude97 **Remote-Controlled Robot**\r\n```python\r\nfrom esp_linker import ESPBoard\r\n\r\nrobot = ESPBoard(\"192.168.1.100\")\r\n\r\nclass RobotController:\r\n def __init__(self, board):\r\n self.board = board\r\n self.left_motor = 5 # PWM pin for left motor\r\n self.right_motor = 6 # PWM pin for right motor\r\n\r\n def move_forward(self, speed=512):\r\n self.board.pwm(self.left_motor, speed)\r\n self.board.pwm(self.right_motor, speed)\r\n\r\n def turn_left(self, speed=300):\r\n self.board.pwm(self.left_motor, 0)\r\n self.board.pwm(self.right_motor, speed)\r\n\r\n def stop(self):\r\n self.board.pwm(self.left_motor, 0)\r\n self.board.pwm(self.right_motor, 0)\r\n\r\nrobot_ctrl = RobotController(robot)\r\nrobot_ctrl.move_forward(400) # Move at 40% speed\r\n```\r\n\r\n#### \ud83e\uddbe **Robotic Arm Control**\r\n```python\r\n# Multi-servo robotic arm\r\nclass RoboticArm:\r\n def __init__(self, board):\r\n self.board = board\r\n self.base = 12 # Base rotation servo\r\n self.shoulder = 13 # Shoulder servo\r\n self.elbow = 14 # Elbow servo\r\n self.gripper = 15 # Gripper servo\r\n\r\n def move_to_position(self, base_angle, shoulder_angle, elbow_angle):\r\n self.board.servo(self.base, base_angle)\r\n time.sleep(0.5)\r\n self.board.servo(self.shoulder, shoulder_angle)\r\n time.sleep(0.5)\r\n self.board.servo(self.elbow, elbow_angle)\r\n\r\n def grab_object(self):\r\n self.board.servo(self.gripper, 180) # Close gripper\r\n\r\n def release_object(self):\r\n self.board.servo(self.gripper, 0) # Open gripper\r\n\r\narm = RoboticArm(robot)\r\narm.move_to_position(90, 45, 135) # Position arm\r\narm.grab_object() # Grab object\r\n```\r\n\r\n</details>\r\n\r\n<details>\r\n<summary><h3>\ud83c\udfed <strong>Industrial IoT & Monitoring</strong></h3></summary>\r\n\r\nImplement professional industrial monitoring systems:\r\n\r\n#### \ud83d\udcca **Multi-Sensor Data Logger**\r\n```python\r\nimport json\r\nimport time\r\nfrom datetime import datetime\r\n\r\nclass IndustrialMonitor:\r\n def __init__(self, board):\r\n self.board = board\r\n self.data_log = []\r\n\r\n def read_sensors(self):\r\n return {\r\n 'timestamp': datetime.now().isoformat(),\r\n 'temperature': self.read_temperature(),\r\n 'pressure': self.read_pressure(),\r\n 'vibration': self.read_vibration(),\r\n 'motor_status': self.board.read(2)\r\n }\r\n\r\n def read_temperature(self):\r\n # Convert analog reading to temperature\r\n raw = self.board.analog_read()\r\n return (raw * 3.3 / 1024 - 0.5) * 100\r\n\r\n def continuous_monitoring(self, interval=60):\r\n while True:\r\n data = self.read_sensors()\r\n self.data_log.append(data)\r\n\r\n # Alert if temperature too high\r\n if data['temperature'] > 80:\r\n self.board.write(4, 1) # Turn on alarm LED\r\n\r\n time.sleep(interval)\r\n\r\nmonitor = IndustrialMonitor(board)\r\nmonitor.continuous_monitoring(30) # Log every 30 seconds\r\n```\r\n\r\n#### \u2699\ufe0f **Equipment Control System**\r\n```python\r\n# Industrial equipment controller\r\nclass EquipmentController:\r\n def __init__(self, board):\r\n self.board = board\r\n self.conveyor_motor = 5\r\n self.sorting_servo = 14\r\n self.alarm_led = 2\r\n\r\n def start_production(self):\r\n self.board.pwm(self.conveyor_motor, 800) # Start conveyor\r\n self.board.write(self.alarm_led, 0) # Clear alarms\r\n\r\n def emergency_stop(self):\r\n self.board.pwm(self.conveyor_motor, 0) # Stop conveyor\r\n self.board.write(self.alarm_led, 1) # Activate alarm\r\n self.board.servo(self.sorting_servo, 0) # Reset sorting arm\r\n```\r\n\r\n</details>\r\n\r\n<details>\r\n<summary><h3>\ud83c\udf93 <strong>Educational & Research Projects</strong></h3></summary>\r\n\r\nPerfect for learning and research applications:\r\n\r\n#### \ud83d\udd2c **Science Experiment Controller**\r\n```python\r\n# Automated plant growth experiment\r\nclass PlantGrowthExperiment:\r\n def __init__(self, board):\r\n self.board = board\r\n self.grow_light = 2 # LED grow light\r\n self.water_pump = 5 # Water pump\r\n self.fan = 6 # Ventilation fan\r\n\r\n def daily_cycle(self):\r\n # 12-hour light cycle\r\n self.board.write(self.grow_light, 1)\r\n time.sleep(12 * 3600) # 12 hours\r\n self.board.write(self.grow_light, 0)\r\n\r\n # Water plants twice daily\r\n for _ in range(2):\r\n self.board.write(self.water_pump, 1)\r\n time.sleep(30) # Water for 30 seconds\r\n self.board.write(self.water_pump, 0)\r\n time.sleep(6 * 3600) # Wait 6 hours\r\n\r\n def monitor_conditions(self):\r\n light_level = self.board.analog_read()\r\n if light_level < 200: # Too dark\r\n self.board.write(self.grow_light, 1)\r\n\r\n # Ventilation control\r\n self.board.pwm(self.fan, 300) # Gentle air circulation\r\n\r\nexperiment = PlantGrowthExperiment(board)\r\n```\r\n\r\n#### \ud83d\udce1 **IoT Weather Station**\r\n```python\r\n# Complete weather monitoring system\r\nclass WeatherStation:\r\n def __init__(self, board):\r\n self.board = board\r\n self.wind_direction_servo = 14\r\n self.data_led = 2\r\n\r\n def read_weather_data(self):\r\n # Read multiple sensors\r\n temperature = self.read_temperature()\r\n humidity = self.read_humidity()\r\n wind_speed = self.read_wind_speed()\r\n\r\n return {\r\n 'temperature': temperature,\r\n 'humidity': humidity,\r\n 'wind_speed': wind_speed,\r\n 'timestamp': time.time()\r\n }\r\n\r\n def upload_to_cloud(self, data):\r\n # Blink LED to indicate data transmission\r\n for _ in range(3):\r\n self.board.write(self.data_led, 1)\r\n time.sleep(0.2)\r\n self.board.write(self.data_led, 0)\r\n time.sleep(0.2)\r\n\r\n # Upload data to cloud service\r\n # (Implementation depends on cloud provider)\r\n pass\r\n\r\nweather = WeatherStation(board)\r\n```\r\n\r\n</details>\r\n\r\n<details>\r\n<summary><h3>\ud83c\udfae <strong>Interactive & Entertainment Projects</strong></h3></summary>\r\n\r\nCreate engaging interactive projects:\r\n\r\n#### \ud83c\udfb5 **Musical Light Show**\r\n```python\r\n# Synchronized music and lights\r\nclass MusicLightShow:\r\n def __init__(self, board):\r\n self.board = board\r\n self.lights = [2, 4, 5, 12, 13, 14, 15] # Multiple LED pins\r\n\r\n def beat_pattern(self, intensity):\r\n # Create light patterns based on music intensity\r\n for i, pin in enumerate(self.lights):\r\n brightness = int(intensity * (i + 1) / len(self.lights) * 1023)\r\n self.board.pwm(pin, brightness)\r\n\r\n def rainbow_effect(self):\r\n # Smooth rainbow color transition\r\n for step in range(256):\r\n for i, pin in enumerate(self.lights):\r\n phase = (step + i * 36) % 256\r\n brightness = int((math.sin(phase * math.pi / 128) + 1) * 512)\r\n self.board.pwm(pin, brightness)\r\n time.sleep(0.05)\r\n\r\nlight_show = MusicLightShow(board)\r\nlight_show.rainbow_effect()\r\n```\r\n\r\n#### \ud83c\udfaf **Interactive Game Controller**\r\n```python\r\n# Motion-controlled game\r\nclass MotionGameController:\r\n def __init__(self, board):\r\n self.board = board\r\n self.tilt_sensor_x = 4 # Tilt sensor X-axis\r\n self.tilt_sensor_y = 5 # Tilt sensor Y-axis\r\n self.button = 12 # Action button\r\n self.score_display = 2 # Score LED\r\n\r\n def read_motion(self):\r\n x_tilt = self.board.read(self.tilt_sensor_x)\r\n y_tilt = self.board.read(self.tilt_sensor_y)\r\n button_pressed = self.board.read(self.button)\r\n\r\n return {\r\n 'x': x_tilt,\r\n 'y': y_tilt,\r\n 'action': button_pressed\r\n }\r\n\r\n def update_score_display(self, score):\r\n # Blink LED based on score\r\n blinks = min(score, 10)\r\n for _ in range(blinks):\r\n self.board.write(self.score_display, 1)\r\n time.sleep(0.1)\r\n self.board.write(self.score_display, 0)\r\n time.sleep(0.1)\r\n\r\ngame = MotionGameController(board)\r\n```\r\n\r\n</details>\r\n\r\n## \ud83d\udd12 Security Features\r\n\r\n- Secure WiFi configuration\r\n- Connection encryption support\r\n- Device authentication\r\n- Network isolation compatibility\r\n- Firewall-friendly communication\r\n\r\n## \ud83d\udc1b Troubleshooting\r\n\r\n### Common Issues\r\n\r\n**Device not found:**\r\n```bash\r\n# Check network connectivity\r\nesp-linker discover --timeout 60\r\n\r\n# Verify device is on same network\r\nping 192.168.1.100\r\n```\r\n\r\n**Firmware flashing issues:**\r\n```bash\r\n# Auto-detect correct port\r\nesp-linker detect\r\n\r\n# Try different baud rate\r\nesp-linker flash --baud 115200\r\n```\r\n\r\n**Connection timeouts:**\r\n```python\r\n# Increase timeout for slow networks\r\nboard = ESPBoard(\"192.168.1.100\", timeout=30)\r\n```\r\n\r\n## \ud83d\udcd6 Documentation & Support\r\n\r\n- **Complete Documentation**: [www.skrelectronicslab.com/esp-linker](https://www.skrelectronicslab.com/esp-linker)\r\n- **Video Tutorials**: [YouTube Channel](https://www.youtube.com/@skr_electronics_lab)\r\n- **Community Support**: [Instagram](https://www.instagram.com/skr_electronics_lab)\r\n- **Professional Support**: [skrelectronicslab@gmail.com](mailto:skrelectronicslab@gmail.com)\r\n\r\n## \ud83d\udc96 Support the Project\r\n\r\nIf ESP-Linker helps your projects, consider supporting development:\r\n- \u2b50 Star the project on GitHub\r\n- \ud83d\udce2 Share with the maker community\r\n- \u2615 [Buy me a coffee](https://buymeacoffee.com/skrelectronics)\r\n- \ud83d\udcfa Subscribe to [SKR Electronics Lab YouTube](https://www.youtube.com/@skr_electronics_lab)\r\n\r\n## \ud83d\udc68\u200d\ud83d\udcbb **About the Developer**\r\n\r\n<div align=\"center\">\r\n\r\n### \ud83c\udf1f **Meet SK Raihan - Founder of SKR Electronics Lab**\r\n\r\n</div>\r\n\r\n**SK Raihan** is a passionate electronics engineer and IoT specialist who founded **SKR Electronics Lab** with a mission to democratize electronics and IoT development. With extensive experience in embedded systems, wireless communication, and educational technology, SK Raihan has dedicated his career to creating professional-grade tools that make complex technology accessible to everyone.\r\n\r\n#### \ud83c\udfaf **Vision & Mission**\r\n- **Vision**: Making IoT development accessible to everyone, from students to professionals\r\n- **Mission**: Creating professional-grade, easy-to-use tools for the global maker community\r\n- **Values**: Open-source collaboration, educational excellence, and innovation\r\n\r\n#### \ud83c\udfc6 **Achievements**\r\n- **10,000+** developers using SKR Electronics Lab tools\r\n- **100+** educational videos on YouTube\r\n- **Professional IoT Solutions** for educational institutions\r\n- **Open-Source Contributions** to the maker community\r\n\r\n#### \ud83d\udd2c **Expertise Areas**\r\n- **Embedded Systems**: ESP8266, ESP32, Arduino, Raspberry Pi\r\n- **IoT Development**: Wireless protocols, cloud integration, edge computing\r\n- **Educational Technology**: Creating learning resources and tools\r\n- **Professional Software**: Python libraries, CLI tools, web applications\r\n\r\n<div align=\"center\">\r\n\r\n### \ud83c\udf10 **Connect with SKR Electronics Lab**\r\n\r\n[](https://www.skrelectronicslab.com)\r\n[](mailto:skrelectronicslab@gmail.com)\r\n[](https://www.youtube.com/@skr_electronics_lab)\r\n[](https://www.instagram.com/skr_electronics_lab)\r\n[](https://github.com/skr-electronics-lab)\r\n\r\n</div>\r\n\r\n## \ud83d\udc96 **Support the Project**\r\n\r\n<div align=\"center\">\r\n\r\n### \ufffd **Help ESP-Linker Grow**\r\n\r\n</div>\r\n\r\nIf ESP-Linker has helped your projects, consider supporting its development:\r\n\r\n#### \u2b50 **Free Ways to Support**\r\n- **Star the Project**: Give us a star on GitHub\r\n- **Share with Community**: Tell other makers about ESP-Linker\r\n- **Write Reviews**: Share your experience on social media\r\n- **Contribute**: Submit bug reports, feature requests, or code contributions\r\n\r\n#### \u2615 **Financial Support**\r\n- **Buy Me a Coffee**: [buymeacoffee.com/skrelectronics](https://buymeacoffee.com/skrelectronics)\r\n- **Sponsor Development**: Contact us for sponsorship opportunities\r\n- **Educational Licenses**: Special pricing for schools and universities\r\n\r\n#### \ud83d\udcfa **Follow Our Content**\r\n- **Subscribe**: [SKR Electronics Lab YouTube](https://www.youtube.com/@skr_electronics_lab)\r\n- **Follow**: [@skr_electronics_lab on Instagram](https://www.instagram.com/skr_electronics_lab)\r\n- **Newsletter**: Get updates on new projects and tutorials\r\n\r\n## \ufffd **Professional Support & Services**\r\n\r\n<div align=\"center\">\r\n\r\n### \ud83c\udfaf **Enterprise & Educational Solutions**\r\n\r\n</div>\r\n\r\n#### \ud83c\udfe2 **Enterprise Services**\r\n- **Custom IoT Solutions**: Tailored ESP-Linker implementations\r\n- **Training Programs**: Professional IoT development training\r\n- **Consulting Services**: Expert guidance for IoT projects\r\n- **Technical Support**: Priority support for commercial users\r\n\r\n#### \ud83c\udf93 **Educational Programs**\r\n- **Curriculum Development**: IoT courses using ESP-Linker\r\n- **Workshop Materials**: Ready-to-use educational content\r\n- **Student Licenses**: Special pricing for educational institutions\r\n- **Teacher Training**: Professional development for educators\r\n\r\n#### \ud83d\udce7 **Contact Information**\r\n- **General Inquiries**: [skrelectronicslab@gmail.com](mailto:skrelectronicslab@gmail.com)\r\n- **Business Partnerships**: [skrelectronicslab@gmail.com](mailto:skrelectronicslab@gmail.com)\r\n- **Technical Support**: [skrelectronicslab@gmail.com](mailto:skrelectronicslab@gmail.com)\r\n- **Media Inquiries**: [skrelectronicslab@gmail.com](mailto:skrelectronicslab@gmail.com)\r\n\r\n## \ud83d\udcc4 **License & Legal**\r\n\r\nESP-Linker is released under the **MIT License**, ensuring maximum freedom for both personal and commercial use.\r\n\r\n#### \ud83d\udccb **What This Means**\r\n- \u2705 **Commercial Use**: Use ESP-Linker in commercial products\r\n- \u2705 **Modification**: Modify the code for your needs\r\n- \u2705 **Distribution**: Distribute your modified versions\r\n- \u2705 **Private Use**: Use privately without restrictions\r\n- \u26a0\ufe0f **Attribution**: Include original copyright notice\r\n\r\nSee [LICENSE](LICENSE) file for complete details.\r\n\r\n---\r\n\r\n<div align=\"center\">\r\n\r\n## \ud83d\ude80 **ESP-Linker: Professional IoT Development Made Simple**\r\n\r\n*Developed with \u2764\ufe0f by [SK Raihan](https://www.skrelectronicslab.com) & [SKR Electronics Lab](https://www.skrelectronicslab.com)*\r\n\r\n**Transform your ESP8266 projects today!**\r\n\r\n[](https://pypi.org/project/esp-linker/)\r\n[](https://www.skrelectronicslab.com/esp-linker)\r\n[](https://www.youtube.com/@skr_electronics_lab)\r\n\r\n</div>\r\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Professional wireless GPIO control for ESP8266 boards with PyFirmata-inspired interface, complete IoT solution with firmware, CLI tools, and web dashboard",
"version": "1.2.1",
"project_urls": {
"Bug Tracker": "https://github.com/skr-electronics-lab/esp-linker/issues",
"Documentation": "https://www.skrelectronicslab.com/esp-linker",
"Download": "https://pypi.org/project/esp-linker/",
"Homepage": "https://www.skrelectronicslab.com",
"Instagram": "https://www.instagram.com/skr_electronics_lab",
"PyPI": "https://pypi.org/project/esp-linker/",
"Source Code": "https://github.com/skr-electronics-lab/esp-linker",
"Support": "https://buymeacoffee.com/skrelectronics",
"YouTube Channel": "https://www.youtube.com/@skr_electronics_lab"
},
"split_keywords": [
"esp8266",
" gpio",
" iot",
" wireless",
" arduino",
" microcontroller",
" automation",
" robotics",
" electronics",
" maker",
" diy",
" wifi",
" remote-control",
" pyfirmata",
" esp-linker",
" nodemcu",
" wemos",
" embedded",
" hardware",
" sensor",
" actuator",
" smart-home",
" internet-of-things",
" esp32",
" micropython",
" circuitpython",
" raspberry-pi",
" home-automation",
" industrial-iot",
" edge-computing",
" wireless-communication",
" web-dashboard",
" cli-tools",
" firmware",
" skr-electronics-lab",
" professional",
" production-ready",
" cross-platform"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "0460ddf8c26d565163b73c8a56a444441a514625f7d7592a52838f7cfd4d0c32",
"md5": "6f58211dfd4bb874c0d15bcee2d2ce0b",
"sha256": "d72acc5a6b6dd8237e8e5b4ce6b69379985ff04326cf8b4d7099f92581d7270d"
},
"downloads": -1,
"filename": "esp_linker-1.2.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "6f58211dfd4bb874c0d15bcee2d2ce0b",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 315689,
"upload_time": "2025-07-13T18:16:16",
"upload_time_iso_8601": "2025-07-13T18:16:16.181791Z",
"url": "https://files.pythonhosted.org/packages/04/60/ddf8c26d565163b73c8a56a444441a514625f7d7592a52838f7cfd4d0c32/esp_linker-1.2.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "b229e5cc564ebcfbad80edcff591618cdd52d988c9ecb3510262824d84ef1028",
"md5": "b3d615b611ec751dcf2ad0d2e8bb407b",
"sha256": "d18224273325a9bfbc9e6da73945e252ad6a00afcb7306b26dcde152d4a2a676"
},
"downloads": -1,
"filename": "esp_linker-1.2.1.tar.gz",
"has_sig": false,
"md5_digest": "b3d615b611ec751dcf2ad0d2e8bb407b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 326150,
"upload_time": "2025-07-13T18:16:18",
"upload_time_iso_8601": "2025-07-13T18:16:18.859557Z",
"url": "https://files.pythonhosted.org/packages/b2/29/e5cc564ebcfbad80edcff591618cdd52d988c9ecb3510262824d84ef1028/esp_linker-1.2.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-13 18:16:18",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "skr-electronics-lab",
"github_project": "esp-linker",
"github_not_found": true,
"lcname": "esp-linker"
}