arduino-libraries / Arduino_Braccio_plusplus

GNU Lesser General Public License v2.1
7 stars 3 forks source link

Rewrite `examples/Braccio_Learn_and_Repeat` using State design pattern #71

Closed aentinger closed 2 years ago

aentinger commented 2 years ago

@Esquirio Can you please test?

Esquirio commented 2 years ago

In the first tests with this code, the firmware crashs in the REPLAY mode. Thus, it was necessary to restart the Arduino Board.

clodpheasant commented 2 years ago

@91volt @umbynos can you also test it out?

I had no issues with the sketch actually

Esquirio commented 2 years ago

I've tested the example many times and moved all the joints, including the gripper. The code crashed a couple of times, as shown in this video. I am using the example of this commit.

aentinger commented 2 years ago

Following up a private conversation with @Esquirio I think there is reason to believe that unprotected, multi-threaded access to LVGL (no Braccio.lvgl_lock/unlock statements) are cause for the spurious crashes.

@Esquirio can you please test the most recent code in this PR? Please ensure to download the whole library, not only the example (i.e. via this link).

github-actions[bot] commented 2 years ago

Memory usage change @ eae94014238e2c3c50d95b38110d19bfb2b45981

Board flash % RAM for global variables %
arduino:mbed_nano:nanorp2040connect :small_red_triangle: 0 - +196 0.0 - 0.0 :small_red_triangle: 0 - +8004 0.0 - +2.96
Click for full report table Board|examples/Braccio_Learn_and_Repeat
flash|%|examples/Braccio_Learn_and_Repeat
RAM for global variables|%|examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/01_creating_a_button
flash|%|examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/01_creating_a_button
RAM for global variables|%|examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/02_designing_the_button
flash|%|examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/02_designing_the_button
RAM for global variables|%|examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/03_creating_a_menu
flash|%|examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/03_creating_a_menu
RAM for global variables|%|examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/04_testing_it_out
flash|%|examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/04_testing_it_out
RAM for global variables|%|examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/05_display_challenge
flash|%|examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/05_display_challenge
RAM for global variables|%|examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/01_playing_with_the_Joystick
flash|%|examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/01_playing_with_the_Joystick
RAM for global variables|%|examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/02_handling_events_in_the_menu
flash|%|examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/02_handling_events_in_the_menu
RAM for global variables|%|examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/03_navigate_challenge_I
flash|%|examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/03_navigate_challenge_I
RAM for global variables|%|examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/04_navigate_challenge_II
flash|%|examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/04_navigate_challenge_II
RAM for global variables|%|examples/Platform_Tutorials/lessons/03-playing-with-the-motors/01_playing_with_the_motors
flash|%|examples/Platform_Tutorials/lessons/03-playing-with-the-motors/01_playing_with_the_motors
RAM for global variables|%|examples/Platform_Tutorials/lessons/03-playing-with-the-motors/02_selecting_the_motor_with_the_enter_button
flash|%|examples/Platform_Tutorials/lessons/03-playing-with-the-motors/02_selecting_the_motor_with_the_enter_button
RAM for global variables|%|examples/Platform_Tutorials/lessons/03-playing-with-the-motors/03_moving_the_motors_with_the_joystick
flash|%|examples/Platform_Tutorials/lessons/03-playing-with-the-motors/03_moving_the_motors_with_the_joystick
RAM for global variables|%|examples/Platform_Tutorials/lessons/03-playing-with-the-motors/04_servo_motors_challenge
flash|%|examples/Platform_Tutorials/lessons/03-playing-with-the-motors/04_servo_motors_challenge
RAM for global variables|%|examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/01_playing_with_a_joint_angle_gauge
flash|%|examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/01_playing_with_a_joint_angle_gauge
RAM for global variables|%|examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/02_selecting_the_motor_in_the_LCD_menu
flash|%|examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/02_selecting_the_motor_in_the_LCD_menu
RAM for global variables|%|examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/03_learnings_challenge_I
flash|%|examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/03_learnings_challenge_I
RAM for global variables|%|examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/04_learnings_challenge_II
flash|%|examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/04_learnings_challenge_II
RAM for global variables|%|examples/Platform_Tutorials/projects/p01-moving-braccio/01_aligning_braccio
flash|%|examples/Platform_Tutorials/projects/p01-moving-braccio/01_aligning_braccio
RAM for global variables|%|examples/Platform_Tutorials/projects/p01-moving-braccio/02_waving_with_Braccio
flash|%|examples/Platform_Tutorials/projects/p01-moving-braccio/02_waving_with_Braccio
RAM for global variables|%|examples/Platform_Tutorials/projects/p01-moving-braccio/03_moving_challenge
flash|%|examples/Platform_Tutorials/projects/p01-moving-braccio/03_moving_challenge
RAM for global variables|%|examples/Platform_Tutorials/projects/p02-controlling-braccio-manually/01_controlling_manually_Braccio
flash|%|examples/Platform_Tutorials/projects/p02-controlling-braccio-manually/01_controlling_manually_Braccio
RAM for global variables|%|examples/Platform_Tutorials/projects/p02-controlling-braccio-manually/02_manual_control_challenge
flash|%|examples/Platform_Tutorials/projects/p02-controlling-braccio-manually/02_manual_control_challenge
RAM for global variables|%|examples/Platform_Tutorials/projects/p03-learning-mode/01_Braccio_learning_mode
flash|%|examples/Platform_Tutorials/projects/p03-learning-mode/01_Braccio_learning_mode
RAM for global variables|%|examples/Platform_Tutorials/projects/p03-learning-mode/02_learning_challenge
flash|%|examples/Platform_Tutorials/projects/p03-learning-mode/02_learning_challenge
RAM for global variables|%|examples/Tools/Braccio_Basic
flash|%|examples/Tools/Braccio_Basic
RAM for global variables|%|examples/Tools/Braccio_LearnByDoing
flash|%|examples/Tools/Braccio_LearnByDoing
RAM for global variables|%|examples/Tools/Factory_Set_ID_Interactive
flash|%|examples/Tools/Factory_Set_ID_Interactive
RAM for global variables|%|examples/Tools/Factory_Set_Initial_Servo_Position
flash|%|examples/Tools/Factory_Set_Initial_Servo_Position
RAM for global variables|%|examples/Tools/LCD_Custom_Menu
flash|%|examples/Tools/LCD_Custom_Menu
RAM for global variables|%|examples/Tools/LCD_Menu_Joystick
flash|%|examples/Tools/LCD_Menu_Joystick
RAM for global variables|%|examples/Tools/LCD_Motors
flash|%|examples/Tools/LCD_Motors
RAM for global variables|%|examples/Tools/Test_Inputs
flash|%|examples/Tools/Test_Inputs
RAM for global variables|%|examples/Tools/Test_Motor_Angular_Control
flash|%|examples/Tools/Test_Motor_Angular_Control
RAM for global variables|%|examples/Tools/Test_Motor_Communication
flash|%|examples/Tools/Test_Motor_Communication
RAM for global variables|% -|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|- arduino:mbed_nano:nanorp2040connect|196|0.0|8004|2.96|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|196|0.0|8004|2.96|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0
Click for full report CSV ``` Board,examples/Braccio_Learn_and_Repeat
flash,%,examples/Braccio_Learn_and_Repeat
RAM for global variables,%,examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/01_creating_a_button
flash,%,examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/01_creating_a_button
RAM for global variables,%,examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/02_designing_the_button
flash,%,examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/02_designing_the_button
RAM for global variables,%,examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/03_creating_a_menu
flash,%,examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/03_creating_a_menu
RAM for global variables,%,examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/04_testing_it_out
flash,%,examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/04_testing_it_out
RAM for global variables,%,examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/05_display_challenge
flash,%,examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/05_display_challenge
RAM for global variables,%,examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/01_playing_with_the_Joystick
flash,%,examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/01_playing_with_the_Joystick
RAM for global variables,%,examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/02_handling_events_in_the_menu
flash,%,examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/02_handling_events_in_the_menu
RAM for global variables,%,examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/03_navigate_challenge_I
flash,%,examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/03_navigate_challenge_I
RAM for global variables,%,examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/04_navigate_challenge_II
flash,%,examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/04_navigate_challenge_II
RAM for global variables,%,examples/Platform_Tutorials/lessons/03-playing-with-the-motors/01_playing_with_the_motors
flash,%,examples/Platform_Tutorials/lessons/03-playing-with-the-motors/01_playing_with_the_motors
RAM for global variables,%,examples/Platform_Tutorials/lessons/03-playing-with-the-motors/02_selecting_the_motor_with_the_enter_button
flash,%,examples/Platform_Tutorials/lessons/03-playing-with-the-motors/02_selecting_the_motor_with_the_enter_button
RAM for global variables,%,examples/Platform_Tutorials/lessons/03-playing-with-the-motors/03_moving_the_motors_with_the_joystick
flash,%,examples/Platform_Tutorials/lessons/03-playing-with-the-motors/03_moving_the_motors_with_the_joystick
RAM for global variables,%,examples/Platform_Tutorials/lessons/03-playing-with-the-motors/04_servo_motors_challenge
flash,%,examples/Platform_Tutorials/lessons/03-playing-with-the-motors/04_servo_motors_challenge
RAM for global variables,%,examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/01_playing_with_a_joint_angle_gauge
flash,%,examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/01_playing_with_a_joint_angle_gauge
RAM for global variables,%,examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/02_selecting_the_motor_in_the_LCD_menu
flash,%,examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/02_selecting_the_motor_in_the_LCD_menu
RAM for global variables,%,examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/03_learnings_challenge_I
flash,%,examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/03_learnings_challenge_I
RAM for global variables,%,examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/04_learnings_challenge_II
flash,%,examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/04_learnings_challenge_II
RAM for global variables,%,examples/Platform_Tutorials/projects/p01-moving-braccio/01_aligning_braccio
flash,%,examples/Platform_Tutorials/projects/p01-moving-braccio/01_aligning_braccio
RAM for global variables,%,examples/Platform_Tutorials/projects/p01-moving-braccio/02_waving_with_Braccio
flash,%,examples/Platform_Tutorials/projects/p01-moving-braccio/02_waving_with_Braccio
RAM for global variables,%,examples/Platform_Tutorials/projects/p01-moving-braccio/03_moving_challenge
flash,%,examples/Platform_Tutorials/projects/p01-moving-braccio/03_moving_challenge
RAM for global variables,%,examples/Platform_Tutorials/projects/p02-controlling-braccio-manually/01_controlling_manually_Braccio
flash,%,examples/Platform_Tutorials/projects/p02-controlling-braccio-manually/01_controlling_manually_Braccio
RAM for global variables,%,examples/Platform_Tutorials/projects/p02-controlling-braccio-manually/02_manual_control_challenge
flash,%,examples/Platform_Tutorials/projects/p02-controlling-braccio-manually/02_manual_control_challenge
RAM for global variables,%,examples/Platform_Tutorials/projects/p03-learning-mode/01_Braccio_learning_mode
flash,%,examples/Platform_Tutorials/projects/p03-learning-mode/01_Braccio_learning_mode
RAM for global variables,%,examples/Platform_Tutorials/projects/p03-learning-mode/02_learning_challenge
flash,%,examples/Platform_Tutorials/projects/p03-learning-mode/02_learning_challenge
RAM for global variables,%,examples/Tools/Braccio_Basic
flash,%,examples/Tools/Braccio_Basic
RAM for global variables,%,examples/Tools/Braccio_LearnByDoing
flash,%,examples/Tools/Braccio_LearnByDoing
RAM for global variables,%,examples/Tools/Factory_Set_ID_Interactive
flash,%,examples/Tools/Factory_Set_ID_Interactive
RAM for global variables,%,examples/Tools/Factory_Set_Initial_Servo_Position
flash,%,examples/Tools/Factory_Set_Initial_Servo_Position
RAM for global variables,%,examples/Tools/LCD_Custom_Menu
flash,%,examples/Tools/LCD_Custom_Menu
RAM for global variables,%,examples/Tools/LCD_Menu_Joystick
flash,%,examples/Tools/LCD_Menu_Joystick
RAM for global variables,%,examples/Tools/LCD_Motors
flash,%,examples/Tools/LCD_Motors
RAM for global variables,%,examples/Tools/Test_Inputs
flash,%,examples/Tools/Test_Inputs
RAM for global variables,%,examples/Tools/Test_Motor_Angular_Control
flash,%,examples/Tools/Test_Motor_Angular_Control
RAM for global variables,%,examples/Tools/Test_Motor_Communication
flash,%,examples/Tools/Test_Motor_Communication
RAM for global variables,% arduino:mbed_nano:nanorp2040connect,196,0.0,8004,2.96,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,196,0.0,8004,2.96,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0 ```
Esquirio commented 2 years ago

I've tested with the newest version of Braccio ++, and it presented the same problem. I am trying to check the code and find any issues

aentinger commented 2 years ago

Hi @Esquirio :coffee: :wave:

I've merged #72 and rebased this PR.

Can you give it a test and let me know if this works for you?

Btw, I've noticed that despite #72 claims to use ENTER for "clicking events" clicking the joystick still works just fine CC @91volt .

github-actions[bot] commented 2 years ago

Memory usage change @ d80e3a11f38f0994c82d69b1eb94af10a3005f6c

Board flash % RAM for global variables %
arduino:mbed_nano:nanorp2040connect :small_red_triangle: 0 - +184 0.0 - 0.0 :small_red_triangle: 0 - +8004 0.0 - +2.96
Click for full report table Board|examples/Braccio_Learn_and_Repeat
flash|%|examples/Braccio_Learn_and_Repeat
RAM for global variables|%|examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/01_creating_a_button
flash|%|examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/01_creating_a_button
RAM for global variables|%|examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/02_designing_the_button
flash|%|examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/02_designing_the_button
RAM for global variables|%|examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/03_creating_a_menu
flash|%|examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/03_creating_a_menu
RAM for global variables|%|examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/04_testing_it_out
flash|%|examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/04_testing_it_out
RAM for global variables|%|examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/05_display_challenge
flash|%|examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/05_display_challenge
RAM for global variables|%|examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/01_playing_with_the_Joystick
flash|%|examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/01_playing_with_the_Joystick
RAM for global variables|%|examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/02_handling_events_in_the_menu
flash|%|examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/02_handling_events_in_the_menu
RAM for global variables|%|examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/03_navigate_challenge_I
flash|%|examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/03_navigate_challenge_I
RAM for global variables|%|examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/04_navigate_challenge_II
flash|%|examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/04_navigate_challenge_II
RAM for global variables|%|examples/Platform_Tutorials/lessons/03-playing-with-the-motors/01_playing_with_the_motors
flash|%|examples/Platform_Tutorials/lessons/03-playing-with-the-motors/01_playing_with_the_motors
RAM for global variables|%|examples/Platform_Tutorials/lessons/03-playing-with-the-motors/02_selecting_the_motor_with_the_enter_button
flash|%|examples/Platform_Tutorials/lessons/03-playing-with-the-motors/02_selecting_the_motor_with_the_enter_button
RAM for global variables|%|examples/Platform_Tutorials/lessons/03-playing-with-the-motors/03_moving_the_motors_with_the_joystick
flash|%|examples/Platform_Tutorials/lessons/03-playing-with-the-motors/03_moving_the_motors_with_the_joystick
RAM for global variables|%|examples/Platform_Tutorials/lessons/03-playing-with-the-motors/04_servo_motors_challenge
flash|%|examples/Platform_Tutorials/lessons/03-playing-with-the-motors/04_servo_motors_challenge
RAM for global variables|%|examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/01_playing_with_a_joint_angle_gauge
flash|%|examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/01_playing_with_a_joint_angle_gauge
RAM for global variables|%|examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/02_selecting_the_motor_in_the_LCD_menu
flash|%|examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/02_selecting_the_motor_in_the_LCD_menu
RAM for global variables|%|examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/03_learnings_challenge_I
flash|%|examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/03_learnings_challenge_I
RAM for global variables|%|examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/04_learnings_challenge_II
flash|%|examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/04_learnings_challenge_II
RAM for global variables|%|examples/Platform_Tutorials/projects/p01-moving-braccio/01_aligning_braccio
flash|%|examples/Platform_Tutorials/projects/p01-moving-braccio/01_aligning_braccio
RAM for global variables|%|examples/Platform_Tutorials/projects/p01-moving-braccio/02_waving_with_Braccio
flash|%|examples/Platform_Tutorials/projects/p01-moving-braccio/02_waving_with_Braccio
RAM for global variables|%|examples/Platform_Tutorials/projects/p01-moving-braccio/03_moving_challenge
flash|%|examples/Platform_Tutorials/projects/p01-moving-braccio/03_moving_challenge
RAM for global variables|%|examples/Platform_Tutorials/projects/p02-controlling-braccio-manually/01_controlling_manually_Braccio
flash|%|examples/Platform_Tutorials/projects/p02-controlling-braccio-manually/01_controlling_manually_Braccio
RAM for global variables|%|examples/Platform_Tutorials/projects/p02-controlling-braccio-manually/02_manual_control_challenge
flash|%|examples/Platform_Tutorials/projects/p02-controlling-braccio-manually/02_manual_control_challenge
RAM for global variables|%|examples/Platform_Tutorials/projects/p03-learning-mode/01_Braccio_learning_mode
flash|%|examples/Platform_Tutorials/projects/p03-learning-mode/01_Braccio_learning_mode
RAM for global variables|%|examples/Platform_Tutorials/projects/p03-learning-mode/02_learning_challenge
flash|%|examples/Platform_Tutorials/projects/p03-learning-mode/02_learning_challenge
RAM for global variables|%|examples/Tools/Braccio_Basic
flash|%|examples/Tools/Braccio_Basic
RAM for global variables|%|examples/Tools/Braccio_LearnByDoing
flash|%|examples/Tools/Braccio_LearnByDoing
RAM for global variables|%|examples/Tools/Factory_Set_ID_Interactive
flash|%|examples/Tools/Factory_Set_ID_Interactive
RAM for global variables|%|examples/Tools/Factory_Set_Initial_Servo_Position
flash|%|examples/Tools/Factory_Set_Initial_Servo_Position
RAM for global variables|%|examples/Tools/LCD_Custom_Menu
flash|%|examples/Tools/LCD_Custom_Menu
RAM for global variables|%|examples/Tools/LCD_Menu_Joystick
flash|%|examples/Tools/LCD_Menu_Joystick
RAM for global variables|%|examples/Tools/LCD_Motors
flash|%|examples/Tools/LCD_Motors
RAM for global variables|%|examples/Tools/Test_Inputs
flash|%|examples/Tools/Test_Inputs
RAM for global variables|%|examples/Tools/Test_Motor_Angular_Control
flash|%|examples/Tools/Test_Motor_Angular_Control
RAM for global variables|%|examples/Tools/Test_Motor_Communication
flash|%|examples/Tools/Test_Motor_Communication
RAM for global variables|% -|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|- arduino:mbed_nano:nanorp2040connect|184|0.0|8004|2.96|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|184|0.0|8004|2.96|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0
Click for full report CSV ``` Board,examples/Braccio_Learn_and_Repeat
flash,%,examples/Braccio_Learn_and_Repeat
RAM for global variables,%,examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/01_creating_a_button
flash,%,examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/01_creating_a_button
RAM for global variables,%,examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/02_designing_the_button
flash,%,examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/02_designing_the_button
RAM for global variables,%,examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/03_creating_a_menu
flash,%,examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/03_creating_a_menu
RAM for global variables,%,examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/04_testing_it_out
flash,%,examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/04_testing_it_out
RAM for global variables,%,examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/05_display_challenge
flash,%,examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/05_display_challenge
RAM for global variables,%,examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/01_playing_with_the_Joystick
flash,%,examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/01_playing_with_the_Joystick
RAM for global variables,%,examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/02_handling_events_in_the_menu
flash,%,examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/02_handling_events_in_the_menu
RAM for global variables,%,examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/03_navigate_challenge_I
flash,%,examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/03_navigate_challenge_I
RAM for global variables,%,examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/04_navigate_challenge_II
flash,%,examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/04_navigate_challenge_II
RAM for global variables,%,examples/Platform_Tutorials/lessons/03-playing-with-the-motors/01_playing_with_the_motors
flash,%,examples/Platform_Tutorials/lessons/03-playing-with-the-motors/01_playing_with_the_motors
RAM for global variables,%,examples/Platform_Tutorials/lessons/03-playing-with-the-motors/02_selecting_the_motor_with_the_enter_button
flash,%,examples/Platform_Tutorials/lessons/03-playing-with-the-motors/02_selecting_the_motor_with_the_enter_button
RAM for global variables,%,examples/Platform_Tutorials/lessons/03-playing-with-the-motors/03_moving_the_motors_with_the_joystick
flash,%,examples/Platform_Tutorials/lessons/03-playing-with-the-motors/03_moving_the_motors_with_the_joystick
RAM for global variables,%,examples/Platform_Tutorials/lessons/03-playing-with-the-motors/04_servo_motors_challenge
flash,%,examples/Platform_Tutorials/lessons/03-playing-with-the-motors/04_servo_motors_challenge
RAM for global variables,%,examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/01_playing_with_a_joint_angle_gauge
flash,%,examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/01_playing_with_a_joint_angle_gauge
RAM for global variables,%,examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/02_selecting_the_motor_in_the_LCD_menu
flash,%,examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/02_selecting_the_motor_in_the_LCD_menu
RAM for global variables,%,examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/03_learnings_challenge_I
flash,%,examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/03_learnings_challenge_I
RAM for global variables,%,examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/04_learnings_challenge_II
flash,%,examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/04_learnings_challenge_II
RAM for global variables,%,examples/Platform_Tutorials/projects/p01-moving-braccio/01_aligning_braccio
flash,%,examples/Platform_Tutorials/projects/p01-moving-braccio/01_aligning_braccio
RAM for global variables,%,examples/Platform_Tutorials/projects/p01-moving-braccio/02_waving_with_Braccio
flash,%,examples/Platform_Tutorials/projects/p01-moving-braccio/02_waving_with_Braccio
RAM for global variables,%,examples/Platform_Tutorials/projects/p01-moving-braccio/03_moving_challenge
flash,%,examples/Platform_Tutorials/projects/p01-moving-braccio/03_moving_challenge
RAM for global variables,%,examples/Platform_Tutorials/projects/p02-controlling-braccio-manually/01_controlling_manually_Braccio
flash,%,examples/Platform_Tutorials/projects/p02-controlling-braccio-manually/01_controlling_manually_Braccio
RAM for global variables,%,examples/Platform_Tutorials/projects/p02-controlling-braccio-manually/02_manual_control_challenge
flash,%,examples/Platform_Tutorials/projects/p02-controlling-braccio-manually/02_manual_control_challenge
RAM for global variables,%,examples/Platform_Tutorials/projects/p03-learning-mode/01_Braccio_learning_mode
flash,%,examples/Platform_Tutorials/projects/p03-learning-mode/01_Braccio_learning_mode
RAM for global variables,%,examples/Platform_Tutorials/projects/p03-learning-mode/02_learning_challenge
flash,%,examples/Platform_Tutorials/projects/p03-learning-mode/02_learning_challenge
RAM for global variables,%,examples/Tools/Braccio_Basic
flash,%,examples/Tools/Braccio_Basic
RAM for global variables,%,examples/Tools/Braccio_LearnByDoing
flash,%,examples/Tools/Braccio_LearnByDoing
RAM for global variables,%,examples/Tools/Factory_Set_ID_Interactive
flash,%,examples/Tools/Factory_Set_ID_Interactive
RAM for global variables,%,examples/Tools/Factory_Set_Initial_Servo_Position
flash,%,examples/Tools/Factory_Set_Initial_Servo_Position
RAM for global variables,%,examples/Tools/LCD_Custom_Menu
flash,%,examples/Tools/LCD_Custom_Menu
RAM for global variables,%,examples/Tools/LCD_Menu_Joystick
flash,%,examples/Tools/LCD_Menu_Joystick
RAM for global variables,%,examples/Tools/LCD_Motors
flash,%,examples/Tools/LCD_Motors
RAM for global variables,%,examples/Tools/Test_Inputs
flash,%,examples/Tools/Test_Inputs
RAM for global variables,%,examples/Tools/Test_Motor_Angular_Control
flash,%,examples/Tools/Test_Motor_Angular_Control
RAM for global variables,%,examples/Tools/Test_Motor_Communication
flash,%,examples/Tools/Test_Motor_Communication
RAM for global variables,% arduino:mbed_nano:nanorp2040connect,184,0.0,8004,2.96,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,184,0.0,8004,2.96,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0 ```
91volt commented 2 years ago

Hi @Esquirio ☕ 👋

I've merged #72 and rebased this PR.

Can you give it a test and let me know if this works for you?

Btw, I've noticed that despite #72 claims to use ENTER for "clicking events" clicking the joystick still works just fine CC @91volt .

This was the intended behavior, both joystick click and enter button should allow the user to select an option.

aentinger commented 2 years ago

This was the intended behavior, both joystick click and enter button should allow the user to select an option.

In this case all is fine :+1:

91volt commented 2 years ago

@aentinger We have tested the PR, here me and @umbynos feedbacks:

For what concerns the leds they work like a charm now.

Esquirio commented 2 years ago

I've tested the two codes intensively (@91volt code and @aentinger code). Both codes crashed. I will continue to investigate for issues and try to discover the cause of the crashes.

aentinger commented 2 years ago

The problem with this example is that

a) there are a fair number of state transitions b) there are sometimes state enter/exit actions and that c) state and stateful variables are both manipulated in loop and the LVGL event header.

I've tried avoiding it until now, but this whole examples needs a clean rewrite, otherwise it will be always be a trial-and-error programming with the smallest change breaking the whole flow.

clodpheasant commented 2 years ago

@91volt @Esquirio your 2 cents here?

Esquirio commented 2 years ago

@aentinger Did you mean the issue is in the state transitions in the display?

I think it is possible to test the example using the Serial Monitor (or buttons and LEDs) instead of the LVGL library (If this test hasn't been done). I can do this test and report my findings.

aentinger commented 2 years ago

Once an application exceeds a certain number of states and state transitions it becomes very hard to keep track of the control flow is variables storing state are manipulated on several different locations in the code. Employing the State programming pattern I've untangled the transitions and make them more visible so that now there should be no more lurking :bug: .

@Esquirio :pray: test :bow:

github-actions[bot] commented 2 years ago

Memory usage change @ b2384df1c76afa1a3dadaf216b13304f1fa9ccec

Board flash % RAM for global variables %
arduino:mbed_nano:nanorp2040connect :small_red_triangle: 0 - +596 0.0 - 0.0 :green_heart: -30380 - 0 -11.24 - 0.0
Click for full report table Board|examples/Braccio_Learn_and_Repeat
flash|%|examples/Braccio_Learn_and_Repeat
RAM for global variables|%|examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/01_creating_a_button
flash|%|examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/01_creating_a_button
RAM for global variables|%|examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/02_designing_the_button
flash|%|examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/02_designing_the_button
RAM for global variables|%|examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/03_creating_a_menu
flash|%|examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/03_creating_a_menu
RAM for global variables|%|examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/04_testing_it_out
flash|%|examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/04_testing_it_out
RAM for global variables|%|examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/05_display_challenge
flash|%|examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/05_display_challenge
RAM for global variables|%|examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/01_playing_with_the_Joystick
flash|%|examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/01_playing_with_the_Joystick
RAM for global variables|%|examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/02_handling_events_in_the_menu
flash|%|examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/02_handling_events_in_the_menu
RAM for global variables|%|examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/03_navigate_challenge_I
flash|%|examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/03_navigate_challenge_I
RAM for global variables|%|examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/04_navigate_challenge_II
flash|%|examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/04_navigate_challenge_II
RAM for global variables|%|examples/Platform_Tutorials/lessons/03-playing-with-the-motors/01_playing_with_the_motors
flash|%|examples/Platform_Tutorials/lessons/03-playing-with-the-motors/01_playing_with_the_motors
RAM for global variables|%|examples/Platform_Tutorials/lessons/03-playing-with-the-motors/02_selecting_the_motor_with_the_enter_button
flash|%|examples/Platform_Tutorials/lessons/03-playing-with-the-motors/02_selecting_the_motor_with_the_enter_button
RAM for global variables|%|examples/Platform_Tutorials/lessons/03-playing-with-the-motors/03_moving_the_motors_with_the_joystick
flash|%|examples/Platform_Tutorials/lessons/03-playing-with-the-motors/03_moving_the_motors_with_the_joystick
RAM for global variables|%|examples/Platform_Tutorials/lessons/03-playing-with-the-motors/04_servo_motors_challenge
flash|%|examples/Platform_Tutorials/lessons/03-playing-with-the-motors/04_servo_motors_challenge
RAM for global variables|%|examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/01_playing_with_a_joint_angle_gauge
flash|%|examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/01_playing_with_a_joint_angle_gauge
RAM for global variables|%|examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/02_selecting_the_motor_in_the_LCD_menu
flash|%|examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/02_selecting_the_motor_in_the_LCD_menu
RAM for global variables|%|examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/03_learnings_challenge_I
flash|%|examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/03_learnings_challenge_I
RAM for global variables|%|examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/04_learnings_challenge_II
flash|%|examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/04_learnings_challenge_II
RAM for global variables|%|examples/Platform_Tutorials/projects/p01-moving-braccio/01_aligning_braccio
flash|%|examples/Platform_Tutorials/projects/p01-moving-braccio/01_aligning_braccio
RAM for global variables|%|examples/Platform_Tutorials/projects/p01-moving-braccio/02_waving_with_Braccio
flash|%|examples/Platform_Tutorials/projects/p01-moving-braccio/02_waving_with_Braccio
RAM for global variables|%|examples/Platform_Tutorials/projects/p01-moving-braccio/03_moving_challenge
flash|%|examples/Platform_Tutorials/projects/p01-moving-braccio/03_moving_challenge
RAM for global variables|%|examples/Platform_Tutorials/projects/p02-controlling-braccio-manually/01_controlling_manually_Braccio
flash|%|examples/Platform_Tutorials/projects/p02-controlling-braccio-manually/01_controlling_manually_Braccio
RAM for global variables|%|examples/Platform_Tutorials/projects/p02-controlling-braccio-manually/02_manual_control_challenge
flash|%|examples/Platform_Tutorials/projects/p02-controlling-braccio-manually/02_manual_control_challenge
RAM for global variables|%|examples/Platform_Tutorials/projects/p03-learning-mode/01_Braccio_learning_mode
flash|%|examples/Platform_Tutorials/projects/p03-learning-mode/01_Braccio_learning_mode
RAM for global variables|%|examples/Platform_Tutorials/projects/p03-learning-mode/02_learning_challenge
flash|%|examples/Platform_Tutorials/projects/p03-learning-mode/02_learning_challenge
RAM for global variables|%|examples/Tools/Braccio_Basic
flash|%|examples/Tools/Braccio_Basic
RAM for global variables|%|examples/Tools/Braccio_LearnByDoing
flash|%|examples/Tools/Braccio_LearnByDoing
RAM for global variables|%|examples/Tools/Factory_Set_ID_Interactive
flash|%|examples/Tools/Factory_Set_ID_Interactive
RAM for global variables|%|examples/Tools/Factory_Set_Initial_Servo_Position
flash|%|examples/Tools/Factory_Set_Initial_Servo_Position
RAM for global variables|%|examples/Tools/LCD_Custom_Menu
flash|%|examples/Tools/LCD_Custom_Menu
RAM for global variables|%|examples/Tools/LCD_Menu_Joystick
flash|%|examples/Tools/LCD_Menu_Joystick
RAM for global variables|%|examples/Tools/LCD_Motors
flash|%|examples/Tools/LCD_Motors
RAM for global variables|%|examples/Tools/Test_Inputs
flash|%|examples/Tools/Test_Inputs
RAM for global variables|%|examples/Tools/Test_Motor_Angular_Control
flash|%|examples/Tools/Test_Motor_Angular_Control
RAM for global variables|%|examples/Tools/Test_Motor_Communication
flash|%|examples/Tools/Test_Motor_Communication
RAM for global variables|% -|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|- arduino:mbed_nano:nanorp2040connect|596|0.0|-30380|-11.24|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0
Click for full report CSV ``` Board,examples/Braccio_Learn_and_Repeat
flash,%,examples/Braccio_Learn_and_Repeat
RAM for global variables,%,examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/01_creating_a_button
flash,%,examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/01_creating_a_button
RAM for global variables,%,examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/02_designing_the_button
flash,%,examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/02_designing_the_button
RAM for global variables,%,examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/03_creating_a_menu
flash,%,examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/03_creating_a_menu
RAM for global variables,%,examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/04_testing_it_out
flash,%,examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/04_testing_it_out
RAM for global variables,%,examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/05_display_challenge
flash,%,examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/05_display_challenge
RAM for global variables,%,examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/01_playing_with_the_Joystick
flash,%,examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/01_playing_with_the_Joystick
RAM for global variables,%,examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/02_handling_events_in_the_menu
flash,%,examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/02_handling_events_in_the_menu
RAM for global variables,%,examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/03_navigate_challenge_I
flash,%,examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/03_navigate_challenge_I
RAM for global variables,%,examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/04_navigate_challenge_II
flash,%,examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/04_navigate_challenge_II
RAM for global variables,%,examples/Platform_Tutorials/lessons/03-playing-with-the-motors/01_playing_with_the_motors
flash,%,examples/Platform_Tutorials/lessons/03-playing-with-the-motors/01_playing_with_the_motors
RAM for global variables,%,examples/Platform_Tutorials/lessons/03-playing-with-the-motors/02_selecting_the_motor_with_the_enter_button
flash,%,examples/Platform_Tutorials/lessons/03-playing-with-the-motors/02_selecting_the_motor_with_the_enter_button
RAM for global variables,%,examples/Platform_Tutorials/lessons/03-playing-with-the-motors/03_moving_the_motors_with_the_joystick
flash,%,examples/Platform_Tutorials/lessons/03-playing-with-the-motors/03_moving_the_motors_with_the_joystick
RAM for global variables,%,examples/Platform_Tutorials/lessons/03-playing-with-the-motors/04_servo_motors_challenge
flash,%,examples/Platform_Tutorials/lessons/03-playing-with-the-motors/04_servo_motors_challenge
RAM for global variables,%,examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/01_playing_with_a_joint_angle_gauge
flash,%,examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/01_playing_with_a_joint_angle_gauge
RAM for global variables,%,examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/02_selecting_the_motor_in_the_LCD_menu
flash,%,examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/02_selecting_the_motor_in_the_LCD_menu
RAM for global variables,%,examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/03_learnings_challenge_I
flash,%,examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/03_learnings_challenge_I
RAM for global variables,%,examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/04_learnings_challenge_II
flash,%,examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/04_learnings_challenge_II
RAM for global variables,%,examples/Platform_Tutorials/projects/p01-moving-braccio/01_aligning_braccio
flash,%,examples/Platform_Tutorials/projects/p01-moving-braccio/01_aligning_braccio
RAM for global variables,%,examples/Platform_Tutorials/projects/p01-moving-braccio/02_waving_with_Braccio
flash,%,examples/Platform_Tutorials/projects/p01-moving-braccio/02_waving_with_Braccio
RAM for global variables,%,examples/Platform_Tutorials/projects/p01-moving-braccio/03_moving_challenge
flash,%,examples/Platform_Tutorials/projects/p01-moving-braccio/03_moving_challenge
RAM for global variables,%,examples/Platform_Tutorials/projects/p02-controlling-braccio-manually/01_controlling_manually_Braccio
flash,%,examples/Platform_Tutorials/projects/p02-controlling-braccio-manually/01_controlling_manually_Braccio
RAM for global variables,%,examples/Platform_Tutorials/projects/p02-controlling-braccio-manually/02_manual_control_challenge
flash,%,examples/Platform_Tutorials/projects/p02-controlling-braccio-manually/02_manual_control_challenge
RAM for global variables,%,examples/Platform_Tutorials/projects/p03-learning-mode/01_Braccio_learning_mode
flash,%,examples/Platform_Tutorials/projects/p03-learning-mode/01_Braccio_learning_mode
RAM for global variables,%,examples/Platform_Tutorials/projects/p03-learning-mode/02_learning_challenge
flash,%,examples/Platform_Tutorials/projects/p03-learning-mode/02_learning_challenge
RAM for global variables,%,examples/Tools/Braccio_Basic
flash,%,examples/Tools/Braccio_Basic
RAM for global variables,%,examples/Tools/Braccio_LearnByDoing
flash,%,examples/Tools/Braccio_LearnByDoing
RAM for global variables,%,examples/Tools/Factory_Set_ID_Interactive
flash,%,examples/Tools/Factory_Set_ID_Interactive
RAM for global variables,%,examples/Tools/Factory_Set_Initial_Servo_Position
flash,%,examples/Tools/Factory_Set_Initial_Servo_Position
RAM for global variables,%,examples/Tools/LCD_Custom_Menu
flash,%,examples/Tools/LCD_Custom_Menu
RAM for global variables,%,examples/Tools/LCD_Menu_Joystick
flash,%,examples/Tools/LCD_Menu_Joystick
RAM for global variables,%,examples/Tools/LCD_Motors
flash,%,examples/Tools/LCD_Motors
RAM for global variables,%,examples/Tools/Test_Inputs
flash,%,examples/Tools/Test_Inputs
RAM for global variables,%,examples/Tools/Test_Motor_Angular_Control
flash,%,examples/Tools/Test_Motor_Angular_Control
RAM for global variables,%,examples/Tools/Test_Motor_Communication
flash,%,examples/Tools/Test_Motor_Communication
RAM for global variables,% arduino:mbed_nano:nanorp2040connect,596,0.0,-30380,-11.24,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0 ```