Coder Social home page Coder Social logo

m5stickc's Introduction

M5StickC Library

Arduino Compile Arduino Lint Clang Format

English | 中文

M5StickC_01

  • For the Detailed documentation of M5StickC, please Click here

Description

M5StickC is a ESP32 development board with 0.96 inch TFT color screen (80 * 160 resolution), Red LED, button, Microphone, IR transmitter, 6-axis IMU (SH200Q) and 80 mAH battery. The ESP32 module ESP32-Pico in M5StickC also has a built-in 4MB flash. If the M5StickC is equipped with watch-base and watch-belt, you can wear it on your wrist.

Switching machine operation: Press for two seconds to turn it on, and press and hold for six seconds to turn it off.

More Information

UIFlow Quick Start: Please Click Here

MicroPython API: Please Click Here

Arduino IDE Development: Please Click Here

M5StickC Arduino API: Please Click Here

PinMap: Please Click Here

M5StickC top extended IO port

M5StickC_04

m5stickc's People

Contributors

alfem avatar charno avatar eeeebin avatar f-hoepfinger-hr-agrartechnik avatar forairaaaaa avatar francescolavra avatar fustilio avatar genericpenguin avatar georgcampana avatar gitshaoxiang avatar graydonli avatar hades2001 avatar hf-clouds avatar kiko62 avatar lovyan03 avatar mdevel1 avatar mrarm avatar naninunenoy avatar needrom avatar neresus avatar nexero avatar ryanzmi avatar shashaddd avatar takeru avatar tanakamasayuki avatar tinyu-zhao avatar vany5921 avatar ykatrechko avatar zhouyangyale avatar zontex avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

m5stickc's Issues

I2c pins override

Hello, quick question, I have a library, specifically the CCS811 from adafruit, it is using the default pins, I would like to override the pins or know what i2c pins are really defined for the stick-c

RTC constructor should not call Wire1.begin()

In

M5StickC/src/RTC.cpp

Lines 5 to 7 in 3f8f30d

RTC::RTC(){
Wire1.begin(21,22);
}
, Wire1.begin() is called in a constructor. This is bad form, and none of the other modules do it. Wire1 setup should be moved into an rtc.begin() function.

While it seems to work fine in Arduino, I'm using PlatformIO to build the ENV example. When Wire1.begin() is present in the RTC initializer, the program crashes before setup() with an "uninitialized data" diagnostic on serial. Because it crashes before setup(), this implies something bad is going on before then — probably in constructors.

In_espi min() conflict with sstream

compile simple code like this:

#include <M5StickC.h>
#include <iostream>
#include <sstream>

void setup() {
  // put your setup code here, to run once:
}
void loop() {
  // put your main code here, to run repeatedly:
}

and get error:

In file included from C:\Users\Administrator\Documents\Arduino\libraries\M5StickC\src/M5Display.h:7:0,

                 from C:\Users\Administrator\Documents\Arduino\libraries\M5StickC\src/M5StickC.h:70,

                 from C:\Users\ADMINI~1\AppData\Local\Temp\arduino_modified_sketch_429256\BareMinimum.ino:1:

c:\users\administrator\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-80-g6c4433a-5.2.0\xtensa-esp32-elf\include\c++\5.2.0\bits\streambuf.tcc: In member function 'virtual std::streamsize std::basic_streambuf<_CharT, _Traits>::xsgetn(std::basic_streambuf<_CharT, _Traits>::char_type*, std::streamsize)':

C:\Users\Administrator\Documents\Arduino\libraries\M5StickC\src/utility/In_eSPI.h:543:20: error: expected unqualified-id before '(' token

   #define min(a,b) (((a) < (b)) ? (a) : (b))

                    ^

c:\users\administrator\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-80-g6c4433a-5.2.0\xtensa-esp32-elf\include\c++\5.2.0\bits\streambuf.tcc: In member function 'virtual std::streamsize std::basic_streambuf<_CharT, _Traits>::xsputn(const char_type*, std::streamsize)':

C:\Users\Administrator\Documents\Arduino\libraries\M5StickC\src/utility/In_eSPI.h:543:20: error: expected unqualified-id before '(' token

   #define min(a,b) (((a) < (b)) ? (a) : (b))

                    ^

c:\users\administrator\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-80-g6c4433a-5.2.0\xtensa-esp32-elf\include\c++\5.2.0\bits\istream.tcc: In member function 'std::streamsize std::basic_istream<_CharT, _Traits>::readsome(std::basic_istream<_CharT, _Traits>::char_type*, std::streamsize)':

C:\Users\Administrator\Documents\Arduino\libraries\M5StickC\src/utility/In_eSPI.h:543:20: error: expected unqualified-id before '(' token

   #define min(a,b) (((a) < (b)) ? (a) : (b))

                    ^

c:\users\administrator\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-80-g6c4433a-5.2.0\xtensa-esp32-elf\include\c++\5.2.0\bits\sstream.tcc: In member function 'virtual std::__cxx11::basic_stringbuf<_CharT, _Traits, _Alloc>::int_type std::__cxx11::basic_stringbuf<_CharT, _Traits, _Alloc>::overflow(std::__cxx11::basic_stringbuf<_CharT, _Traits, _Alloc>::int_type)':

C:\Users\Administrator\Documents\Arduino\libraries\M5StickC\src/utility/In_eSPI.h:543:20: error: expected unqualified-id before '(' token

   #define min(a,b) (((a) < (b)) ? (a) : (b))

                    ^

comment the code in In_espi.h, and compiling passes.


#ifndef min
  // Return minimum of two numbers, may already be defined
  #define min(a,b) (((a) < (b)) ? (a) : (b))
#endif

Default AXP192 charging current

According the datasheet of AXP192, it's currently configured to charge the battery at 190mA (in AXP192.cpp), which is a bit too much for an 80mAh cell. Would you consider lowering the default to 100mA instead? It'll probably make the bettery last more cycles in the future.

RTC interrupt pin connected to ESP32 or not?

Hi there,

I would like to know that have you connected the BM8563 RTC chip's INT pin to ESP32 or not? It may be helpful for waking up or notifying the microcontroller.

Regards,
Jackson

Please add M5StickC display support to esphome

Hello. I am using a couple of M5StickC devices as esphome nodes, with sensors attached, deep_sleep, buttons, IR transmitter, etc.. Here’s one of my configs
https://github.com/apolselli/home-assistant-config/blob/master/esphome/m5stickc.yaml

It’s a pity that I still can’t use the internal display to show some sensors’ or system info.

Please add support for that display in esphome (a wonderful lib to integrate esp32 devices in home assistant). It should be very easy since the arduino code is already there... And of course, other components are welcome too.

Thank You

M5StickC CardKB First Time usage

Hi

I run the CardBK example with the CardBK connected but get no repsonse on screen or when press keys.

Do I need to flash the CardBK first with the keyboard firmware or should it be already loaded?

For Cardkb hat \ does not exist

Instead of \ my Cardkb hats output / if the second from the right button on the 4th row labelled \ / = is pressed.
If your atmega firmware is the culprit, I need a fixed firmware and instructions how to flash it, because \ and / are definitely different symbols...

Rotate text in screen

Hello I was wondering hot to rotate the text, I tried this code but didn't work:

// text print
  M5.Lcd.fillScreen(BLACK);
  M5.Lcd.setTextDatum(MR_DATUM);
  M5.Lcd.setCursor(0, 10);
  M5.Lcd.setTextColor(WHITE);
  M5.Lcd.setTextSize(4);
  M5.Lcd.printf("hello world");

IR Pin Clarification

On the Label on the Back of the M5StickC the IR PIN is shown as GPIO10 ... but in the examples and in the matrix on this Page it is shown as GPIO9..

Which is it?

How is the "M5Display::drawBitmap" supposed to work

Hey,

I can not get the "M5Display::drawBitmap" to work properly...

I can not even display a simple color gradient. I just get some wierd 5x6,5 small gradient boxes on the screen.

What is the correct format for the data array?

WiFi and BLE range very short

I'm using the M5Stick but I find that the WiFi and BLE range is really short. Does anyone else is experiencing the same ?

Using M5.6886 api, yaw will always drift

Hi there,
I have been trying to debug getAhrsData(&pitch,&roll,&yaw) without success.
With the M5StickC on the table without movement the values I get for yaw keeps growing in circles.

I did take a look into MahonyARSupdateIMU and other versions available on the internet but still cant get it to work properly.

Gist of the values:

<script src="https://gist.github.com/jokandre/be502bc3ed397fcd13013df5cd740ddd.js"></script>

Advice on how can I fix it is much needed.
I know that it needs to calibrate. But there is no documentation about it. Also there is nothing on the code inside the library to do it.
If I should not use the M5StickC library at least tell me what should I use instead. Thanks

TFT_Terminal.ino for 160x80

Please correct TFT_Terminal.ino sketch for proper operation with 160x80 display.
Currently in several places still is set 320 as a width value.
Also vertical scroll does not work correctly.

errors compiling HelloWorld

Windows, Android 1.8.9
compiling the HelloWorld Example gives me the following errors:

Arduino\libraries\M5StickC\src\RTC.cpp: In member function 'void RTC::Bcd2asc()':
Arduino\libraries\M5StickC\src\RTC.cpp:73:24: error: suggest parentheses around arithmetic in operand of '|' [-Werror=parentheses]

Arduino\libraries\M5StickC\src\M5Display.cpp: In member function 'bool M5Display::initHzk16(boolean, const char*, const char*)':
Arduino\libraries\M5StickC\src\M5Display.cpp:115:10: error: enumeration value 'ExternalHzk16' not handled in switch [-Werror=switch]

Arduino\libraries\M5StickC\src\M5Display.cpp: At global scope:
Arduino\libraries\M5StickC\src\M5Display.cpp:441:1: error: 'include' does not name a type
include "utility/qrcode.h"

compiler_output.txt

Factory Test incorrectly displays number of APs

These lines contain a printf without any parameter.

This should be changed to:
M5.Lcd.printf("%d AP", n);

Better yet, the commons lines inside the if statement should be brought out:

    if (n == 0) {
      M5.Lcd.setTextColor(RED, WHITE);
    } else {   
      M5.Lcd.setTextColor(GREEN, WHITE);
    }
    M5.Lcd.setCursor(5, 60, 4);
    M5.Lcd.printf("%d AP", n);

M5.Lcd.sleep() compile error

I tried the following code but got a compile error.
I want to turn off the LCD during Deep Sleep. Is there an alternative?

#include <Arduino.h>
#include <M5StickC.h>

void setup() {
  M5.begin();
  M5.Lcd.sleep();
}

void loop() {}

This is the build result.

> Executing task in folder m5stickc-problem-lcd-sleep: platformio run <

Processing m5stick-c (board: m5stick-c; framework: arduino; platform: espressif32)
------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/m5stick-c.html
PLATFORM: Espressif 32 1.11.1 > M5Stick-C
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
DEBUG: Current (esp-prog) External (esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa)
PACKAGES: toolchain-xtensa32 2.50200.80 (5.2.0), framework-arduinoespressif32 2.10004.191002 (1.0.4), tool-esptoolpy 1.20600.0 (2.6.0)
LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 28 compatible libraries
Scanning dependencies...
Dependency Graph
|-- <M5StickC> 0.1.1
|   |-- <Wire> 1.0.1
|   |-- <SPIFFS> 1.0
|   |   |-- <FS> 1.0
|   |-- <SPI> 1.0
|   |-- <FS> 1.0
Building in release mode
Linking .pio/build/m5stick-c/firmware.elf
.pio/build/m5stick-c/src/main.cpp.o:(.literal._Z5setupv+0x4): undefined reference to `M5Display::sleep()'
.pio/build/m5stick-c/src/main.cpp.o: In function `setup()':
/home/takuya/Documents/PlatformIO/Projects/m5stickc-problem-lcd-sleep/src/main.cpp:6: undefined reference to `M5Display::sleep()'
collect2: error: ld returned 1 exit status
*** [.pio/build/m5stick-c/firmware.elf] Error 1
=================== [FAILED] Took 3.23 seconds ===================
The terminal process terminated with exit code: 1

Terminal will be reused by tasks, press any key to close it.

TFT_eSprite drawString is crash

Kernel panic occurs when the size of drawString is set to 1 in TFT_eSprite.

moji2 = "Test";
TFT_eSprite * Spr->drawString(moji2, 80, 0, 1);

Guru Meditation Error: Core 1 panic'ed (LoadProhibited). Exception was unhandled.

There is no problem if the character size is 2 or more.

moji2 = "Test";
TFT_eSprite * Spr->drawString(moji2, 80, 0, 2);

I use
・arduino-esp ver 1.04
・m5stickc libs in adrduino ver 0.1.1

Can SH200Q detect tilt to gravity?

I would like to calculate posture of M5StickC.
But it seems that accelerometer in SH200Q does not reflect gravity acceleration.
SH200Q only provides linear acceleration?

http://www.senodia.com/en/Product/detail/id/17.html

SH200Q is an inertial measurement unit,integrated with 3-axis gyroscope and 3-axis accelerometer.It provides high precision data of real-time angular velocity and linear acceleration,

FactoryTest.ino does not compile

Arduino: 1.8.10 (Mac OS X), Board: "M5Stick-C, Default, 115200, None"

wallcom:5:23: error: esp32_rmt.h: No such file or directory
compilation terminated.
Multiple libraries were found for "M5StickC.h"
Used: /Users/jimmyhoughjr/Documents/Arduino/libraries/M5StickC
Multiple libraries were found for "Wire.h"
Used: /Users/jimmyhoughjr/Library/Arduino15/packages/esp32/hardware/esp32/1.0.3/libraries/Wire
Multiple libraries were found for "SPI.h"
Used: /Users/jimmyhoughjr/Library/Arduino15/packages/esp32/hardware/esp32/1.0.3/libraries/SPI
Multiple libraries were found for "FS.h"
Used: /Users/jimmyhoughjr/Library/Arduino15/packages/esp32/hardware/esp32/1.0.3/libraries/FS
Multiple libraries were found for "WiFi.h"
Used: /Users/jimmyhoughjr/Library/Arduino15/packages/esp32/hardware/esp32/1.0.3/libraries/WiFi
Not used: /private/var/folders/_f/v10xwn895yg2z47fw1p6dh6r0000gn/T/AppTranslocation/D4464480-4EE5-4E1A-8567-905CC155D1DF/d/Arduino.app/Contents/Java/libraries/WiFi
exit status 1
esp32_rmt.h: No such file or directory

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

Simply copied the example from this repo.
I'm beginning to think I'm not gaining any RADness by using m5 over cheap crap I can get fro AliExpress.

MacOS catalina upload problem

Hello, I have been having problems with the latest macos version, looks like it cannot longer communicate with the module in order to upload sketches from arduino or via the esptool, is there a work around for this?

microphone tests

Hello guys, I am not able to understand the microphone, is it a 16 bit resolution microphone?, additionally, I wanted to record voice but seems to not fully record all samples and loses quality

Yaw value keeps increasing/decresing even without movement

Hi there,
I have been trying to debug getAhrsData(&pitch,&roll,&yaw) without success.
With the M5StickC on the table without movement the values I get for yaw keeps growing in circles.

I did take a look into MahonyAHRSupdateIMU and other versions available on the internet but still cant get it to work properly.

This happens only for yaw. Pitch and roll values are quite stable after few seconds.

Gist of the values:
https://gist.github.com/jokandre/be502bc3ed397fcd13013df5cd740ddd

Usage of Wire library.

In the files:

  • M5StickC/examples/Hat/ENV/DHT12.cpp
  • M5StickC/examples/Basics/FactoryTest/DHT12.cpp

These lines are not needed:

delay(50);
if (Wire.available()!=0) return 2;

Does the sensor need that delay before using other functions ? That delay is not needed for the I2C bus. The line "if (Wire.available()!=0) return 2;" is always zero, there is not need to check that.

See also my alternative explanation of the functions of the Wire library.

In the file

  • M5StickC/examples/Hat/ENV/bmm150.cpp

all the Wire.beginTransmission() before and Wire.endTransmission() after a Wire.requestFrom() may be removed.
Explanation: Common-mistakes, number 2 and 3.

Unable to receive interrupts from AXP192

I've been trying to receive interrupts from the AXP192 via GPIO35 to (hopefully) detect the power button press as an interrupt. Button A and B have no issues with this as they are directly hooked up to GPIO37 and GPIO39 respectively,
Here are some code snippets:

// Method in AXP192.cpp to enable all IRQ flags by writing to registers 0x40, 0x41, 0x42, 0x43
void AXP192::enableAllIRQ() {
    uint8_t val = 0xFF;
    for (int i = 0; i < 4; i++) {
        Write1Byte(0x40 + i, val);
    }
}

// method to be called when interrupt is triggered
void IRAM_ATTR isr() {
    axpIrq = 1;
}

// The following methods are called during setup
void setup() 
{
// other functions...
// setup GPIO35 as input
pinMode(35, INPUT_PULLUP);
// attach interrupt service routine
attachInterrupt(35, isr, FALLING);
// some method to clear IRQs
}

void loop()
{
    // trigger if axpIrq flag is set
    if (axpIrq) {
        Serial.printf("INTERRUPT DETECTED\n");
        // reset flag
        axpIrq = 0;
    }
}

That's the rough gist of the code I'm working with now. Is there anything else I'm missing?

Deep Sleep and Display

Hi,
it seems that the deep sleep mode does not shut down the display. When using following code the display stays on:

esp_sleep_enable_timer_wakeup(60000000);
esp_deep_sleep_start();

Is there anything we can do about?

bert

Reading zero data from accelerometer

Hi I just got this device. I believe mine has a MPU6886 by doing an i2c scan. Dices won't work, IMU example gives 0, MPU example gives 0. What am I doing wrong? Thanks

Display off with M5.Axp.SetSleep()

How to restore display from code after M5.Axp.SetSleep()?
As far as I see, M5.Axp.SetSleep() just switch off the display, but all other is working
I would like to restore the display with pressing the button

AXP192 battery current

A few days ago I ported the Arduino AXP192 code to micropython (see https://github.com/karfas/M5StickC-uPy).
It works, but some questions arised:

  1. Has someone a pointer to an English datasheet of the AXP192 ?

  2. In AXP192::GetBatCurrent(), the current to the battery is calculated from 13 bits read from the AXP address 0x7a.
    In AXP192::GetBatChargeCurrent(), the battery current is read from 12 bits at address 0x7a.
    Code is pasted below.

Which version is correct ? The ReadXXBit() functions are also not helpful - these shift the first byte read 3/4 bits and ADD the second byte without any mask).

Kind regards,

Thomas

float AXP192::GetBatCurrent()
{
    float ADCLSB = 0.5;
    uint16_t CurrentIn = Read13Bit( 0x7A );
    uint16_t CurrentOut = Read13Bit( 0x7C );
    return ( CurrentIn - CurrentOut ) * ADCLSB;
}
float AXP192::GetBatChargeCurrent()
{
    float ADCLSB = 0.5;
    uint16_t ReData = Read12Bit( 0x7A );
    return ReData * ADCLSB;
}

arduino 1.8.12 & FactoryTest produces a sketch bigger than flash

Downloaded a fresh 1.8.12.
Downloaded the board and libraries

  • M5Stack 0.3.0
    
  • M5Stick 0.2.0
    
  • FastLED 3.3.3
    

Loaded examples/Basics/FactoryTest
Tried to compile it with no changes.
Got this error:

Sketch uses 1348331 bytes (102%) of program storage space. Maximum is 1310720 bytes.
Global variables use 52664 bytes (16%) of dynamic memory, leaving 275016 bytes for local variables. Maximum is 327680 bytes.
Sketch too big; see http://www.arduino.cc/en/Guide/Troubleshooting#size for tips on reducing it.
Error compiling for board M5Stick-C.

Dices problem

Dices wouldn't work beyond the Shake Me message so I changed the IMU to MPU6886 and 1 was showing two spots so I adjusted the condition in the for loop in draw_dice() to d < 6. The code now works on my M5StickC and is as follows:

`/*

A couple of dices on a tiny 80x160px TFT display

Author: Alfonso de Cala [email protected]

*/

#include <M5StickC.h>

#define DOT_SIZE 6
int dot[6][6][2] {
{{35,35}},
{{15,15},{55,55}},
{{15,15},{35,35},{55,55}},
{{15,15},{15,55},{55,15},{55,55}},
{{15,15},{15,55},{35,35},{55,15},{55,55}},
{{15,15},{15,35},{15,55},{55,15},{55,35},{55,55}},
};

int16_t accX = 0;
int16_t accY = 0;
int16_t accZ = 0;

void setup(void) {
M5.begin();
M5.MPU6886.Init();

M5.Lcd.setRotation(1);

M5.Lcd.fillScreen(TFT_GREEN);

M5.Lcd.setTextColor(TFT_BLACK); // Adding a background colour erases previous text automatically

M5.Lcd.setCursor(10, 30);
M5.Lcd.setTextSize(3);
M5.Lcd.print("SHAKE ME");
delay(1000);
}

void loop() {

while(1) {
M5.MPU6886.getAccelAdc(&accX,&accY,&accZ);
if (((float) accX) * M5.MPU6886.aRes > 1 || ((float) accY) * M5.MPU6886.aRes > 1 ) {
break;
}
}

M5.Lcd.fillScreen(TFT_GREEN);

// Draw first dice
delay(1000); // A little delay to increase suspense :-D
int number = random(0, 6);
draw_dice(5,5,number);

// Draw second dice
delay(1000);
number = random(0, 6);
draw_dice(85,5,number);

}

void draw_dice(int16_t x, int16_t y, int n) {

M5.Lcd.fillRect(x, y, 70, 70, WHITE);

for(int d = 0; d < 6; d++) {
if (dot[n][d][0] > 0) {
M5.Lcd.fillCircle(x+dot[n][d][0], y+dot[n][d][1], DOT_SIZE, TFT_BLACK);
}
}

}`

LCD: readPixel(), readRect(), readRectRGB() doesn't work

ReadPixel(), readRect() and readRectRGB() doesn't return real pixel values from LCD.

For example (for black and white pixels on the screen):

for (unsigned y = 0; y < TFT_HEIGHT; ++y) {
 for (unsigned x = 0; x < TFT_WIDTH; ++x) {
   Serial.printf("%s", M5.Lcd.readPixel(x, y) ? "#" : " ");
 }
 Serial.printf("\n");
}

This routine prints blank output though in reality display has a lot of white pixels printed on black background.

I would like to implement auto LCD orientation update so I need to get full dump of display pixels. BTW I suggest you to consider this functionality within M5.update() routine.

MacOs trouble with connection

There are some problems when flashing Arduino projects (a fatal error occurred: failed to connect to ESP32: invalid packet header (0x4F)) Download speed and board are correct. When I flash in Ui Flow the exact same problem. Drivers set from quick guide. How fix this?
Снимок экрана 2020-01-15 в 01 36 51

Add a Microphone demo

I would like to use this wristwatch wearable to record my voice and send it to a home server, in order to do some voice recognition and home automation.

But I can not find any example code about the SPM1423.

Any clue would be welcome.

How to use Grove VL53L0X?

Hi.
I am trying to run the Mstack VL53L0X grove module in M5stickc and it is impossible.
Is there any special configuration to make it work?

Thank you

Request for Voice Recognition

Hello all,

I would like to use M5stick to detect voice commands at any time, even without internet. I know there are some frameworks that exist, however, most of them are not meant for Arduino IDE. There seems to be no Arduino library for ESP32 for voice recognition.

I am aware that this example exists for M5StickC:

https://github.com/m5stack/M5StickC/blob/master/examples/Basics/Micophone/Micophone.ino

Some repositories for ESP32 voice recognition I found are:

https://github.com/espressif/esp-skainet
https://github.com/MhageGH/esp32_CloudSpeech

With that said, it means that it is very possible to do voice recognition with only ESP32 and a compatible microphone. Can someone point out how or when there would be an example for Arduino IDE?

Where is the original software?

Where might I find the source of the code that ships with the M5StickC? It has these modes:

  • 3D box rendered according to the accelerometer report.
  • reads the RTC and writes it to the screen in a big font.
  • scrolling FFT display of the microphone input
  • Sending IR data
  • BLE connecting.

M5Stick C did not display anything after flash

I tried flashing my M5StickC with Arduino (just tested hello-world program) The uploading was fine, but the board did not displayed anything and I did not have any evidence for the cause.
I also attached the log here.

ketch uses 255045 bytes (19%) of program storage space. Maximum is 1310720 bytes.
Global variables use 16652 bytes (5%) of dynamic memory, leaving 311028 bytes for local variables. Maximum is 327680 bytes.
esptool.py v2.6
Serial port /dev/ttyUSB0
Connecting....
Chip is ESP32D0WDQ6 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
MAC: 3c:71:bf:47:4a:94
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Auto-detected Flash size: 4MB
Compressed 8192 bytes to 47...

Writing at 0x0000e000... (100 %)
Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.0 seconds (effective 6957.0 kbit/s)...
Hash of data verified.
Compressed 15856 bytes to 10276...

Writing at 0x00001000... (100 %)
Wrote 15856 bytes (10276 compressed) at 0x00001000 in 0.9 seconds (effective 138.5 kbit/s)...
Hash of data verified.
Compressed 255168 bytes to 130449...

Writing at 0x00010000... (12 %)
Writing at 0x00014000... (25 %)
Writing at 0x00018000... (37 %)
Writing at 0x0001c000... (50 %)
Writing at 0x00020000... (62 %)
Writing at 0x00024000... (75 %)
Writing at 0x00028000... (87 %)
Writing at 0x0002c000... (100 %)
Wrote 255168 bytes (130449 compressed) at 0x00010000 in 11.5 seconds (effective 177.3 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 128...

Writing at 0x00008000... (100 %)
Wrote 3072 bytes (128 compressed) at 0x00008000 in 0.0 seconds (effective 1565.2 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...

Incorrect vertical height in TFT_Terminal.ino

When running the example, lines don't show until several Carriage Returns have been inputted. I believe this to be due to the vertical height for display being incorrect. YMAX is currently set to 160. It should be 80.

turn off display

the function M5.Lcd.setBrightness(0) returns the following when compiling:

C:\Users\user\Documents\Arduino\M5stickC_rtc/M5stickC_rtc.ino:55: undefined reference to `M5Display::setBrightness(unsigned char)'

collect2.exe: error: ld returned 1 exit status

I'm using M5.Axp.SetSleep() as a workaround for now, but it seems inconsistent when the rest of the functions listed here work fine.

Smooth fonts

Could you add Smooth font support for the internalization of the project?
Need to change In_eSPI.h and .cpp and set definition:
#define SMOOTH_FONT
In_eSPI.zip

LCD controller: ST7735R or ST7735S??

Hi there,

Maybe I was wrong but it seems that the screen is ST7735R, same as this one: https://www.adafruit.com/product/3533

...and the datasheet is: https://cdn-shop.adafruit.com/datasheets/ST7735R_V0.2.pdf

Also I suggest you should remove the initialize sequence for other LCD panels: https://github.com/m5stack/M5StickC/blob/master/src/utility/ST7735_Init.h#L12

The VCOM voltages and Gamma LUT are different. If someone wants to port it to other platforms (non-OS or pure ESP-IDF, no Arduino), they may be confused and use the wrong settings. The wrong settings could result in weird color or even killing the panel.

Regards,
Jackson

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.