Introducing: Luna - 3D Printer Controller with On-board WiFi and Ethernet

Hello everyone! I’m excited to introduce Luna, a 3D printer controller with a focus on network connectivity that I’ve been developing for the past few months. Here’s a little tour of the hardware:

Other things to note about Luna:

  1. Runs RepRapFirmware. Feature set is based on Duet 3 Mini 5+, with some changes:
  • On-board WiFi and Ethernet
  • One dual-port driver
  • Five on-board regulators: (1) 5V, 3A + 3.3V, 1A for core components (2) 5V 3A + 3.3V, 1A for expansions such as NeoPixel, EXP1, EXP2, etc. and (3) 12V, 3A for 12V devices
  • More input/outputs (IO0 - IO6)
  1. Dual processor design: ESP32-S3 + SAM E5 microcontroller. ESP32-S3 is a dual-core, 240 MHZ WiFi + Bluetooth SoC with 8MB flash, 512K SRAM; handles networking, storage (SD card) and interfaces (USB, PanelDue, RepRapDiscount Full Graphic Smart Controller).
    SAM E5 is a Cortex-M4F microcontroller running at 120 Mhz, with 512KB flash and 196K SRAM; handles kinematics, stepping, digital/analog IO and other real-time control.

  2. Will have open schematics and PCB design, created with KiCad. Firmware will also be open (goes without saying as it is RepRapFirmware).

There is still some work to be done, but I’m hoping to do a crowdfunding campaign in the future. This thread is open to questions; suggestions are also welcome and may make it to the final hardware as long as it’s not a major change. You may also just express general interest, if you have no questions/suggestions :slight_smile:

4 Likes

This is interesting!

Is this what is hooked up to the fan headers?

I like using 24V for heating and steppers, but the options for high-quality 24V fans are so limited. Right now I have my always-on cooling fan running through a buck converter but part cooling I can’t do that. I could just limit the part cooling fan to max 50% duty cycle and use a 12V fan, but running 12V for the fan would be better.

Does that include hosting a web control panel, like Grbl_Esp32 does?

:tada:

What’s your expectation for how end stops are hooked up? Is it IO0-IO6? If so, are they debounced for mechanical switches? Or would you expect, say, CAN endstops? (I know that TMC2209’s have the option for sensorless homing, which I use for X and Y on one of my printers, but I understand that it’s not as repeatable as switches.) Speaking of which, is this wired so that sensorless homing can be enabled in software for axes for which it’s OK?

Is this what is hooked up to the fan headers?

It’s selectable via jumpers :slight_smile: The fan headers can either use the input voltage or this internal 12V regulator.

Does that include hosting a web control panel, like Grbl_Esp32 does?

Yes, ‘networking’ includes hosting the web interface, which in this case will be Duet Web Control.

While RepRapFirmware will be the ‘official’ firmware, interested members of the community can of course port other software into this system. One combination that might do well here is: ESP3D (GitHub - luc-github/ESP3D: FW for ESP8266/ESP8285/ESP32 used with 3D printer) + Marlin.

What’s your expectation for how end stops are hooked up? Is it IO0-IO6? If so, are they debounced for mechanical switches? Or would you expect, say, CAN endstops?

Yes, endstops can be connected to input pins in IO0-IO6 (each IO port has an output and input pin). There’s a basic RC network for debouncing.

Speaking of which, is this wired so that sensorless homing can be enabled in software for axes for which it’s OK?

The ‘extra’ control interfaces for the TMC2209 aside from STEP/DIR, which the sensorless homing feature depends on, is wired up to the SAM E5 microcontroller. This is the case for all the five built-in drivers, as well as the two driver expansion.

3 Likes

Another sneak peak!

Issuing an M115 (Get Firmware Version and Capabilities) command:

Driving stepper motors:

IMG_0107 (1)

It’s printing!

2 Likes

Luna is now Phi! Pre-launch page is also up, see Phi: Open source ESP32 3D Printer Controller with Built-In Wi-Fi and Ethernet.

1 Like

Campaign is live!