STACK & PLAY
Standard 5×5cm functionally stacking modularized components hardware system.
ESP32 microcontroller、 microSD card slot、USB-C、extension connectors.
The Stacking Functional MODULES Built for Customized Assembly.
Easy Deployment with multifunctional BASE.
STACK SERIES
5×5CM MODULAR STACKABLE
Standard Size
Better Display
User Friendly
For comprehensive application
STICK SERIES
COMPACT IoT SOLUTION
All-in-one
Best in Price
Low power consumption
For IoT edge application
ATOM SERIES
SMALL SIZE, BIG USE!
Smallest ESP32 devkit
IoT edge nodes
Miniature embedded device
For smart home and industry control application
FROM PROTOTYPING TO COMMERCIAL LEVEL
END TO END IoT EDGE SOLUTIONS
SMART FACTORY
Improving efficiency, preventing risks and delivering results with connected IoT devices.
SMART AGRICULTURE
Using sensors to collect data and using edge computing devices to analyze data, helps automate farming and breeding sectors.
SMART RETAIL
Obtain and analyze data about customer behavior; Automate shopping process and optimize shopping experience.
WEATHER STATION
Field ready data-collection solutions for environmental and meteorological monitoring.
WHY CHOOSE US?
FULL RANGE IoT MODULES
From the esp32-s3 controllers, arduino esp32, esp32 kits, esp32 camera, communication modules to the sensors including sensors like tof sensor and otherand actuators; high performance, high reliability, high scalability, and quick access to cloud platforms like Azure, AWS.
QUICK DEVELOPMENT AND VERIFICATION
Stackable standardization system to facilitate rapid concept proofing, rapid verification, and rapid shipment; ISO9001 international quality system certification, FCC, CE, TELEC product certifications to ensure timeline and quality.
TECHNICAL SERVICE
DOCS database, forums and etc provide technical services, UIFlow visual rapid development tools, complete API interfaces, greatly shorten the integration time, and help product mass production.
OPEN PLATFORM
Open-source hardware, open API interface, diverse cooperation forms, more cost-effective.
88
COUNTRIES
52668
GLOBAL DEVELOPERS
280
PRODUCTS
THE LATEST FROM M5STACK

Today, we are going to integrate the M5Stack TAB5 into Home Assistant (HA), a very interesting device for creating a portable control dashboard.

 

M5Stack Tab5

 

·        Powered by an ESP32-P4 SoC, with 16MB of flash memory and 32MB of PSRAM. This makes it the device with the most memory we have integrated into Home Assistant to date.

·        It features a generous 5″ TFT touchscreen (1280×720), compatible with LVGL.

·        Includes a front-facing 2 MP SC2356 camera (1600×1200) for capturing images and video.

·        Equipped with one USB-A port, one USB-C port, and a Micro SD card slot (card not included).

·        It has two expansion ports for external sensors (GROVE and M5BUS) and a connector for a LoRa antenna.

·        Features two microphones, a speaker, and a 3.5mm jack, meaning you can also use it to control Assist.

·        If you chose the "TAB5 Kit," it comes with a Li-ion battery that you can easily replace (allowing you to have a spare one charged and ready).

 

In short, these characteristics make it the perfect candidate for a portable, autonomous control device with great tactile feedback. Additionally, as it is based on an ESP32-P4, the M5Stack TAB5 can be integrated into HA via ESPHome.

 

Prerequisites

To integrate the M5Stack TAB5 into HA, you will first need:

·        Your M5Stack Tab5 (with or without the battery).

·        To have ESPHome installed in Home Assistant.

·        A USB-C DATA cable to power the board (you will not be able to install the software with a charge-only cable).

 

Configuration in ESPHome

Follow these steps to integrate the M5Stack TAB5 into HA:

1. In Home Assistant, go to your ESPHome add-on and click on New device > Continue > New Device Setup.

2. Give your device a name (for example, “M5stack Tab5”) and click “Next.”

3. For the device type, select “ESP32-C6.” You will notice in the background that a new block has been created for your device.

4. Click “Skip” and then click “Edit” on your device's block. Copy the code that appears and save it, as you will need parts of it later.

5. Copy the following code and use it to replace the previous code in ESPHome.

 

substitutions:

# Device customization
# Personalización del dispositivo

  name: m5stack-tab5
  friendly_name: M5stack Tab5

####################################

esphome:
  name: ${name}
  friendly_name: ${friendly_name}

esp32:
  board: esp32-p4-evboard
  flash_size: 16MB
  framework:
    type: esp-idf
    advanced:
      enable_idf_experimental_features: true

esp32_hosted:
  variant: esp32c6
  active_high: true
  clk_pin: GPIO12
  cmd_pin: GPIO13
  d0_pin: GPIO11
  d1_pin: GPIO10
  d2_pin: GPIO9
  d3_pin: GPIO8
  reset_pin: GPIO15
  slot: 1

logger:
  hardware_uart: USB_SERIAL_JTAG

psram:
  mode: hex
  speed: 200MHz

api:
  encryption:
    key: "F8WsdfddfKt1XvQV9pU32443dsfdsf"

ota:
  - platform: esphome
    password: "sdffds23b12747edfq43543"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  ap:
    ssid: "M5Stack-Tab5 Fallback Hotspot"
    password: "sdfdMtQR34rfww"

# Sensors configuration
# Configuración de sensores

binary_sensor:
  - platform: gpio
    id: charging
    name: "Charging Status"
    pin:
      pi4ioe5v6408: pi4ioe2
      number: 6
      mode: INPUT_PULLDOWN

  - platform: gpio
    id: headphone_detect
    name: "Headphone Detect"
    pin:
      pi4ioe5v6408: pi4ioe1
      number: 7

i2c:
  - id: bsp_bus
    sda: GPIO31
    scl: GPIO32
    frequency: 400kHz

pi4ioe5v6408:
  - id: pi4ioe1
    address: 0x43
    # 0: O - wifi_antenna_int_ext
    # 1: O - speaker_enable
    # 2: O - external_5v_power
    # 3: NC
    # 4: O - lcd reset
    # 5: O - touch panel reset
    # 6: O - camera reset
    # 7: I - headphone detect
  - id: pi4ioe2
    address: 0x44
    # 0: O - wifi_power
    # 1: NC
    # 2: NC
    # 3: O - usb_5v_power
    # 4: O - poweroff pulse
    # 5: O - quick charge enable (inverted)
    # 6: I - charging status
    # 7: O - charge enable

select:
  - platform: template
    id: wifi_antenna_select
    name: "WiFi Antenna"
    options:
      - "Internal"
      - "External"
    optimistic: true
    on_value:
      - if:
          condition:
            lambda: return i == 0;
          then:
            - switch.turn_off: wifi_antenna_int_ext
          else:
            - switch.turn_on: wifi_antenna_int_ext

# The DAC Output select needs to be manually (or with an automation) changed to `LINE1` for the onboard speaker
  - platform: es8388
    dac_output:
      name: DAC Output
    adc_input_mic:
      name: ADC Input Mic

sensor:
  - platform: ina226
    address: 0x41
    adc_averaging: 16
    max_current: 8.192A
    shunt_resistance: 0.005ohm
    bus_voltage:
      name: Battery Voltage
    current:
      name: Battery Current
      # Positive means discharging
      # Negative means charging

switch:
  - platform: gpio
    id: wifi_power
    name: "WiFi Power"
    pin:
      pi4ioe5v6408: pi4ioe2
      number: 0
    restore_mode: ALWAYS_ON
  - platform: gpio
    id: usb_5v_power
    name: "USB Power"
    pin:
      pi4ioe5v6408: pi4ioe2
      number: 3
  - platform: gpio
    id: quick_charge
    name: "Quick Charge"
    pin:
      pi4ioe5v6408: pi4ioe2
      number: 5
      inverted: true
  - platform: gpio
    id: charge_enable
    name: "Charge Enable"
    pin:
      pi4ioe5v6408: pi4ioe2
      number: 7
  - platform: gpio
    id: wifi_antenna_int_ext
    pin:
      pi4ioe5v6408: pi4ioe1
      number: 0
  - platform: gpio
    id: speaker_enable
    name: "Speaker Enable"
    pin:
      pi4ioe5v6408: pi4ioe1
      number: 1
    restore_mode: ALWAYS_ON
  - platform: gpio
    id: external_5v_power
    name: "External 5V Power"
    pin:
      pi4ioe5v6408: pi4ioe1
      number: 2

# Display configuration
# Configuración de la pantalla

esp_ldo:
  - voltage: 2.5V
    channel: 3

font:
  - file: "gfonts://Kanit"
    id: font_title
    size: 100

light:
  - platform: monochromatic
    output: backlight_pwm
    name: "Display Backlight"
    id: backlight
    restore_mode: RESTORE_DEFAULT_ON
    default_transition_length: 250ms

output:
  - platform: ledc
    pin: GPIO22
    id: backlight_pwm
    frequency: 1000Hz

touchscreen:
  - platform: gt911
    interrupt_pin: GPIO23
    update_interval: never
    reset_pin:
      pi4ioe5v6408: pi4ioe1
      number: 5
    calibration:
      x_min: 0
      x_max: 720
      y_min: 0
      y_max: 1280
    id: touch

display:
  - platform: mipi_dsi
    dimensions:
      height: 1280
      width: 720
    model: M5Stack-Tab5
    reset_pin:
      pi4ioe5v6408: pi4ioe1
      number: 4
    show_test_card: true
    rotation: 90

lvgl:
  touchscreens: touch
  buffer_size: 100%
  style_definitions:
    - id: style_title
      align: CENTER
      text_font: font_title
  widgets:
    - label:
        styles: style_title
        text: 'Hola Aguacater@s!!'

# Media configuration and voice assistant
# Configuración multimedia y asistente de voz

audio_dac:
  - platform: es8388
    id: es8388_dac

audio_adc:
  - platform: es7210
    id: es7210_adc
    bits_per_sample: 16bit
    sample_rate: 16000

i2s_audio:
  - id: mic_bus
    i2s_lrclk_pin: GPIO29
    i2s_bclk_pin: GPIO27
    i2s_mclk_pin: GPIO30

media_player:
  - platform: speaker
    name: None
    id: speaker_player
    announcement_pipeline:
      speaker: tab5_speaker
      format: FLAC
      sample_rate: 48000
      num_channels: 1
    on_announcement:
      # Stop the wake word (mWW or VA) if the mic is capturing
      - if:
          condition:
            - microphone.is_capturing:
          then:
            - micro_wake_word.stop:
    on_idle:
      # Since VA isn't running, this is the end of user-intiated media playback. Restart the wake word.
      - if:
          condition:
            not:
              voice_assistant.is_running:
          then:
            - micro_wake_word.start:

micro_wake_word:
  id: mww
  models:
    - okay_nabu
    - hey_mycroft
    - hey_jarvis
  on_wake_word_detected:
    - voice_assistant.start:
        wake_word: !lambda return wake_word;

microphone:
  - platform: i2s_audio
    id: tab5_microphone
    i2s_din_pin: GPIO28
    sample_rate: 16000
    bits_per_sample: 16bit
    adc_type: external

# Commented out to avoid duplicates (see above)
# Comentado para evitar duplicidades (ver arriba)
#select:
# The DAC Output select needs to be manually (or with an automation) changed to `LINE1` for the onboard speaker
#  - platform: es8388
#    dac_output:
#      name: DAC Output
#    adc_input_mic:
#      name: ADC Input Mic

speaker:
  - platform: i2s_audio
    id: tab5_speaker
    i2s_dout_pin: GPIO26
    audio_dac: es8388_dac
    dac_type: external
    channel: mono
    buffer_duration: 100ms
    bits_per_sample: 16bit
    sample_rate: 48000

voice_assistant:
  id: va
  microphone: tab5_microphone
  media_player: speaker_player
  micro_wake_word: mww
  on_end:
    # Wait a short amount of time to see if an announcement starts
    - wait_until:
        condition:
          - media_player.is_announcing:
        timeout: 0.5s
    # Announcement is finished and the I2S bus is free
    - wait_until:
        - and:
            - not:
                media_player.is_announcing:
            - not:
                speaker.is_playing:
    - micro_wake_word.start:
  on_client_connected:
    - micro_wake_word.start:
  on_client_disconnected:
    - micro_wake_word.stop:

6. Important note: This code does not include the credentials required for the device to connect to your WiFi and your Home Assistant instance, so you must add them manually. Specifically, I am referring to the following lines from the code you copied in step 4.

 

# Enable Home Assistant API
api:
  encryption:
    key: "bg6hash6sjdjsdjk02hh0qnQeYVwm123vdfKE8BP5"

ota:
  - platform: esphome
    password: "asddasda27aab65a48484502b332f"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Assist Fallback Hotspot"
    password: "ZsasdasdHGP2234"

7. What you need to do is find the corresponding lines in the code (at the beginning) and add the relevant information.

8. Now, click "Save" and "Install." Select "Manual download" and wait for the code to compile.

9. Once finished, select the "Modern format" option to download the corresponding '.bin' file.

10. Connect the M5Stack TAB5 to your computer using the USB-C data cable via the side port.

11. Now go to the ESPHome Web page and click "Connect." In the pop-up window, select your board and click "Connect."

12. Now click "Install" and select the '.bin' file obtained in step 9. Click "Install" once more.

13. Return to Home Assistant and go to Settings > Devices & Services. Your device should normally be discovered and appear at the top, simply waiting for you to click the "Configure" button. Otherwise, click the "Add Integration" button, search for "ESPHome," and enter your board's IP address in the "Host" field. As always, I recommend that you assign a static IP in your router to avoid future issues if it changes.

14. Finally, go to Settings > Devices & Services > ESPHome. Click the "Configure" link for your device. In the pop-up window, check the box "Allow the device to perform Home Assistant actions" and click "Submit." This will allow us to control our devices directly from the screen.

 

If everything went well, you should see the following on your screen:

 

Additionally, with this code, you will be able to:

·        Control and monitor the device's sensors in Home Assistant (such as battery percentage, activating the speaker, turning on the screen…).

·        Use the screen to create your control dashboard and manage your devices.

·        Expose your M5Stack Tab5 as a media player entity, allowing you to use it to play audio notifications or the radio.

·        Use it as a voice assistant if you have already configured Assist.

🏷️ Tips:

Each part in the code has been labeled, so any sections you are not interested in can be removed. 

From here on, the way you use the panel depends on your imagination!

Source: AguacaTEC

Author: TitoTB

Feb. 6, 2026M5Stack, a global leader in modular IoT and embedded development platforms, today announced the release of AI Pyramid series, comprising two models: AI Pyramid and AI Pyramid-Pro.

 

 

AI Pyramid is a pyramid-shaped, high-performance AI PC for local AI inference and edge computing. Powered by the Axera AX8850 SoC with an 8-core Cortex-A55 CPU and 24 TOPS INT8 NPU, it efficiently handles workloads such as real-time computer vision, multimodal interaction, and on-device large model inference, while providing robust video processing and flexible connectivity.

 

Targeting AIPC, edge intelligent terminals, and smart interactive devices, AI Pyramid delivers stable and reliable performance for fully localized AI applications while getting rid of reliance on cloud services.

 

Key Features

 

Built for Local AI and Edge Computing
AI Pyramid runs AI inference entirely on-device, ensuring low latency, data privacy, and reliable offline operation. Its flexible architecture supports deployment in smart terminals, interactive devices, and edge environments where consistent performance is essential.

On-Device AI Performance & Multimodal Parallelism
Equipped with a 24 TOPS INT8 NPU, AI Pyramid delivers powerful on-device AI compute for vision, speech, and language tasks in parallel. Its heterogeneous architecture enables developers to deploy and scale mainstream AI models—including Transformers and LLMs—efficiently from prototype to production. 

Hardware-Accelerated AI Video Processing

AI Pyramid’s hardware-accelerated video engine, combined with 4GB LPDDR4x memory (8GB for AI Pyramid-Pro), supports multi-stream video processing. It can decode up to 16 channels of 1080p video in parallel while running object detection, face recognition, or multimodal analytics on each stream, ensuring low latency, reliable local processing, and on-device AI acceleration.


Flexible Connectivity and Expansion

For connectivity and expansion, AI Pyramid features HD multimedia interfaces (1× input + 1× output for AI Pyramid-Pro), dual Gigabit Ethernet ports, and provides both USB 3.0 and USB Type-C interfaces, offering excellent flexibility for display output, networking, and peripheral expansion.

 

Detailed Specs

 

 

Endless Possibility

 

With its strong on-device AI computing capability and open, developer-friendly ecosystem, AI Pyramid is well suited for AIPC and edge intelligent terminals. It can be deployed as a smart interactive device, enabling applications such as smart home control (Home Assistant integration), on-device AIGC, voice cloning, and meeting transcription, as well as serving as an AI visual gateway, a local AI photo management platform (Immich), or an AI smart security system (Frigate).

 

By combining flexible hardware design with reliable on-device AI performance, AI Pyramid provides a solid foundation for developers and makers to build scalable, privacy-preserving AI applications across both desktop and edge environments. Its official launch marks the beginning of new community-driven innovations and the dawn of a new edge AI era.

 

Hardware and Design

 

The Cardputer-Adv is an enhanced iteration of the small-form-factor computer powered by the Espressif ESP32-S3 microcontroller. In essence, the Cardputer-Adv is a slightly redesigned version of the original. Side-by-side, they differ visually only in color—the new model is white, while the previous was light gray. The shape, design, and general purpose remain identical. The "brain" of the system is still a Stamp series development board, but upgraded to the Stamp-S3A. Compared to the Stamp-S3 found in the predecessor, the "A" revision features a redesigned 3D antenna for improved connectivity and a "softer," more responsive Reset button. Note that this button is covered by a sticker, making it somewhat awkward to press. Other changes include internal LED wiring and lower power consumption. The core remains the ESP32-S3FN8 microcontroller with 8MB of Flash and 23 GPIO pins. As we have covered the ESP32-S3 extensively in previous articles, we will not repeat those technical details here. The USB-C port is used for programming the Stamp, power delivery, and charging the integrated battery.

 


 

Display, Keyboard, and Audio

 

The Stamp-S3A connects to the motherboard via two header rows and interfaces with the display via an FPC connector. The screen is the same color IPS LCD used previously (ST7789V2, 240×135 resolution, 1.14 inches). A defining feature of this computer is its 4×14 (56 keys) QWERTY keyboard. The keys are significantly improved with a different tactile feel (260gf vs. 160gf actuation force). Many keys serve dual purposes via 'Fn', 'Aa', 'Ctrl', 'Opt', and 'Alt' modifiers. Keyboard scanning is now handled by the TCA8418 integrated circuit.

The audio subsystem has undergone significant changes. The ES8311 codec replaces the previous NS4168 and SPM1423 combination, resulting in superior microphone noise reduction. Combined with the NS4150B amplifier and a 1W speaker (located standardly beneath the Stamp), the output quality is markedly better. Furthermore, the Cardputer-Adv now includes a 3.5mm audio jack on the side for headphone connectivity.

 

 

Power and Connectivity

 

The Cardputer-Adv can be powered via USB-C or the internal battery. This version replaces the two smaller cells of the original with a single, larger 1750mAh battery, managed by the TP4057 charging IC. Like its predecessor, the Cardputer-Adv features a GROVE port (supporting I2C and 5V). A small adjacent switch allows the user to toggle the 5V line direction: the Cardputer can either power an external sensor or be powered by an external source.

While the original Cardputer relied solely on the GROVE port for expansion, the Cardputer-Adv introduces an additional 2×7-pin header (UART, I2C, SPI) on the rear for connecting peripheral devices. M5Stack continues to use the GROVE connector for its extensive ecosystem of "Unit" expansion modules.

 


 

Sensors and Modules

 

New features include the BMI270 six-axis motion sensor (IMU). The device retains the physical power switch, 'Boot' and 'Reset' buttons, an infrared (IR) LED, and a Micro-SD slot. Examining the PCB reveals a layout largely identical to the original; it even retains an unpopulated JST connector for a smaller battery. Interestingly, there is an unconnected FPC connector near the 3.5mm jack for which we found no official documentation. The Cardputer-Adv maintains its Lego-compatible mounting holes (though there is one row fewer on the back) and internal magnets, allowing it to be mounted on metal surfaces like a refrigerator door.

Along with the Cardputer-Adv, we received the CAP LoRa868 (now the updated version is Cap LoRa-1262) expansion module, designed to interface via the 2×7-pin header. The CAP module features a matching plastic enclosure and contains two primary components: an 868MHz LoRa module (based on the SX1262 chip) with an SMA connector for an external antenna, and an AT6668-based GNSS module supporting GPS, Beidou (BD2/BD3), GLONASS, Galileo, and QZSS.

 

M5Stack Cardputer Adv Version (ESP32-S3) - m5stack-store

 

Software and Programming

 

The Cardputer-Adv can be programmed using Arduino IDE, ESP-IDF, PlatformIO, or the manufacturer-recommended UiFlow2. UiFlow2 is a block-based visual programming environment, making it an excellent educational tool for introducing children to microcontrollers and electronics. The interface offers "Blocks," "Split," and "Python" views. In "Split" mode, users can see how dragging blocks generates real-time Python code—a bridge that helps beginners transition to text-based programming. To use this online tool, the UiFlow2 firmware must first be flashed onto the device using the M5Burner utility.

Several pre-configured examples are available via M5Burner, including community-driven projects. One highlight is Meshtastic for Cardputer-Adv, which integrates seamlessly with the Meshtastic mobile app for LoRa-based mesh networking and precise GPS mapping. The firmware provides a comprehensive menu for managing hardware segments like LoRa, GPS, and system time.

 

 

Conclusion

 

Additional examples include M5Launcher, which allows users to execute BIN files directly from the Micro-SD card. The factory demo provides a comprehensive hardware test. For those using the Arduino environment, extensive support is available via M5Stack libraries.

The Cardputer-Adv is exactly what its name suggests: a sophisticated, credit-card-sized computer with meaningful upgrades over the original. The CAP expansion module (e.g., Cap LoRa-1262) is a powerful addition, and the new 2×7-pin header opens endless possibilities for hardware hackers.

 

Source: SK LABS
Author: Dejan Petrovic