From b0bdf35d8f6340be04aebe7fbd368418d8c15043 Mon Sep 17 00:00:00 2001 From: Joey Castillo Date: Wed, 20 Apr 2022 17:18:58 -0400 Subject: add mechanism for building alternate firmware images --- movement/alt_fw/alt_time.h | 41 +++++++++++++++++++++++++++++++++++++ movement/alt_fw/deep_space_now.h | 44 ++++++++++++++++++++++++++++++++++++++++ movement/alt_fw/focus.h | 42 ++++++++++++++++++++++++++++++++++++++ movement/alt_fw/the_athlete.h | 43 +++++++++++++++++++++++++++++++++++++++ movement/alt_fw/the_backpacker.h | 44 ++++++++++++++++++++++++++++++++++++++++ movement/alt_fw/the_stargazer.h | 42 ++++++++++++++++++++++++++++++++++++++ 6 files changed, 256 insertions(+) create mode 100644 movement/alt_fw/alt_time.h create mode 100644 movement/alt_fw/deep_space_now.h create mode 100644 movement/alt_fw/focus.h create mode 100644 movement/alt_fw/the_athlete.h create mode 100644 movement/alt_fw/the_backpacker.h create mode 100644 movement/alt_fw/the_stargazer.h (limited to 'movement/alt_fw') diff --git a/movement/alt_fw/alt_time.h b/movement/alt_fw/alt_time.h new file mode 100644 index 00000000..8108bcf3 --- /dev/null +++ b/movement/alt_fw/alt_time.h @@ -0,0 +1,41 @@ +/* + * MIT License + * + * Copyright (c) 2022 Joey Castillo + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef MOVEMENT_CONFIG_H_ +#define MOVEMENT_CONFIG_H_ + +#include "movement_faces.h" + +const watch_face_t watch_faces[] = { + simple_clock_face, + beats_face, + day_one_face, + + preferences_face, + set_time_face, +}; + +#define MOVEMENT_NUM_FACES (sizeof(watch_faces) / sizeof(watch_face_t)) + +#endif // MOVEMENT_CONFIG_H_ diff --git a/movement/alt_fw/deep_space_now.h b/movement/alt_fw/deep_space_now.h new file mode 100644 index 00000000..1d395fca --- /dev/null +++ b/movement/alt_fw/deep_space_now.h @@ -0,0 +1,44 @@ +/* + * MIT License + * + * Copyright (c) 2022 Joey Castillo + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef MOVEMENT_CONFIG_H_ +#define MOVEMENT_CONFIG_H_ + +#include "movement_faces.h" + +const watch_face_t watch_faces[] = { + simple_clock_face, + mars_time_face, + world_clock_face, + world_clock_face, + world_clock_face, + day_one_face, + + preferences_face, + set_time_face, +}; + +#define MOVEMENT_NUM_FACES (sizeof(watch_faces) / sizeof(watch_face_t)) + +#endif // MOVEMENT_CONFIG_H_ diff --git a/movement/alt_fw/focus.h b/movement/alt_fw/focus.h new file mode 100644 index 00000000..865459e8 --- /dev/null +++ b/movement/alt_fw/focus.h @@ -0,0 +1,42 @@ +/* + * MIT License + * + * Copyright (c) 2022 Joey Castillo + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef MOVEMENT_CONFIG_H_ +#define MOVEMENT_CONFIG_H_ + +#include "movement_faces.h" + +const watch_face_t watch_faces[] = { + simple_clock_face, + tomato_face, + stopwatch_face, + countdown_face, + + preferences_face, + set_time_face, +}; + +#define MOVEMENT_NUM_FACES (sizeof(watch_faces) / sizeof(watch_face_t)) + +#endif // MOVEMENT_CONFIG_H_ diff --git a/movement/alt_fw/the_athlete.h b/movement/alt_fw/the_athlete.h new file mode 100644 index 00000000..5d9d9529 --- /dev/null +++ b/movement/alt_fw/the_athlete.h @@ -0,0 +1,43 @@ +/* + * MIT License + * + * Copyright (c) 2022 Joey Castillo + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef MOVEMENT_CONFIG_H_ +#define MOVEMENT_CONFIG_H_ + +#include "movement_faces.h" + +const watch_face_t watch_faces[] = { + simple_clock_face, + stopwatch_face, + countdown_face, + counter_face, + pulsometer_face, + + preferences_face, + set_time_face, +}; + +#define MOVEMENT_NUM_FACES (sizeof(watch_faces) / sizeof(watch_face_t)) + +#endif // MOVEMENT_CONFIG_H_ diff --git a/movement/alt_fw/the_backpacker.h b/movement/alt_fw/the_backpacker.h new file mode 100644 index 00000000..01af7b06 --- /dev/null +++ b/movement/alt_fw/the_backpacker.h @@ -0,0 +1,44 @@ +/* + * MIT License + * + * Copyright (c) 2022 Joey Castillo + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef MOVEMENT_CONFIG_H_ +#define MOVEMENT_CONFIG_H_ + +#include "movement_faces.h" + +const watch_face_t watch_faces[] = { + simple_clock_face, + sunrise_sunset_face, + moon_phase_face, + thermistor_readout_face, + thermistor_logging_face, + blinky_face, + + preferences_face, + set_time_face, +}; + +#define MOVEMENT_NUM_FACES (sizeof(watch_faces) / sizeof(watch_face_t)) + +#endif // MOVEMENT_CONFIG_H_ diff --git a/movement/alt_fw/the_stargazer.h b/movement/alt_fw/the_stargazer.h new file mode 100644 index 00000000..320436ad --- /dev/null +++ b/movement/alt_fw/the_stargazer.h @@ -0,0 +1,42 @@ +/* + * MIT License + * + * Copyright (c) 2022 Joey Castillo + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef MOVEMENT_CONFIG_H_ +#define MOVEMENT_CONFIG_H_ + +#include "movement_faces.h" + +const watch_face_t watch_faces[] = { + simple_clock_face, + astronomy_face, + sunrise_sunset_face, + moon_phase_face, + + preferences_face, + set_time_face, +}; + +#define MOVEMENT_NUM_FACES (sizeof(watch_faces) / sizeof(watch_face_t)) + +#endif // MOVEMENT_CONFIG_H_ -- cgit v1.2.3 From 19dac66a3bd84cf7868d2a27225e92a5a486c03d Mon Sep 17 00:00:00 2001 From: Joey Castillo Date: Thu, 21 Apr 2022 11:26:02 -0400 Subject: freeze snapshot of standard firmware in alt_fw --- movement/alt_fw/standard.h | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 movement/alt_fw/standard.h (limited to 'movement/alt_fw') diff --git a/movement/alt_fw/standard.h b/movement/alt_fw/standard.h new file mode 100644 index 00000000..3abcf457 --- /dev/null +++ b/movement/alt_fw/standard.h @@ -0,0 +1,43 @@ +/* + * MIT License + * + * Copyright (c) 2022 Joey Castillo + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef MOVEMENT_CONFIG_H_ +#define MOVEMENT_CONFIG_H_ + +#include "movement_faces.h" + +const watch_face_t watch_faces[] = { + simple_clock_face, + world_clock_face, + sunrise_sunset_face, + moon_phase_face, + thermistor_readout_face, + + preferences_face, + set_time_face, +}; + +#define MOVEMENT_NUM_FACES (sizeof(watch_faces) / sizeof(watch_face_t)) + +#endif // MOVEMENT_CONFIG_H_ -- cgit v1.2.3 From a6024e9fdae3d41fc12c40920bc16899f73efd63 Mon Sep 17 00:00:00 2001 From: Joey Castillo Date: Thu, 21 Apr 2022 11:46:56 -0400 Subject: stargazer firmware: make LED red by default --- movement/alt_fw/the_stargazer.h | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'movement/alt_fw') diff --git a/movement/alt_fw/the_stargazer.h b/movement/alt_fw/the_stargazer.h index 320436ad..edf49ffa 100644 --- a/movement/alt_fw/the_stargazer.h +++ b/movement/alt_fw/the_stargazer.h @@ -27,6 +27,11 @@ #include "movement_faces.h" +#define MOVEMENT_CUSTOM_BOOT_COMMANDS() { \ + movement_state.settings.bit.led_green_color = 0x0;\ + movement_state.settings.bit.led_red_color = 0xF;\ +} + const watch_face_t watch_faces[] = { simple_clock_face, astronomy_face, -- cgit v1.2.3 From cedfe72ced5ab185d580d21d5766b0ba37cbc2ce Mon Sep 17 00:00:00 2001 From: Joey Castillo Date: Thu, 21 Apr 2022 13:34:49 -0400 Subject: deep space firmware: prepopulate time zones --- movement/alt_fw/deep_space_now.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'movement/alt_fw') diff --git a/movement/alt_fw/deep_space_now.h b/movement/alt_fw/deep_space_now.h index 1d395fca..4cd97578 100644 --- a/movement/alt_fw/deep_space_now.h +++ b/movement/alt_fw/deep_space_now.h @@ -27,6 +27,21 @@ #include "movement_faces.h" +// Preset Goldstone (GO), Madrid (MA), and Canberra (CA) time zones. + +#define MOVEMENT_CUSTOM_BOOT_COMMANDS() { \ + /* Standard Time */\ + /*\ + watch_store_backup_data(0x1e0c0c, 4);\ + watch_store_backup_data(0x010115, 5);\ + watch_store_backup_data(0x130105, 6);\ + */\ + /* Daylight Saving Time */\ + watch_store_backup_data(0x1f0c0c, 4);\ + watch_store_backup_data(0x020115, 5);\ + watch_store_backup_data(0x110105, 6);\ +} + const watch_face_t watch_faces[] = { simple_clock_face, mars_time_face, -- cgit v1.2.3 From c78b8d4570436fbbad3be66ec5801736dc462895 Mon Sep 17 00:00:00 2001 From: Joey Castillo Date: Thu, 21 Apr 2022 14:33:59 -0400 Subject: deep space firmware: show voyager 1 mission day --- movement/alt_fw/deep_space_now.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'movement/alt_fw') diff --git a/movement/alt_fw/deep_space_now.h b/movement/alt_fw/deep_space_now.h index 4cd97578..f07fe2cb 100644 --- a/movement/alt_fw/deep_space_now.h +++ b/movement/alt_fw/deep_space_now.h @@ -28,6 +28,7 @@ #include "movement_faces.h" // Preset Goldstone (GO), Madrid (MA), and Canberra (CA) time zones. +// Also prepopulate the Day One register with Voyager 1's launch (September 5, 1977) #define MOVEMENT_CUSTOM_BOOT_COMMANDS() { \ /* Standard Time */\ @@ -40,6 +41,7 @@ watch_store_backup_data(0x1f0c0c, 4);\ watch_store_backup_data(0x020115, 5);\ watch_store_backup_data(0x110105, 6);\ + watch_store_backup_data(0x0597b9, 2);\ } const watch_face_t watch_faces[] = { -- cgit v1.2.3 From e36af0e5a368290848cec413c799d499e266a0c4 Mon Sep 17 00:00:00 2001 From: Joey Castillo Date: Thu, 21 Apr 2022 15:37:12 -0400 Subject: movement: only run custom commands at first launch --- movement/alt_fw/the_stargazer.h | 1 + 1 file changed, 1 insertion(+) (limited to 'movement/alt_fw') diff --git a/movement/alt_fw/the_stargazer.h b/movement/alt_fw/the_stargazer.h index edf49ffa..50a89aad 100644 --- a/movement/alt_fw/the_stargazer.h +++ b/movement/alt_fw/the_stargazer.h @@ -30,6 +30,7 @@ #define MOVEMENT_CUSTOM_BOOT_COMMANDS() { \ movement_state.settings.bit.led_green_color = 0x0;\ movement_state.settings.bit.led_red_color = 0xF;\ + watch_store_backup_data(movement_state.settings.reg, 0);\ } const watch_face_t watch_faces[] = { -- cgit v1.2.3