Skip to content

Add hardware encoder modules and G33 support - #105

Open
staskaaa-netizen wants to merge 7 commits into
Paciente8159:masterfrom
staskaaa-netizen:encoder-backends-g33
Open

staskaaa-netizen wants to merge 7 commits into
Paciente8159:masterfrom
staskaaa-netizen:encoder-backends-g33

Conversation

@staskaaa-netizen

Copy link
Copy Markdown

No description provided.

@Paciente8159

Copy link
Copy Markdown
Owner

Sorry about the long absence...I've been on holiday and then getting up to speed on work.
I will be doing some modifications to encoder base module to support multiple types of custom encoders and then will try to integrate these specialized hardware solutions on the modules repo.

I will then look into your G33 modifications. The integration of it might have to be done as a variant option of the G33 as I don't want to disturbed the current G33 version that has been more heavily tested by @HuubBuis

@Paciente8159

Copy link
Copy Markdown
Owner

I'm starting to look at this code now. I've finished v1.17 integration. I'm slowly repicking this and looking at the code.
I'll do my best to update this module into the current state of the encoder module.

I'll keep you posted

Paciente8159 and others added 6 commits September 3, 2026 21:44
 - ESP32 PCNT module configuration simplification
 - It's now possible to assign the ESP32 PCNT counter to any uCNC encoder
 - updated encoder read override to match uCNC current encoder design
 - applied same principles as the ESP32 PCNT encoder

**TODO**: Update modules README files
 - Generalization of ESP32 PCNT and RPico PIO custom encoders to match the encoder module
 - Custom encoders can now be assigned to any µCNC encoder
 - Support for both quadrature (positional encoders) and single pulse counter modes (RPM meters)
 - keep original G33 and added G33 ELS version
 - code debugging revision
@Paciente8159

Copy link
Copy Markdown
Owner

@staskaaa-netizen I've basically reviewed the code based on the latest changes on µCNC v1.17.0
The following changes were done:

  • both ESP32 and RPico HW encoder now support multiple encoders and can be assigned to any µCNC encoder.
  • ESP32 and RPico encoders will make use of the same pins used to configure the default encoder (that uses pin interrupt on change) type, and should make configuration more simple.
  • both ESP32 and RPico HW encoders can work as a normal quadrature encoder or a simple pulse counter (uses a single GPIO pin to be used as an RPM encoder/meter)
  • overlapping functionalities for the HW code with the encoder module was removed (the index ISR handling)
  • I've renamed your proposed G33 modifications to g33_els and will keep for now both G33 versions. The current one is working ok and was tested by @HuubBuis . I've also reviewed debug verbose to match the new DEBUG style of µCNC that can be enabled individually by compilation unit.

At this point the only thing remaining testing the modules with the latest adaptations and check if they are ready to be integrated.

@staskaaa-netizen

Copy link
Copy Markdown
Author

Nice ! I will need retest them again on some more hardware. Current esp32 mini encoder emulator was used was reused for mo main hobby. If it is still could be named as a hobby. :

https://www.youtube.com/shorts/ZXWTE_GxrK8

This branch has not been deployed

No deployments
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.

2 participants