µCNC

I agree with @vicious1. You can still use TMC2209 in standalone mode though.
To use USART TMC drivers (with dedicated USART pinout at least) you would eat 2 extra pins for each driver. On a 3 axis machine that would result in 6 additional pins on a UNO board that is already lacking IO. You could do it by sacrificing all pins on the left side (estop, hold, resume, coolant, and probe)…but that would max out your IO.

@unique93 just out of curiosity I’ve added stallguard config and M914 command (similar to Marlin) to allow sensorless homing in TMC2209 to µCNC master branch.

I have no way of currently testing if it’s working or not. I have to order a few different TMC controllers to be able to properly test this.

Also a thank you to @jmshrtn for is contributions to µCNC (including a new tool) and helping with all the testing need to improve/fix dual axis drives for self squaring , that are now a lot more easier to setup/configure.

1 Like

Video of the relay tool working here: Starting out on a primo journey in New Zealand - #22 by jmshrtn

1 Like

So i went to the top and was looking over what exactly µCNC is and it appears to be fw for arduino, but what does it do for a person that marlin does not? Or is there a page i can research it?

Hi there @RockinRiley.
µCNC is a firmware designed to be compatible with Grbl protocol and also capable of being flexible and modular like LinuxCNC.
Currently supports Avr MCUs (including Arduino Uno) but also Stm32F1, Stm32F4 and samd21 (arduino zero).
Also has support for corexy and delta kinematics (besides regular cartesian) and other features.
You can read more about it in the github page.
It is in it essence like Gbrl more focused on CNC and laser, not so much 3D printing (although the thought of giving it a spin as come to my mind :rofl:…one Day I’ll give it a go)

1 Like

By the way the the tool @jmshrtn is showing on the video was created by imself using the tool abstraction layer and a bit of c coding.

Thank u

Quick update. Development has progressed a bit more slowly then I would like to but finally µCNC v1.5.beta is out and with it, support for 2 more cores:

  • The NXP LPC176x MCU (there is a board configuration for the Re-ARM board)
  • ESP8266 (and this one I thought I would not be able to pull it off, due to the lack of hardware timers and IO but a minimalistic CNC is achievable on this chip). WiFi connection via telnet is also available on this one. WebUI is in development but it seems to be a bit to much to handle for this one.

ESP32 and RPi Pico are the next targets.

3 Likes

Just released version 1.5.5.

Version 1.5 brought support for LPC176x, ESP8266 and ESP32 boards, 74HC595 IO extender, Laser PPI and several enhancements.

This last version is also now backed up with an online configuration tool to try and ease the configuration process of the firmware.

This is a simple web page with Bootstrap and the deprecated AngularJS that makes for a more friendly interface to configure a custom build of µCNC. It’s kind of ugly and poorly programmed but I’m not a web developer and was the first time I used AngularJS so don’t expect much … :sweat_smile:

4 Likes

I think the web page looks great.

On the boards page is everything under basic board setting optional? As in when the board is selected all the basic fields are filled in, the rest is just optional, like changing the pwm pin?

2 Likes

When you choose a board the page reads the source code boardmap for that board and fills the fields with the values that are already loaded.

Some of them are not optional and others if not filled have default values that the firmware uses.

For example on AVR In which port are PCINT pins 0 to 7 that is fix set for each chip. The loaded values for ATMEGA 328P or 2560 are those. If you change them input ISR will cease to work.
All timers are also mandatory, although if you don’t fill that the MCU has some default ones assigned.

I left them there because this allows the user to configure the firmware to fit a non available boardmap.
For example you can have a board with an AVR (let’s say an ATMEGA 1284) and build a boardmap that enables you to run the firmware).
Not all MCU’s have all the required definitions exposed but they will soon.
And I’m aware that a bit more of explanation is missing although info about MCU customization is in the Wiki.

It’s a work in progress…

3 Likes