Hello @felmue,
I know the part M5CoreS3 Library and the examples. With some effort I would get it working for the Arduino IDE, but this means a lot of manual work.
I am looking for a working environment for easy examples.
Posts made by sheepDog
-
RE: M5Core3 Factory Test
-
RE: M5Core3 Factory Test
@sgu
Yes, this is pure product placement with a few simple examples.I use the Arduino IDE 2.1.0 and this standards:
- Additional boards manager URL: https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5unified_index.json
- M5Stack Library: M5Stack from M5Stack, Version 2.07 (according to the description it should work with M5CoreS3:"Boards included in this package: ..., M5Stack-Core3,..." )
- Program with "#include <M5CoreS3.h>"
-> The error is:
"/Users/*/M5Core3/CamToLCD/CamToLCD.ino:6:10: fatal error: M5CoreS3.h: No such file or directory #include <M5CoreS3.h> ^~~~~~~~~~~~ compilation terminated.
I looked at the Library at directory "/Users/*/Library/Arduino15/staging/libraries" and found no M5Core3-Code-patterns!
-
RE: M5Core3 Factory Test
Hallo @felmue,
nice to meet you here again. What software did you use for your example? "Arduino IDE 2.1.0" and library "M5Stack V2.07."? -
RE: M5Core3 Factory Test
@ajb2k3 The factory source is not at the GitHub link " https://github.com/m5stack/M5CoreS3" or I didn't found it. I found their only utilities and little (!) examples, but not the whole "factorytest.ino"
-
RE: M5Core3 Factory Test
@ajb2k3 I'm not looking for UIFlow 1 or 2, but "only" the one example that is also installed on the M5Core3. I am aware that a new product needs some time to create the documentation and software.
-
RE: M5Core3 Factory Test
@ajb2k3 I know this standard resource. I found their only utilities and little (!) examples, but not the whole "factorytest.ino"
-
M5Core3 Factory Test
Hello, where can I find the factory test program for the New M5Core3? I am very interested in the cam Part of the software.
-
RE: WebPage Display
Hello,
after three years is it possible to show a static WebPage on the M5Stack/M5Core2?
Anyone has an idea? -
M5Core2 and SD-Card stack challenge
Hello,
I used ESP-IDF v4.4-beta1, Arduino 2.0.2 for and M5Core2-Library ("0.1.0" = newest version, I also checked 0.0.3). The Arduino libraries I got from "https://github.com/espressif/arduino-esp32.git" and the M5Core2 Library I loaded from "https://github.com/m5stack/M5Core2.git".
I can initialize the M5Core2, write text on the screen and connect to wifi. If I activated the SD-Card I got an error: "A stack overflow in task main has been detected."
I looked for the cause and it are these calls:
bool SD_Enabler = true; M5.begin(true, SD_Enabler, true, false, kMBusModeInput); -> SD.begin(TFCARD_CS_PIN, SPI, 40000000); -> if(!sdcard_mount(_pdrv, mountpoint, max_files, format_if_empty)){ -> FRESULT res = f_mount(fs, drv, 1);
The reason for the stack challenge is f_mount.
There are only two parameters for this function:FATFS* fs; char drv[3] = {(char)('0' + pdrv), ':', 0};
The value for drv is "0:" and seemed okay. The parameter fs was initialled some lines one before without an error:
esp_err_t err = esp_vfs_fat_register(path, drv, max_files, &fs); if (err == ESP_ERR_INVALID_STATE) { log_e("esp_vfs_fat_register failed 0x(%x): SD is registered.", err); return false; } else if (err != ESP_OK) { log_e("esp_vfs_fat_register failed 0x(%x)", err); return false; }
I didn't know what happened. Have anyone a good idea?
-
RE: Core2, W5500 and ESP-IDF example eth2ap
Hello Felix,
thank you for your quick answer. I can ping sometimes and I cann't surf the Internet with my phone or with my computer and eth2ap-modul.
-
I have changed the channel the softAP is using. Small changes in quality can be seen, but no significant improvement.
-
I tried a different wireless client, for example my computer and my phone.
-
I used a 12V/3A power adapter on LAN-Module with W5500. The M5Core2 and the LAN module also run stably with other applications and the same power supply.
Bye,
Uwe -
-
Core2, W5500 and ESP-IDF example eth2ap
Hello,
I like to use a Core2 as Wifi-AP for some small sensors. My starting point was the eth2ap example from ESP-IDF v4.3.2. I added some outputs to the example to see was going on. I changed FLOW_CONTROL_QUEUE_TIMEOUT_MS to 500:
#define FLOW_CONTROL_QUEUE_TIMEOUT_MS (5*100) #define FLOW_CONTROL_QUEUE_LENGTH (40) #define FLOW_CONTROL_WIFI_SEND_TIMEOUT_MS (100) typedef struct { void *packet; uint16_t length; } flow_control_msg_t; // Forward packets from Wi-Fi to Ethernet static esp_err_t pkt_wifi2eth(void *buffer, uint16_t len, void *eb) { if (s_ethernet_is_connected) { if (esp_eth_transmit(s_eth_handle, buffer, len) != ESP_OK) { ESP_LOGE(TAG, "Wifi->ETH: Ethernet send packet failed"); } } esp_wifi_internal_free_rx_buffer(eb); return ESP_OK; } // Forward packets from Ethernet to Wi-Fi // Note that, Ethernet works faster than Wi-Fi on ESP32, // so we need to add an extra queue to balance their speed difference. static esp_err_t pkt_eth2wifi(esp_eth_handle_t eth_handle, uint8_t *buffer, uint32_t len, void *priv) { esp_err_t ret = ESP_OK; flow_control_msg_t msg = { .packet = buffer, .length = len }; if (xQueueSend(flow_control_queue, &msg, pdMS_TO_TICKS(FLOW_CONTROL_QUEUE_TIMEOUT_MS)) != pdTRUE) { ESP_LOGE(TAG, "ETH->Wifi: send flow control message failed or timeout, length=%d", len); free(buffer); ret = ESP_FAIL; } return ret; } // This task will fetch the packet from the queue, and then send out through Wi-Fi. // Wi-Fi handles packets slower than Ethernet, we might add some delay between each transmitting. static void eth2wifi_flow_control_task(void *args) { flow_control_msg_t msg; int res = 0; uint32_t timeout = 0; while (1) { if (xQueueReceive(flow_control_queue, &msg, pdMS_TO_TICKS(FLOW_CONTROL_QUEUE_TIMEOUT_MS)) == pdTRUE) { timeout = 0; if (s_sta_is_connected && msg.length) { do { vTaskDelay(pdMS_TO_TICKS(timeout)); timeout += 2; res = esp_wifi_internal_tx(WIFI_IF_AP, msg.packet, msg.length); } while (res && timeout < FLOW_CONTROL_WIFI_SEND_TIMEOUT_MS); if (res != ESP_OK) { ESP_LOGE(TAG, "ETH->WiFi: send packet failed: %d, timeout=%d, length=%d", res, timeout, msg.length); } else { ESP_LOGI(TAG, "ETH->WiFi: send packet ok: %d, timeout=%d, length=%d", res, timeout, msg.length); } } free(msg.packet); } } vTaskDelete(NULL); }
It worked sometimes: If I send 10 pings, 2-3 reached the server. I cann't used a browser to show some small html-page.
My output is:I (14004) wifi:new:<1,0>, old:<1,1>, ap:<1,1>, sta:<255,255>, prof:1 I (14004) wifi:station: 5e:6c:e2:e0:0f:66 join, AID=1, bgn, 20 I (14034) eth_example: Wi-Fi AP got a station connected I (14074) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=60 I (14104) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=60 I (14174) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=60 I (14204) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=60 E (16534) eth_example: ETH->WiFi: send packet failed: 12309, timeout=100, length=60 I (16534) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=60 I (16534) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=60 I (16544) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=60 I (16554) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=590 I (16554) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=60 I (16564) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=60 I (16574) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=60 I (16584) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=86 I (16584) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=295 I (16594) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=60 I (16604) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=770 I (16614) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=60 I (16614) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=1314 I (16624) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=86 I (16634) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=88 I (16644) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=60 I (16644) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=590 I (16654) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=812 I (16664) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=832 I (16674) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=316 I (16674) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=336 I (16684) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=1168 I (16694) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=1188 I (16704) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=1398 I (16704) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=1418 I (16714) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=86 E (18974) eth_example: ETH->WiFi: send packet failed: 12309, timeout=100, length=60 I (18974) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=60 I (18974) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=60 I (18984) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=60 I (18994) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=60 I (18994) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=60 I (19004) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=60 I (19014) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=60 I (19014) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=60 I (19024) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=88 I (19034) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=74 I (19044) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=60 I (19044) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=590 I (19054) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=60 I (19064) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=60 E (21324) eth_example: ETH->WiFi: send packet failed: 12309, timeout=100, length=60 I (21324) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=60 I (21324) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=60 I (21334) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=60 I (21344) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=316 I (21344) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=336 I (21354) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=590 I (21364) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=812 I (21374) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=832 I (21374) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=1398 I (21384) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=1418 I (21394) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=1168 I (21404) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=1188 I (21404) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=60 I (21414) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=60 I (21424) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=60 I (21434) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=88 I (21434) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=107 I (21444) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=131 I (21454) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=86 I (21464) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=60 I (21464) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=86 I (21474) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=86 I (21484) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=60 I (21494) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=60 I (21494) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=705 I (21504) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=60 I (21514) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=60 E (22494) eth_example: ETH->Wifi: send flow control message failed or timeout, length=832 E (22994) eth_example: ETH->Wifi: send flow control message failed or timeout, length=1398 E (23494) eth_example: ETH->Wifi: send flow control message failed or timeout, length=1418 E (23774) eth_example: ETH->WiFi: send packet failed: 12309, timeout=100, length=60 I (23774) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=60 I (23774) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=60 I (23784) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=60 I (23794) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=60 I (23794) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=86 I (23804) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=60 I (23814) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=191 I (23824) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=191 I (23824) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=86 I (23834) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=60 I (23844) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=86 I (23854) eth_example: ETH->WiFi: send packet ok: 0, timeout=2, length=750 ...
Have anyone used the ESP32 as WiFi-AP and knows the challenges?
-
RE: Core2 with W5500 and ESP-IDF
Hello @felmue,
thank you very much.
I changed in the file Kconfig.projbuild the range of parameter EXAMPLE_ETH_SPI_MISO_GPIO to 38 and used your values. It worked fine.
Ethernet Type (W5500 Module) ---> (1) SPI Host Number (18) SPI SCLK GPIO number (23) SPI MOSI GPIO number (38) SPI MISO GPIO number (26) SPI CS GPIO number (5) SPI clock speed (MHz) (34) Interrupt GPIO number (19) PHY Reset GPIO number (1) PHY Address
My challenge was that I hadn't used the Core2-values the last time I made changes. I overlooked this.
Bye,
Uwe -
Core2 with W5500 and ESP-IDF
Hello,
I used a Core2 with W5500, ESP-IDF V4.3.2 and the express example:
../examples/ethernet/basic/main/ethernet_example_main.cThe program started and I got an reset error:
... I (369) cpu_start: Starting scheduler on PRO CPU. I (0) cpu_start: Starting scheduler on APP CPU. E (479) w5500-mac: w5500_reset(228): reset timeout E (479) w5500-mac: emac_w5500_init(610): reset w5500 failed I (479) gpio: GPIO[34]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0 E (489) esp_eth: esp_eth_driver_install(204): init Mac failed
I used this configuration on menuconfig:
Espressif IoT Development Framework Configuration Ethernet Type (W5500 Module) ---> (1) SPI Host Number (18) SPI SCLK GPIO number (23) SPI MOSI GPIO number (19) SPI MISO GPIO number (26) SPI CS GPIO number (5) SPI clock speed (MHz) (34) Interrupt GPIO number (13) PHY Reset GPIO number (1) PHY Address
I changed ESP-IDF version, I set Reset GPIO number to -1, I changed SPI clock to 20 Mhz... -> Every time I got the same error.
Do any one have an idea?
Bye,
Uwe -
RE: Not so good wifi signal strength
Hello @felmue,
you are right, the top of M5Core2 and the AWS are identical. But the bottom is the challenge: The ground of the AWS shields the antenna. -> Yes, I tried the AWS version without the AWS M5GO2 bottom attached.
I tried this too:
- Insert a prototyp board between AWS-top and AWS-bottom. It improves the field strength a little bit.
- Insert a small silver wire in the prototyp board at the antenna of the AWS-top. So I almost reach the regular field strength.
-
RE: Not so good wifi signal strength
@m5stack thank you for your answer.
This solution is just as trival as to go closer to the router. Unfortunately I cann't go closer and I cann't increase the transmit power. Can I connect an antenne to the "M5Stack Core2 ESP32 IoT Development Kit for AWS IoT EduKit"?
-
Not so good wifi signal strength
Hello,
I bought two "M5Stack Core2 ESP32 IoT Development Kit for AWS IoT EduKit" and two "M5Stack Core2 ESP32 IoT Development Kit".
Today I noticed that the AWS version did not receive the wifi as well. Both AWS version didn't work at my desk, but both non-AWS worked fine.
I got the errors at startup:
Wifi missing. Status=6 I (7634) wifi:new:<11,0>, old:<1,0>, ap:<255,255>, sta:<11,0>, prof:1 I (7634) wifi:state: init -> auth (b0) Wifi missing. Status=6 I (8634) wifi:state: auth -> init (200) I (8644) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1 I (8764) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1 I (8764) wifi:state: init -> auth (b0) Wifi missing. Status=6 I (9764) wifi:state: auth -> init (200) I (9764) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1 I (9894) wifi:new:<11,0>, old:<11,0>, ap:<255,255>, sta:<11,0>, prof:1 I (9894) wifi:state: init -> auth (b0) ....
If I go two meters nearer to the AP both AWS worked fine, too.
Have anyone an idea what I can you do (without that I go closer to the AP) ?
-
Face example
Hello,
where could I find a good example of a moving face with eyes, nose and mouth for the m5stack? -
Core2: WS2812 and interrupter
Hello,
I use a lot of own libraries to control my home. Last library was a small extension of Adafruit_NeoPixel to show some status information.
I tested with four libraries (M5Core2.h, Wifi.h, Adafruit_NeoPixel.h and my lib) with a small test program with Arduino IDE and it worked fine. I used 16*16 led ws2812.
Then a changed back to my ESP-IDF and use the some libraries and some more stuff. If I started to switch some less on my WS2812 in green color, it worked 4 or 5 times without problems. At the next one switching event I got a problem on the second half of the leds:
-
Some switch the color from green to blue
-
Some led switch incorrect on
The first 100 to 120 leds all always correct. I think it is a interrupt problem, but in then Adafruit_NeoPixel.h interrupts stopped. I double-checked if this part worked:
// NRF52 may use PWM + DMA (if available), may not need to disable interrupt #if !( defined(NRF52) || defined(NRF52_SERIES) ) noInterrupts(); // Need 100% focus on instruction timing #endif
I also stop interrupts im my library for the critical part, but it didn't work. My unfounded suspicion is a unstoppable interrupt in M5Core2.h or similar.
Do anyone have an idea?
-
-
Bus Mapping M5Core2 <-> M5Stack
Hello,
in past I used some M5Stack modules at M5Stack and now I like to migrate to M5Core2. The challenge ist the different bus system.
Pin M5Stack M5Core2 GND 2 1,3,5 SCK 4 11 MISO 6 9 RESET 8 6 nu 10 - nu 12 - A0 14 - A1 16 - A2 18 - A3 20 - A4 22 - A5 24 - AREF 26 - IO12 28 - IO13 30 - 5V 1 28 MOSI 3 7 SS 5 - D0/RX 7 13 D1/Tx 9 14 D2/SDA 11 SYS:17, EXT:19 D3/SCI 13 SYS:18, EXT:20 D4 15 - D5 17 - D6 19 - D7 21 - IO8 23 - IO9 25 - IO10 27 - IO11 29 - IO35 - 2 IO36 - 4 IO25 - 8 IO26 - 10 3,3V - 12 Rx2 - 15 Tx2 - 16 IO19 - 22 IO0 - 24 IO34 - 26 BAT - 30
Who has experience with using an M5Stack module on an M5Core2?
-
RE: Big Font
Hello @Rop,
thank you for your help. Do you test it with M5Core2-enviroment?
I generated a "FreeSerif34pt7b" from you website and compilation of my
program was ok.If I started the M5Core2 and I used the new font to see the time, for example 08:29,
I saw 00 88 :: 22 99 in the first line und a second line with the top of the characters.It seemed, that the length of the characters in the font was not okay.