Skip to content

Apex-yuan/stmarlin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Stmarlin

这是一个将marlin移植到STM32平台的3D打印机固件,之前已经移植过一个版本,当时版本为实现功能,忽略了很多工程结构和一些细节方面的东西,这里基于当时能用的版本重新整理的一份固件。此版本定名为Stmarlin,意为基于ST公司的硬件平台移植marlin固件。

最初固件的版本为1.x,这里仍保留原固件对当前版本的贡献的价值,此处以V2.0.0为起始版本号开始,向后继续完善。

当前固件主要是基于marlin固件1.0.2-2版本移植而来。

  • V2.0.0 2018/2/4

    1.该版本能够实现通过上位机控制实现打印功能(尚未完整测试),目前为不支持SD卡,不支持LCD屏幕显示。 2.该版本是从之前移植工程上继续优化而来的3D打印机固件,当前参数依旧支持自己DIY的3D打印机,端口配置依旧和当时设计的硬件匹配。 3.在步进电机控制模块和路径规划模块分别增加了调试开关,可以通过打开.h文件中定义的调试开关,来开启调试模式。通过这些调试开关可以很方便测试其中的原理。 4.新增加了fastio.h用来实现类似于原版marlin固件中的WRITE等函数。pin.h文件中只需制定引脚号(如:PF10等)即可。在后续如需增加引脚实现 其他功能支持需要在两个文件中都增加相应的引脚定义支持,并在相应功能初始化函数中初始化该引脚。 5.去除了原版本中的include_config.h(包含了所有要用到的头文件),包含这个头文件虽会给写程序带来一些方便,但会使编译效率降低,也会使得文件 包含关系不够名明确。文件包含要只包含该文件用到的头文件,软件部分是分层级的,文件包含要做到顶层文件包含底层文件,底层文件尽量不要包含顶层文件 同一层级个文件之间可以互相包含。 6.规范了工程中的代码风格,按最新版marlin固件官网规范的风格。注释规范尚不标准,后面慢慢完善。 7.重新优化了工程结构,具体结构可参考Stmarlin Keil MDK 工程目录.mmap,并将代码文件做了重新分类,有些文件夹仍为空,是后面优化升级时需要慢慢填充的。 8.该版本采用C99标准,要在选项里面C/C++栏勾选上C99。此外要支持printf函数要在选项中勾选上使用微库。

  • V2.0.1 2018/3/10

    从之前的固件为新搭建的工程添加细节特性支持。

    1.增加sdio的板级支持代码 OK 2.移植FATFS文件系统 OK 3.增加stmarlin读卡支持 OK 4.增加屏幕菜单 OK

    测试当前程序: 当前程序运行测试有问题,喷头在打印过程中总是莫名其妙的沿X轴或Y轴运动到最大位置或最小位置再返回。通过测试发现是stmarlin.c文件中process_command()函数和stepper.c文件中的步进电机中断服务函数的问题,具体原因还不清楚。通过将这两部分代码替换为原来的代码即可正常运行,只替换一处问题仍然存在。

    该版本基本将原来完整的打印机固件功能已完全添加上来了,新添加的部分代码依然比较乱,尚未整理完全。经过测试可以通过屏幕控制正常打印。因此以此版作为备份后面继续整理代码。

  • V2.0.2 2018/4/12

    1.修改fastio.h文件,将READ_INPUT替换为READ,并删除READ_OUTPUT的定义。(READ即代表了读取引脚的输入状态,和原版marlin固件中保持一致) 2.在configuration.h文件中增加了#define LCD12864_ST7920的宏名,尚需要修改代码使LCD12864可通过宏定义的方式选择是否使用,方便后面增加液晶屏。 3.lcd12864_menu.c文件中多处增加支持SDSUPPORT的宏,使之可以通过修改宏的方式选择是否支持SD卡,与此同时还可以使用LCD控制打印机。

    4.现在的代码支持了SD卡的热插拔,但依旧还有bug,现在我之前的外壳坏掉的SD卡插上依旧不能读取到。 解决方法:(尚未想到) 5.目前在未插入SD卡开机,和插入SD卡开机后再拔出SD卡,CardMenu菜单显示都有异常。 (已解决) 解决方法:昨天的解决方法不是很好,原来写的程序的功能完全可以实现,只是因为之前SD卡坏掉卡到SD卡槽里了致使SD卡插入监测引脚始终处于低电平状态(即SD卡插入状态)

    写菜单的心得: 1.在当前菜单中显示输出尽量不要采用清屏函数。 2.在菜单跳转之前最好加上一次清屏处理,防止之前菜单的显示残留。 3.退出菜单时,应将当前菜单调整为初始化状态。

    新的思路: 搞个按键缓冲区,需要处理时从缓冲区中提取。

    后续计划: 1.修正打印状态菜单下文件名不滚动显示的问题,问题在状态菜单中的文件名还是之前的中间变量。 2.修正SD卡文件菜单文件名较长,滚动显示会是下一行产生乱码的问题。 3.在SD卡菜单中为第一个文件和最后一个文件绘制不同的选中标记。 4.代码规范化,删除不需要的代码。并注明修改日志。

    已完成:

    1.修正了SD卡插入拔出的bug 2.重新修正了屏幕菜单的程序 (周末整理一下这块的更新日志,如sd卡菜单条目,如何写屏幕菜单等)

  • V2.0.3 2018/ 4/19

    1.在stepper.c文件中步进电机同步函数中解除了lcd_update函数的屏蔽,以修正在LCD状态菜单中按按键不反应的bug (待测试) 2.尚需要修正在调整参数菜单改完的参数在打印完成之后恢复默认或清零()

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages