Experimental driver for HC32F460 (Voxelab Aquila 3D Printer Board) #950
jake5253
started this conversation in
Show and tell
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Hello everyone!
I'd like to share an experimental grblHAL driver I've been working on for the Huada Semiconductor HC32F460 SoC.
My bring-up and testing target for this port has been the Voxelab Aquila X2 / S2 3D printer controller board (hardware revision v1.0.2). It's a very common, inexpensive 3D printer board, which makes it an interesting candidate for repurposing into a budget CNC/Laser controller. As a short backstory: my initial plan was to run grblHAL on a Creality Ender 3 board, but an unfortunate accident involving my RPi4 eating mains voltage left me with a fried board, a spare Huada-based controller, and no firmware. So, here we are!
I currently have it in a standalone repository as I don't feel it's quite ready for a formal Pull Request yet, but it has reached a milestone where the core functionality is up and running on real hardware and I've added support for some of the plugins that I was interested in.
Currently Working / Verified:
Bootloader: Preserves the stock Aquila bootloader (flashes automatically via firmware.bin on an SD Card).
Motion: 3-axis step/dir motion using TimerA-backed step timing (4-axis is available in the map, but untested).
Spindles: Dual selectable PWM spindles (Primary 24V on PA1, Secondary/Laser 5V on PB1).
Peripherals: EXINT-backed hard limits (X, Y, Z) and Z-probe.
Storage: Settings persistence via external I2C EEPROM or reserved internal flash.
SD Card: grblHAL SD card plugin is verified and working.
Serial: USART2 via the on-board CH340 USB-to-serial chip.
I have put the driver through a good amount of trial usage and dry runs. While I don't have any final "production" output made using the controller just yet (mostly just random test samples and cuts), the core features are proving to be stable on the bench.
Since this is my first deep dive into the grblHAL hardware abstraction layer (and full disclosure: I used AI extensively to help assist with the porting effort!), I want to make sure I am adhering to the project's best practices.
Before I consider submitting a PR to officially add this architecture to the grblHAL ecosystem, I would love it if some of the experienced driver maintainers here could take a quick look at my HAL implementation. Any feedback on code structure, implementation/design failures, etc., would be incredibly appreciated!
Repository: https://github.com/jake5253/grblHAL_HC32F460
Note: The project is structured using PlatformIO for easy building.
Thanks for all the work that goes into this amazing project; The HAL made porting to a new architecture surprisingly straight-forward, but it was still quite a challenge considering I've barely ever touched C code and have never before ported anything to a new architecture.
Beta Was this translation helpful? Give feedback.
All reactions