ImSwitch OS (based on Forklift)
The ImSwitch ImSwitch OS is a complete, pre-configured operating system image designed specifically for UC2 microscopy systems. It provides a ready-to-use environment with all software, drivers, and configurations pre-installed.
Images and Screenshots
The ImSwitch OS comes with a visual installer and desktop environment:
ImSwitch OS desktop environment with pre-installed applications
ImSwitch configuration interface for hardware setup
Docker containers running ImSwitch services
Overview
The ImSwitch OS is a specialized Raspberry Pi OS image that includes:
- ImSwitch with all dependencies pre-installed
- UC2-REST Python interface for ESP32 communication
- UC2-ESP32 firmware flashing tools
- Docker with pre-built ImSwitch containers
- Camera drivers for supported hardware
- Configuration templates for common setups
- Web interface for remote control
Features
Pre-Installed Software
- ImSwitch Core: Latest stable version with all modules
- Docker Environment: Pre-built containers ready to run
- UC2-REST Library: Python interface for hardware control
- Firmware Tools: ESP32 flashing utilities and firmware
- Development Tools: Python, Git, VS Code Server (optional)
Hardware Support
- Cameras: HIK, Daheng, Raspberry Pi, USB cameras
- Motors: UC2-ESP32 controlled stages and focus systems
- Illumination: LED arrays, lasers, matrix displays
- Sensors: Environmental monitoring, feedback systems
Network Features
- WiFi Hotspot: Create isolated network for microscope control
- Web Interface: Browser-based control panel (Cockpit)
- SSH Access: Remote terminal access
- VNC Server: Remote desktop access
Installation
Requirements
- Raspberry Pi 4 (4GB RAM minimum, 8GB recommended)
- MicroSD Card (32GB minimum, Class 10 or better)
- UC2 Hardware (optional for initial setup)
Step 1: Download Image
# Download the latest Forklift OS image or go to Zenodo and download it here https://zenodo.org/records/14988987
wget https://zenodo.org/records/14988987/files/rpi-uc2-27f9a21.zip?download=1
Step 2: Flash to SD Card
Using Raspberry Pi Imager (Recommended):
- Download Raspberry Pi Imager
- Select "Use custom image" and choose the downloaded .img.xz file
- Select your SD card
- Click "Write" and wait for completion
Using dd (Linux/macOS):
# Extract image
xz -d imswitch-forklift-os.img.xz
# Flash to SD card (replace /dev/sdX with your SD card device)
sudo dd if=imswitch-forklift-os.img of=/dev/sdX bs=4M status=progress
sync
Step 3: First Boot
- Insert SD card into Raspberry Pi
- Power on the Raspberry Pi
- Observe for an SSID with name
openuc2-XXX-XXX-XXX
Configuration
Initial Setup
Access Methods:
- SSH:
ssh pi@openuc2-xxxx-xxxx-xxx.local
(default password:youseetoo
, default login:pi
) - Web Interface:
http://imswitch-pi.local:8001
Default Credentials:
- Username:
pi
- Password:
youseetoo
- SSH: Enabled by default
Network Configuration
WiFi Hotspot Mode:
# Enable hotspot mode (creates isolated network)
sudo systemctl enable hostapd
sudo systemctl enable dnsmasq
# Configure hotspot settings
sudo nano /etc/hostapd/hostapd.conf
Client Mode (Connect to existing WiFi):
# Use the desktop WiFi settings or command line
sudo raspi-config
ImSwitch Configuration
For detailed information about ImSwitch configuration files, see the Configuration Guide.
Quick Start Configuration:
# Navigate to configuration directory
cd /home/pi/ImSwitchConfig
# Copy a template configuration
Configuration files are stored in `/home/pi/Documents/ImSwitchConfig/config/` and can be edited using the desktop interface or via SSH.
# Edit configuration for your hardware
nano config/imcontrol_options.json #=> enter the name you want to use
Usage
Web Interface
The Forklift OS includes a web-based control interface accessible at:
- Local:
http://localhost:8001
- Network:
http://opencu2-XXX-xxx-xxx.local:8001
Web Interfaces
The ImSwitch OS provides several web interfaces for remote access:
- Cockpit Web Console: Available at
http://[raspberry-pi-ip]:9090
for system administration - ImSwitch React Interface: Available at
http://[raspberry-pi-ip]:8001/imswitch/index.html
for microscope control - WebSocket Control: Available at
http://[raspberry-pi-ip]:8002
for real-time data streams actually it's https by default to connect to it via a statically hosted website e.g. https://youseetoo.github.io/imswitch/index.html
Features:
- Live camera feed
- Motor control
- LED/laser control
- Configuration management
- System monitoring
System Management
Update ImSwitch:
forklift pallet upgrade --force @main
Advanced Features
Custom Configurations
Hardware Configuration:
# Edit hardware configuration
nano /home/pi/ImSwitchConfig/imcontrol_setups/my_setup.json
# Set as active configuration
echo '{"setupFileName": "my_setup.json"}' > /home/pi/ImSwitchConfig/config/imcontrol_options.json
Scripting:
# Custom scripts directory
ls /home/pi/ImSwitchConfig/scripts/
# Add your custom scripts
cp my_script.py /home/pi/ImSwitchConfig/scripts/
Troubleshooting
Common Issues
Check docker compose is running:
docker ps
Docker Compose Services
The ImSwitch OS includes a pre-configured docker-compose setup with the following services:
version: '3.8'
services:
imswitch:
image: ghcr.io/openuc2/imswitch-noqt-x64:latest
ports:
- "8001:8001"
- "2222:22"
environment:
- HEADLESS=1
- HTTP_PORT=8001
- CONFIG_FILE=example_uc2_hik_flowstop.json
- UPDATE_GIT=0
- UPDATE_CONFIG=0
volumes:
- /home/pi/Documents/ImSwitchConfig:/config
- /home/pi/Documents/ImSwitchData:/data
privileged: true
restart: unless-stopped
portainer:
image: portainer/portainer-ce:latest
ports:
- "9000:9000"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- portainer_data:/data
restart: unless-stopped
volumes:
portainer_data:
This setup provides:
- ImSwitch: Main microscopy control application
- Portainer: Docker container management interface
- Persistent Data: Configuration and data volumes for data retention
Hardware not detected:
# Check USB devices
lsusb
# Check serial ports
ls /dev/tty*
# Check permissions
sudo usermod -a -G dialout pi
Network issues:
# Check network status
ip addr show
# Restart network services
sudo systemctl restart dhcpcd
sudo systemctl restart hostapd
Log Files
Important log locations:
- ImSwitch:
/home/pi/.imswitch/logs/
- System:
/var/log/syslog
- Docker:
journalctl -u imswitch-docker
Recovery
Reset to defaults:
# Reset ImSwitch configuration
rm -rf /home/pi/ImSwitchConfig/config/*
# then restart imswitch
Updates and Maintenance
Manual Updates
For manual updates, use the provided update script:
# Update ImSwitch Docker containers
bash ~/Desktop/update_docker_container.sh
# Or manually pull latest images
sudo docker-compose down
sudo docker pull ghcr.io/openuc2/imswitch-noqt-x64:latest
sudo docker-compose up -d
Update Components
# Update ImSwitch configuration files
cd /home/pi/Documents/ImSwitchConfig
git pull origin master
# Update UC2-REST library
pip install --upgrade UC2-REST
# Update ESP32 firmware tools
cd /home/pi/uc2-esp32
git pull origin main
Support and Resources
Getting Help
- Documentation: This guide and linked resources
- GitHub Issues: ImSwitch OS Repository
- Community Forum: openUC2.com
- Email Support: Contact via GitHub or forum
Related Projects
- ImSwitch Core: ImSwitch Repository
- UC2-REST: UC2-REST Repository
- UC2-ESP32: UC2-ESP32 Firmware
Next Steps
After setting up Forklift OS:
- Configure your hardware - Set up specific devices
- Basic usage tutorial - Learn ImSwitch operation
- Advanced tutorials - Explore advanced features