Please read the documentation on the website!
- install PlatformIO Core or PlatformIO IDE (which installs PlatformIO core automatically)
- For improved LUA Script support, see env:pico32_LIGHT_EDITION_PREBUILD_LUA: install SWIG (also available in most package managers, e.g.
brew install swig
) - Then clone this repository
$ git clone --recurse-submodules https://github.com/Open-Smartwatch/open-smartwatch-os.git
The master
branch is a stable version and the develop
branch is a beta version. Recommended that you upload the master
branch.
Open the cloned repo in VSCode:
$ code open-smartwatch-os
And rename file include/config.h.example
to include/config.h
and adapt the values according to your requirements and press F5
to build it.
You can instead go to the repo folder with your terminal and run
$ pio run -e pico32_LIGHT_EDITION -t upload
respectively
$ pio run -e pico32_GPS_EDITION -t upload
Depending on the watch model.
If you want to print out the log for debugging, following command:
$ pio device monitor
- Wi-Fi needs to be able to connect for this to work.
- you will need bash and ImageMagick for the helper scripts to work
The raw screenserver runs in the background and prints via serial:
Started Raw ScreenServer
http://<IP_OF_WATCH>/api/screenserver
- add
-D RAW_SCREEN_SERVER
to your build flags inplatformio.ini
- build + flash + reset watch
- wait for the server to be started (see msg above)
- run
bash fetchScreen.sh <IP_OF_WATCH> screenshot.png
- run
bash composeScreen.sh screenshot.png screenshot_composed.png
The fetchScreen.sh
downloads the raw image buffer from the running screen server, and converts the image to png. The composeScreen.sh
creates the image with a surrounding smartwatch (light edition).
Run the following inside the open-smartwatch-os
directory:
$ cd scripts/screen_capture/
$ ./createScreenshot.sh <IP_OF_WATCH> <SCREENSHOT>
- The captured file can be found in the
screenshot/
folder inside theopen-smartwatch-os
directory.
For more information on troubleshooting, see Wiki.
You did not clone the repository with the --recursive-submodules
flag.
You did not rename include/config.h.example
You did not hold down BTN1(FLASH) and then tap the RESET button on the watch whilst platform.io was trying to connect.