MarlinFirmware / Marlin

Marlin is an optimized firmware for RepRap 3D printers based on the Arduino platform. Many commercial 3D printers come with Marlin installed. Check with your vendor if you need source code for your specific machine.
https://marlinfw.org
GNU General Public License v3.0
16.32k stars 19.25k forks source link

Recommendations for a good 32 bit microprocessor to run Marlin #3851

Closed boelle closed 6 years ago

boelle commented 8 years ago

From @Roxy-3DPrintBoard on March 30, 2016 19:59

The Atmel ATSAM3x8e on the Due board is definitely viable. It has the benefit it can plug into the RAMPS or RADDS base board and at that point it is easy to populate it with other needed items like Step Sticks to handle the stepper motors.

But my questions is "What other companies make viable platforms to run 3D-Printers?" Ideally, these microprocessors have good compiler support and can have similar items to the Step Sticks plugged into them.

The best case would be if these other microprocessor boards were compatible with the RAMPS and RADDS boards and could just plug into them.

Copied from original issue: MarlinFirmware/MarlinDev#398

boelle commented 8 years ago

From @jbrazio on March 30, 2016 20:7

This is an interesting topic. Following your discussion on the other thread really got me thinking to buy one of these boards (DUE/RADDS).

boelle commented 8 years ago

From @Roxy-3DPrintBoard on March 30, 2016 20:18

@jbrazio Well... If you are not in a super big hurry... It may be best to hold off for a couple of weeks. The real purpose of this thread is to try to identify a 'Reference Platform' for 32-Bit Marlin's. @BioPrinter and I have been exchanging emails. If we can get some consensus on 2 or 3 viable platforms, he is going to start lobbying the microprocessor vendors to see if one of them will step up and provide the development hardware for our group.

The thinking is, if we have 6 or 7 contributors with the exact same hardware being used as a reference platform, we are going to be able to make the transition faster. And then for our users, that exact reference platform is pretty much guaranteed to always work and to have the latest and greatest feature set at all times. The hardware vendor would get a big magnet pulling new 32-Bit 3D-Printer sales in their direction. And given the size of the Marlin user base, that is nothing to sneeze at.

boelle commented 8 years ago

From @Sniffle on March 30, 2016 20:19

I would think if we build a hardware interface layer it could be just about anything even a smoothie...

boelle commented 8 years ago

From @Roxy-3DPrintBoard on March 30, 2016 20:24

Yeah... That would be the theory! Maybe I'm just being negative. But having other contributors with the exact same hardware gives me more confidence.

boelle commented 8 years ago

From @jbrazio on March 30, 2016 20:29

@Roxy-3DPrintBoard no worries, I believe your approach makes perfect sense and will for sure speed up the effort.

I just see one potential problem, if we want to keep somehow the same existing toolkit and implement some sort of HAL to allow us to have the same code base for 8bit and 32bit then we must stay inside something supported by the Arduino platform ?

boelle commented 8 years ago

From @Roxy-3DPrintBoard on March 30, 2016 20:40

It is very possible that Atmel will be the most logical choice at which point, everything is simple. But really... The users don't use the the IDE environment of Arduino to do anything but compile and upload. This is a valid point for discussion, but it is very possible that another environment for the 32-Bit stuff will make more sense. It may be that some version of GCC with a makefile can do everything they need.

(All of these issues need to be put on the table and discussed!!!)

boelle commented 8 years ago

From @jbrazio on March 30, 2016 20:43

Users do not use the IDE.. but we do use the Arduino core. :-/

boelle commented 8 years ago

From @Roxy-3DPrintBoard on March 30, 2016 20:45

Users do not use the IDE.. but we do use the Arduino core. :-/

At which point we need some type of HAL to move to another vendor's microprocessor! :)

boelle commented 8 years ago

From @CONSULitAS on March 30, 2016 22:28

@Roxy-3DPrintBoard @jbrazio see my https://github.com/MarlinFirmware/MarlinDev/issues/317#issuecomment-203663421

@Wurstnase has a running (but rather old, based on Marlin of 01. Feb. 2015, and experimental) fork for Arduino Due: https://github.com/Wurstnase/Marlin4Due He just stopped development regarding to his readme.

boelle commented 8 years ago

From @Wurstnase on April 1, 2016 12:51

Yes, i've stopped. Anyhow, there are a lot of 32bit Controller. Take a look at mbed.org for example. You can use the arm-none-eabi-xxx for stm32, lpc, also the Arduino Due use it. The 'problem' is the HAL or whatever you want to use. But there is no standard lib like avr-lib.

boelle commented 8 years ago

From @Sniffle on April 7, 2016 5:2

I already showed this to @Roxy-3DPrintBoard

but what do you guys think? main board - 2 exruders+ heated bed support + x, y, z drivers http://www.filastruder.com/collections/electronics/products/duet-controller-v0-8-5

extension board to add 4 more extruders http://www.filastruder.com/collections/electronics/products/duex4-expansion-board

touchscreen display http://www.filastruder.com/collections/electronics/products/paneldue

and it's already supported by reprap firmware so we have somewhere to reference for pinouts, etc.

not to mention http://reprap.org/wiki/Duet https://github.com/T3P3/Duet/blob/master/Duet0.8.5/Duet0.8.5_Schematic.pdf

is it just me or does this board almost seem too good to be true because it covers pretty much every thing a "moddern" printer could ask for. I'm sure there is a gotcha somewhere but damn talk about a complete package.

edit: think i found the one downside, It uses A4982 steppers so they are hard mounted 1/16th microstepping only. If you can think of more I'm all ears. as far as I can tell the 0.8.5 revision is pretty stable, but if anyone can break it and find faults we can :-P

boelle commented 8 years ago

From @jbrazio on April 7, 2016 10:59

I like it uses the same uC as the Due but the drawback (without even deep diving into hardware specs) it's the price, the overall solution you propose is quite expensive ($285).

boelle commented 8 years ago

From @Sniffle on April 7, 2016 14:35

Yeah that was my concern as well... It is just kinda the all in one poackage aside from the 1/16th drivers.

boelle commented 8 years ago

From @Roxy-3DPrintBoard on April 7, 2016 15:24

I wonder if they have an updated version of the board they are working on with 1/64 Micro-Stepping? Other than that, and the cost... This is a really good setup.

boelle commented 8 years ago

From @Wurstnase on April 7, 2016 15:53

The firmware on this board is not fast enough to support higher microsteppings. They can calculate Delta without segmentation. But only at <20kHz. Roxy-3DPrintBoard notifications@github.com schrieb am Do., 7. Apr. 2016 um 17:24:

I wonder if they have an updated version of the board they are working on with 1/64 Micro-Stepping? Other than that, and the cost... This is a really good setup.

— You are receiving this because you commented. Reply to this email directly or view it on GitHub https://github.com/MarlinFirmware/MarlinDev/issues/398#issuecomment-206951917

boelle commented 8 years ago

From @jbrazio on April 7, 2016 15:56

The firmware on this board

This is were Marlin comes in.. or which firmware are you talking about ?

boelle commented 8 years ago

From @Bio-Printer on April 7, 2016 16:5

At: https://docs.google.com/document/d/1whV779t_660hpgTxYxFomgqrOk1CpEQi-8QttTHaI-Q/pub

They say they pre-load the RepRap firmware. They recommend:

The DC42 version of the Firmware covers the widest range of printer configurations - cartesian, delta and core-XY and is recommended for general use. It is available for download at https://github.com/dc42/RepRapFirmware/tree/dev.

bobc commented 8 years ago

If anyone is still tracking this topic, the new Duet board (now called DuetWifi) is available for pre-order. It has a 120MHz Cortex M4 with hardware FPU. Looks really nice but not cheap! More details at https://www.duet3d.com/

Roxy-3D commented 8 years ago

Thanks for the Heads Up @bobc ! Yes, we are very interested! We just aren't in a position to move forward on the 32-Bit code right now! That really does look like a nice 32-Bit board!!!

Grogyan commented 8 years ago

I'm keen to follow any topics which bring forward a 32 bit microcontroller. Especially where key features that i'm looking for are

jbrazio commented 8 years ago

This is the issue: £118.80

Roxy-3D commented 8 years ago

Yes, the cost is a little high. But it is an Open Source design. If there are any people buying this board, there will be clones of it showing up. And the good thing is it has everything needed for a 3D-Printer on the board.

Sniffle commented 8 years ago

I have a duet running my kossel mini, and im building a corexy and now that this is being released it will be what runs it instead of the duet 0.8.5

paulusjacobus commented 8 years ago

AZSMZ ARM 32bit controller board See https://m.aliexpress.com/item/32421892934.html for $49 US

On 16 June 2016 at 10:16, Todd Swindoll notifications@github.com wrote:

I have a duet running my kossel mini, and im building a corexy and now that this is being released it will be what runs it instead of the duet 0.8.5

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/MarlinFirmware/Marlin/issues/3851#issuecomment-226356350, or mute the thread https://github.com/notifications/unsubscribe/AIOTKdPOt8gM41aBR3DmRLIE1PdSizbCks5qMJXggaJpZM4Imb5C .

Roxy-3D commented 8 years ago

AZSMZ ARM 32bit controller board See https://m.aliexpress.com/item/32421892934.html for $49 US

Oh! That is the RIGHT answer! But it is missing the Step Sticks. So it will be a little bit more than that.

Grogyan commented 8 years ago

As a side thought, what about 64bit SOC's? That way both the Firmware and the Print Server (OctoPrint) can run on the same device.

jbrazio commented 8 years ago

That way both the Firmware and the Print Server (OctoPrint) can run on the same device.

This is a no-go. https://github.com/MarlinFirmware/MarlinDev/issues/398#issuecomment-220853494

bobc commented 8 years ago

Unfortunately the Venn diagram of all people's requirements results in no solutions. As I mentioned before, Marlin currently depends on an easily available cross-platform build tool in the form of Arduino IDE in order for the user to configure Marlin. Other cross-platform IDEs are possible, e.g. PlatformIO, but we don't want anything as heavy as Eclipse. In practice, that means choosing a board that has a reasonably well-maintained core package for Arduino IDE. That basically means SAM3X (Arduino Due), or maybe one of https://github.com/arduino/Arduino/wiki/Unofficial-list-of-3rd-party-boards-support-urls Duet/DuetWifi would take a minimal amount of work to make into a downloadable Arduino core package (even if they are not officially supported by Arduino). Anything based on LPC1769, or Linux capable SOCs is out of scope without a lot of work in Marlin, maintaining a build tool, or developing a new core package.

Roxy-3D commented 8 years ago

Wow! That is a valuable link!

The only Cortex boards that are supported (in that list) are:

WZ9V commented 8 years ago

How about this one http://www.arduino.org/products/boards/arduino-star-otto

bobc on RepRap has been working on a update to the Due RAMPS card and he is keeping an eye on this one. So there may be all the hardware needed before long. http://forums.reprap.org/read.php?13,652712

ghost commented 8 years ago

It's interesting...

Blue-Marlin commented 8 years ago

Enough pins, fast, hardware floating point, Ardurino IDE. Very promising. Sadly not available now. :-(

Drakelive commented 8 years ago

http://www.st.com/content/st_com/en/products/evaluation-tools/product-evaluation-tools/mcu-eval-tools/stm32-mcu-eval-tools/stm32-mcu-nucleo/nucleo-f446ze.html

http://www.st.com/content/st_com/en/products/evaluation-tools/product-evaluation-tools/mcu-eval-tools/stm32-mcu-eval-tools/stm32-mcu-nucleo/nucleo-f767zi.html

All solutions already available

Drk

Wurstnase commented 8 years ago

I have a Nucleo 411 with just 100MHz. But it works quit well! https://www.youtube.com/watch?v=lXkOv9qoCp0#t=00m45s

ghost commented 8 years ago

Well, it seems that Arduino Due was retired... https://www.arduino.cc/en/Main/ArduinoBoardDue

Wurstnase commented 8 years ago

Yes, the ArduinoDue from arduino.cc not from arduino.org. Little bit confusing. For the STAR OTTO you will need then also the ArduinoIDE from arduino.org, not that one most of the users uses (from arduino.cc).

jbrazio commented 8 years ago

Otto is promising indeed.

bobc commented 8 years ago

I haven't seen this before http://www.st.com/content/st_com/en/products/evaluation-tools/solution-evaluation-tools/computer-and-peripherals-solution-eval-boards/steval-3dp001v1.html - a 3D printer eval board from ST. They have a version of Marlin for it called Marlin4ST https://github.com/St3dPrinter/Marlin4ST

Might explain some recent support queries...

WZ9V commented 8 years ago

Not bad, $120 from digikey for a six driver board.

Roxy-3D commented 8 years ago

Not bad, $120 from digikey for a six driver board.

I was thinking the same thing. And they have done an initial port of Marlin to the board. It is too bad they compile their version of Marlin with the Cube software. I wonder if anybody knows how complicated it would be to shift that code base to Arduino?

ghost commented 8 years ago

to shift that code base to Arduino

Possibly "Arduino STM32" + modification realize it? But it's extremly difficult (probably impossible) for me.

And, it looks like that Marlin4ST is unfinished. For example, FAST_PWM_FAN, HEATER_0_USES_MAX6675, ADVANCE, etc...

Roxy-3D commented 8 years ago

@St3dPrinter Can you please join this thread? The board shown at the link that @bobc found is impressive. ( http://www.st.com/content/st_com/en/products/evaluation-tools/solution-evaluation-tools/computer-and-peripherals-solution-eval-boards/steval-3dp001v1.html )

If we could get 6 or 8 boards into the right developer's hands, we could make it the reference platform for 32-Bit Marlin and bring up Marlin Release Candidate RC-7 on it.

jbrazio commented 8 years ago

I ordered a Due for less than $12.. @bobc I only need your magic now ! :-P

ghost commented 8 years ago

That reminds me..., new Due-based boards was released few month ago. Ultratronics - ReprapWorld.com https://reprapworld.com/?products/listing&cPath=1591__1750

Roxy-3D commented 8 years ago

Are you saying it uses the same processor as the Due ? Because it doesn't look like a Due plugs into that board.

ghost commented 8 years ago

Are you saying it uses the same processor as the Due ?

Yes it is. These are combined type like a Duet. Maybe because my bad English? Sorry. These boards are already supported by Repetier-Firmware and MarlinKimbra4due (but experimental).

And, these are separated type (plugin type?). DUE3DOM and DUE3DOM MINI. http://fabrykator.pl/seasidecustoms/due3dom-elektronika-32bit-dla-drukarek-3d/ These are supported by Repetier-Firmware and my Marlin Duo.

Roxy-3D commented 8 years ago

And, these are separated type (plugin type?). DUE3DOM and DUE3DOM MINI. http://fabrykator.pl/seasidecustoms/due3dom-elektronika-32bit-dla-drukarek-3d/ These are supported by Repetier-Firmware and my Marlin Duo.

Thank You. That was helpful. The web link https://reprapworld.com/?products/listing&cPath=1591__1750 didn't make everything clear to me. It looks like the difference between the Full and the Lite board is the Lite is only setup for one extruder? Did they just leave parts unpopulated that can be put in later by the user? And one more question, do you know if Arduino can generate code directly for the Ultratronics boards?

ghost commented 8 years ago

Lite is only setup for one extruder?

Compare list says difference between Ultratronics FULL and Ultratronics LITE are Ethernet port(available/not available) and number of onboard thermocouples(MAX31855?)(four/two). number of extruders is same. https://reprapworld.com/?elecinfo

Did they just leave parts unpopulated that can be put in later by the user?

Sorry, I'm not sure.

Arduino (IDE) can generate code directly for the Ultratronics boards?

Yes it is. Constituent of Ultratronics is Arduino Due + expansion circuit. It's like a Printboard(Arduino MEGA2560 + expansion circuit) that it's supported by official Marlin. Also datasheet says:

The design is based on Arduino Due and combines the best features of Megatronics to a new more powerful board. The board is therefor compatible with Arduino software, but optimized for 3D printers.

Roxy-3D commented 8 years ago

and number of onboard thermocouples(MAX31855?)(four/two). number of extruders is same.

The reason I was thinking it only handled 1 extruder was because you need 1 temperature sensor for the bed and you need 1 for each extruder. So if the Lite board only handles two temperature sensors, that made me think it was for 1 extruder.

Blue-Marlin commented 8 years ago

There are another 4 thermistor (!= thermocoupler) inputs.