Skip to content

Refactor library structure and expand C++, Python and MicroPython compatibility#5

Open
GustavoCereza wants to merge 14 commits into
Radioenge:masterfrom
elcereza:master
Open

Refactor library structure and expand C++, Python and MicroPython compatibility#5
GustavoCereza wants to merge 14 commits into
Radioenge:masterfrom
elcereza:master

Conversation

@GustavoCereza
Copy link
Copy Markdown
Contributor

Summary

This pull request restructures the LoRaMESH library to make it more portable, maintainable, and usable across a much wider range of environments.

The main goal was not only to improve the internal architecture, but also to expand the library ecosystem beyond the original embedded-only usage, opening space for native C++, Python, and MicroPython applications.

Main changes

  • Refactored the internal library structure
  • Improved separation between core logic and platform-specific implementations
  • Added a compatibility layer to support different hardware and software environments
  • Improved maintainability and long-term portability of the project
  • Expanded support for transparent communication alongside command communication

Ecosystem expansion

This work also extends the practical use of the library by enabling a broader ecosystem around the same LoRaMESH core:

  • C++ core for embedded and native applications
  • Python support for desktop tools, automation, testing, and rapid prototyping
  • MicroPython support for lightweight embedded scripting on supported boards

This creates a much wider range of possible applications, from firmware-level integration to higher-level software tools and fast development workflows.

Compatibility

The library structure now supports or prepares support for multiple environments, including:

  • Arduino
  • PlatformIO
  • STM32 HAL
  • ESP-IDF
  • Linux
  • Python-based environments
  • MicroPython-based environments

Notes

  • The protocol logic remains aligned with the existing LoRaMESH communication model
  • This PR focuses on architecture, compatibility, and code organization
  • The new structure creates a stronger base for future platform adapters and ecosystem growth

GustavoCereza and others added 14 commits December 18, 2023 14:19
Foi removido trechos do código que faziam sentido na lib inicial, mas acabei replicando na versão que fiz, porém uso valor não assinado (unsigned) que não faz sentido fazer uma comparação negativa sendo que nesse caso não existe.
Added Windows COM port access instructions for clarity.
- Add initial MicroPython support
- Improve Linux adapter (not yet fully aligned with core)
- Implement transparent communication with LoRa module
… examples

- update MicroPython support for ESP32, Raspberry Pi Pico and Sipeed MaixBit
- add MicroPython examples for MaixBit and Raspberry Pi Pico
- add STM32 HAL support with a complete STM32L412KB Nucleo-32 example
- add ESP-IDF support and include a new example project
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant