Skip to main content
Image
WebScreen Serial IDE

Introducing WebScreen Serial IDE: A Web-Based Development Environment for WebScreen

Following our recent introduction of serial commands, we've developed the WebScreen Serial IDE, a web-based development environment that builds on the serial command system to provide a more visual development experience with syntax highlighting, integrated documentation, and a tabbed interface.

Building on the Serial Commands Foundation

In our recent article about serial commands, we explained how the new command system eliminated the tedious SD card swapping workflow. The serial commands gave developers direct interaction with WebScreen devices through commands like /write, /load, /stats, and /config.

The WebScreen Serial IDE provides a browser-based interface for these commands, adding conveniences like syntax highlighting and auto-completion that can help streamline the development process.

From Command Line to Professional IDE

While serial commands improved the development workflow (as detailed in our previous article), developers still need terminal applications and command familiarity. The WebScreen Serial IDE offers an alternative approach: a web-based environment with visual tools, syntax highlighting, and integrated documentation that uses the serial command system underneath.

Key Features

■ Direct Serial Connection: Uses the Web Serial API to connect to WebScreen devices without additional drivers.
■ Dual Theme System: Two themes available - "Retro" for an amber phosphor terminal aesthetic and "Focus" for a cleaner, VS Code-inspired interface.
■ Tabbed Workflow: Organized workspace with dedicated tabs for Serial Console, JavaScript Editor, and File Manager.
■ Real-time Development: Upload and execute scripts with F5 for quick iteration cycles.

The Evolution of WebScreen Development

Phase 1: SD Card Era (Original)

Manual SD card swapping workflow
Time per iteration: 2-3 minutes
Tools needed: External editor, SD card reader

Phase 2: Serial Commands (Previous Article)

Direct device interaction via terminal
Commands like /write, /load, /stats
Time per iteration: 30-45 seconds
Tools needed: Terminal application, command knowledge

See our serial commands article for detailed command reference

Phase 3: WebScreen Serial IDE (Now)

1. Open WebScreen Serial IDE in browser (https://serial.webscreen.cc)
2. Click "Connect Device" - no drivers needed
3. Write code with syntax highlighting and autocomplete
4. Press F5 to upload and run immediately
5. See results instantly on WebScreen display
6. Debug via integrated serial console with visual feedback
7. Make changes and run again instantly
Time per iteration: 10-20 seconds
Tools needed: Just a web browser

Theme Options

Retro Theme

For those who prefer a nostalgic aesthetic:

■ Amber Phosphor Colors: Orange/yellow terminal colors similar to vintage monitors
■ Scan Line Effects: CRT-style visual effects
■ Glowing Elements: Subtle neon effects on interactive elements
■ Terminal Animation: Animated background visualization

Use Case: Suitable for developers who enjoy retro computing aesthetics or find the visual style engaging.

Focus Theme

A cleaner interface for extended coding sessions:

■ VS Code Inspired: Familiar color scheme for developers
■ Reduced Eye Strain: Muted colors suitable for longer sessions
■ No Animations: Static interface without visual effects
■ Clean Layout: Consistent typography and spacing

Use Case: Useful for extended development sessions or when visual effects might be distracting.

Theme Selection: Toggle between themes using the header button or set via URL parameters (?mode=retro or ?mode=focus).

Feature Details

JavaScript Editor

■ Syntax Highlighting: Full JavaScript syntax highlighting that adapts to your chosen theme
■ WebScreen API Autocomplete: IntelliSense-style completion for all WebScreen functions
■ Live Error Detection: Instant feedback on syntax issues
■ Keyboard Shortcuts:

Ctrl+S: Save file to device

F5: Upload and execute script

Ctrl+/: Toggle comments

Ctrl+Space: Trigger autocomplete

Serial Console

■ Command History: Navigate previous commands with arrow keys
■ Auto-completion: Tab completion for WebScreen serial commands
■ Real-time Output: See device responses instantly
■ Quick Commands: One-click access to common operations like /stats, /help, /reboot

File Manager

■ Device File Browser: View and manage files directly on WebScreen
■ Drag & Drop: Upload files by dragging them into the interface
■ Download Support: Backup device files to your computer
■ Real-time Sync: File list updates automatically when changes occur

Practical Development Workflows

Here are some typical use cases for the WebScreen Serial IDE:

Quick Prototyping

// Connect to WebScreen Serial IDE (https://serial.webscreen.cc)
// Switch to Retro theme for creative inspiration
// Start coding immediately:

create_label_with_text('Weather Station v1.0');
set_background_color('#1a1a2e');

// Press F5 - code uploads and runs instantly
// See results on WebScreen display
// Iterate and improve without any friction

Application Development

// Switch to Focus theme for productivity
// Open Serial Console for debugging

// Advanced weather application with error handling
try {
    wifi_connect('HomeNetwork', 'password123');
    let response = http_get('https://api.weather.com/v1/current');
    let temp = parse_json_value(response, 'temperature');
    
    if (temp) {
        create_label_with_text(`Current: ${temp}°C`);
        draw_rect(50, 100, 200, 50, '#4a90e2');
    }
} catch (error) {
    print('Weather fetch failed: ' + error);
}

// Real-time debugging via serial console
// Monitor network requests and responses
// Professional development workflow

Testing Multiple Versions

// Version A: Minimalist design
create_label_with_text('Simple Clock');
// Save as clock_minimal.js

// Version B: Feature-rich design  
create_label_with_text('Advanced Clock');
draw_rect(0, 0, 536, 240, '#2c3e50');
// Save as clock_advanced.js

// Switch between versions instantly:
// /load clock_minimal.js
// /load clock_advanced.js

Additional Features

Built-in API Documentation

The IDE includes comprehensive WebScreen API documentation right in the sidebar:

Display Functions:

create_label_with_text('text') - Creates text labels
create_image('filename') - Displays images
set_background_color('#color') - Sets background
draw_rect(x, y, w, h, color) - Draws rectangles

Network Functions:

wifi_connect('ssid', 'pass') - WiFi connectivity
http_get('url') - HTTP requests
http_post('url', data) - POST requests

Storage Functions:

sd_write_file('path', data) - File operations
sd_read_file('path') - Read files
sd_list_files('/') - Directory browsing

Serial Command Integration

The IDE provides visual access to all WebScreen serial commands introduced in our previous article:

■ Quick Command Buttons: One-click access to common operations
■ Auto-completion: Tab completion for all serial commands
■ Visual Feedback: See command responses with syntax highlighting
■ Command History: Navigate previous commands with arrow keys

All commands from /help to /monitor are fully integrated, making the powerful serial system accessible to developers at all skill levels.

Browser-Based Architecture

No Installation Required

■ Pure Web Technology: Runs in any modern browser
■ No Drivers: Uses Web Serial API for direct device communication
■ Cross-Platform: Works on Windows, Mac, and Linux
■ Zero Configuration: Just open the HTML file and connect

Browser Compatibility

Chrome 89+: Full feature support
Edge 89+: Complete functionality
Opera 75+: All features available
Firefox: No Web Serial API support yet
Safari: Web Serial API not implemented

Development Workflows

Theme-Based Development

Creative Sessions:
1. Use Retro theme for visual inspiration
2. Terminal animation provides ambient creativity
3. Glowing effects make the process enjoyable

Professional Work:
1. Switch to Focus theme for concentration
2. Clean interface eliminates distractions  
3. Optimized for long development sessions

Rapid Iteration Cycle

1. Write code with syntax highlighting
2. Press F5 for instant upload and execution
3. Debug via real-time serial console
4. Make adjustments and repeat
5. Switch between multiple applications instantly

Real-Time Debugging

1. Monitor device output in Serial Console
2. Use /stats to check memory usage
3. Use /monitor for continuous system monitoring
4. Debug network requests and responses live

Technical Implementation

Web Serial API Integration

The IDE uses the Web Serial API for device communication:

■ Direct USB Communication: No intermediate software needed
■ Real-time Data: Bidirectional communication
■ Error Handling: Connection management with error recovery
■ Reconnection Support: Handles device disconnects

Theme Implementation

■ CSS Custom Properties: Theme switching using CSS variables
■ Component Isolation: UI elements adapt to theme selection
Performance: Minimal overhead for theme transitions
Extensible: Additional themes can be added via CSS

CodeMirror Integration

■ Code Editor: Standard syntax highlighting and editing features
■ Theme Synchronization: Editor themes match UI selection
■ Extension Support: Compatible with CodeMirror plugins

Use Cases and Applications

Educational Use

■ Immediate Feedback: Students see results quickly
■ Simplified Setup: No SD card management required
■ Visual Learning: Code changes visible on display
■ Gradual Complexity: Start with simple examples

Professional Use

■ Faster Iteration: Reduce development cycle time
■ Live Demonstrations: Show real-time code changes
■ Debugging: Monitor device output during development
■ Collaboration: Share sessions with team members

Maker Projects

■ Accessible Setup: Browser-based, no toolchain needed
■ Visual Options: Choose theme based on preference
■ Code Sharing: Easy to demonstrate and share projects
■ Experimentation: Test ideas quickly

Potential Future Enhancements

Some features we're considering for future versions:

Possible Additions

■ Multi-device Support: Connect to multiple WebScreens simultaneously
■ Code Templates: Pre-built application templates
■ Export/Import: Share complete project configurations
■ Advanced Debugging: Breakpoints and step-through debugging

Long-term Considerations

■ WiFi Connection: Connect to WebScreen over network
■ Collaborative Editing: Multi-user development sessions
■ Version Control: Git integration for project management
■ Plugin System: Community-developed extensions

Integration Ideas

■ CI/CD Pipeline: Automated deployment to WebScreen devices
■ Cloud Storage: Sync projects across devices
■ Marketplace: Share and discover WebScreen applications
■ Analytics: Usage monitoring and performance optimization

Getting Started Today

Quick Start Guide

■ Access: Open WebScreen Serial IDE in Chrome, Edge, or Opera
■ Choose Theme: Add ?mode=retro or ?mode=focus to the URL for immediate theme selection
■ Connect: Click "Connect Device" and select your WebScreen
■ Code: Start building amazing applications immediately

Example: Your First Application

// Welcome message
create_label_with_text('Hello WebScreen IDE!');
set_background_color('#2980b9');

// Add some interactivity
delay(2000);
create_label_with_text('Development made easy!');

// Network example (if WiFi configured)
// wifi_connect('YourWiFi', 'password');
// let time = http_get('https://worldtimeapi.org/api/timezone/America/New_York');
// let current_time = parse_json_value(time, 'datetime');
// create_label_with_text('Time: ' + current_time);

Save this as welcome.js, press F5, and watch it execute instantly on your WebScreen!

Conclusion

The WebScreen Serial IDE builds on our serial commands system to provide a browser-based development environment for WebScreen. By combining the serial command functionality with a visual interface, syntax highlighting, and integrated documentation, we've created a tool that can help reduce development friction.

This progression from SD card workflows to serial commands to a web-based IDE reflects our ongoing effort to improve the WebScreen development experience. Each iteration has aimed to reduce the time between writing code and seeing results.

Support Us on Crowd Supply

We’re on Crowd Supply, and we need your help to bring WebScreen to more people. Your backing makes it possible to keep prices low and quality high—so everyone can enjoy the power of an open-source secondary display.

Image
Crowd Supply Logo

 

Check out the campaign and get involved: WebScreen on Crowd Supply