🤖Have you ever tried Chat.M5Stack.com before asking??😎

Subcategories

  • 53 Topics
    243 Posts
    greenleafG
    TL;DR: The factory certificate in slot 10 is in a compressed format that AWS IoT rejects. You need to generate a new properly-formatted certificate. Full working example here: https://github.com/scarolan/grafana-core2aws-iot The Problem Everyone Hits If you've tried to use the Core2 for AWS with its built-in ATECC608 secure element, you've probably hit this error when registering the certificate: CertificateValidationException: The certificate could not be parsed You're not crazy. The factory certificate in slot 10 is stored in Microchip's compressed format with: Empty issuer/subject fields Invalid dates (Aug 28, 2005) Missing X.509 structure AWS IoT's register-certificate-without-ca API rejects it outright. The Solution Generate a new properly-formatted certificate that still uses the locked private key in slot 0 (so you maintain hardware security): 1. Clone the Working Example git clone https://github.com/scarolan/grafana-core2aws-iot cd grafana-core2aws-iot/extras/generate_cert 2. Flash the Certificate Generator pio run -t upload --upload-port COM3 pio device monitor --port COM3 --baud 115200 3. Save the Certificate Copy the certificate output (including -----BEGIN CERTIFICATE----- lines) to a file. 4. Register with AWS IoT aws iot register-certificate-without-ca \ --certificate-pem file://device_new.pem \ --status ACTIVE \ --region us-east-1 Then attach your policy and thing as usual. 5. Use in Your Firmware Update secrets.h with the new certificate and you're done! Why This Works The certificate generator: Reads the public key from slot 0 (the private key never leaves the chip) Creates a proper X.509 certificate with valid dates and subject fields Signs it using the locked private key (signing happens inside the ATECC608) Returns a properly-formatted certificate AWS IoT accepts Hardware security is maintained - the private key in slot 0 is never exposed, it's just used differently. Complete Documentation I've documented the full solution with explanations of what's happening: ATECC608 Architecture - How the secure element works, slot configuration, lock mechanism Certificate Solution - Why the factory cert fails and how to fix it Full Working Example - Complete vibration monitoring IoT demo with AWS IoT Core + Timestream Why M5Stack Doesn't Document This The compressed certificate format is a Microchip design decision (saves space on the chip). It's meant to work with: Microchip's Trust Platform provisioning tools Their specific certificate reconstruction libraries Microchip-managed certificate authorities It was never designed to work directly with third-party services like AWS IoT without special handling. M5Stack provides a complex registration helper (registration_helper.py) that reconstructs the certificate with special manifest-based APIs, but it's 800+ lines of Python with tons of dependencies. The approach above is much simpler - just generate a new cert and register it normally. Tested and Working This solution is running in production on my demo device: MQTTS publishing to AWS IoT Core every 5 seconds Data flowing to Amazon Timestream Hardware-backed authentication with ATECC608 Zero issues with certificate validation Hope This Saves Someone's Week I fought with this for a week a couple years ago and gave up in frustration. Revisited it recently and finally cracked it. Hopefully this saves others the same pain! Questions/issues? Comment here or open an issue on GitHub. Repository: https://github.com/scarolan/grafana-core2aws-iot Hardware: M5Stack Core2 for AWS Libraries: ArduinoECCX08, ArduinoBearSSL, M5Unified Tested: PlatformIO, Arduino framework on ESP32
  • 89 Topics
    337 Posts
    ShawnHymelS
    @felmue That helps a lot, thank you!
  • 65 Topics
    228 Posts
    H
    Has anyone installed firmware and upon starting gets stuck in a menu selection loop where the highlight selection continues to scroll?
  • M5Stack's little brother. Discuss M5 Stick hardware and software related issues here

    403 Topics
    2k Posts
    M
    Does anyone's built-in IR receiver work?
  • 18 Topics
    71 Posts
    P
    I just got the M5GO Kit, and I'm trying to make a Voice Assistant. For some reasons, the Demo of the kit made me think that accessing the microphone is easy. But, after hours of finding, it seems that there is no library or support for the kit to record audio. Does anyone have any resource regarding this?
  • 27 Topics
    114 Posts
    M
    Problem: Der Schrittmotor funktioniert nur korrekt in der Z-Achse bei normalen (langsamen) Drehgeschwindigkeiten. Beim Versuch, die X- und Y-Achsen zu verwenden, funktioniert der Motor nur, wenn ich die Vorschubgeschwindigkeiten auf das 10-fache oder höher erhöhe. Wenn ich versuche, die Adresse auf 0x71 zu ändern, wird das Modul nicht erkannt.
  • 50 Topics
    133 Posts
    Y
    @samantha_martin Hola Samantha. El M5StickC Plus (SKU:K016-P) utiliza el chip ESP32-PICO-D4, que integra Bluetooth LE. Para reducir la latencia en la transmisión HID, puedes probar las siguientes acciones: Optimizar la frecuencia de envío de datos: En las librerías ESP32-BLE-Keyboard o BleGamepad, ajusta el intervalo de notificación BLE a un valor más bajo (por ejemplo, 10-20 ms). Algunas librerías permiten configurar esto al inicializar el dispositivo HID. Minimizar el código en el loop(): Asegúrate de que no haya delays innecesarios ni tareas bloqueantes (como impresiones Serial) que ralenticen la detección de botones y el envío de comandos. Configurar el modo BLE de bajo consumo: Aunque el ESP32-PICO-D4 es eficiente, verifica que no se encuentre en modos de suspensión prolongada. Asegúrate de que el dispositivo BLE esté configurado para enviar notificaciones inmediatamente al detectar una pulsación. Actualizar el firmware del ESP32: Usa la última versión del core ESP32 en Arduino IDE, ya que a menudo incluyen optimizaciones en el stack BLE. Verificar la configuración de Android: En el menú de configuración de Bluetooth de tu teléfono, desactiva opciones como "Ahorro de batería" para el dispositivo M5StickC Plus, ya que pueden restringir la frecuencia de actualizaciones HID. https://chat.m5stack.com/
  • For Topics related to the Core 2

    335 Topics
    1k Posts
    easytargetE
    @skyflyer said in External 1S LIPO on M5Core2 BUS PIN1 and PIN30?: I tried to find information about it, and want to confirm that it is OK to connect the external Lipo battery to pins 1 and 30 on the "BUS expansion port"? And that the battery will be charged when connected to the external USB power? If you look at the schematic you will see that pin30 on the bus and VBAT (on the lipo connector) are the same. So yes, you can replace the internal battery with an external one with the same voltage! @skyflyer said in External 1S LIPO on M5Core2 BUS PIN1 and PIN30?: And I don't need to remove the internal 500mAh battery, since they would be connected in parallel anyhow? Do not simply put rechargeable batteries in parallel. Disconnect the internal one. You can have batteries in parallel but.. at a minimum you need some diodes to prevent them back-charging each other, have a look online where there is a lot of info about this.
  • CoreS3 programming mode

    5
    0 Votes
    5 Posts
    8k Views
    B
    @marnix201 Weirdly it was the cable! Tried another one and all OK. Thanks for the help!
  • M5Stack CoreS3SE - Doesnt charge

    3
    0 Votes
    3 Posts
    2k Views
    ajb2k3A
    @felmue said in M5Stack CoreS3SE - Doesnt charge: Hello @MatChr M5CoreS3SE doesn't have a battery, or am I missing something here? Thanks Felix Correct, it doesn't have a battery as it is just the core face plate.
  • Read Program back from Core?

    6
    0 Votes
    6 Posts
    4k Views
    S
    @ajb2k3 Thanks. Yes, i am aware of StickC/plus/2plus, should be on the right one, will check again. As for loading a script from device, i found the solution. It behaves just like what i was expecting: [image: 1735482395313-e6dabbda-0f77-4204-b1d7-9f728bf337dc-image.png] What's not entirely clear to me yet is how scripts are saved on the device. I mean, will it be every new project name? Easy to test, but i did not yet... If anybody from M5Stack is reading here: The Fact that i did not find the solution and then 3 People answering without finding the correct answer is a strong indicator that the UI is not self-explanatory enough. It's not logical that there's a LOAD Icon (load from PC), with the LOAD (from device) is hidden in a different icon's submenu. I think the LOAD Button should lead to an options-dialogue "-from host / -fromdevice"
  • LAN connection possible?

    core
    3
    0 Votes
    3 Posts
    3k Views
    T
    @kuriko Thanks, I will try it.
  • CoreMP135 resize partition

    2
    0 Votes
    2 Posts
    2k Views
    ajb2k3A
    @stefanj9 Yes, just like the older editions of Raspbian OS you have to manually run the resize script on initial startup. The command is listed on the CoreMP135 product page but it's easy to miss. My WIP guide to the CoreMP135 is going to be released next week but untill then you need to run the following command. ./resize_mmc.sh and hit return.
  • CoreMP135 SSH

    5
    0 Votes
    5 Posts
    3k Views
    ajb2k3A
    @kuriko Just been playing with SSH banner options. ![image: 1733773215912-screenshot-2024-12-09-at-19.39.40.png]
  • CoreMP135 Debian image

    46
    0 Votes
    46 Posts
    57k Views
    ajb2k3A
    @JNVoirol I still haven't solved the ssh issue yet so still directly logging in.
  • Make M5StackCoreS3-SE execute code as soon as powered by USB

    3
    0 Votes
    3 Posts
    1k Views
    ajb2k3A
    @glitch911 have constant power to the usb connection?
  • M5CoreS3 compatibility with BaseAAA

    2
    0 Votes
    2 Posts
    1k Views
    kurikoK
    @HynekT It should not work. BaseAAA output is only 4V, while CoreS3 requires BUS input of 5V. The input voltage of Core Basic and Core2 is only 3.7V, so it is usable. I suggest using Base DIN for CoreS3.
  • Display terminal (tty) on CoreMP135 buildin display

    10
    0 Votes
    10 Posts
    7k Views
    ajb2k3A
    @johan_s Hi John sorry for the long delay. I had a chance to play with the frame buffer today after remembering this conversation. I am finding the issue with the small text/garbidge written to the screen that you shared and looking into it. Thanks for the point out.
  • Tough Touch Help!

    4
    2
    0 Votes
    4 Posts
    3k Views
    cryptospokC
    @felmue Thanks again, you're the M5man!
  • Core with multiple UARTs

    2
    0 Votes
    2 Posts
    2k Views
    ajb2k3A
    @WigglerAway You will need to check out the documentation on the M5Stack website for the exact pins but by default UART1 is broken out to the blue port and UART 2 is broken out to the MBUS connector. The CoreMP135 has UART1 broken out to the blue port, UART2 to the MBUS and UART6 broken out to the RS485 connector.
  • This topic is deleted!

    2
    1
    0 Votes
    2 Posts
    22 Views
  • Deep Sleep CoreS3

    1
    2
    0 Votes
    1 Posts
    1k Views
    No one has replied
  • Cores3 voltage problem

    5
    0 Votes
    5 Posts
    3k Views
    B
    @felmue That was it thanks! All working now. Bipman
  • Boat computer with Bareboat Necessities OS on m5stack CoreMP135

    2
    3 Votes
    2 Posts
    2k Views
    M
    The latest image now has flutter-ui boatinstrument interface on hdmi port. SignalK is available via web ui. As well as FreeboardSK and KIP dashboard. After two reboots SD card partition is resized to max available space. NMEA 2000 interface is ready. All you need to do is connect two wires. Most of USB gps devices are recognized on plugging in automatically. Image includes Victron Web UI as well. Console access is available via USB-C port at 115200 bauds. Thanks!
  • CoreS3 with USB Module v1.2

    3
    0 Votes
    3 Posts
    2k Views
    J
    @felmue Thank you so much for your help, I’ll give it a try and report back :)
  • M5 Capsule HY-2.0 as power source

    3
    0 Votes
    3 Posts
    2k Views
    D
    Is this correct? [image: 1724761361394-934076f9-0958-4a54-a5da-4679796a8cb2-image.png]
  • CoreMP135 screen saver sleep for built in LCD

    3
    0 Votes
    3 Posts
    2k Views
    M
    @ajb2k3 said in CoreMP135 screen saver sleep for built in LCD: @mgrouch You need to create a program for that I do not see how. There are examples for displaying things on ILI9342C using framebuffer and LVGL. I do not see how to turn off backlight on ILI9342C. Is there some code example? Or command line utility with the code to control brightness? I was able to code that on m5stack tough on esp32 which has same ILI9342C. Also how to wake up screen by touch? I guess with brightness off touch functions are still there. So I need example of code listening for touch event and controlling backlight (voltage of it?) on ILI9342C. I need some help. Thanks
  • Does coremp135 have hardware 9 data bit uart?

    2
    0 Votes
    2 Posts
    1k Views
    No one has replied