This is firmware source code for the mainboard controller a new Open-Source Motion Simulator Platform that is able to perform Yaw, Pitch and Roll based on input from Game-Telemetry Data or Directly from Head-tracker using BNO085 Inertia Measuring Unit.
Here is an animation of the 3-axis pitch-roll platform. The Yaw motor sits on top of the movable pitch-roll platform.
The Main-Board is designed around ESP32 microcontroler from Expressif. The code is written in C using Arduino and run on PlatformIO. The supplied code has been fully tested to work. The Pitch/Roll syncronization matrix code has been left out. Contact the developer to get the sync code. Only the yaw simulation works with the supplied code without modification.
Currently the following methods can be used to control the motion-simulator. 1: Head-tracker with inbuilt IMU chip- Connects to the ESP32 mainboard through Bluetooth or via ESP-Now. Currently, ESPnow has been enabled because of its low latency. 2: WiFi- UDP plugin from Games Telemetary. Some Games support have been added. See Telemetry control for list of supported games.
SimSpirit is an open-source motion simulator platform designed for immersive and realistic experiences. The motion simulation is capable of full 360 degrees yaw, as well as providing synchronized pitch and roll at any given yaw position, thanks to its highly accurate patent-pending sync algorithm.
Open Source: SimSpirit is an open-source project, allowing developers and enthusiasts to contribute, modify, and enhance the platform.
ESP32 Mainboard: The motion simulator is built around the powerful and versatile ESP32 microcontroller, providing a robust foundation for control and communication.
Head-Tracker with LSM6DS3 IMU: The head-tracker module utilizes the LSM6DS3 or BNO085 inertial measurement unit (IMU) for precise measurement of yaw, pitch, and roll in free space. The head-tracker Project is in this Github page
Full 360 Degrees Yaw: SimSpirit enables complete 360 degrees yaw rotation, delivering a comprehensive range of motion for an immersive experience.
Synchronized Pitch and Roll: The motion simulator's patent-pending algorithm ensures synchronized pitch and roll at any specific yaw position, enhancing realism and accuracy.
Immersive Experiences: SimSpirit is designed to provide users with immersive and realistic experiences by precisely simulating the motion corresponding to the virtual environment or application.
To get started with SimSpirit, follow these steps:
SimSpirit offers the convenience of control through the head-tracker, which establishes a connection with the mainboard using the ESPnow protocol. The decision to utilize ESPnow instead of Bluetooth mode stems from the protocol's remarkable low latency. By leveraging ESPnow, SimSpirit ensures responsive and real-time control, enhancing the overall user experience.
SimSpirit can be controlled via game telemetry data.
(udp port default port is 20777) --- Change the default in /include/pindefines.h -- find F1_UDP_PORT variable
In addition to the head-tracker control, SimSpirit offers the capability to be controlled directly through live games telemetry data. It currently supports several popular games, including F1-2022, Life for Speed, and Epic_RollerCoaster, which runs on the Meta Quest2 VR Headset.
SimSpirit enables direct control via WiFi using UDP datagram plugins. By leveraging UDP telemetry data, any game capable of sending UDP packets can control the SimSpirit without the need for intermediate PC USB control. This feature provides limited latency and a seamless and immersive experience for users.
Furthermore, SimSpirit can also be controlled via USB directly from a PC, offering flexibility in control options to suit different setups and preferences.
The SimSpirit game telemetry control features include:
Please note that for compatibility with specific games and setups, appropriate configuration and integration may be required. Refer to the documentation and guides for more information on setting up game telemetry control with SimSpirit.
Feel free to let me know if there's anything else you'd like to add or modify!
SimSpirit is released under the MIT License. You are free to use, modify, and distribute the platform in accordance with the terms and conditions stated in the license.
SimSpirit is made possible by the use of open source materials obtained online from contributions of numerous individuals and organizations. Hence the justification in making it open source as well. We would like to express our gratitude to the open-source community for the use of their valuable materials in this project.
For inquiries, suggestions, or support regarding SimSpirit, please reach out to the project director.
Note: This README provides a general overview and guide for the SimSpirit motion simulator. For detailed instructions, troubleshooting, and updates, please refer to the project's GitHub repository.