在esp32控制器的3D打印机主板上配置marlin固件的OLED

先给出结论:在marlin固件中开启I2C OLED只能使用GPIO22->SCL GPIO21->SDA
因为marlin固件关于OLED的驱动都来自U8glib-HAL这个库。这个库是arduino的库。
而arduino的底层配置文件将GPIO22和GPIO21设置为了I2C接口

想着给es32的3D打印机主板的marlin中配置OLED。一开始的OLED的scl引脚连接的是IO17 sda引脚连接的是IO16,本想着在固件中去改io口.先是按照marlin官网Home | Marlin Firmware -> configure ->Configuration.h->LCD Controller->I2C Graphical LCDs->使能OLED_PANEL_TINYBOY2当前的定义。使能之后就可以使用oled 编码器,蜂鸣器。

DIY Tiny OLED I2C full graphics controller 详情见这篇帖子。这篇帖子的第7页给出了具体的修改方法。不过给出的是BTT SKR V1.4这个板子。不过问题不大。照着改就是了。
具体配置情况如下:
1、Configuration.h 文件中使能定义 OLED_PANEL_TINYBOY2

--- Marlin/Configuration.h   // Tiny OLED 128x64 OLED, see [reprap.org]#define OLED_PANEL_TINYBOY2

2、Marlin/src/inc/Conditionals_LCD.h配置如下代码(这个好像不用搞就行)

#define IS_U8GLIB_SSD1306
#define IS_ULTIPANEL+ #elif ENABLED(OLED_PANEL_TINYOLED)
+
+    #ifndef U8GLIB_SSD1306   // define U8GLIB_SSD1306 in Configuration.h if not using SH1106 version
+      #define U8GLIB_SH1106 // SSD1306 and SH1106 are similar, but have slightly different horizontal shift
+    #endif
+    #define ULTIPANEL
+    #define NEWPANEL
+    #define ULTRA_LCD
+    #define DOGLCD
+    #define REVERSE_ENCODER_DIRECTION
+    #define REVERSE_MENU_DIRECTION

3、在对应的pins文件夹中配置相关的板子的文件中的引脚,我选择的ESP32板子为 BOARD_ESPRESSIF_ESP32这板子对应的引脚为:Marlin\src\pins\esp32\pins_ESP32.h然后配置相应的引脚:

+    #define BTN_EN1                        16 //这个引脚定义自己的
+    #define BTN_EN2                        17
+    #define BTN_ENC                        18
+    #define BEEPER_PIN                     19

如果不使用蜂鸣器的话可以将BEEPER_PIN注释掉或者引脚改为-1。

但是,配置中有编码器的引脚,有蜂鸣器的引脚就是没有scl和sda的引脚,那我的OLED屏幕怎么办。这让我百思不得其解,于是就开始了漫长的百度之旅。

直到我看到了(开源)ESP32 3D打印机主板的OLED显示屏,只能用4线OLED显示屏,专为我开源的主板设计的,其它主板不支持_哔哩哔哩_bilibili这个视频。简直如获至宝,赶紧下下来查阅一番。大体配置和上面相似,并且也没有配置scl和sda引脚,这不禁让人怀疑,两个板子都没有配置i2c的引脚,并且在祈-FPV开源的板子中这不禁让人怀疑是不是引脚的问题。
于是就开始查esp32nodemcu arduino的引脚图我发现仅有io22和io21标注了i2c标识。

我又搜索esp32 i2c arduino 于是我又发现了这篇文章:esp32 在arduino1.8下的I2C引脚

于是破案了。Arduino底层调用了io21和io22作为i2c引脚然后esp32的u8g2 oled图形库又sda和scl作为驱动oled。所以在marlin的引脚定义中没有定义关于I2C的引脚。因此得出结论,在marlin固件中esp32想要使用I2C OLED屏幕必须使用IO21和IO22引脚。

【在esp32的3D打印机主板上配置marlin固件OLED】相关推荐

  1. marlin固件烧录教程_i3型3D打印机制作详解――Marlin固件介绍

    Marlin固件下载 基本配置 使用 Arduino IDE 打开 marlin.ino,切换到 Configuration.h 即可查看并修改该文件.或者使用任何一款文本编辑器(notepad,no ...

  2. 【3D打印机】原来配置Marlin2.0这么简单,别说我没告诉你。

    `` ​ 可能由于各人的打印机款式不同,某些参数没有出现在文中,但是只要你完全看完本指南,就可以理解Marlin是如何工作的,我相信在此基础上,你在固件中找到哪些不同配置并不困难. 本文的最终的目标是 ...

  3. 打印机打印一次出三张_一次性帮你搞定3D打印机堵塞问题

    3D打印技术是近年来工业领域的新型制造技术,随着3D打印机制造技术的成熟及制造产业链的不断完善,适合家庭.学校等场合使用的桌面级3D打印机也应运而生. 桌面级3D打印机 目前3D打印机主要有" ...

  4. 电脑无法通过USB识别3D打印机

    使用软件:Ultimaker Cura 3D打印机主板型号:Arduino ATmega 2560 (一款国产类Prusa结构的3D打印机,原厂已倒闭) 电脑型号:win 8.1 主要问题:将3D打印 ...

  5. 3D打印机故障问题与解决总集

    1.打印中途突然停止,错误指令中含kill() called或温度不可控 多为电源的接触问题引起 检查温度探头是否贴合热床,喷头 检查电源接头是否接触不良,挪动线路检查是否有短路可能. 2.步进电机发 ...

  6. 入门级3D打印机的功能是怎样的?

    刚刚接触3D打印的朋友如想购入3D打印机的话一般都会选购入门级3D打印机.那么入门级3D打印机的功能一般是怎样的呢?3dlabstore告诉你! 入门级3D打印机价钱上当然比较便宜,但功能上会较简单. ...

  7. 3D打印机硬件驱动-马林固件最新版本2.0.X中文注释(2)marlin 2.0.9.2 截至发稿时间2021年12月16日

    /**  * Marlin 3D Printer Firmware 马林3D打印机固件  * Copyright (c) 2020 MarlinFirmware [https://github.com ...

  8. marlin固件烧录教程_【打印虎】Marlin firmware RepRap Prusa i3 3D打印机固件配置教程.pdf...

    [打印虎]Marlin firmware RepRap Prusa i3 3D打印机固件配置教程 [打印虎原创]RepRap_Prusa_i3_3D 打印机固件 Marlin_firmware 配置教 ...

  9. BLV 3D打印机Klipper配置参考

    记录一下我的BLV mgn Cube 3D打印机升级Klipper的配置,功能包括: 树莓派3B作为主控 BIGTREETECH SKR V1.3主板 bltouch自动调平 断料检测 倾斜校正 多Z ...

  10. prusai3打印机使用教程_prusa i3 3D打印机固件Marlin配置初学者篇

    前边的教程已经给大家介绍了如何组装Prusa i3打印机,不知道各位小伙伴有没有get到,既然打印机已经有了躯体,那么就需要一个灵魂.这个灵魂就是Marlin固件,记得刚开始了解3D打印机的时候,经常 ...

最新文章

  1. R语言ggplot2可视化箱图、配置抖动数据点(jitter points)避免数据点互相覆盖、并使用线条(line)连接两个箱图中不同分组成对的数据点(jitter on Boxplots)
  2. GPU — Overview
  3. 【7集iCore3基础视频】7-7 Qt5.2.1安装
  4. 12/12团队会议10
  5. java sqlserver 2000_谁能救救我啊,关于JAVA连接SQLserver2000
  6. 小米合作鸿蒙系统了么,小米等国产手机会使用鸿蒙系统吗?
  7. android webview 获取图片,Android – 保存WebView中的图片
  8. 计算机文档vmware安装虚拟机,教你如何用VMware虚拟机安装系统.docx
  9. yii 添加数据时 有默认值 就赋值默认值
  10. FileNotFoundError: [Errno 2] No such file or directory: 'traingingDigits/0_0.txt'
  11. c语言抬起按键,c语言获得键盘的按键
  12. JAVA入门级教学之(局部内部类)
  13. java多线程编程基础
  14. 【转】C#安装包(自动卸载低版本)
  15. c语言存储类型重要吗,C语言储存类别(Storage Class)
  16. php ios支付宝不回调,支付宝 支付成功 ios 不回调
  17. 关于SpringMVC注解
  18. Amesim学习——气体混合室仿真
  19. 7.26 1004度度熊的午饭时光 百度之星题解
  20. linux使用jinja2模板_Jinja2 教程

热门文章

  1. 10大主流3D建模技术
  2. wttr.in Linux 下查看天气
  3. 迅雷下载遇到“应版权方要求无法下载”,怎么办
  4. 电容器充放电的原理是什么?
  5. 怎么查询显卡hdmi接口版本_HDMI接口基础知识大扫盲
  6. 2020如何一键群发小程序给5000好友或群
  7. 联想台式机计算机接口,我的电脑显卡是什么样的接口?
  8. B站视频缓存 音频和视频批量合并
  9. SCDM学习笔记(1)
  10. 固态硬盘启动计算机时间,固态硬盘如何做到10秒快速开机