FAQ¶
Frequently asked questions about ScriptO Studio and pyDirect.
General¶
What is ScriptO Studio?¶
ScriptO Studio is a browser-based IDE for developing MicroPython applications on ESP32 devices. It provides code editing, file management, terminal access, and an extension system for specialized functionality.
What is pyDirect?¶
pyDirect is custom MicroPython firmware for ESP32-S3 that includes: - WebREPL Binary Protocol for fast communication - WebRTC support for low-latency connections - Hardware abstraction for CAN, I2C, SPI, and more - Pre-configured drivers for common peripherals
Do I need to install anything?¶
No installation required! ScriptO Studio runs entirely in your browser. Just navigate to scriptostudio.pydirect.com and connect to your device.
Which browsers are supported?¶
| Browser | Status |
|---|---|
| Chrome 90+ | ✅ Full support |
| Edge 90+ | ✅ Full support |
| Firefox 85+ | ✅ Full support |
| Safari 15+ | ⚠️ WebRTC may be limited |
Is it open source?¶
Yes! Both projects are MIT licensed: - ScriptO Studio - pyDirect
Connection¶
Why can't I connect to my device?¶
See Troubleshooting Connection for detailed help. Quick checks: 1. Device and browser on same network 2. Correct IP address 3. WebREPL password correct 4. No other client connected
What's the difference between WebRTC and WebSocket?¶
| Feature | WebRTC | WebSocket |
|---|---|---|
| Latency | Lower | Higher |
| Setup | Requires STUN | Simple |
| Reliability | P2P dependent | More reliable |
| NAT traversal | Sometimes fails | Always works |
ScriptO Studio tries WebRTC first, then falls back to WebSocket.
Can I connect over the internet?¶
WebSocket works over the internet if your device has a public IP or you set up port forwarding. WebRTC requires TURN servers for NAT traversal (not included by default).
Why is only one client allowed?¶
The WebREPL Binary Protocol uses a single-client model to: - Avoid race conditions on file operations - Ensure consistent stdout/stderr streaming - Simplify authentication and session management
Development¶
How do I run code on the device?¶
- Write code in the editor
- Click Run (or press F5)
- Output appears in the Terminal
The code is sent to the device and executed immediately.
How do I save files to the device?¶
- Open File Manager (sidebar)
- Create or select a file
- Edit in the editor
- Press Ctrl+S to save
Files are saved directly to the device's flash filesystem.
Can I use pip packages?¶
MicroPython uses mip for package management:
Many micropython-lib packages are available, but not all PyPI packages work on MicroPython.
Extensions¶
How do I install an extension?¶
- Click Extensions in the sidebar (or the + icon)
- Search for the extension
- Click Install
Device-side libraries are installed automatically.
Can I create my own extensions?¶
Yes! See Writing Extensions for a complete guide.
Where are extensions stored?¶
- UI code: Loaded from ScriptoHub at runtime
- Device libraries: Installed to
/lib/on the device
Hardware¶
Which ESP32 chip should I use?¶
Recommended: ESP32-S3 with 8MB PSRAM
Other variants may work but have limitations: - ESP32-S2: No Bluetooth - ESP32-C3: Limited RAM - Original ESP32: Not officially supported
How much RAM/Flash do I need?¶
| Resource | Minimum | Recommended |
|---|---|---|
| Flash | 4MB | 16MB |
| PSRAM | None | 8MB |
More flash = more files and extensions. PSRAM = larger scripts and data.
Can I use this with Arduino?¶
No. pyDirect is MicroPython firmware, not compatible with Arduino. However, the concepts are similar and many Arduino libraries have MicroPython equivalents.
More Questions?¶
- Check the Wiki Home for documentation
- Search existing issues
- Open a new issue for bugs or questions