Need help with board selection

I'm wanting to switch boards for my project that will use at least 3 stepper motors and 6 digital pins. It will also need to support a basic LCD with button or rotary input system and beeper.

I want to move away from the Mega 2560 + RAMPS and get into a smaller footprint with 32bit processor. Everything needs to be plug-n-play as this will be an open source project I want to make easy for inexperienced people.

I'm looking at the DUE but the breakout boards are too big. I see the small stm32 boards but don't see any module boards for them. I could make my own and then sell them I guess but I'd rather not. I want this to be cheap and easy for people.

What are your suggestions?

What are your suggestions?

Yes, better define your needs. Is the application written? How much flash and ram does it need? SPI required? Will the LCD speak I2C? Does it run on Mega? That’s an 8 bit machine with a 16MHz clock sufficient for most 3D printer type applications.

Do you really need a 32 bit machine or do you just want it?

Also I don't understand what "footprint" should become smaller (board size?), and which plug-n-play interface shall be used.

For smallest boards I'd base all my modules on I2C, the bus with the lowest number of wires. In an industrial environment a CAN bus may be a solid alternative. Then all modules with that bus interface can be used off the shelf.

You can find arduino DUE compatible boards with smaller form factors, but not super cheap since they are not widely sold as the DUE R3, e.g.:

http://reprap.org/wiki/Duet

https://www.duet3d.com/index.php?route=common/home#products

https://www.ebay.com/p/Due-Core-Sam3x8e-32-Bit-Arm-Cortex-M3-Mini-Module-for-Arduino-Compatible-UC-2102/905698139?_trksid=p2047675.m4097.l9055

I'd like suggestions as if I don't have any hardware and everything plugs in with no soldering or modifications but is smaller than the mega 2560 I have currently with a RAMPS board plugged into it. What I have now fits my requirements but I honestly need something smaller if possible and faster processing if possible.

Requirements are in my initial post. I don't really know what's out there so I'm asking the community.

If you cannot find something better suited yourself, and the community links don't help you either, you can go to the Gigs and Collaborations forum section and ask there for a solution.

naps1saps:
I want to move away from the Mega 2560 + RAMPS and get into a smaller footprint with 32bit processor.

A Mega is a 5volt Arduino, but faster processors are usually 3.3volt logic.
Not all shields and breakout boards are compatible with that.
Leo..

I guess to get what I want I'm going to have to design my own breakout board and visit one of these maker centers or send out for online production then make it available to people to buy if they want them (if the project takes off).

I think I might go with one of these esp32 boards I just discovered since they have built in bluetooth and a dual core chip. But I'm not sure there will be enough pins. I'll have to do some research to see how many pins are required per stepper and if I want to use the enable pin or not. I may end up just getting a due and throw on the smart RAMPS because it's what I know and have experience with :\

Does anyone know of a module that has multiple stepper drivers on it like the ones they use in 3d printing but more than one per module to consolidate the size? I'm thinking I may want the option to have 5 or 6 drivers for optional axis expansion.

And on another note, if you were going to control 4-6 steppers, listen for triggers on 6-12 pins, get real time controlling input from serial/bluetooth (many strings per second), control an i2C or other LCD, and trigger one or more pins for camera triggering/adjustment, what main board would you choose?

if you were going to control 4-6 steppers, listen for triggers on 6-12 pins, get real time controlling input from serial/bluetooth (many strings per second), control an i2C or other LCD, and trigger one or more pins for camera triggering/adjustment, what main board would you choose?

IMO the highest constraint might be the monitoring of 4 to 6 stepper drivers. I suggest that you look over the stepper motor monitoring capabilities of the Sam3x (the DUE uc).

Extracts from datasheet:

page 877:

36.6.15 2-bit Gray Up/Down Counter for Stepper Motor
Each channel can be independently configured to generate a 2-bit gray count waveform on corresponding TIOA,TIOB outputs by means of the GCEN bit in TC_SMMRx.

page 981:

38.6.2.3 2-bit Gray Up/Down Counter for Stepper Motor
It is possible to configure a couple of channels to provide a 2-bit gray count waveform on 2 outputs (PWM_SMMR)

ard_newbie:
page 877:

36.6.15 2-bit Gray Up/Down Counter for Stepper Motor
Each channel can be independently configured to generate a 2-bit gray count waveform on corresponding TIOA,TIOB outputs by means of the GCEN bit in TC_SMMRx.

page 981:

38.6.2.3 2-bit Gray Up/Down Counter for Stepper Motor
It is possible to configure a couple of channels to provide a 2-bit gray count waveform on 2 outputs (PWM_SMMR)

I don't think I quite understand what it does or how many can be controlled? I thought I read in another datasheet it can only control 2 steppers this way. I believe it drives the stepper with a PWM signal instead of manually triggering a step pin on and off. Is that correct? Right now on my Mega I have to double or quadruple the step pulses per cycle on fast moves in order to have enough CPU time left over for other processing. This is the method Marlin uses for fast moves as well.

If it is using PWM, what benefit does it have over the manual method? Does it solve having to double the step pulses per cycle?

If it is using PWM, what benefit does it have over the manual method?

Either a Timer Counter or the PWM peripheral "live their own life" without eating core clock cycles. The only exception is when an interrupt Handler is triggered.

You could be interested by this thread:

http://forum.arduino.cc/index.php?topic=462272.0

The esp32 is a non-starter. It’s a WiFi chipset, first and foremost. The support in the Arduino eco system is severely limited and it would be a mistake to base something with commercial viability on it.

It sounds like you’re going to need a custom board anyway, based on that and the other things you’ve mentioned, I would head over to pjrc.com and check out the Teensy 3 family. The form factor fits for what you want and it’s commercially very stable. The 3.5 and 3.6 have hardware floating point which, along with the raw processor speeds, would run circles around even the Due for number crunching apps.