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
MIT License
424 stars 25 forks source link
app boot esp32 esptool ethernet firmware flash ide linux mac macos micropython mip pypi python repl sdcard serial wifi windows


ESP32 MPY-Jama

🔅 What's new in version 1.2



: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



:rocket:  Features



:gear:  Real-time system dashboard

Access 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 dashboard

Configure 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 clicks

Quickly 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 IDE

Develop 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 Funcs

Jama 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 support

If an SD card is available on the board, activate it and mount the corresponding file system.
A reformatting of all content is also possible.


:zap:  Firmware upgrade

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



:penguin:  Linux version instructions

This 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.



:wink:  Author

Jean-Christophe Bos (:fr:)



:+1:  Special thanks to



:eight_pointed_black_star:  License