vanmoof-web-controller icon indicating copy to clipboard operation
vanmoof-web-controller copied to clipboard

Change the speed limit of a VanMoof S3 or X3 via a website

Mooovy

A web app for changing the speed limit of your VanMoof S3 and X3.

NOT an offical VanMoof service/product!

preview

Current features

  • Change your speed limit to JP (24 km/h), EU (25 km/h), US (32 km/h) or ๐Ÿ˜Ž (37 km/h).
  • Set your power level, this also unlocks a new power level 5.
  • A sound board with the following sounds:
Short ๐Ÿ”˜ Click ๐Ÿงจ Error ๐Ÿ‘ Pling ๐Ÿค” Cling clong ๐Ÿ”” Bell ๐Ÿ”” Normal bike bell ๐ŸŽ‰ Bell Tada ๐Ÿ˜š Whistle ๐Ÿšข BOAT โšก๏ธ Wuup ๐Ÿซค Success but error
Long ๐Ÿ”‹ Charding noise.. ๐Ÿšจ Alarm ๐Ÿšจ Alarm stage 2 ๐Ÿ”‹ Charging.. ๐Ÿ†• Updating.. ๐ŸŽ‰ Update complete ๐Ÿ’ฅ Make wired noises
  • Share your bike to someone using their email.
  • Show a list of people you are currently sharing your bike with and a button to stop sharing.
  • Set your bell tone (Bell, Submarine, Sonar, Party & Foghorn)
  • Upload your own custom bell (will replace the Foghorn/Ping bell)

Want to help?

Here are some things you can do to help!

  • Confirm v1.8.2 still works (v1.8.1 has been confirmed to work already!)
  • Help reverse engineer how the refresh token works for the VanMoof API
  • Hackin support for older/newer bikes
  • Help with finding out what is send from / to the bike over bluetooth and having a good workflow for doing this

Development

This project is build using NextJS (a React framework) and deployed on vercel

Install

npm i

Run

npm run dev

Compress logos

cd public
npx @squoosh/cli --max-optimizer-rounds 10 --quant '{numColors:8}' --output-dir compressed_logos --webp auto --oxipng auto logo_full.png
npx @squoosh/cli --max-optimizer-rounds 10 --resize '{width:512,height:512}' --quant '{numColors:8}' --output-dir compressed_logos --webp auto --oxipng auto --suffix _512 logo_full.png
npx @squoosh/cli --max-optimizer-rounds 10 --resize '{width:256,height:256}' --quant '{numColors:8}' --output-dir compressed_logos --webp auto --oxipng auto --suffix _256 logo_full.png
npx @squoosh/cli --max-optimizer-rounds 10 --resize '{width:128,height:128}' --quant '{numColors:8}' --output-dir compressed_logos --webp auto --oxipng auto --suffix _128 logo_full.png
npx @squoosh/cli --max-optimizer-rounds 10 --resize '{width:64,height:64}' --quant '{numColors:8}' --output-dir compressed_logos --webp auto --oxipng auto --suffix _64 logo_full.png