ESP32-8048S043 地震計製作備忘録 Y.Okamoto 2023-03-10
ESP32-8048S043  Seismometer Making Recipe



2023-03-11 基板テスト.

基板のグラフィックテストOK!これ前日に書き込み失敗したのは,書き込み速度を921600にしていて,ESPtoolでエラーがでていた.
昨日夜にまず115200に落してOK!.次に今日は460800
ついでに,今朝どれかのスケッチでまたも書き込みが上記エラーとなったときに,次にCPUFreqかなにかの速度を変更しただけでOKとなったことがあった.この種のエラーのときは試してみるのもよい.現在はデフォルトの状態でOK.

書き込みの諸条件
//=====================================================================
// Clock ESP32_8048S0043 : 2022.10.26 : macsbug
// https://macsbug.wordpress.com/2022/11/29/esp32-8048s043/
//=====================================================================
// HARD              : ESP32_8048S043C
//  Display          : 4.3" 800x480 RGB LCD Touch GT911
// Dev environment   : Arduino IDE 1.8.19
//  Board Manager    : arduino-esp32 2.0.5
//  Board            : "ESP32S3 Dev Module"                <ーーBoxではなくこれ! langshipさんはBoxを使えと指示(これよく考えると自分の解釈間違い.esp32-s3-devkitc-1ではそうするべきという記述では.したがって,このライブラリで間違いないはず).https://lang-ship.com/blog/work/esp32-8048s043/
//  Upload Speed     : "921600"                             <ーーこれ現在は 一旦115200に落してのちに460800で使用中
//  USB Mode         : "Hardware CDC and JTAG"
//  USB CDC On Boot  : "Disable"
//  USB Firmware MSC On Boot : "Disable"
//  USB DFE On Boot  : "Disable"
//  CPU Frequency    : "240MHz (WiFi/BT)"
//  Flash Frequency  : "80MHz"
//  Flash Mode       : "QIO 120MHz"
//  Flash Size       : "16MB (128Mb)"                        <ーーこれも重要!
//  Partition Scheme : "16MB Flash (2MB APP/12.5MB FATFS)"   <ーーこれも重要!
//  Core Degug Level : "None"
//  PSRAM            : "OPI PSRAM"                           <ーーこれも重要!その2 langshipさんより
//  Arduino Runs On  : "Core 1"
//  Events Run On    : "Core 1"
//  Rease All Flash before Sketxh Upload : "Disable"
//  Pord             : "dev/cu.wchusbserial14240"
// Library           : Arduino GFX                            <ーーこれ現在はlovyanGFXで使用.
//                   : https://github.com/moononournation/Arduino_GFX
//=====================================================================
// Arduino Watch Lite Version
// You may find full version at:
//  https://github.com/moononournation/ArduinoWatch
//=====================================================================

wifi OK!
時刻 OK!
ADC 19番ピン,20番ピンともに乾電池(単3)テストOK!現在19番で使用.

現在グラフィックは文字表示のみ.

このあと,以前のESP32無印向けのスケッチあらかたコピーしてスケッチを完成.
現在のところありがたいことに,大幅修正なしに,信号表示も,SDカード保存も画面キャプチャーも順調に動いている.



以前との改善点は,
横800ドットで30秒処理.サンプリング周波数約27Hz.
縦方向.信号線45本.10ドット間隔.
これで24分のデータファイル,画像ファイルのSDカード保存となる.
とりあえずこの基板での地震計のめどが立つ.


過去の備忘録


※この基板は書き込み速度を921600にすると,esptoolエラーが出て実行できない場合がある.
その場合書き込み時に%表記が出ない.
その場合速度を落とすこと(2023-03-10)
https://lang-ship.com/blog/work/esp32-esptool-py/#toc6

基板の詳細は下記
The layout of the board is as follows, (in Japanese)
https://macsbug.wordpress.com/2022/11/29/esp32-8048s043/

ESP32-8048S043はCPUがESP32-3248S035とは異なりESP32-S3であることに注意
ESP32-8048S043 has a different CPU ESP32-S3 instead of CPU ESP32(ESP32-3248S035)



ESP32-S3のピンのアサイン図
Assigned pins layout

http://tamanegi.digick.jp/computer-embedded/mcuboa/esp32s3devkitc1/#show
あるいは
https://uelectronics.com/producto/esp32-s3-wroom-1-n8r8-8mb-flash-psram/






これより,ADC(AD変換)にはESP32-8048S043基板での出力端子のうち,pin19,20が有効であることがわかる.問題はこれがADC_2にアサインされていることで,wifiとの競合が心配される(ESP32-3248S035の場合).ソフトウエアでの切り替えができるかどうか.⇒この心配杞憂に終わった!この基板では問題ないみたい!2023-30-11



ESP32-3248S035 地震計製作備忘録 Y.Okamoto 2023-02-27
ESP32-3248S035 Seismometer Making Recipe 
 
Raspberry Shakeは本格的な地震観測ができるGadgetとして有名である.筆者は以前からこのようなコンパクトな地震観測システムを考えてきた.
このほど,ESP32マイクロコントローラとLCDが合体した安価な基板を入手したので,これで簡単な地震計を製作することにした.
A gadget named Raspberry Shake is famous a small body seismograph system. The author has been developing such small seismograph system for school use.
This time, we develop a seismograph system using ESP32 micro-controler with LCD and a geophone as a seismograph system. 



まずESP32基板
ESP32-3248S035 の情報と販売先は下記.
The information (in Japanese);
https://macsbug.wordpress.com/2022/10/02/esp32-3248s035/
https://lang-ship.com/blog/work/esp32-3248s035/

Seller URL
販売先:https://ja.aliexpress.com/item/1005004632953455.html
価格は送料込み2300円弱.
Price 20USD including shipping.

Seller or Geophone; it is important to use a long-period geophone (4,5hHz or less) for observing natural earthquakes.

また振動センサ(GeoPhone)は下記(GD4.5,かならず固有周期のできるだけ長いものが地震観測にはふさわしい)
https://ja.aliexpress.com/item/1005005068019811.html

However even the regional earthquakes, it is not enough by above sensor, For oversea earthquakes, more long-period pendulum is necessary. 
しかし,上記センサでも自然地震の観測,とくに遠距離の海外の地震観測には振り子の周期が短く有効ではない.もっと長周期の振り子を用いる工夫が必要.

1) Assembly Recipe

i) Senor is put on a ground or s floor or a desk.
ii) The sensor out puts are connect to the input of the amplifier board.
iii) A 5V Vcc in the PCB board of ANB amp. is suplied from a USB cable 
  PCB board Gerber data

iv) The amp. output is connect to the EAP32 board using a 4P cable as follows,

2) Circuit parts
ESP32-3248S035 related
 
Cable: 1.25mm 4P plug and cable https://ja.aliexpress.com/item/1005001650676759.html (4P JST 1.25mm)
or https://ja.aliexpress.com/item/32972722007.html (4P JST 1.25mm)    
Signal port: Extended IO: IO35 and GND to out put
from https://macsbug.files.wordpress.com/2022/09/esp32-3248s035r_pcb_layout-5.pdf


3) PCB circuit



PCB board and soldering PCB is made by PCBGOGO https://www.pcbgogo.jp/


※Above bias adjust is not good, because the two amps are inverted amp, so the output signal is compensative.
It means the adjusting effort is cancelled each other! It is necessary to improve it! 


4) Cutting of PCB (YouTube)




5)ADC cable input pins

https://ja.aliexpress.com/item/32972722007.html (4P JST 1.25mm) 
   

2) Software; ArduinoIDE sketch

// *************************************************
// ESP32-ADC_v1 Y.Okamoto 2023-02-25, start on 02-24
// moving average on 02-25
// // https://github.com/lovyan03/LovyanGFX/blob/master/examples/HowToUse/2_user_setting/2
// ESP32-3248S035r.h modified by Y.Okamoto 2023-02-25 from https://macsbug.wordpress.com/2022/10/02/esp32-3248s035/
// *************************************************
#define AD_PIN 35    // for analog input pin
#include <WiFi.h>   // for wifi get
#include "EO-id.h"   // my wifi id and pw
// wifi and JST time
WiFiClient client;
struct tm timeInfo;//時刻を格納するオブジェクト
char s[20];//文字格納用
// last-time
uint8_t secLastReport;      // = 0 causes bug for timeInfo   
uint8_t minLastReport;      // = 0 causes bug for timeInfo 
// LCD GFX
#include "ESP32-3248S035r.h"  // LovyanGFX for ESP32-3248S035r by
static LGFX lcd;     // LGFXのインスタンスを作成。
// SD card
#include <sd_diskio.h>
#include <SD.h>
#include <sd_defines.h>
// data files
File myFile;          // sq.file
String myFile_BMP;    // BMP.file
char fn[100];
String dateStr;       // date for file name
String timeStr;       // time for file name
// init for dislay ------------------------------------
int t = 0;
int l = 1;
int r = 0;
int tm = 0;
int tmax = 7200; // 30min data at 2Hz
int lmax = 30;      // signal line number 2022-08-15
int xmax = 480;   // display max pixel
  // graph plot
  int x;            // x
  int y;            // y
  int xp;           // previous x
  int yp;           // previous y
  int x0 = 0;
//  int y0 = 80;  // first plot offset
  float ls = 10.0;  // line span
  float pm = 0.1; // magnify Pressure 100 pixel for +1hPa  
// ------------- Set Up ----------------------------------  
void setup() {
  //Serial setup
  Serial.begin(115200);

  // Wifi setup---------------------
  WiFi.mode(WIFI_STA);
  WiFi.disconnect();
  if (WiFi.begin(ssid, password) != WL_DISCONNECTED) {
    ESP.restart();
  }
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
  }
  Serial.println("Connected to the WiFi network!");
  // JST server
  configTime(9 * 3600L, 0, "ntp.nict.jp", "time.google.com", "ntp.jst.mfeed.ad.jp");//NTPの設定
  // ADC pin set---------------------
  pinMode(AD_PIN, ANALOG); 
  // GFX setup-----------------------
  lcd.init();
  // 回転方向を 0~3 の4方向から設定します。(4~7を使用すると上下反転になります。)
  lcd.setRotation(3);
  lcd.setColorDepth(16);
  lcd.startWrite();
  lcd.setAddrWindow(0, 0, lcd.width(), lcd.height());
  lcd.clear();
  lcd.setCursor(280, 0);
  lcd.printf("Seismometer-ESP32"); 
  // -------------------------------
  // Initialize the SD card. 初始化SD     forget this! 2023-01-24
    if (!SD.begin()) { 
        lcd.println(
            "Card failed, or not present");  // Print a message if the SD card
        while (1);
    } 
  }
// ======== Loop ==========================================
void loop() {
  l =1;
  lcd.clear(); 
  lcd.setCursor(220, 0);
  lcd.printf("ESP32-Seis-ADC_v1 by Y.okamoto 2023-02-25");
 
  lcd.setCursor(0, 0); 
  getLocalTime(&timeInfo);      // get local time
  lcd.printf("%02d/%02d/%02d %02d:%02d:%02d",
      timeInfo.tm_year + 1900, timeInfo.tm_mon + 1, timeInfo.tm_mday,
      timeInfo.tm_hour, timeInfo.tm_min, timeInfo.tm_sec); 
      dateStr = (String)(timeInfo.tm_year + 1900)
         + "-" + (String)(timeInfo.tm_mon + 1)
         + "-" + (String)timeInfo.tm_mday;
    timeStr = (String)timeInfo.tm_hour
         + "_" + (String)timeInfo.tm_min
         + "_" + (String)timeInfo.tm_sec;  
 
    // send data to Ambient cloud  
    myFile = SD.open("/"+ dateStr + "-" + timeStr + ".dat", FILE_APPEND);  // "/" is important
  https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10105479620
// ----- LCD signal display about each 10 [min] --------------- 
  while (l <= lmax){
  getLocalTime(&timeInfo); // get localtime from built-in cleck
  if(secLastReport  != timeInfo.tm_sec) { // time update
    if (timeInfo.tm_sec % 10 == 0){
     secLastReport   = timeInfo.tm_sec;
     tm = 8;
    }
     else {
    secLastReport   = timeInfo.tm_sec;
    tm = 5;    // time mark[msec]
     }
    }
    else
    tm = 0;   // no time mark
  // ---- Moving average ------------------  
  // analog signal get and moving average (15 data)
   int adc0 = analogReadMilliVolts(AD_PIN);
   int adc1 = analogReadMilliVolts(AD_PIN);
   int adc2 = analogReadMilliVolts(AD_PIN);
   int adc3 = analogReadMilliVolts(AD_PIN);
   int adc4 = analogReadMilliVolts(AD_PIN);
   int adc5 = analogReadMilliVolts(AD_PIN);
   int adc6 = analogReadMilliVolts(AD_PIN);
   int adc7 = analogReadMilliVolts(AD_PIN);
   int adc8 = analogReadMilliVolts(AD_PIN);
   int adc9 = analogReadMilliVolts(AD_PIN);
   int adc10 = analogReadMilliVolts(AD_PIN);
   int adc11 = analogReadMilliVolts(AD_PIN);
   int adc12 = analogReadMilliVolts(AD_PIN);
   int adc13 = analogReadMilliVolts(AD_PIN);
   int adc14 = analogReadMilliVolts(AD_PIN);         
   float adc_m = (adc0 + adc1 + adc2 + adc3 + adc4 + adc5 + adc6 + adc7 + adc8 + adc9 + adc10 + adc11 + adc12 + adc13 + adc14)/15.0;
   int adc = int(adc_m);
  // ----Signal plot (x,y) --------------- 
    x = t + x0;
    y = int((adc-1500) * pm + l * ls -tm + 0);    // sign reversed 30.0 need to adjust the line position
    if (t == 0){
    lcd.drawPixel(x, y, TFT_GREEN);      // singal plot
       xp = x;
       yp = y;      
    }
    else {
       lcd.drawLine(xp, yp, x, y, TFT_GREEN);
       xp = x;
       yp = y;
    }
    myFile.printf("%02d:%02d:%02d %4d \n",timeInfo.tm_hour, timeInfo.tm_min, timeInfo.tm_sec, adc); 
   // -- time iteration ----------------
   t = t + 1;  
   if (t > xmax){               // if the signal line reached at the right end
      t = 0;                    // rest the signal position for x
      l = l + 1;                // iterate the signal line y position
   }  
  delay(40);          // for 24Hz sampling for 1ch input and dislay if Serial.print then more smaller about 35 or less
  }
 myFile.close();
 Screen_Capture_BMP();   
}
// ========= End of Loop ====================================

// ------- BMP save function ----- still buggy 02-25-----------
void Screen_Capture_BMP(){
  lcd.setBrightness(10);       // darken LCD
  Serial.println("BMP_start");
 // std::size_t dlen;
  bool result = false;      // unknown label
//static constexpr char filename[] = "/lovyangfx_test.bmp";
  File file = SD.open("/"+ dateStr + "-" + timeStr + ".bmp", "w");
  if (file){
    int width  = 480;
    int height = 320;
    int rowSize = (2 * width + 3) & ~ 3; 
    lgfx::bitmap_header_t bmpheader;
    bmpheader.bfType = 0x4D42;
    bmpheader.bfSize = rowSize * height + sizeof(bmpheader);
    bmpheader.bfOffBits = sizeof(bmpheader);

    bmpheader.biSize = 40;
    bmpheader.biWidth = width;
    bmpheader.biHeight = height;
    bmpheader.biPlanes = 1;
    bmpheader.biBitCount = 16;
    bmpheader.biCompression = 3;
    file.write((std::uint8_t*)&bmpheader, sizeof(bmpheader));

    std::uint8_t buffer[rowSize];
    memset(&buffer[rowSize - 4], 0, 4);
    for (int yy = height - 1; yy >= 0; yy--){
      lcd.readRect(0, yy, width, 1, (lgfx::rgb565_t*)buffer);
      file.write(buffer, rowSize);
    }
    file.close();

    Serial.println("BMP_end");  
    result = true;
    lcd.setBrightness(200);      // return LCD darken
    }
  else
  {
    Serial.print("error:file open failure\n");
  }
 // return result;
}

試作機までの開発過去の備忘録ESP32-3248S035 LCD基板 地震計備忘録  2023-02-24

基板参考サイトhttps://macsbug.wordpress.com/2022/10/02/esp32-3248s035/
Lang-Shiphttps://lang-ship.com/blog/work/esp32-3248s035/ 

02-25
アンプを接続:アンプの基本回路は
https://www.zisin.jp/publications/pdf/nf-vol103.pdf#page=6

まず驚いたのは,ESP32のADCのノイスレベル.これ生のデータではとても観測には使えないレベル.アンプの感度を上げても,基本ノイズレベルは変わらない印象.
一旦ソフトを点描画から線描画に変更して,ノイズレベルを調べる.
当然ながら移動平均しかないので,これを試す.最初3点から初めて現在15点でも,完全にはノイズは0にはならない.しかも移動平均してもそれほどサンプ リング速度には影響しない.CPU処理速後が勝っているのか.移動平均にdelay()を入れることも考えたが,おそらく基本的な部分でハードの問題だろ うと目星.
検索すると一杯ノイズ関連が出てくる.基本解決策は移動平均とEP32の電源およびADの入力とGNDの間にコンデンサを挟むしかなさそう.
後者はちょっと基板にハンダ付けなので一旦遠慮.移動平均のみで15平均で何とか実用レベル.さらにアンプの倍率をMaxにあげて,ようやく電車の通過振 動を拾うようになった.これでおそらくこの振動センサを使うのには限界だろうか.ハード的にコンデンサをかませば,もう数倍は上げれるかも.これで一旦自 然地震を待ちたい.
移動平均は下記
  // analog signal get
   int adc0 = analogReadMilliVolts(AD_PIN);
   int adc1 = analogReadMilliVolts(AD_PIN);
   int adc2 = analogReadMilliVolts(AD_PIN);
   int adc3 = analogReadMilliVolts(AD_PIN);
   int adc4 = analogReadMilliVolts(AD_PIN);
   int adc5 = analogReadMilliVolts(AD_PIN);
   int adc6 = analogReadMilliVolts(AD_PIN);
   int adc7 = analogReadMilliVolts(AD_PIN);
   int adc8 = analogReadMilliVolts(AD_PIN);
   int adc9 = analogReadMilliVolts(AD_PIN);
   int adc10 = analogReadMilliVolts(AD_PIN);
   int adc11 = analogReadMilliVolts(AD_PIN);
   int adc12 = analogReadMilliVolts(AD_PIN);
   int adc13 = analogReadMilliVolts(AD_PIN);
   int adc14 = analogReadMilliVolts(AD_PIN);         
   float adc_m = (adc0 + adc1 + adc2 + adc3 + adc4 + adc5 + adc6 + adc7 + adc8 + adc9 + adc10 + adc11 + adc12 + adc13 + adc14)/15.0;
   int adc = int(adc_m);

あとRaspBerry Shakeの資料など
感震器
https://raspberryshake.org/wp-content/uploads/2020/05/racotech-geophone-datasheet.pdf
使用記録
https://www.ishikawa-lab.com/RasPi_shake.html
これみるとLCDのないタイプのようでそれだと4万円(300USD)くらいか.
あとこれとか.
https://www.misasa.okayama-u.ac.jp/~masami/pukiwiki/index.php?RaspberryShake
これとか
https://bp-affairs.com/foresight-insight/2017/07/raspberry_shake_4d.html

下記ですが,結局idとpwの2行をid.hとして,ヘッダファイル化して,それをincludeすることで解決.

#include "EO-id.h"   // my wifi id and pw

でOK.自分で作ったヘッダなので,""で囲むことが重要.

// EO-id.h 
const char* ssid = "eo**-*********";  //My-Rooter ID "xxxxxxxxxxx";
const char* password = "**********";  //My_Rooter PW "xxxxxxxxxxx";


WifiのIDとpwについては,下記のアドバイスが有効
https://lang-ship.com/blog/work/m5stickc-env-hat-1/
つまりEPS32の不揮発性ライブラリに書き込むという手法だそうです.これ知らなかった!素晴らしい!

https://www.kerislab.jp/posts/2017-06-16-esp32-preferences/

明日やってみよう.
ついでにさきほどアンプ基板の回路を使えるように若干修正.こちらも明日使用予定.


ESP32-3248S035 LCD基板 地震計備忘録  2023-02-24

基板参考サイトhttps://macsbug.wordpress.com/2022/10/02/esp32-3248s035/
Lang-Shiphttps://lang-ship.com/blog/work/esp32-3248s035/ 

WifiのIDとpwについては,書きのアドバイスが有効
https://lang-ship.com/blog/work/m5stickc-env-hat-1/
つまりEPS32の不揮発性ライブラリに書き込むという手法だそうです.これ知らなかった!素晴らしい!

https://www.kerislab.jp/posts/2017-06-16-esp32-preferences/

明日やってみよう.
ついでにさきほどアンプ基板の回路を使えるように若干修正.こちらも明日使用予定.


2023-02-24

最初,従来のDSP310用の流用をしたが,
wifi.hのマルチプルエラー

あるいは時刻を取り出すのに失敗など.で嵌り,あらためて一から作り直し.

まず,ADCはADC1の外部端子に出力が出ているIO35ピンを使用.

https://kohacraft.com/archives/202202091047.html の較正されたmV出力をコピー


次に時刻は,https://wak-tech.com/archives/833 から


#include <WiFi.h>
 
const char *ssid = "YOUR SSID";
const char *password = "YOUR PASSWORD";
 
void setup() {
  Serial.begin(115200);
 
  WiFi.mode(WIFI_STA);
  WiFi.disconnect();

  if (WiFi.begin(ssid, password) != WL_DISCONNECTED) {
    ESP.restart();
  }
 
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
  }
 
  Serial.println("Connected to the WiFi network!");
 
  configTime(9 * 3600L, 0, "ntp.nict.jp", "time.google.com", "ntp.jst.mfeed.ad.jp");//NTPの設定
}

struct tm timeInfo;//時刻を格納するオブジェクト
char s[20];//文字格納用

void loop() {
  getLocalTime(&timeInfo);//tmオブジェクトのtimeInfoに現在時刻を入れ込む
  sprintf(s, " %04d/%02d/%02d %02d:%02d:%02d",
          timeInfo.tm_year + 1900, timeInfo.tm_mon + 1, timeInfo.tm_mday,
          timeInfo.tm_hour, timeInfo.tm_min, timeInfo.tm_sec);//人間が読める形式に変換
  delay(1000);
  Serial.println(s);//時間をシリアルモニタへ出力
}

を使用.いずれも動く.
これを組み合わせる.

次にこれをLCD表示することを考える.何度か試みたが wifi.hのマルチプルエラーなどで断念.あらためて考える.

博物館から帰ってきて,一つずつさいしょからクリア.
まずwifi.次にJST.さらにLovyanGFXなどincludeをじわじわとしていった.
分かったのは,JSTの時刻ゲットのときの

  sprintf(s, " %04d/%02d/%02d %02d:%02d:%02d",
          timeInfo.tm_year + 1900, timeInfo.tm_mon + 1, timeInfo.tm_mday,
          timeInfo.tm_hour, timeInfo.tm_min, timeInfo.tm_sec);//人間が読める形式に変換
  Serial.println(s);//時間をシリアルモニタへ出力

が現在のもの.以前のものは
  lcd.printf("%02d/%02d/%02d %02d:%02d:%02d",
      timeinfo.tm_year + 1900, timeinfo.tm_mon + 1, timeinfo.tm_mday,
      timeinfo.tm_hour, timeinfo.tm_min, timeinfo.tm_sec); 

構造体の小文字か大文字かの違い!
timeinfo timeInfo

これでwifiライブラリエラーが出ていたみたい.

あとサンプリングレートをみるために,タイムマーク.ここでも小嵌り.
uint8_t secLastReport;    を最初

uint8_t secLastReport = 0; と置いていて,これが災いして,時刻表示の秒の桁が00とか,タイムマークが表示できないとかのBug.
途中で気づいて修正してことなきを得る.

サンプリングレートはフリーランで,SD書き込みなしだと,点を打ちながらでも480Hzに達する!これは驚異的な速度
ESP32+LovyanGFXのコンビの素晴らしさ!

今日1日で何とかSDカード保存まで終える.  



ESP32-8048S043備忘録   Y.Okamoto 2023-02-14

まず
https://lang-ship.com/blog/work/esp32-8048s043/
を参考にビルドから

ArduinoIDEでライブラリの管理からPSRamのたなかまさゆきさんビルドのライブラリを入れる.

次にToolからBoardを選ぶが,
ESP32 Aruinoで
ESP32-S3-DevではなくPSRAMを使うために
ESP32-S3-Boxを選ぶ.
あと上記ページのプラットフォームボタンから

esp32s3box.json

を.inoと同一フォルダに格納.

あとヘッダファイルは
https://github.com/lovyan03/LovyanGFX/blob/0.5.0/src/lgfx_user/LGFX_ESP32S3_RGB_ESP32-8048S043.h
より

LGFX_ESP32S3_RGB_ESP32-8048S043.h
をこれも同一フォルダに格納.
そして
https://lang-ship.com/blog/work/esp32-8048s043/#toc4
のシンプルスケッチ例を基板に送るが,エラーとなる.(⇒今ここ)













https://macsbug.wordpress.com/2022/11/29/esp32-8048s043/



Copyright (c) Y.Okamoto 2023, all rights reserved.