🤖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.
  • M5GO starter kit non-response and black screen

    1
    0 Votes
    1 Posts
    3k Views
    No one has replied
  • upload code to STAMP PWR485

    4
    0 Votes
    4 Posts
    6k Views
    felmueF
    Hello @cepics according to the schematic both ports are connected in parallel - no need to select one (or the other). Thanks Felix
  • M5.shutdown() not working on M5Paper

    2
    0 Votes
    2 Posts
    4k Views
    felmueF
    Hello @schedule-display Have you tried the RTC example (w/o modifications)? In your code, why did you add the two gpio_xxx lines? I think they are the reason M5Paper cannot shutdown. Also this thread might be helpful. Thanks Felix
  • Question on How to Update the M5Stack Sprite Library

    3
    0 Votes
    3 Posts
    6k Views
    S
    @macsbug Thanks for the tip I will give it a shot. The short demo video looks promising as I see a gauge that looks great. I have similar results with the Sprite library but fall short on compositing sprites past pushRotated. Thanks
  • Control the joint on myCobot 280 in Python

    1
    3
    0 Votes
    1 Posts
    3k Views
    No one has replied
  • M5Stack Basic Core stopped working

    core
    1
    0 Votes
    1 Posts
    4k Views
    No one has replied
  • Audio Amplifier NS4148 causing M5stack Core reboot with PWM tone

    1
    1
    0 Votes
    1 Posts
    4k Views
    No one has replied
  • Stamp C3 / C3U SPI

    3
    0 Votes
    3 Posts
    6k Views
    felmueF
    Hello @dominik the nice thing about ESP32 and its variants (like the C3) is that different functions (like SPI) can use almost any GPIOs. With the Arduino environment you can define the GPIOs to be used for SPI like this: #define SCK GPIO_NUM_6 #define MISO GPIO_NUM_4 #define MOSI GPIO_NUM_7 #define CS GPIO_NUM_5 SPI.begin(SCK, MISO, MOSI, -1); Thanks Felix
  • Where do I find game Super Mario for M5 FACES ?

    3
    0 Votes
    3 Posts
    6k Views
    PaulskptP
    @flypeek Thank you! Never thought I should look in the 'Lessons' section.
  • Basic Core V2.4 vs V2.6

    5
    0 Votes
    5 Posts
    9k Views
    PaulskptP
    @arzaman I have the same model and version "V2.4 1420". Do you already have an answer to your question? I would like to know also.
  • CoreInk reboot & eInk refresh

    3
    0 Votes
    3 Posts
    5k Views
    A
    @ajb2k3 sorry, what do you mean by "HV write"?
  • M5CoreInk wake up by EXT0 (PIR Hat)

    8
    0 Votes
    8 Posts
    14k Views
    T
    @twostick FYI; light sleep current pulled out of the battery depend on the battery voltage: <2.7V device wont wake up anymore 2.7V 4.4mA 3.0V 3.9mA 3.7V 3.1mA 4.2V 2.7mA This dependacy is caused by the DC-DC conversion that converts the Lipo voltage first to 5Vdc. (SY7088 chip). The 5Vdc gets also down converted to 3v3 (SY8089 chip) . According to the datasheet, the ESP itself should only use 0.8mA in light sleep. So 2mA gets waisted. What a pitty. dd.07-04-22: The above is not completely true. I'm using the M5GFX lib and when I execute the function display.sleep(); before going to deep sleep (esp_deep_sleep_start();) the sleep current drops to a 1.25mA. Still considerable...
  • GPIO16 as input not working?

    3
    0 Votes
    3 Posts
    6k Views
    M
    GPIO is written in PinMap of M5Unified. M5Unified:PinMap https://github.com/m5stack/M5Unified [image: 1643950446110-pinmap.png]
  • Large format CoreInk back sticker?

    3
    0 Votes
    3 Posts
    6k Views
    T
    Thanks VERY much!! This is exactly what I wanted.
  • M5Paper deepsleep with UIFlow ?

    6
    0 Votes
    6 Posts
    11k Views
    felmueF
    Hello @littlbee no worries. I am glad to hear you got it working to your liking. And thank you for reporting back. Thanks Felix
  • SPI on M5Tough (MAX31865)

    3
    0 Votes
    3 Posts
    5k Views
    G
    @felmue thank you for this quick and excellent reply!!! I will do this. Can you just tell me if I need to specify the pins as GPIO33 or 33 in the constructor
  • CoreInk - new arrival

    12
    0 Votes
    12 Posts
    23k Views
    felmueF
    Hello @buzali no, at the time I used the Arduino environment for my tests. RTC wakeup should be covered by this example. In UIFlow have a look at the Restart on block. You can find it under Hardwares - Power with M5CoreInk selected as device. Thanks Felix
  • [M5 Fire] Wave playing?

    10
    0 Votes
    10 Posts
    15k Views
    H
    @ajb2k3 ok, I see. But thanks for your reply. I post in this forum if I can figure it out
  • M5Core detects pressure on key A even if the key was not pressed at all.

    4
    0 Votes
    4 Posts
    7k Views
    P
    @felmue The tip has hit the problem. I have implemented a query of the key A in the callback routine after 1 ms. Only if the key is still pressed the routine is executed. Otherwise nothing is done. Now there are no more key presses from the ghost. Thanks
  • Stamp-Pico Arduino lib?

    4
    0 Votes
    4 Posts
    7k Views
    vkichlineV
    Felix; thanks for the tip in the Grove pinout; exactly where I was stuck after experimenting.