开源改变世界!!

支持 Arduino Due(ARM 处理器) #626

推推 grbl 2年前 (2023-02-06) 89次浏览
关闭
alexborro 打开了这个问题 2013 年 10 月 17 日 · 156条评论
关闭

支持 Arduino Due(ARM 处理器)#626

alexborro 打开了这个问题 2013 年 10 月 17 日 · 156条评论

评论

支持 Arduino Due(ARM 处理器) #626

大家好,抱歉用这个频道问这样的问题,但是有人尝试将 Marlin 移植到 Arduino Due(ARM 处理器)吗?

如果没有,请猜测应该做什么以及需要付出多少努力??

谢谢。

亚历克斯。

支持 Arduino Due(ARM 处理器) #626
贡献者

应该做什么?完全重写 ;)
我记得不久前有人在做这件事……但坦率地说——在 ARM 上有什么意义?

米。

支持 Arduino Due(ARM 处理器) #626
贡献者作者

您确定要完全重写吗?由于可以为 ARM 编译 C 代码(arduino IDE 支持 DUE),我在考虑一个低工作量……

支持 Arduino Due(ARM 处理器) #626
贡献者

我们只使用 arduino,因为 1) avr 编程很容易——不需要 ISP 程序员,2) 开源软件/IDE(或“IDE”)和 3) 因为它很流行;-)
如果我们只使用 Arduino 函数那么是的,这很容易。但是 Arduino 库(大部分)很糟糕,很多东西必须重写,从头开始并定时编写……
也许不是完全重写,但不是微不足道的。
再次。做什么的?:-)

支持 Arduino Due(ARM 处理器) #626
贡献者作者

嗨,没有人,

Deltabots 使用大量 32 位计算,主要是平方根和乘法。
8 位 AVR 是提高精度和速度等功能的瓶颈。

例如,速度限制约为 320 毫米/秒……是的,它很快……但对于速度为 800 毫米/秒的三角洲来说并不算多……可能不适用于挤压,但适合旅行。

关于你的观点:

  1. 根据 Due 文档,也不需要 ISP 程序员。它类似于(但不等于)对 AVR 进行编程。只需将 USB 数据线插入 USB 编程端口,打开 Arduino IDE 并点击上传。

  2. Due 也一样。它仍然是一个 Arduino,但只是其他更强大的处理器。

  3. 由于是新趋势 ;-) 原因?同样的价格,而且功能更强大。实际上 SAM3X 比 Atmega2560 便宜。

我仍然不明白重写的必要性。在 Marlin 中只有 2 个使用 ASM 的函数,正好可以进行超过 8 位的数学运算。对于原生 32 位处理器来说根本没有必要。所有剩余的代码都是用 C/C++ 编写的……Arduino 编译器可能可以从中生成二进制代码。
据我所知,Marlin 没有用于 AVR 的预编译二进制文件……

顺便说一句,Repetier 已经有了对 Due 的原生支持。

此致,

亚历克斯。

支持 Arduino Due(ARM 处理器) #626
贡献者

有很多理由选择更快的微控制器。
) 主要的不是它更快,而是不需要那么多优化,因此代码可以更加模块化/库化。这个库可以在多个固件之间共享,并且在多个固件中是同时进行的。错误修复也是如此。社区的协作更容易,因为您的代码更改确实对单片电子板的单个生产商有帮助。下一步是如果代码没有经过优化,它会更容易阅读和维护。
) 然后第二个重要的步骤是有更复杂的步骤和路径生成。可以应用更高阶的方法(恒定加加速度或四阶),而不是将加加速度速度跳跃作为方向变化的度量(查找 tinyg 和 ultimaker 的 youtube 视频)。此外,越来越需要真正的非线性运动,以更好地支持非笛卡尔系统和圆形。样条曲线或类似的东西会非常好。个人认为也有必要放弃所有轴同步加速的想法,而是对每个轴进行异步控制。因此,当运动减速时,可以收回细丝,例如
)此外,在规划中允许路径偏差可能非常有希望,因为这样可以切角。

转向更好的控制器(例如 beagle bone black、teensy3 或类似控制器)的主要挑战是非常奇怪的库和非常混乱的许可,例如 USB、SD、文件系统、以太网。

就个人而言,我现在不会再参加 DUE,我有很多非常糟糕的经历。例如,没有明显原因的 SPI 端口仅在公 ISP 接头上可用,而在母外部接头上不可用,模拟输出无法输出 <1/6 VCC 和超过 5/6 VCC 以及类似的事情,这非常令人惊讶.

1-2 年前,与多人就这些主题进行了大量讨论。结论是将 marlin 直接移植到 ARM 不是很有用。因为它失去了拥有更好东西的机会。

一年前,我为一家考虑进入 DUE 的帕洛阿尔托公司提供了免费咨询,据我所知,他们的打印机很快就会进入太空。
无论如何,这大概就是我告诉他们的(请考虑 > 12 个月的年龄,有些事情我目前的看法略有不同):

There are a couple of options as you are aware off [for having a faster microcontroller].
I would personally go for ARM Cortex 3, AKA SAM3U. Why? Because there is some basis to start.
https://github.com/kliment/4pi-firmware
and some boards: https://github.com/kliment/reup

Also, I think for the reprap community. And Reprap will never have as stable systems as commercial machines, since the last 5% of bugs nobody wants to fix without being forced to.
However, what reprap can be for the next couple of years, is to be the technological leader.
[Yes, I will come to the point]
For that, there need to be developer boards electronics that are easily hackable, easily repairable and modular. I think that this should be also applicable for space, with the focus on repeatability. Solderable without reflow. So this puts dramatic limitations on the chip. Or the way the controller is connected to everything else.
And this is why I believe in Arduino DUE, with its SAM3U chip. The connector system is not great, but allright, and the boards are reasonably replaceable. Also, you need no programmer, just USB. Also, the bootloader, however ever strange the second Atmel168 is, works. Please note that I am not talking about the ARDUINO SDK, which is not optimized sufficiently. Just the hardware, not the SDK.

ARM Cortex 4 would also be a nice choice, especially for Floating point support was his reason, 

There is an uncertainty in this hardware preference, and this should be taken into account.
The way to go in my mental map is the following:
a) the FW should be quickly portable to a different controller. Why? Because all commercial, monolithic boards will have their "own" controller maybe. And you want still to have a community working together to find bugs and create features. Split firmwares are not good enough very soon.
b) From a) follows, that their will be variants, and with variants, the proven way to go is to have externaly hosted libraries. E.g. for gcode interpretation. E.g. for Communication. E.g. user interaction. E.g. Trajectory Planning. E.g. Step Generation.  These libraries are as hardware-independent as possible.
This libraries all access the actual Microcontroller using a standardized interface. E.g. "set heater pin high" "set PWM to 50% on the fan pin" or: "do a step".

c) How to achieve this?
)Create a clean Hardware interface.
)Decide the library boundaries and its interconnections.
)Split marlin into Non-interwoven parts to fill the libraries.
)Milestone: First working librarized port.
) Then: use the new performance to add superior features.

Why is this better than smoothie firmware approach?
Nobody will contribute to libraries that are hosted within a different firmware. They are not neutral. And egos count in community-based software.

Also, you can create unit test for each library. And use a nomal computer with a validation suit by having a PC based hardware interface. (Easier debugging and validation)
支持 Arduino Due(ARM 处理器) #626

将 marlin 移植到 due 很容易。但它不会增加新的功能。(我在一周内完成了 STM32F4 的移植)
使用增加的处理能力是困难的部分。
您可以像 smoothie 一样将它用于模块化。但我想用它来更好地控制运动。更好的反馈给用户。网络和GUI等

我也不相信为 reprap 相关功能制作库。库非常适合通用函数,但如果您需要更高的性能或不适合您的应用程序,则库会受到限制。
(看看 arduino 库。由于 arduino 性能不佳,它们中的大部分都被本地函数取代)
我正在开发一个新的 HW 平台,该平台具有更快的 MCU 和更好的步进驱动程序。这提供了许多新的可能性。如果库需要可移植,则不可能 100% 使用新功能。

在我看来,有两种类型的董事会。Bernhard 喜欢的可破解版本。而且即插即用版本90%的打印机用户都会喜欢。我想为需要工作板和工作固件的 90% 的人服务。
拥有打印机用于技术部分的用户是有限的。(我是他们中的一员)

支持 Arduino Due(ARM 处理器) #626
贡献者作者

Erik,使用 Due 的最初原因是增加了 deltabots 的速度。
当然,随着处理能力的增强,固件在未来可以拥有更多的功能。

顺便说一句,让我们更多地了解一下您正在开发的这个板子;-)

亚历克斯。

支持 Arduino Due(ARM 处理器) #626

@alexborro你可能对 Minnow 感兴趣 https://github.com/minnow-pmc/Minnow

Minnow 是 Arduino 的固件。诀窍是将复杂的计算转移到主机上。

支持 Arduino Due(ARM 处理器) #626

@alexborro
https://github.com/ErikZalm/Marlin-II/blob/master/electronics/photos/Marlin_electronics.jpg

STM32F417 单片机。
以太网。
用于 U 盘的 USB 主机
6x TMC260 步进驱动器
良好的诊断
良好的保护
可选的 4.3″ TFT 屏幕,带电容式触摸。

支持 Arduino Due(ARM 处理器) #626
贡献者

@alexborro我个人不希望我的打印机以 800 毫米/秒的速度运行,即使是在旅行时也是如此。优化你的 gcode,这样旅行就很少了 :)
但是,是的,你说服了我,虽然我没有 delta,也不打算建造一个。

@ErikZalm哦,是的,我记得你正在研究那个。那么代码在哪里?;) 计划开源?

支持 Arduino Due(ARM 处理器) #626
贡献者作者

常见的埃里克,只有一张关于电子产品的图片!!!!你
真的要这样逗我们吗????

我们可以看到更多关于该板的文档吗?- 我想它将是
开源的,对吧

那那个ChibiOS呢?这种板的新固件??

谢谢。

亚历克斯。

2013/10/17 nothinman通知@github.com

@alexborro https://github.com/alexborro我个人不希望我的
打印机以 800mm/s 的速度运行,即使是在旅行时也是如此。优化你的 gcode,这样
旅行就很少了 :)
但是,是的,你说服了我,虽然我没有 delta,也不
打算建造一个。

@ErikZalm https://github.com/ErikZalm哦,是的,我记得你
正在研究那个。那么代码在哪里?;) 计划
开源?


直接回复此电子邮件或在 GitHub 上查看它 https://github.com/ErikZalm/Marlin/issues/626#issuecomment-26551168

Mit freundlichen Grüßen – 最好的问候 – Saudações。

亚历克斯博罗

支持 Arduino Due(ARM 处理器) #626
贡献者

喜欢 (0)