# M5Stack Library ## Usage ### Installing the USB Driver - [Download the SiLabs CP2104 Driver](https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers) but do NOT use the Windows 10 Universal (v10.1.1) driver! If you happen to download the Universal version, you may need to manually revert to 6.7.1 on a regular basis as Windows will repeatedly use the newer, incorrect driver after each Windows update. (Note: If you cannot upload, please try the legacy v4 driver below. You will need to uninstall the v5 driver. And try to use a lower baudrate: 115200) - [Download the Silabs CP210X v10 Driver Universal binary for win 10 in case of rebooting problems while flashing procedure](https://www.silabs.com/documents/public/software/CP210x_Universal_Windows_Driver.zip) No need of reinstalling any drivers if were installed before, they should be updated "on the fly". ### Installing the ESP32 Arduino Core - Using Arduino IDE + [Instructions for Windows](docs/arduino-ide/windows.md) + [Instructions for Mac](docs/arduino-ide/mac.md) + [Instructions for Debian/Ubuntu Linux](docs/arduino-ide/debian_ubuntu.md) + [Instructions for Fedora](docs/arduino-ide/fedora.md) + [Instructions for openSUSE](docs/arduino-ide/opensuse.md) - [Using PlatformIO](docs/platformio.md) - [Building with make](docs/make.md) - [Using as ESP-IDF component](docs/esp-idf_component.md) ### Download Library #### Using the Arduino IDE Library Manager 1. Choose ```Sketch``` -> ```Include Library``` -> ```Manage Libraries...``` 2. Type ```m5stack``` into the search box. 3. Click the row to select the library. 4. Click the ```Install``` button to install the library. 5. Click "File-> Examples". Here are some test programs in "M5Stack->" #### Using Git (most environments) ```sh cd ~/Documents/Arduino/libraries/ git clone https://github.com/m5stack/M5Stack.git ``` #### Using Git (Windows) ```sh c: cd %USERPROFILE%\documents\libraries git clone https://github.com/m5stack/M5Stack.git ``` ## API See [API](https://github.com/m5stack/M5Stack/blob/master/src/M5Stack.h#L19). ## Examples See [examples](examples) folder. ## Hardware [Schematic](https://github.com/m5stack/M5-hardware/blob/master/M5_Core_SCH(20171206).pdf). ### Pinout Peripheral Devices | ESP32 ---|--- ILI9341 RST | GPIO33 ILI9341 DC | GPIO27 ILI9341 CS | GPIO14 ILI9341 MOSI | GPIO23 ILI9341 CLK | GPIO18 ILI9341 LIGHT | GPIO32 TFCARD MOSI | GPIO23 TFCARD MISO | GPIO19 TFCARD CLK | GPIO18 TFCARD CS | GPIO4 BUTTON A | GPIO39 BUTTON B | GPIO38 BUTTON C | GPIO37 SPEAKER | GPIO25 MPU9250 SDA | GPIO21 MPU9250 SCL | GPIO22 GROVE SDA | GPIO21 GROVE SCL | GPIO22 ### LoRa module Peripheral Devices | ESP32 | RA-02 | Note ---|---|---|--- MOSI | GPIO23 | MOSI | shared with TFCARD MISO | GPIO19 | MISO | shared with TFCARD SCK | GPIO18 | SCK | shared with TFCARD RFM95_CS | GPIO5 | NSS | pull up before M5.Begin() RFM95_RST | GPIO36 | RST | incorrectly labeled GPIO26 in some places RFM95_INT | GPIO26 | DIO0 | incorrectly labeled GPIO36 in some places ### M-BUS ![image](docs/M-BUS.jpg) ### Awesome - [M5Stack-SD-Updater](https://github.com/tobozo/M5Stack-SD-Updater) - Customizable menu system for M5Stack - loads apps from the Micro SD card - [TFT_eSPI](https://github.com/Bodmer/TFT_eSPI) - TFT library for the ESP8266 and ESP32 that supports different driver chips - [M5Widgets](https://github.com/Kongduino/M5Widgets) - Widgets for the M5Stack - [M5StackSAM](https://github.com/tomsuch/M5StackSAM) - Simple Applications Menu Arduino Library for M5Stack - [cfGUI](https://github.com/JF002/cfGUI) - A simple GUI library for M5Stack (ESP32) - [GUIslice](https://github.com/ImpulseAdventure/GUIslice) - A lightweight GUI framework suitable for embedded displays - [M5Stack MultiApp Advanced](https://github.com/botofancalin/M5Stack-MultiApp-Advanced) - A M5Stack firmware made on PlatformIO - [M5Stack ESP32 Oscilloscope](https://github.com/botofancalin/M5Stack-ESP32-Oscilloscope) - A fully functional oscilloscope based on ESP32 M5Stack - [M5Stack-Avator](https://github.com/meganetaaan/m5stack-avator) - An M5Stack library for rendering avatar faces - [M5Stack_CrackScreen](https://github.com/nomolk/M5Stack_CrackScreen) - Crack your M5Stack!! - [M5_Shuttle_Run](https://github.com/n0bisuke/M5_Shuttle_Run) - M5_Shuttle_Run - [nixietubeM5](https://github.com/drayde/nixietubeM5) - (Fake) Nixie Tube Display on a M5Stack - [M5Stack_BTCTicker](https://github.com/dankelley2/M5Stack_BTCTicker) - A small Bitcoin price ticker using an M5Stack (ESP32) and the Coindesk API - [M5Stack_ETHPrice](https://github.com/donma/M5StackWifiSettingWithETHPrice) - Dependence on example Wifi Setting to get ETH Price from Maicoin - [M5Stack-PacketMonitor](https://github.com/tobozo/M5Stack-PacketMonitor) - M5Stack ESP32 Packet Monitor - [M5-FFT](https://github.com/ElectroMagus/M5-FFT) - Graphic Equalizer on the M5Stack platform - [M5Stack_ESP32_radio](https://github.com/anton-b/M5Stack_ESP32_radio) - Playing mp3 stream out of internet using M5Stack prototype - [mp3-player-m5stack](https://github.com/dsiberia9s/mp3-player-m5stack) - MP3 player for M5Stack - [ArduinoWiFiPhotoBackup](https://github.com/moononournation/ArduinoWiFiPhotoBackup) - M5STACK Arduino WiFi Photo Backup device - [M5StackHIDCtrlAltDel](https://github.com/mhama/M5StackHIDCtrlAltDel) - You can send ctrl+alt+del to your PC from M5Stack - [M5Stack Markdown Web Server](https://github.com/PartsandCircuits/M5Stack-MarkdownWebServer) - Markdown & icons loaded from an Micro SD card/TF card to run a web page - [M5Stack-Tetris](https://github.com/PartsandCircuits/M5Stack-Tetris) - Tetris for M5Stack Ported to M5Stack by macsbug - https://macsbug.wordpress.com/ - [M5Stack_FlappyBird_game](https://github.com/pcelli85/M5Stack_FlappyBird_game) - M5Stack FlappyBird Playable - [M5Stack-SpaceShooter](https://github.com/PartsandCircuits/M5Stack-SpaceShooter) - Space Invaders knock-off for M5Stack - [M5Stack-Pacman-JoyPSP](https://github.com/tobozo/M5Stack-Pacman-JoyPSP) - Pacman on M5Stack/PSP Joypad, with sounds - [M5Stack-Thermal-Camera](https://github.com/hkoffer/M5Stack-Thermal-Camera-) - M5Stack Thermal Camera with AMG8833 thermal sensor - [M5Stack-3DPrintFiles](https://github.com/PartsandCircuits/M5Stack-3DPrintFiles) - Links to files for 3D printing custom case parts for the M5Stack