https://github.com/nvsukhanov/moc-commander
An open-source PWA for controlling LEGO® Powered UP devices
https://github.com/nvsukhanov/moc-commander
angular bluetooth gamepad lego lego-powered-up poweredup remote-control technic typescript
Last synced: 6 months ago
JSON representation
An open-source PWA for controlling LEGO® Powered UP devices
- Host: GitHub
- URL: https://github.com/nvsukhanov/moc-commander
- Owner: nvsukhanov
- License: mit
- Created: 2023-02-11T15:51:56.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-11-21T00:15:28.000Z (11 months ago)
- Last Synced: 2025-03-28T10:54:01.793Z (7 months ago)
- Topics: angular, bluetooth, gamepad, lego, lego-powered-up, poweredup, remote-control, technic, typescript
- Language: TypeScript
- Homepage: https://moc-commander.com/
- Size: 7.19 MB
- Stars: 6
- Watchers: 2
- Forks: 1
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
![]()
MOC Commander: PWA for controlling LEGO® Powered Up devices
[](https://github.com/nvsukhanov/MOC-Commander/blob/main/LICENSE.md)
[](https://github.com/nvsukhanov/MOC-Commander/actions)
An open-source Progressive Web Application for controlling LEGO® Powered Up devices with physical controllers.
Deployment of the latest stable version is available at [https://moc-commander.com](https://moc-commander.com)
Staging version can be found at [https://main.moc-commander.pages.dev](https://main.moc-commander.pages.dev).
## Features
### Input
- Supported input devices:
- Keyboard
- Up to 4 gamepads
- [LEGO 88010 Remote Control](https://www.lego.com/en-us/product/remote-control-88010)
- PoweredUP Hub green button
- Steam Deck ([installation manual](https://moc-commander.com/steam-deck))
- Any number of input devices can be used to control any number of outputs
- Input devices can be configured: gamepad axes active zones, input gain (liner/log/exp) etc### Output
- Supports [LEGO Powered Up](https://www.lego.com/en-us/themes/powered-up/about) hubs (compliant
with [LEGO Wireless Protocol v3.0.00](https://lego.github.io/lego-ble-wireless-protocol-docs/index.html))
- Utilizes dynamic IO capabilities discovery to determine supported IO operations by the device.
- Supports connection to multiple hubs simultaneously### Operation Modes
- Supports the following device operation modes:
- Speed
- Set angle
- Servo w/ auto-calibration on start
- Stepper
- Train
- Gearbox
- Allows fine-tuning of operation mode parameters such as speed limits, power output, angle limits, etc.
- Supports acceleration and deceleration profiles (slow start and slow stop, especially useful for trains)
- Allows reading and adjusting of motor position during the configuration of control schemes### Misc
- Supports reading of sensor data (voltage, pitch, yaw, etc) and displaying it during operation
- Import/export of control schemes
- Backup/restore application state
- Supports small screen devices
- Supports dark theme
- Installable as a PWA### Supported platforms
- Windows
- macOS
- Linux
- Android## Limitations
- Due to the nature of the [Web Bluetooth API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Bluetooth_API) used
for hub connections, the application is compatible only with the latest versions of Chrome and Chromium-based
browsers (Edge, Opera, Brave, etc). Check [here](https://caniuse.com/web-bluetooth) for the full list of supported
browsers.
- iOS devices are not supported due to the lack of support for the Web Bluetooth API.## Disclaimer
LEGO® is a trademark of the LEGO Group of companies which does not sponsor, authorize or endorse this application.
## Screenshots
| | | |
| ------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| Running control scheme | Gamepad settings | Hubs list |
|  |  |  |
| Hub view | Control scheme view | Control scheme view (dark theme) |
|  |  |  |
| Control scheme export (dark theme) | Control scheme edit | Controllers list |
|  |  |  |