diff --git a/.DS_Store b/.DS_Store
index 3b554f4..b35ec86 100644
Binary files a/.DS_Store and b/.DS_Store differ
diff --git a/.github/workflows/compile-sketches.yaml b/.github/workflows/compile-sketches.yaml
index 0cdf546..183b97c 100644
--- a/.github/workflows/compile-sketches.yaml
+++ b/.github/workflows/compile-sketches.yaml
@@ -28,7 +28,7 @@ jobs:
           platforms: |  # ESP32公式のpackage indexを使用する
             - name: esp32:esp32
               source-url: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
-              version: 2.0.17
+              version: 3.0.1
           sketch-paths: |
             - pico_v2_STEP1_LED
             - pico_v2_STEP2_SWITCH
diff --git a/README.md b/README.md
index da0a599..ec00577 100644
--- a/README.md
+++ b/README.md
@@ -3,7 +3,7 @@ Pi:Co V2用のArduinoサンプルスケッチ集
 
 ## 動作環境
 
-- arduino-esp32 : v2.0.17
+- arduino-esp32 : v3.0.1
 
 ## サンプルスケッチについて
 
@@ -11,7 +11,6 @@ Pi:Co V2用のArduinoサンプルスケッチ集
 
 - Pi:Co V2のハードウェアを動かすための、Arduinoスケッチの書き方をまとめています
 
-
 ## スケッチファイルの自動整形について
 
 ソースコードのレイアウトを整えるため、各スケッチファイルにはArduino IDEの自動整形を適用しています。
diff --git a/pico_v2_STEP3_Buzzer/.DS_Store b/pico_v2_STEP3_Buzzer/.DS_Store
new file mode 100644
index 0000000..0895a05
Binary files /dev/null and b/pico_v2_STEP3_Buzzer/.DS_Store differ
diff --git a/pico_v2_STEP3_Buzzer/pico_v2_STEP3_Buzzer.ino b/pico_v2_STEP3_Buzzer/pico_v2_STEP3_Buzzer.ino
index 2d61db3..9e836ee 100644
--- a/pico_v2_STEP3_Buzzer/pico_v2_STEP3_Buzzer.ino
+++ b/pico_v2_STEP3_Buzzer/pico_v2_STEP3_Buzzer.ino
@@ -59,22 +59,22 @@ void execByMode(char mode)
 {
   switch (mode) {
     case 1:
-      ledcWriteTone(0, FREQ_C);
+      ledcWriteTone(BUZZER, FREQ_C);
       delay(1000);
-      ledcWrite(0, 1024);
+      ledcWrite(BUZZER, 0);
       break;
     case 2:
-      ledcWriteTone(0, FREQ_D);
+      ledcWriteTone(BUZZER, FREQ_D);
       delay(1000);
-      ledcWrite(0, 1024);
+      ledcWrite(BUZZER, 0);
       break;
     case 3:
-      ledcWriteTone(0, FREQ_E);
+      ledcWriteTone(BUZZER, FREQ_E);
       delay(1000);
-      ledcWrite(0, 1024);
+      ledcWrite(BUZZER, 0);
       break;
     default:
-      ledcWrite(0, 1024);
+      ledcWrite(BUZZER, 0);
       break;
   }
 }
@@ -90,9 +90,8 @@ void setup()
   pinMode(SW_L, INPUT);
   pinMode(SW_R, INPUT);
 
-  ledcSetup(0, 440, 10);
-  ledcAttachPin(BUZZER, 0);
-  ledcWrite(0, 1024);
+  ledcAttach(BUZZER, 440, 10);
+  ledcWrite(BUZZER, 0);
 
   g_mode = 1;
   setLED(g_mode);
@@ -109,18 +108,18 @@ void loop()
     if (g_mode > 15) {
       g_mode = 1;
     } else {
-      ledcWriteTone(0, INC_FREQ);
+      ledcWriteTone(BUZZER, INC_FREQ);
       delay(30);
-      ledcWrite(0, 1024);
+      ledcWrite(BUZZER, 0);
     }
     setLED(g_mode);
   }
   if (digitalRead(SW_L) == 0) {
-    ledcWriteTone(0, INC_FREQ);
+    ledcWriteTone(BUZZER, INC_FREQ);
     delay(80);
-    ledcWriteTone(0, DEC_FREQ);
+    ledcWriteTone(BUZZER, DEC_FREQ);
     delay(80);
-    ledcWrite(0, 1024);
+    ledcWrite(BUZZER, 0);
     delay(300);
     execByMode(g_mode);
   }
diff --git a/pico_v2_STEP4_Sensor/.DS_Store b/pico_v2_STEP4_Sensor/.DS_Store
new file mode 100644
index 0000000..7686eaa
Binary files /dev/null and b/pico_v2_STEP4_Sensor/.DS_Store differ
diff --git a/pico_v2_STEP4_Sensor/pico_v2_STEP4_Sensor.ino b/pico_v2_STEP4_Sensor/pico_v2_STEP4_Sensor.ino
index 6ac6367..ab64ac1 100644
--- a/pico_v2_STEP4_Sensor/pico_v2_STEP4_Sensor.ino
+++ b/pico_v2_STEP4_Sensor/pico_v2_STEP4_Sensor.ino
@@ -81,10 +81,10 @@ void setup()
 
   Serial.begin(115200);
 
-  g_timer1 = timerBegin(1, 80, true);  //1us
-  timerAttachInterrupt(g_timer1, &onTimer1, true);
-  timerAlarmWrite(g_timer1, 500, true);  //2kHz
-  timerAlarmEnable(g_timer1);
+  g_timer1 = timerBegin(1000000);  //1us
+  timerAttachInterrupt(g_timer1, &onTimer1);
+  timerAlarm(g_timer1, 500, true, 0);  //2kHz
+  timerStart(g_timer1);
 }
 
 void loop()
diff --git a/pico_v2_STEP5_Straight/.DS_Store b/pico_v2_STEP5_Straight/.DS_Store
new file mode 100644
index 0000000..654dead
Binary files /dev/null and b/pico_v2_STEP5_Straight/.DS_Store differ
diff --git a/pico_v2_STEP5_Straight/pico_v2_STEP5_Straight.ino b/pico_v2_STEP5_Straight/pico_v2_STEP5_Straight.ino
index 5bfdcdd..ad86fe3 100644
--- a/pico_v2_STEP5_Straight/pico_v2_STEP5_Straight.ino
+++ b/pico_v2_STEP5_Straight/pico_v2_STEP5_Straight.ino
@@ -62,7 +62,7 @@ void IRAM_ATTR isrR(void)
 {
   portENTER_CRITICAL_ISR(&g_timer_mux);  //割り込み禁止
   if (g_motor_move) {
-    timerAlarmWrite(g_timer2, 2000000 / g_step_hz_r, true);
+    timerAlarm(g_timer2, 2000000 / g_step_hz_r, true, 0);
     digitalWrite(PWM_R, HIGH);
     for (int i = 0; i < 100; i++) {
       asm("nop \n");
@@ -78,7 +78,7 @@ void IRAM_ATTR isrL(void)
 {
   portENTER_CRITICAL_ISR(&g_timer_mux);  //割り込み禁止
   if (g_motor_move) {
-    timerAlarmWrite(g_timer3, 2000000 / g_step_hz_l, true);
+    timerAlarm(g_timer3, 2000000 / g_step_hz_l, true, 0);
     digitalWrite(PWM_L, HIGH);
     for (int i = 0; i < 100; i++) {
       asm("nop \n");
@@ -113,20 +113,20 @@ void setup()
   digitalWrite(PWM_R, LOW);
   digitalWrite(PWM_L, LOW);
 
-  g_timer0 = timerBegin(0, 80, true);  //1us
-  timerAttachInterrupt(g_timer0, &onTimer0, true);
-  timerAlarmWrite(g_timer0, 1000, true);  //1kHz
-  timerAlarmEnable(g_timer0);
+  g_timer0 = timerBegin(1000000);  //1us
+  timerAttachInterrupt(g_timer0, &onTimer0);
+  timerAlarm(g_timer0, 1000, true, 0);  //1kHz
+  timerStart(g_timer0);
 
-  g_timer2 = timerBegin(2, 40, true);  //0.5us
-  timerAttachInterrupt(g_timer2, isrR, true);
-  timerAlarmWrite(g_timer2, 13333, true);  //150Hz
-  timerAlarmEnable(g_timer2);
+  g_timer2 = timerBegin(2000000);  //0.5us
+  timerAttachInterrupt(g_timer2, isrR);
+  timerAlarm(g_timer2, 13333, true, 0);  //150Hz
+  timerStart(g_timer2);
 
-  g_timer3 = timerBegin(3, 40, true);  //0.5us
-  timerAttachInterrupt(g_timer3, &isrL, true);
-  timerAlarmWrite(g_timer3, 13333, true);  //150Hz
-  timerAlarmEnable(g_timer3);
+  g_timer3 = timerBegin(2000000);  //0.5us
+  timerAttachInterrupt(g_timer3, &isrL);
+  timerAlarm(g_timer3, 13333, true, 0);  //150Hz
+  timerStart(g_timer3);
 }
 
 void loop()
diff --git a/pico_v2_STEP6_rotate/.DS_Store b/pico_v2_STEP6_rotate/.DS_Store
new file mode 100644
index 0000000..1c047a4
Binary files /dev/null and b/pico_v2_STEP6_rotate/.DS_Store differ
diff --git a/pico_v2_STEP6_rotate/pico_v2_STEP6_rotate.ino b/pico_v2_STEP6_rotate/pico_v2_STEP6_rotate.ino
index b314a32..17bb53a 100644
--- a/pico_v2_STEP6_rotate/pico_v2_STEP6_rotate.ino
+++ b/pico_v2_STEP6_rotate/pico_v2_STEP6_rotate.ino
@@ -71,7 +71,7 @@ void IRAM_ATTR isrR(void)
 {
   portENTER_CRITICAL_ISR(&g_timer_mux);  //割り込み禁止
   if (g_motor_move) {
-    timerAlarmWrite(g_timer2, 2000000 / g_step_hz_r, true);
+    timerAlarm(g_timer2, 2000000 / g_step_hz_r, true, 0);
     digitalWrite(PWM_R, HIGH);
     for (int i = 0; i < 100; i++) {
       asm("nop \n");
@@ -87,7 +87,7 @@ void IRAM_ATTR isrL(void)
 {
   portENTER_CRITICAL_ISR(&g_timer_mux);  //割り込み禁止
   if (g_motor_move) {
-    timerAlarmWrite(g_timer3, 2000000 / g_step_hz_l, true);
+    timerAlarm(g_timer3, 2000000 / g_step_hz_l, true, 0);
     digitalWrite(PWM_L, HIGH);
     for (int i = 0; i < 100; i++) {
       asm("nop \n");
@@ -122,20 +122,20 @@ void setup()
   digitalWrite(PWM_R, LOW);
   digitalWrite(PWM_L, LOW);
 
-  g_timer0 = timerBegin(0, 80, true);  //1us
-  timerAttachInterrupt(g_timer0, &onTimer0, true);
-  timerAlarmWrite(g_timer0, 1000, true);  //1kHz
-  timerAlarmEnable(g_timer0);
+  g_timer0 = timerBegin(1000000);  //1us
+  timerAttachInterrupt(g_timer0, &onTimer0);
+  timerAlarm(g_timer0, 1000, true, 0);  //1kHz
+  timerStart(g_timer0);
 
-  g_timer2 = timerBegin(2, 40, true);  //0.5us
-  timerAttachInterrupt(g_timer2, &isrR, true);
-  timerAlarmWrite(g_timer2, 13333, true);  //150Hz
-  timerAlarmEnable(g_timer2);
+  g_timer2 = timerBegin(2000000);  //0.5us
+  timerAttachInterrupt(g_timer2, &isrR);
+  timerAlarm(g_timer2, 13333, true, 0);  //150Hz
+  timerStart(g_timer2);
 
-  g_timer3 = timerBegin(3, 40, true);  //0.5us
-  timerAttachInterrupt(g_timer3, &isrL, true);
-  timerAlarmWrite(g_timer3, 13333, true);  //150Hz
-  timerAlarmEnable(g_timer3);
+  g_timer3 = timerBegin(2000000);  //0.5us
+  timerAttachInterrupt(g_timer3, &isrL);
+  timerAlarm(g_timer3, 13333, true, 0);  //150Hz
+  timerStart(g_timer3);
 }
 
 void loop()
diff --git a/pico_v2_STEP7_P_control/.DS_Store b/pico_v2_STEP7_P_control/.DS_Store
new file mode 100644
index 0000000..c31a80c
Binary files /dev/null and b/pico_v2_STEP7_P_control/.DS_Store differ
diff --git a/pico_v2_STEP7_P_control/pico_v2_STEP7_P_control.ino b/pico_v2_STEP7_P_control/pico_v2_STEP7_P_control.ino
index d186b53..b0044f9 100644
--- a/pico_v2_STEP7_P_control/pico_v2_STEP7_P_control.ino
+++ b/pico_v2_STEP7_P_control/pico_v2_STEP7_P_control.ino
@@ -124,7 +124,7 @@ void IRAM_ATTR isrR(void)
 {
   portENTER_CRITICAL_ISR(&g_timer_mux);  //割り込み禁止
   if (g_motor_move) {
-    timerAlarmWrite(g_timer2, 2000000 / g_step_hz_r, true);
+    timerAlarm(g_timer2, 2000000 / g_step_hz_r, true, 0);
     digitalWrite(PWM_R, HIGH);
     for (int i = 0; i < 100; i++) {
       asm("nop \n");
@@ -140,7 +140,7 @@ void IRAM_ATTR isrL(void)
 {
   portENTER_CRITICAL_ISR(&g_timer_mux);  //割り込み禁止
   if (g_motor_move) {
-    timerAlarmWrite(g_timer3, 2000000 / g_step_hz_l, true);
+    timerAlarm(g_timer3, 2000000 / g_step_hz_l, true, 0);
     digitalWrite(PWM_L, HIGH);
     for (int i = 0; i < 100; i++) {
       asm("nop \n");
@@ -182,25 +182,25 @@ void setup()
 
   Serial.begin(115200);
 
-  g_timer0 = timerBegin(0, 80, true);  //1us
-  timerAttachInterrupt(g_timer0, &onTimer0, true);
-  timerAlarmWrite(g_timer0, 1000, true);  //1kHz
-  timerAlarmEnable(g_timer0);
-
-  g_timer1 = timerBegin(1, 80, true);
-  timerAttachInterrupt(g_timer1, &onTimer1, false);
-  timerAlarmWrite(g_timer1, 500, true);
-  timerAlarmEnable(g_timer1);
-
-  g_timer2 = timerBegin(2, 40, true);  //0.5us
-  timerAttachInterrupt(g_timer2, &isrR, true);
-  timerAlarmWrite(g_timer2, 13333, true);  //150Hz
-  timerAlarmEnable(g_timer2);
-
-  g_timer3 = timerBegin(3, 40, true);  //0.5us
-  timerAttachInterrupt(g_timer3, &isrL, true);
-  timerAlarmWrite(g_timer3, 13333, true);  //150Hz
-  timerAlarmEnable(g_timer3);
+  g_timer0 = timerBegin(1000000);  //1us
+  timerAttachInterrupt(g_timer0, &onTimer0);
+  timerAlarm(g_timer0, 1000, true, 0);  //1kHz
+  timerStart(g_timer0);
+
+  g_timer1 = timerBegin(1000000);
+  timerAttachInterrupt(g_timer1, &onTimer1);
+  timerAlarm(g_timer1, 500, true, 0);
+  timerStart(g_timer1);
+
+  g_timer2 = timerBegin(2000000);  //0.5us
+  timerAttachInterrupt(g_timer2, &isrR);
+  timerAlarm(g_timer2, 13333, true, 0);  //150Hz
+  timerStart(g_timer2);
+
+  g_timer3 = timerBegin(2000000);  //0.5us
+  timerAttachInterrupt(g_timer3, &isrL);
+  timerAlarm(g_timer3, 13333, true, 0);  //150Hz
+  timerStart(g_timer3);
 
   g_sen_r.ref = REF_SEN_R;
   g_sen_l.ref = REF_SEN_L;
diff --git a/pico_v2_STEP8_micromouse/.DS_Store b/pico_v2_STEP8_micromouse/.DS_Store
new file mode 100644
index 0000000..df27090
Binary files /dev/null and b/pico_v2_STEP8_micromouse/.DS_Store differ
diff --git a/pico_v2_STEP8_micromouse/device.h b/pico_v2_STEP8_micromouse/device.h
index 1d2625b..37485e8 100644
--- a/pico_v2_STEP8_micromouse/device.h
+++ b/pico_v2_STEP8_micromouse/device.h
@@ -33,6 +33,6 @@
 //#define SW_CM 2
 #define SW_RM 4
 
-#define BUZZER_CH 0
+
 
 #endif  // DEVICE_H_
\ No newline at end of file
diff --git a/pico_v2_STEP8_micromouse/device.ino b/pico_v2_STEP8_micromouse/device.ino
index e35ef0a..2dbee2b 100644
--- a/pico_v2_STEP8_micromouse/device.ino
+++ b/pico_v2_STEP8_micromouse/device.ino
@@ -53,7 +53,7 @@ void IRAM_ATTR isrR(void)
   portENTER_CRITICAL_ISR(&g_timer_mux);
   if (g_motor_move) {
     if (g_step_hz_r < 30) g_step_hz_r = 30;
-    timerAlarmWrite(g_timer2, 2000000 / g_step_hz_r, true);
+    timerAlarm(g_timer2, 2000000 / g_step_hz_r, true, 0);
     digitalWrite(PWM_R, HIGH);
     for (int i = 0; i < 100; i++) {
       asm("nop \n");
@@ -69,7 +69,7 @@ void IRAM_ATTR isrL(void)
   portENTER_CRITICAL_ISR(&g_timer_mux);
   if (g_motor_move) {
     if (g_step_hz_l < 30) g_step_hz_l = 30;
-    timerAlarmWrite(g_timer3, 2000000 / g_step_hz_l, true);
+    timerAlarm(g_timer3, 2000000 / g_step_hz_l, true, 0);
     digitalWrite(PWM_L, HIGH);
     for (int i = 0; i < 100; i++) {
       asm("nop \n");
@@ -80,21 +80,21 @@ void IRAM_ATTR isrL(void)
   portEXIT_CRITICAL_ISR(&g_timer_mux);
 }
 
-void controlInterruptStart(void) { timerAlarmEnable(g_timer0); }
-void controlInterruptStop(void) { timerAlarmDisable(g_timer0); }
+void controlInterruptStart(void) { timerStart(g_timer0); }
+void controlInterruptStop(void) { timerStop(g_timer0); }
 
-void sensorInterruptStart(void) { timerAlarmEnable(g_timer1); }
-void sensorInterruptStop(void) { timerAlarmDisable(g_timer1); }
+void sensorInterruptStart(void) { timerStart(g_timer1); }
+void sensorInterruptStop(void) { timerStop(g_timer1); }
 
 void PWMInterruptStart(void)
 {
-  timerAlarmEnable(g_timer2);
-  timerAlarmEnable(g_timer3);
+  timerStart(g_timer2);
+  timerStart(g_timer3);
 }
 void PWMInterruptStop(void)
 {
-  timerAlarmDisable(g_timer2);
-  timerAlarmDisable(g_timer3);
+  timerStop(g_timer2);
+  timerStop(g_timer3);
 }
 
 void initAll(void)
@@ -110,9 +110,8 @@ void initAll(void)
   pinMode(SW_L, INPUT);
   pinMode(SW_R, INPUT);
 
-  ledcSetup(0, 440, 10);
-  ledcAttachPin(BUZZER, 0);
-  ledcWrite(0, 1024);
+  ledcAttach(BUZZER, 440, 10);
+  ledcWrite(BUZZER, 0);
 
   pinMode(SLED_F, OUTPUT);
   pinMode(SLED_S, OUTPUT);
@@ -137,25 +136,25 @@ void initAll(void)
     }
   }
 
-  g_timer0 = timerBegin(0, 80, true);
-  timerAttachInterrupt(g_timer0, &onTimer0, false);
-  timerAlarmWrite(g_timer0, 1000, true);
-  timerAlarmEnable(g_timer0);
+  g_timer0 = timerBegin(1000000);
+  timerAttachInterrupt(g_timer0, &onTimer0);
+  timerAlarm(g_timer0, 1000, true, 0);
+  timerStart(g_timer0);
 
-  g_timer1 = timerBegin(1, 80, true);
-  timerAttachInterrupt(g_timer1, &onTimer1, false);
-  timerAlarmWrite(g_timer1, 500, true);
-  timerAlarmEnable(g_timer1);
+  g_timer1 = timerBegin(1000000);
+  timerAttachInterrupt(g_timer1, &onTimer1);
+  timerAlarm(g_timer1, 500, true, 0);
+  timerStart(g_timer1);
 
-  g_timer2 = timerBegin(2, 40, true);
-  timerAttachInterrupt(g_timer2, &isrR, false);
-  timerAlarmWrite(g_timer2, 13333, true);
-  timerAlarmEnable(g_timer2);
+  g_timer2 = timerBegin(2000000);
+  timerAttachInterrupt(g_timer2, &isrR);
+  timerAlarm(g_timer2, 13333, true, 0);
+  timerStart(g_timer2);
 
-  g_timer3 = timerBegin(3, 40, true);
-  timerAttachInterrupt(g_timer3, &isrL, false);
-  timerAlarmWrite(g_timer3, 13333, true);
-  timerAlarmEnable(g_timer3);
+  g_timer3 = timerBegin(2000000);
+  timerAttachInterrupt(g_timer3, &isrL);
+  timerAlarm(g_timer3, 13333, true, 0);
+  timerStart(g_timer3);
 
   Serial.begin(115200);
 
@@ -207,10 +206,10 @@ void setBLED(char data)
 }
 
 //Buzzer
-void enableBuzzer(short f) { ledcWriteTone(BUZZER_CH, f); }
+void enableBuzzer(short f) { ledcWriteTone(BUZZER, f); }
 void disableBuzzer(void)
 {
-  ledcWrite(BUZZER_CH, 1024);  //duty 100% Buzzer OFF
+  ledcWrite(BUZZER, 0);  //duty 0% Buzzer OFF
 }
 
 //motor