My Marlin configs for Fabrikator Mini and CTC i3 Pro B
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

fan.h 15KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443
  1. /**
  2. * Marlin 3D Printer Firmware
  3. * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
  4. *
  5. * Based on Sprinter and grbl.
  6. * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
  7. *
  8. * This program is free software: you can redistribute it and/or modify
  9. * it under the terms of the GNU General Public License as published by
  10. * the Free Software Foundation, either version 3 of the License, or
  11. * (at your option) any later version.
  12. *
  13. * This program is distributed in the hope that it will be useful,
  14. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  15. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  16. * GNU General Public License for more details.
  17. *
  18. * You should have received a copy of the GNU General Public License
  19. * along with this program. If not, see <https://www.gnu.org/licenses/>.
  20. *
  21. */
  22. #pragma once
  23. //
  24. // lcd/dogm/status/fan.h - Status Screen Fan bitmaps
  25. //
  26. #undef STATUS_FAN_WIDTH
  27. #define STATUS_FAN_WIDTH 20
  28. #if STATUS_FAN_FRAMES <= 2
  29. #define STATUS_FAN_Y 2
  30. #if ENABLED(STATUS_ALT_FAN_BITMAP)
  31. const unsigned char status_fan0_bmp[] PROGMEM = {
  32. B00000001,B11111110,B00000000,
  33. B00000110,B00000001,B10000000,
  34. B00001000,B11111100,B01000000,
  35. B00010000,B11111100,B00100000,
  36. B00010000,B01111000,B00100000,
  37. B00100000,B00110000,B00010000,
  38. B00101100,B00000000,B11010000,
  39. B00101110,B00110001,B11010000,
  40. B00101111,B01111011,B11010000,
  41. B00101111,B01111011,B11010000,
  42. B00101110,B00110001,B11010000,
  43. B00101100,B00000000,B11010000,
  44. B00100000,B00110000,B00010000,
  45. B00010000,B01111000,B00100000,
  46. B00010000,B11111100,B00100000,
  47. B00001000,B11111100,B01000000,
  48. B00000110,B00000001,B10000000,
  49. B00000001,B11111110,B00000000
  50. };
  51. #if STATUS_FAN_FRAMES == 2
  52. const unsigned char status_fan1_bmp[] PROGMEM = {
  53. B00000001,B11111110,B00000000,
  54. B00000110,B00000001,B10000000,
  55. B00001001,B10000110,B01000000,
  56. B00010011,B10000111,B00100000,
  57. B00010111,B10000111,B10100000,
  58. B00101111,B10000111,B11010000,
  59. B00101111,B00000011,B11010000,
  60. B00100000,B00110000,B00010000,
  61. B00100000,B01111000,B00010000,
  62. B00100000,B01111000,B00010000,
  63. B00100000,B00110000,B00010000,
  64. B00101111,B00000011,B11010000,
  65. B00101111,B10000111,B11010000,
  66. B00010111,B10000111,B10100000,
  67. B00010011,B10000111,B00100000,
  68. B00001001,B10000110,B01000000,
  69. B00000110,B00000001,B10000000,
  70. B00000001,B11111110,B00000000
  71. };
  72. #endif
  73. #else // !STATUS_ALT_FAN_BITMAP
  74. const unsigned char status_fan0_bmp[] PROGMEM = {
  75. B00111111,B11111111,B11110000,
  76. B00111000,B00000000,B01110000,
  77. B00110000,B11111100,B00110000,
  78. B00100000,B11111100,B00010000,
  79. B00100000,B01111000,B00010000,
  80. B00100000,B00110000,B00010000,
  81. B00101100,B00000000,B11010000,
  82. B00101110,B00110001,B11010000,
  83. B00101111,B01111011,B11010000,
  84. B00101111,B01111011,B11010000,
  85. B00101110,B00110001,B11010000,
  86. B00101100,B00000000,B11010000,
  87. B00100000,B00110000,B00010000,
  88. B00100000,B01111000,B00010000,
  89. B00100000,B11111100,B00010000,
  90. B00110000,B11111100,B00110000,
  91. B00111000,B00000000,B01110000,
  92. B00111111,B11111111,B11110000
  93. };
  94. #if STATUS_FAN_FRAMES == 2
  95. const unsigned char status_fan1_bmp[] PROGMEM = {
  96. B00111111,B11111111,B11110000,
  97. B00111000,B00000000,B01110000,
  98. B00110001,B10000110,B00110000,
  99. B00100011,B10000111,B00010000,
  100. B00100111,B10000111,B10010000,
  101. B00101111,B10000111,B11010000,
  102. B00101111,B00000011,B11010000,
  103. B00100000,B00110000,B00010000,
  104. B00100000,B01111000,B00010000,
  105. B00100000,B01111000,B00010000,
  106. B00100000,B00110000,B00010000,
  107. B00101111,B00000011,B11010000,
  108. B00101111,B10000111,B11010000,
  109. B00100111,B10000111,B10010000,
  110. B00100011,B10000111,B00010000,
  111. B00110001,B10000110,B00110000,
  112. B00111000,B00000000,B01110000,
  113. B00111111,B11111111,B11110000
  114. };
  115. #endif
  116. #endif // !STATUS_ALT_FAN_BITMAP
  117. #elif STATUS_FAN_FRAMES == 3
  118. #if ENABLED(STATUS_ALT_FAN_BITMAP)
  119. const unsigned char status_fan0_bmp[] PROGMEM = {
  120. B00000001,B11111111,B00000000,
  121. B00000110,B00000000,B11000000,
  122. B00001001,B00000001,B00100000,
  123. B00010111,B10000011,B11010000,
  124. B00010111,B10000011,B11010000,
  125. B00101111,B11000111,B11101000,
  126. B00100111,B11000111,B11001000,
  127. B00100001,B11111111,B00001000,
  128. B00100000,B01111100,B00001000,
  129. B00100000,B01111100,B00001000,
  130. B00100000,B01111100,B00001000,
  131. B00100001,B11111111,B00001000,
  132. B00100111,B11000111,B11001000,
  133. B00101111,B11000111,B11101000,
  134. B00010111,B10000011,B11010000,
  135. B00010111,B10000011,B11010000,
  136. B00001001,B00000001,B00100000,
  137. B00000110,B00000000,B11000000,
  138. B00000001,B11111111,B00000000
  139. };
  140. const unsigned char status_fan1_bmp[] PROGMEM = {
  141. B00000001,B11111111,B00000000,
  142. B00000110,B00110000,B11000000,
  143. B00001001,B11110000,B00100000,
  144. B00010001,B11110000,B00010000,
  145. B00010000,B11110000,B00010000,
  146. B00100000,B11110000,B01101000,
  147. B00100000,B00110001,B11101000,
  148. B00100000,B00111001,B11101000,
  149. B00100000,B01111111,B11111000,
  150. B00111111,B11111111,B11111000,
  151. B00111111,B11111100,B00001000,
  152. B00101111,B00111000,B00001000,
  153. B00101110,B00011000,B00001000,
  154. B00101100,B00011110,B00001000,
  155. B00010000,B00011110,B00010000,
  156. B00010000,B00011111,B00010000,
  157. B00001000,B00011111,B00100000,
  158. B00000110,B00011000,B11000000,
  159. B00000001,B11111111,B00000000
  160. };
  161. const unsigned char status_fan2_bmp[] PROGMEM = {
  162. B00000001,B11111111,B00000000,
  163. B00000110,B00011000,B11000000,
  164. B00001000,B00011111,B00100000,
  165. B00010000,B00011111,B10010000,
  166. B00010100,B00011111,B00010000,
  167. B00101110,B00011110,B00001000,
  168. B00101111,B00011100,B00001000,
  169. B00101111,B10111000,B00001000,
  170. B00111111,B11111100,B00001000,
  171. B00111111,B11111111,B11111000,
  172. B00100000,B01111111,B11111000,
  173. B00100000,B00111011,B11101000,
  174. B00100000,B01110001,B11101000,
  175. B00100000,B11110000,B11101000,
  176. B00010001,B11110000,B01010000,
  177. B00010011,B11110000,B00010000,
  178. B00001001,B11110000,B00100000,
  179. B00000110,B00110000,B11000000,
  180. B00000001,B11111111,B00000000
  181. };
  182. #else // !STATUS_ALT_FAN_BITMAP
  183. const unsigned char status_fan0_bmp[] PROGMEM = {
  184. B00111111,B11111111,B11111000,
  185. B00111110,B00000000,B11111000,
  186. B00111001,B00000001,B00111000,
  187. B00110111,B10000011,B11011000,
  188. B00110111,B10000011,B11011000,
  189. B00101111,B11000111,B11101000,
  190. B00100111,B11000111,B11001000,
  191. B00100001,B11111111,B00001000,
  192. B00100000,B01111100,B00001000,
  193. B00100000,B01111100,B00001000,
  194. B00100000,B01111100,B00001000,
  195. B00100001,B11111111,B00001000,
  196. B00100111,B11000111,B11001000,
  197. B00101111,B11000111,B11101000,
  198. B00110111,B10000011,B11011000,
  199. B00110111,B10000011,B11011000,
  200. B00111001,B00000001,B00111000,
  201. B00111110,B00000000,B11111000,
  202. B00111111,B11111111,B11111000
  203. };
  204. const unsigned char status_fan1_bmp[] PROGMEM = {
  205. B00111111,B11111111,B11111000,
  206. B00111110,B00110000,B11111000,
  207. B00111001,B11110000,B00111000,
  208. B00110001,B11110000,B00011000,
  209. B00110000,B11110000,B00011000,
  210. B00100000,B11110000,B01101000,
  211. B00100000,B00110001,B11101000,
  212. B00100000,B00111001,B11101000,
  213. B00100000,B01111111,B11111000,
  214. B00111111,B11111111,B11111000,
  215. B00111111,B11111100,B00001000,
  216. B00101111,B00111000,B00001000,
  217. B00101110,B00011000,B00001000,
  218. B00101100,B00011110,B00001000,
  219. B00110000,B00011110,B00011000,
  220. B00110000,B00011111,B00011000,
  221. B00111000,B00011111,B00111000,
  222. B00111110,B00011000,B11111000,
  223. B00111111,B11111111,B11111000
  224. };
  225. const unsigned char status_fan2_bmp[] PROGMEM = {
  226. B00111111,B11111111,B11111000,
  227. B00111110,B00011000,B11111000,
  228. B00111000,B00011111,B00111000,
  229. B00110000,B00011111,B10011000,
  230. B00110100,B00011111,B00011000,
  231. B00101110,B00011110,B00001000,
  232. B00101111,B00011100,B00001000,
  233. B00101111,B10111000,B00001000,
  234. B00111111,B11111100,B00001000,
  235. B00111111,B11111111,B11111000,
  236. B00100000,B01111111,B11111000,
  237. B00100000,B00111011,B11101000,
  238. B00100000,B01110001,B11101000,
  239. B00100000,B11110000,B11101000,
  240. B00110001,B11110000,B01011000,
  241. B00110011,B11110000,B00011000,
  242. B00111001,B11110000,B00111000,
  243. B00111110,B00110000,B11111000,
  244. B00111111,B11111111,B11111000
  245. };
  246. #endif // !STATUS_ALT_FAN_BITMAP
  247. #elif STATUS_FAN_FRAMES == 4
  248. #if ENABLED(STATUS_ALT_FAN_BITMAP)
  249. const unsigned char status_fan0_bmp[] PROGMEM = {
  250. B00000001,B11111111,B00000000,
  251. B00000110,B00000000,B11000000,
  252. B00001000,B00111111,B00100000,
  253. B00010000,B01111110,B00010000,
  254. B00010000,B01111100,B00010000,
  255. B00101000,B01111100,B00001000,
  256. B00101100,B00111000,B00001000,
  257. B00101111,B00111001,B11001000,
  258. B00101111,B11111111,B11101000,
  259. B00101111,B11000111,B11101000,
  260. B00101111,B11111111,B11101000,
  261. B00100111,B00111001,B11101000,
  262. B00100000,B00111000,B01101000,
  263. B00100000,B01111100,B00101000,
  264. B00010000,B01111100,B00010000,
  265. B00010000,B11111100,B00010000,
  266. B00001001,B11111000,B00100000,
  267. B00000110,B00000000,B11000000,
  268. B00000001,B11111111,B00000000
  269. };
  270. const unsigned char status_fan1_bmp[] PROGMEM = {
  271. B00000001,B11111111,B00000000,
  272. B00000110,B00000000,B11000000,
  273. B00001000,B00001111,B00100000,
  274. B00010100,B00011111,B11010000,
  275. B00010110,B00011111,B10010000,
  276. B00101111,B00011111,B00001000,
  277. B00101111,B10011110,B00001000,
  278. B00101111,B11111100,B00001000,
  279. B00101111,B11011100,B00001000,
  280. B00100111,B11101111,B11001000,
  281. B00100000,B01110111,B11101000,
  282. B00100000,B01111111,B11101000,
  283. B00100000,B11110011,B11101000,
  284. B00100001,B11110001,B11101000,
  285. B00010011,B11110000,B11010000,
  286. B00010111,B11110000,B01010000,
  287. B00001001,B11100000,B00100000,
  288. B00000110,B00000000,B11000000,
  289. B00000001,B11111111,B00000000
  290. };
  291. const unsigned char status_fan2_bmp[] PROGMEM = {
  292. B00000001,B11111111,B00000000,
  293. B00000110,B10000000,B11000000,
  294. B00001001,B10000000,B00100000,
  295. B00010111,B10000001,B11010000,
  296. B00010111,B11000011,B11010000,
  297. B00100111,B11000111,B11101000,
  298. B00100011,B11000111,B11111000,
  299. B00100001,B11111111,B10001000,
  300. B00100000,B01101100,B00001000,
  301. B00100000,B01101100,B00001000,
  302. B00100000,B01101100,B00001000,
  303. B00100011,B11111111,B00001000,
  304. B00111111,B11000111,B10001000,
  305. B00101111,B11000111,B11001000,
  306. B00010111,B10000111,B11010000,
  307. B00010111,B00000011,B11010000,
  308. B00001000,B00000011,B00100000,
  309. B00000110,B00000010,B11000000,
  310. B00000001,B11111111,B00000000
  311. };
  312. const unsigned char status_fan3_bmp[] PROGMEM = {
  313. B00000001,B11111111,B00000000,
  314. B00000110,B00000000,B11000000,
  315. B00001001,B11110000,B00100000,
  316. B00010001,B11100000,B00010000,
  317. B00010001,B11100000,B00010000,
  318. B00100001,B11100001,B11101000,
  319. B00100000,B11110011,B11101000,
  320. B00100000,B01111111,B11101000,
  321. B00100000,B01110111,B11101000,
  322. B00101000,B11101110,B00101000,
  323. B00101111,B11011100,B00001000,
  324. B00101111,B11111100,B00001000,
  325. B00101111,B10011110,B00001000,
  326. B00101111,B00001111,B00001000,
  327. B00010000,B00001111,B00010000,
  328. B00010000,B00001111,B00010000,
  329. B00001000,B00011111,B00100000,
  330. B00000110,B00000000,B11000000,
  331. B00000001,B11111111,B00000000
  332. };
  333. #else // !STATUS_ALT_FAN_BITMAP
  334. const unsigned char status_fan0_bmp[] PROGMEM = {
  335. B00111111,B11111111,B11111000,
  336. B00111110,B00000000,B11111000,
  337. B00111000,B00111111,B00111000,
  338. B00110000,B01111110,B00011000,
  339. B00110000,B01111100,B00011000,
  340. B00101000,B01111100,B00001000,
  341. B00101100,B00111000,B00001000,
  342. B00101111,B00111001,B11001000,
  343. B00101111,B11111111,B11101000,
  344. B00101111,B11000111,B11101000,
  345. B00101111,B11111111,B11101000,
  346. B00100111,B00111001,B11101000,
  347. B00100000,B00111000,B01101000,
  348. B00100000,B01111100,B00101000,
  349. B00110000,B01111100,B00011000,
  350. B00110000,B11111100,B00011000,
  351. B00111001,B11111000,B00111000,
  352. B00111110,B00000000,B11111000,
  353. B00111111,B11111111,B11111000
  354. };
  355. const unsigned char status_fan1_bmp[] PROGMEM = {
  356. B00111111,B11111111,B11111000,
  357. B00111110,B00000000,B11111000,
  358. B00111000,B00001111,B00111000,
  359. B00110100,B00011111,B11011000,
  360. B00110110,B00011111,B10011000,
  361. B00101111,B00011111,B00001000,
  362. B00101111,B10011110,B00001000,
  363. B00101111,B11111100,B00001000,
  364. B00101111,B11011100,B00001000,
  365. B00100111,B11101111,B11001000,
  366. B00100000,B01110111,B11101000,
  367. B00100000,B01111111,B11101000,
  368. B00100000,B11110011,B11101000,
  369. B00100001,B11110001,B11101000,
  370. B00110011,B11110000,B11011000,
  371. B00110111,B11110000,B01011000,
  372. B00111001,B11100000,B00111000,
  373. B00111110,B00000000,B11111000,
  374. B00111111,B11111111,B11111000
  375. };
  376. const unsigned char status_fan2_bmp[] PROGMEM = {
  377. B00111111,B11111111,B11111000,
  378. B00111110,B10000000,B11111000,
  379. B00111001,B10000000,B00111000,
  380. B00110111,B10000001,B11011000,
  381. B00110111,B11000011,B11011000,
  382. B00100111,B11000111,B11101000,
  383. B00100011,B11000111,B11111000,
  384. B00100001,B11111111,B10001000,
  385. B00100000,B01101100,B00001000,
  386. B00100000,B01101100,B00001000,
  387. B00100000,B01101100,B00001000,
  388. B00100011,B11111111,B00001000,
  389. B00111111,B11000111,B10001000,
  390. B00101111,B11000111,B11001000,
  391. B00110111,B10000111,B11011000,
  392. B00110111,B00000011,B11011000,
  393. B00111000,B00000011,B00111000,
  394. B00111110,B00000010,B11111000,
  395. B00111111,B11111111,B11111000
  396. };
  397. const unsigned char status_fan3_bmp[] PROGMEM = {
  398. B00111111,B11111111,B11111000,
  399. B00111110,B00000000,B11111000,
  400. B00111001,B11110000,B00111000,
  401. B00110001,B11100000,B00011000,
  402. B00110001,B11100000,B00011000,
  403. B00100001,B11100001,B11101000,
  404. B00100000,B11110011,B11101000,
  405. B00100000,B01111111,B11101000,
  406. B00100000,B01110111,B11101000,
  407. B00101000,B11101110,B00101000,
  408. B00101111,B11011100,B00001000,
  409. B00101111,B11111100,B00001000,
  410. B00101111,B10011110,B00001000,
  411. B00101111,B00001111,B00001000,
  412. B00110000,B00001111,B00011000,
  413. B00110000,B00001111,B00011000,
  414. B00111000,B00011111,B00111000,
  415. B00111110,B00000000,B11111000,
  416. B00111111,B11111111,B11111000
  417. };
  418. #endif // !STATUS_ALT_FAN_BITMAP
  419. #endif