Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jczic/esp32-mpy-jama
v1.2 - UI tool for manage Espressif ESP32 microcontrollers with embedded MicroPython for MacOS, Windows and Linux: mini IDE, files manager, REPL, real time dashboards (sys/net), advanced features (gpio/mp3/leds/...)
https://github.com/jczic/esp32-mpy-jama
app boot esp32 esptool ethernet firmware flash ide linux mac macos micropython mip pypi python repl sdcard serial wifi windows
Last synced: 28 days ago
JSON representation
v1.2 - UI tool for manage Espressif ESP32 microcontrollers with embedded MicroPython for MacOS, Windows and Linux: mini IDE, files manager, REPL, real time dashboards (sys/net), advanced features (gpio/mp3/leds/...)
- Host: GitHub
- URL: https://github.com/jczic/esp32-mpy-jama
- Owner: jczic
- License: mit
- Created: 2023-01-16T01:47:33.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2023-05-03T21:57:51.000Z (over 1 year ago)
- Last Synced: 2024-04-22T13:31:28.757Z (7 months ago)
- Topics: app, boot, esp32, esptool, ethernet, firmware, flash, ide, linux, mac, macos, micropython, mip, pypi, python, repl, sdcard, serial, wifi, windows
- Language: Python
- Homepage: https://github.com/jczic/ESP32-MPY-Jama
- Size: 99.9 MB
- Stars: 373
- Watchers: 19
- Forks: 20
- Open Issues: 29
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
ESP32 MPY-Jama
:small_orange_diamond: Welcome to ESP32 MPY-Jama, a powerful and versatile cross-platform tool, designed to simplify your development with Espressif's ESP32 microcontrollers and MicroPython.
:small_orange_diamond: The lightweight IDE, file manager, terminal, and real-time dashboards provide all the essential features you need to develop your IoT projects quickly and efficiently on MacOS, Windows, and Linux.
:small_orange_diamond: With startup settings and customizable features, this tool can adapt to your workflow and preferences, making your coding experience seamless and enjoyable.
MacOS on arm64 ▪️ MacOS on Intel x86/64 ▪️ Windows 64-bits
To make it work under Linux :penguin: click here!
---
# :bookmark_tabs: Table of contents
- [**Features**](#features)
- [**Real-time system dashboard**](#system-dashboard)
- [**Real-time networks dashboard**](#networks-dashboard)
- [**Wi-Fi in 2 clicks**](#wifi)
- [**Lightweight integrated IDE**](#ide-gpio)
- [**Embedded Jama Funcs**](#jama-funcs)
- [**Already included**](#jama-funcs-table)
- [**SD card support**](#sd-card)
- [**Firmware upgrade**](#esptool)
- [**Build & Run**](#build-and-run)
- [**Linux version instructions**](#linux)
- [**Author**](#author)
- [**Special thanks to**](#thanks)
- [**License**](#license)
---
- User-friendly **graphical interface** for easy use
- Connect to **multiple ESP32 board** types
- **Lightweight IDE** for easy programming
- **Terminal access** for streamlined command execution
- **Pinout diagrams** for popular board types
- Easy installation of **in-line modules** with **PyPI** or **MIP**
- Flash **file system browser** for easy file access
- Native **file tranfers** and management
- Real-time visualization of **GPIO states**
- Access to important **system information**
- Configuration of **Wi-Fi** and **Ethernet** network interfaces
- **SD card** support for external storage
- Simplified flash **firmware updates**
- Advanced **external component testing** features
- Control and manipulate peripherals such as **LEDs strips**, **MP3 players**, etc
- Quick testing of **IOs** in **digital** or **analog** mode
- **Customizable features** for an extensible development
- **Persistent configurations** on boards if required
- Real-time **memory** and **temperature** monitoring
---
# :gear: Real-time system dashboardAccess all important system information, adjust the MCU frequency, monitor the current status of the set GPIOs,
check startup configuration options and display the various partitions of the flash memory.
The startup options allow you to save your configurations on the board, so that you can always maintain them after each reboot.
---
# :globe_with_meridians: Real-time networks dashboardConfigure and display information about Wi-Fi connection and access point interfaces,
set up a board with an integrated Ethernet PHY interface and verify that the Internet connection is available.
It is also possible to act on the state of the network interfaces, including the one for BLE.
---
# :satellite: Wi-Fi in 2 clicksQuickly connect your device to available Wi-Fi networks and set up an access point with ease.
The authentication options and the maximum number of clients are adjustable.
---
# :desktop_computer: Lightweight integrated IDEDevelop your MicroPython programs and libraries and test them directly using the lightweight IDE.
Also, a terminal is usable in the same window with the management of the history of your commands like a shell.
Manage and transfer content from the device's flash memory or SD card.
In the code editor, common keyboard shortcuts such as save, undo, search or move line blocks are available.
Tips: leave the mouse on a file to display its full name and size, or double-click on the tab bar to create one more quickly.
Use Espressif's pinout diagrams for the GPIOs, which are available on most boards:
---
# :control_knobs: Embedded Jama FuncsJama Funcs are small dedicated functions that run on your device to perform a specific task.
They can be used to quickly test the functionality of the ESP32 or external modules and are designed to be easily configured.
Choose a Jama Func from those proposed, then configure its parameters directly in the graphical interface before executing it on your device:
When executing a Jama Func, a window with a terminal opens up, allowing you to view its output:
It is of course possible to develop your own Jama Funcs in order to import them into the interface and thus facilitate their use by implementing integrated parameters.
You can find a full template in MicroPython directly in the software or by clicking on
this link.
The following table lists all the Jama Funcs already included in ESP32 MPY-Jama:
| Jama Func | Description |
| ------------------------- | ----------- |
|**1-Wire Devices Scan**|Initializes a 1-Wire bus on a single GPIO and finds all the family IDs and serial numbers of slave devices.|
|**ADC Reader**| Simple level and voltage reader on a GPIO using an analog-to-digital converter (ADC). You can specify the dB applied attenuation and the bits resolution.|
|**BLE Scan**|Initializes the Bluetooth Low Energy radio and scans BLE devices via advertising data.|
|**BLE iBeacon**|Initializes the Bluetooth Low Energy radio and simulates an Apple iBeacon object. The advertising message broadcasts an UUID corresponding to "B.JAMA-FUNC.TEST" in binary with the short name "MPY-Jama" while the iBeacon is the response to an active scanner. The iBeacon (Apple beacon format) data are: Major = 123 / Minor = 456 / TX at 1 meter = -55 dB|
|**DAC Output**|Set a GPIO output to a specific voltage using digital-to-analog converter (DAC).|
|**GPIO Input**| Simple reader of low/high voltage signals on a GPIO (pin) input. You can enable an internal pull resistor or not.|
|**GPIO Output**|Set a GPIO (pin) output to ON or OFF.|
|**I2C Slaves Scan**|Initializes an I2C bus on two GPIO and scans it to find all the addresses of I2C slaves. You can choose the bus identifier, the SCL and SDA GPIO as well as the frequency in MHz.|
|**KT403A MP3 Player**|For MP3 modules based on KT403A chipset like DFPlayer, Grove-MP3 v2 and more. You will be able to connect your board via an UART bus, play all the sound files in loop from the intended storage source (microSD, USB, flash memory), adjust the volume but also choose an audio EQ effect (normal, pop, rock, jazz, classic, bass). Info: KT403A supports MP3 & WAV audio formats on FAT16 or FAT32 files system, 32 GB max for microSD.|
|**LEDs - DotStar RGB Strip**|Try your DotStar RGB LEDs via SPI bus, compatible with strips APA102, SK9822, and more. You can choose the number of LEDs as well as the bus connectivity settings and the lighting in full power or in fading rainbow. The embedded library can be found via the link below.|
|**LEDs - NeoPixel RBG(+W/Y) Strip**|Try your NeoPixel RGB(+W/Y) LEDs via only one GPIO, compatible with strips WS2812(B), SK6812, ADAxxxx, APA106, FLORA and more. You can choose the number as well as the type of LEDs like RGB or RGB+W/Y, the frequency, and the lighting in full power or in fading rainbow. The NeoPixel library was coded by Damien P. George.|
|**Magnet Sensor**|Allows to test the hall sensor of the ESP32 chip with detection of the two magnetic poles after automatic calibration.|
|**Max Threads**|Returns the maximum number of possible threads to create with the configurable stack size.|
|**Memory Check**|This little tool simply allows you to allocate a maximum amount of memory on your chip in order to force the writing on almost all the available slots.|
|**NTP Time Sync**| This tool synchronizes the UTC date and time from an NTP server. You can choose the NTP server host to connect to.|
|**PWM & Lighting**|Uses a PWM on a GPIO and varies its duty cycle to make a led flash smoothly from 0 to 3.3V.|
|**PWM & Servo Motor**| Uses a PWM on a GPIO and drives a servo motor by varying its duty cycle. Several options are available to configure the servo motor, such as pulse frequency, pulse width and rotation time.|
|**UART Test**| Initializes an UART bus on two GPIO, sends or not a custom command and receives data from the bus. You can choose bus identifier, baud rate, bits per character, parity, stop bits and TX/RX GPIO|
|**Wi-Fi Scan**|Performs a detailed scan of the wireless access points.|
You are welcome to share your own Jama Funcs! 😉
---
# :file_folder: SD card supportIf an SD card is available on the board, activate it and mount the corresponding file system.
A reformatting of all content is also possible.
---
Take advantage of the Espressif esptool to connect the device in bootloader mode and easily load new binary images.
Additionally, the tool allows you to completely erase the device for a full reset.
---
# :hammer_and_wrench: Build & Run- ### Required dependencies
pyWebView ([Check out on GitHub](https://github.com/r0x0r/pywebview)):
```console
python -m pip install pywebview
```pySerial ([Check out on GitHub](https://github.com/pyserial/pyserial)):
```console
python -m pip install pyserial
```- ### Run application
Just use python:
```console
python src/app.py
```
---
# :penguin: Linux version instructionsThis describes how to clone the repository and how to run from source. In the third step you will find instructions how to create a binary from source. All st
eps have been tested on Ubuntu 22.04, but should work with little changes on similar distributions as well.- ### Installation
First, First, make sure you have all the required files:
```bash
# clone the repository:
git clone https://github.com/jczic/ESP32-MPY-Jama# install python modules requirements:
sudo apt install libcairo2-dev libgirepository1.0-dev python3-pyqt5 python3-pyqt5.qtwebengine python3-pyqt5.qtwebchannel libqt5webkit5-dev gir1.2-webkit2-4.0# initialize python venv:
cd ESP32-MPY-Jama
python3 -m venv venv. venv/bin/activate
pip3 install wheel setuptools
pip3 install pyserial pywebview[qt] pycairo PyGObject pyinstaller
```- ### Running from source
When you executed all steps listed under "Installation" you may run directly from sources by executing these steps:
```bash
cd ESP32-MPY-Jama
. venv/bin/activate
python3 src/app.py
```
In case of an issue with the initialization of the graphical user interface, it is possible to force the desired interface by using the argument `--gui` (or `-g`) followed by `qt` or `gtk`.```bash
# example:
python3 src/app.py -g gtk
```- ### Building executable
Execute the steps listed under "Installation" and then continue like this:
```bash
cd ESP32-MPY-Jama
./create_binary.sh
```When the script finishes you should end up with a "esp32-mpy-jama" executable in the "dist" subfolder.
---
**Jean-Christophe Bos** (:fr:)
- GitHub: *[@jczic](https://github.com/jczic)*
- Email: **
- Profil: *[LinkedIn](https://www.linkedin.com/in/jczic)*
- Music: *[SoundCloud](https://soundcloud.com/jczic/sets/electro-pulse)*
*[Spotify](https://open.spotify.com/album/5fUd57GcAIcdUn9NX3fviG)*
*[YouTube](https://www.youtube.com/playlist?list=PL9CsGuMbcLaU02VKS7jtR6LaDNpq7MZEq)*
---
- **[rdagger](https://github.com/rdagger)** > [www.rototron.info](https://www.rototron.info)
- **[happenpappen](https://github.com/happenpappen)** > [www.stop.pe](https://stop.pe)
---
# :eight_pointed_black_star: License- Copyright :copyright: 2023 [Jean-Christophe Bos](https://www.linkedin.com/in/jczic).
- This project is [MIT](https://github.com/jczic/ESP32-MPY-Jama/blob/master/LICENSE.md) licensed.