@@ -117,6 +117,9 @@ static void buzzer_sequence_3(void)
117117{
118118 LOG_INF ("Buzzer sequence 3: Jingle Bells (Extended)" );
119119
120+ // Set LED to green for first line
121+ set_led_color (RGB (0 , 255 , 0 )); // Green
122+
120123 // Line 1: Jingle bells, jingle bells, jingle all the way
121124 // E E E - E E E - E G C D E
122125 play_tone (330 , 200 ); // E
@@ -144,6 +147,9 @@ static void buzzer_sequence_3(void)
144147 play_tone (330 , 600 ); // E (longest)
145148 k_msleep (200 );
146149
150+ // Set LED to red for second line
151+ set_led_color (RGB (255 , 0 , 0 )); // Red
152+
147153 // Line 2: Oh what fun it is to ride in a one-horse open sleigh
148154 // F F F F - F E E E - E D D E - D G
149155 play_tone (349 , 200 ); // F
@@ -177,6 +183,9 @@ static void buzzer_sequence_3(void)
177183 play_tone (392 , 400 ); // G
178184 k_msleep (200 );
179185
186+ // Set LED to white for third line
187+ set_led_color (RGB (255 , 255 , 255 )); // White
188+
180189 // Line 3: Jingle bells, jingle bells, jingle all the way (repeat)
181190 // E E E - E E E - E G C D E
182191 play_tone (330 , 200 ); // E
@@ -204,6 +213,9 @@ static void buzzer_sequence_3(void)
204213 play_tone (330 , 600 ); // E (longest)
205214 k_msleep (200 );
206215
216+ // Set LED to green for fourth line
217+ set_led_color (RGB (0 , 255 , 0 )); // Green
218+
207219 // Line 4: Oh what fun it is to ride in a one-horse open sleigh (ending)
208220 // F F F F - F E E E - G G F D C
209221 play_tone (349 , 200 ); // F
@@ -234,6 +246,9 @@ static void buzzer_sequence_3(void)
234246 k_msleep (50 );
235247 play_tone (262 , 600 ); // C (final note)
236248 k_msleep (100 );
249+
250+ // Turn off LED when done
251+ set_led_color (RGB (0 , 0 , 0 )); // Off
237252}
238253
239254static int cmd_buzzer (const struct shell * shell , size_t argc , char * * argv )
@@ -623,7 +638,7 @@ void badge_init_entry(void* arg)
623638 return ;
624639 }
625640 LOG_INF ("LED strip ready. Use shell command: led r/g/b" );
626- set_led_color (RGB (0x0F , 0x0F , 0x0F )); // Default: white
641+ set_led_color (RGB (0 , 0 , 0 )); // Default: off
627642 // Initialize display work queue
628643 k_work_queue_init (& display_work_q );
629644 k_work_queue_start (& display_work_q , display_stack , K_THREAD_STACK_SIZEOF (display_stack ),
@@ -664,7 +679,7 @@ void badge_init_exit(void* arg)
664679void badge_idle_entry (void * arg )
665680{
666681 LOG_INF ("Badge idle entry" );
667- display_text ("Merry Christmas from Makerville" );
682+ display_text ("Makerville Badge " );
668683}
669684
670685enum smf_state_result badge_idle_run (void * arg )
@@ -741,11 +756,14 @@ void input_cb(struct input_event *event, void *cb_arg)
741756 } else if (event -> value == 0 ) {
742757 // Button released - play jingle bells
743758 LOG_INF ("Button IO9 released - playing jingle bells" );
759+ display_text ("Merry Christmas from Makerville" );
744760 if (device_is_ready (pwm_buzzer )) {
745761 buzzer_sequence_3 ();
746762 } else {
747763 LOG_ERR ("PWM buzzer device not ready" );
748764 }
765+ // Restore default message
766+ display_text ("Makerville Badge" );
749767
750768 // Also generate state machine events based on press duration
751769 int64_t press_duration = k_uptime_get () - gc .button_press_time ;
@@ -761,11 +779,14 @@ void input_cb(struct input_event *event, void *cb_arg)
761779 if (event -> value == 0 ) {
762780 // Button released - play jingle bells
763781 LOG_INF ("Button IO2 released - playing jingle bells" );
782+ display_text ("Merry Christmas from Makerville" );
764783 if (device_is_ready (pwm_buzzer )) {
765784 buzzer_sequence_3 ();
766785 } else {
767786 LOG_ERR ("PWM buzzer device not ready" );
768787 }
788+ // Restore default message
789+ display_text ("Makerville Badge" );
769790 }
770791 }
771792 }
0 commit comments