Skip to content
doomke edited this page May 17, 2023 · 23 revisions

Welcome to the XR Twin Lab wiki, where you can find everything concerning the physical side of our twin lab setups.

General

XRTL strives to make standard optical lab equipment like mirrors and lasers remote controllable by adding cheap electronics including actuators, sensors and cameras. We provide 3D-printable attachments that allow to secure the electronics to the equipment without permanently altering it. The components are capable to communicate their current state and any changes with a remote server using socket.io.

We chose espressifs ESP32 family to act as the bridge between the physical and virtual world in our setups, as those microcontrollers are comparably cheap, powerful and easy to use due to the widespread availability of dev boards. The dev boards are very flexible and offer a large number of input and output pins, a variable number of different actuators and sensors might therefore be connected to each individual microcontroller depending on the setup. To accomodate this variability, this project is organized in modules that can be dynamically added to an individual dev board.

Setting up a specific component poses two particular challenges:

  1. installing the necessary hardware including power supplies and wiring
  2. configuring the firmware

Modules

     Name Description
camera stream camera images to the server
infoLED simple display device indicating information like connection status or active movement
input read and convert voltages, monitor and relay values
macro group other modules by defining more complex states and executing several instructions at once
output switch a voltage to control actuators directly or by PWM
servo manage position, speed and power state of a servo motor
socket establish connection to the socket server, send and receive events
stepper manage position, speed and power state of a stepper motor

Installing the Hardware

Firmware

A short guide on how to set up an ESP32 with the firmware can be found here. Once the Firmware is installed, changes to the configuration can be made via the serial interface. This includes adding, deleting or changing the settings of modules.

The firmware is organized in modules that can be dynamically added and removed from the ESP32 using the serial interface. The modules can communicate internally via an event structure and externally via socket.io, organized by a core module handling all interactions. Currently the following modules are available:

General

Guides

Principle of Operation

Modules

Software Hardware
camera camera
infoLED infoLED
input input
macro macro
output output
servo servo
socket socket
stepper stepper
WiFi wifi

Clone this wiki locally