No description
  • C 86.8%
  • HTML 4.9%
  • Python 4.7%
  • C++ 3%
  • Shell 0.3%
  • Other 0.2%
Find a file
voloved b2589bebcd
Some checks failed
Build / build (sensorwatch_blue, classic) (push) Has been cancelled
Build / build (sensorwatch_blue, custom) (push) Has been cancelled
Build / build (sensorwatch_green, classic) (push) Has been cancelled
Build / build (sensorwatch_green, custom) (push) Has been cancelled
Build / build (sensorwatch_pro, classic) (push) Has been cancelled
Build / build (sensorwatch_pro, custom) (push) Has been cancelled
Build / build (sensorwatch_red, classic) (push) Has been cancelled
Build / build (sensorwatch_red, custom) (push) Has been cancelled
Build / build-simulator (sensorwatch_blue, classic) (push) Has been cancelled
Build / build-simulator (sensorwatch_blue, custom) (push) Has been cancelled
Build / build-simulator (sensorwatch_green, classic) (push) Has been cancelled
Build / build-simulator (sensorwatch_green, custom) (push) Has been cancelled
Build / build-simulator (sensorwatch_pro, classic) (push) Has been cancelled
Build / build-simulator (sensorwatch_pro, custom) (push) Has been cancelled
Build / build-simulator (sensorwatch_red, classic) (push) Has been cancelled
Build / build-simulator (sensorwatch_red, custom) (push) Has been cancelled
GitHub Pages / gh-pages (push) Has been cancelled
Merge pull request #217 from voloved/fix/moon-is_southern_hemisphere
location.bit.latitude  needs to be recast as an int16_t
2026-06-06 17:44:46 -04:00
.devcontainer Update Devcontainer Dockerfile 2024-08-22 14:54:41 +02:00
.github/workflows Build in CI using a build matrix (#41) 2025-07-07 19:24:03 -04:00
filesystem filesystem: prevent lockup when flash is nearly full 2025-04-20 17:58:43 -04:00
gossamer@03aedcbdf9 revert gossamer commit that (sometimes!) broke simulator builds 2025-07-07 18:55:45 -04:00
legacy Renamed LIS2DW_FIFO_TIMEOUT_SECOND to LIS2DW_FIFO_TIMEOUT 2026-01-02 20:07:56 -05:00
lib chirpy: fix typo (resolves #8) 2025-07-06 11:34:06 -04:00
littlefs@8ed63b27be update submodules 2025-04-21 00:16:23 -04:00
shell add command to dump binary file as base64 encoded data 2024-10-27 15:13:10 -04:00
template remove outdated guidance from watch face template 2025-08-04 07:16:37 -04:00
tinyusb@5572168994 update submodules 2025-04-21 00:16:23 -04:00
utils Include ability to select only the best words as the first choice 2024-09-03 17:09:52 -04:00
utz@24d8572fa0 shorten time zone names 2025-03-08 16:14:03 -05:00
watch-faces location.bit.latitude needs to be recast as an int16_t 2026-06-06 17:39:16 -04:00
watch-library Fix calling start callback 2026-04-04 16:07:03 +02:00
.envrc add .envrc/flake.nix for setting up automatic build environment under NixOS (#17) 2025-07-06 11:39:02 -04:00
.gitignore add .envrc/flake.nix for setting up automatic build environment under NixOS (#17) 2025-07-06 11:39:02 -04:00
.gitmodules Changed submodules to refernce HTTPS access rather than SSH (#4) 2024-10-27 14:05:42 -04:00
Doxyfile update Doxygen for Second Movement 2024-09-18 13:04:43 -04:00
dummy.c silence syscall-related compiiler warnings 2025-03-16 08:07:43 -04:00
flake.lock add .envrc/flake.nix for setting up automatic build environment under NixOS (#17) 2025-07-06 11:39:02 -04:00
flake.nix flake.nix: Add python313 2026-04-28 16:35:18 -07:00
LICENSE.md fork Sensor-Watch to second-movement; remove non-Movement related files 2024-09-18 08:07:06 -04:00
Makefile Initial seemingly stable version of movement using the RTC COUNTER32 mode 2026-01-02 20:02:36 -05:00
movement.c movement:Allow disabling double tap detection in movement_enable_tap_detection_if_available 2026-04-26 15:08:57 +01:00
movement.h movement:Allow disabling double tap detection in movement_enable_tap_detection_if_available 2026-04-26 15:08:57 +01:00
movement_config.h Remove solar_time_face from watch_faces array 2026-03-14 09:58:25 -04:00
movement_custom_signal_tunes.h Add "Jurassic Park" custom signal tune (#53) 2025-08-03 13:23:51 -04:00
movement_faces.h Merge branch 'main' into tide_face 2026-04-01 16:40:57 -04:00
openocd.cfg add an openocd.cfg for openocd 0.12.0 2024-03-31 00:37:35 +00:00
README.md Indicate more stability in readme 2026-01-04 13:16:10 +01:00
watch-faces.mk Merge branch 'main' into tide_face 2026-04-01 16:40:57 -04:00

Second Movement

This is the successor refactor of the Movement firmware for Sensor Watch.

Getting dependencies

You will need to install the GNU Arm Embedded Toolchain to build projects for the watch. If you're using Debian or Ubuntu, it should be sufficient to apt install gcc-arm-none-eabi.

You will need to fetch the git submodules for this repository too, with git submodule update --init --recursive

Building Second Movement

You can build the default watch firmware with:

make BOARD=board_type DISPLAY=display_type

where board_type is any of:

  • sensorwatch_pro
  • sensorwatch_green
  • sensorwatch_red (also known as Sensor Watch Lite)
  • sensorwatch_blue

and display_type is any of:

  • classic
  • custom

Optionally you can set the watch time when building the firmware using TIMESET=minute.

TIMESET can be defined as:

  • year = Sets the year to the PC's
  • day = Sets the default time down to the day (year, month, day)
  • minute = Sets the default time down to the minute (year, month, day, hour, minute)

If you'd like to modify which faces are built and included in the firmware, edit movement_config.h. You will get a compilation error if you enable more faces than the watch can store.

Installing firmware to the watch

To install the firmware onto your Sensor Watch board, plug the watch into your USB port and double tap the tiny Reset button on the back of the board. You should see the LED light up red and begin pulsing. (If it does not, make sure you didnt plug the board in upside down). Once you see the WATCHBOOT drive appear on your desktop, type make install. This will convert your compiled program to a UF2 file, and copy it over to the watch.

If you want to do this step manually, copy /build/firmware.uf2 to your watch.

Emulating the firmware

You may want to test out changes in the emulator first. To do this, you'll need to install emscripten, then run:

emmake make BOARD=sensorwatch_red DISPLAY=classic
python3 -m http.server -d build-sim

Finally, visit firmware.html to see your work.