Add "About Printer" information menu.

Includes:
  *firmware version / branch / date.
  *extruder count
  *board information (name, serial details, power supply type)
  *thermistors (names, min/max temperatures)
  *printer statistics (PRINTCOUNTER details)

Thanks to @thinkyhead for contributions.
2.0.x
Anthony Birkett 9 years ago committed by Scott Lahteine
parent 77a923d8ce
commit 7a377c1d75

@ -364,6 +364,9 @@
// @section lcd
// Include a page of printer information in the LCD Main Menu
//#define LCD_INFO_MENU
#if ENABLED(SDSUPPORT)
// Some RAMPS and other boards don't detect when an SD card is inserted. You can work

@ -473,6 +473,22 @@ static void lcd_implementation_mark_as_selected(uint8_t row, bool isSelected) {
u8g.setPrintPos((START_ROW) * (DOG_CHAR_WIDTH), (row + 1) * (DOG_CHAR_HEIGHT));
}
static void lcd_implementation_drawmenu_static(uint8_t row, const char* pstr, bool center=true) {
char c;
uint8_t n = LCD_WIDTH;
u8g.setPrintPos(0, (row + 1) * (DOG_CHAR_HEIGHT));
u8g.setColorIndex(1); // normal text
if (center) {
int8_t pad = (LCD_WIDTH - lcd_strlen_P(pstr)) / 2;
while (--pad >= 0) { lcd_print(' '); n--; }
}
while (c = pgm_read_byte(pstr)) {
n -= lcd_print(c);
pstr++;
}
while (n--) lcd_print(' ');
}
static void lcd_implementation_drawmenu_generic(bool isSelected, uint8_t row, const char* pstr, char pre_char, char post_char) {
UNUSED(pstr);
UNUSED(pre_char);

@ -364,6 +364,9 @@
// @section lcd
// Include a page of printer information in the LCD Main Menu
//#define LCD_INFO_MENU
#if ENABLED(SDSUPPORT)
// Some RAMPS and other boards don't detect when an SD card is inserted. You can work

@ -364,6 +364,9 @@
// @section lcd
// Include a page of printer information in the LCD Main Menu
//#define LCD_INFO_MENU
#if ENABLED(SDSUPPORT)
// Some RAMPS and other boards don't detect when an SD card is inserted. You can work

@ -364,6 +364,9 @@
// @section lcd
// Include a page of printer information in the LCD Main Menu
//#define LCD_INFO_MENU
#if ENABLED(SDSUPPORT)
// Some RAMPS and other boards don't detect when an SD card is inserted. You can work

@ -364,6 +364,9 @@
// @section lcd
// Include a page of printer information in the LCD Main Menu
//#define LCD_INFO_MENU
#if ENABLED(SDSUPPORT)
// Some RAMPS and other boards don't detect when an SD card is inserted. You can work

@ -370,6 +370,9 @@
// @section lcd
// Include a page of printer information in the LCD Main Menu
//#define LCD_INFO_MENU
#if ENABLED(SDSUPPORT)
// Some RAMPS and other boards don't detect when an SD card is inserted. You can work

@ -364,6 +364,9 @@
// @section lcd
// Include a page of printer information in the LCD Main Menu
//#define LCD_INFO_MENU
#if ENABLED(SDSUPPORT)
// Some RAMPS and other boards don't detect when an SD card is inserted. You can work

@ -364,6 +364,9 @@
// @section lcd
// Include a page of printer information in the LCD Main Menu
//#define LCD_INFO_MENU
#if ENABLED(SDSUPPORT)
// Some RAMPS and other boards don't detect when an SD card is inserted. You can work

@ -372,6 +372,9 @@
// @section lcd
// Include a page of printer information in the LCD Main Menu
//#define LCD_INFO_MENU
#if ENABLED(SDSUPPORT)
// Some RAMPS and other boards don't detect when an SD card is inserted. You can work

@ -364,6 +364,9 @@
// @section lcd
// Include a page of printer information in the LCD Main Menu
//#define LCD_INFO_MENU
#if ENABLED(SDSUPPORT)
// Some RAMPS and other boards don't detect when an SD card is inserted. You can work

@ -366,6 +366,9 @@
// @section lcd
// Include a page of printer information in the LCD Main Menu
//#define LCD_INFO_MENU
#if ENABLED(SDSUPPORT)
// Some RAMPS and other boards don't detect when an SD card is inserted. You can work

@ -366,6 +366,9 @@
// @section lcd
// Include a page of printer information in the LCD Main Menu
//#define LCD_INFO_MENU
#if ENABLED(SDSUPPORT)
// Some RAMPS and other boards don't detect when an SD card is inserted. You can work

@ -365,6 +365,9 @@
// @section lcd
// Include a page of printer information in the LCD Main Menu
//#define LCD_INFO_MENU
#if ENABLED(SDSUPPORT)
// Some RAMPS and other boards don't detect when an SD card is inserted. You can work

@ -370,6 +370,9 @@
// @section lcd
// Include a page of printer information in the LCD Main Menu
//#define LCD_INFO_MENU
#if ENABLED(SDSUPPORT)
// Some RAMPS and other boards don't detect when an SD card is inserted. You can work

@ -366,6 +366,9 @@
// @section lcd
// Include a page of printer information in the LCD Main Menu
//#define LCD_INFO_MENU
#if ENABLED(SDSUPPORT)
// Some RAMPS and other boards don't detect when an SD card is inserted. You can work

@ -364,6 +364,9 @@
// @section lcd
// Include a page of printer information in the LCD Main Menu
//#define LCD_INFO_MENU
#if ENABLED(SDSUPPORT)
// Some RAMPS and other boards don't detect when an SD card is inserted. You can work

@ -364,6 +364,9 @@
// @section lcd
// Include a page of printer information in the LCD Main Menu
//#define LCD_INFO_MENU
#if ENABLED(SDSUPPORT)
// Some RAMPS and other boards don't detect when an SD card is inserted. You can work

@ -520,5 +520,44 @@
#ifndef MSG_DELTA_CALIBRATE_CENTER
#define MSG_DELTA_CALIBRATE_CENTER "Calibrate Center"
#endif
#ifndef MSG_INFO_MENU
#define MSG_INFO_MENU "About Printer"
#endif
#ifndef MSG_INFO_STATS_MENU
#define MSG_INFO_STATS_MENU "Printer Stats"
#endif
#ifndef MSG_INFO_BOARD_MENU
#define MSG_INFO_BOARD_MENU "Board Info"
#endif
#ifndef MSG_INFO_THERMISTOR_MENU
#define MSG_INFO_THERMISTOR_MENU "Thermistors"
#endif
#ifndef MSG_INFO_EXTRUDERS
#define MSG_INFO_EXTRUDERS "Extruders"
#endif
#ifndef MSG_INFO_BAUDRATE
#define MSG_INFO_BAUDRATE "Baud"
#endif
#ifndef MSG_INFO_PROTOCOL
#define MSG_INFO_PROTOCOL "Protocol"
#endif
#ifndef MSG_INFO_TOTAL_PRINTS
#define MSG_INFO_TOTAL_PRINTS "Total Prints"
#endif
#ifndef MSG_INFO_FINISHED_PRINTS
#define MSG_INFO_FINISHED_PRINTS "Finished Prints"
#endif
#ifndef MSG_INFO_PRINT_TIME
#define MSG_INFO_PRINT_TIME "Total Print Time"
#endif
#ifndef MSG_INFO_MIN_TEMP
#define MSG_INFO_MIN_TEMP "Min Temp"
#endif
#ifndef MSG_INFO_MAX_TEMP
#define MSG_INFO_MAX_TEMP "Max Temp"
#endif
#ifndef MSG_INFO_PSU
#define MSG_INFO_PSU "Power Supply"
#endif
#endif // LANGUAGE_EN_H

@ -24,10 +24,19 @@
* 3DRAG (and K8200) Arduino Mega with RAMPS v1.4 pin assignments
*/
#include "pins_RAMPS_14.h"
#ifndef BOARD_NAME
#define BOARD_NAME "3Drag"
#endif
#ifndef DEFAULT_MACHINE_NAME
#define DEFAULT_MACHINE_NAME "3Drag"
#endif
#define DEFAULT_MACHINE_NAME "3Drag"
#define DEFAULT_SOURCE_CODE_URL "http://3dprint.elettronicain.it/"
#ifndef DEFAULT_SOURCE_CODE_URL
#define DEFAULT_SOURCE_CODE_URL "http://3dprint.elettronicain.it/"
#endif
#include "pins_RAMPS_14.h"
#undef Z_ENABLE_PIN
#define Z_ENABLE_PIN 63

@ -31,6 +31,7 @@
#endif
#define DEFAULT_MACHINE_NAME "Makibox"
#define BOARD_NAME "5DPrint D8"
#define LARGE_FLASH true

@ -23,7 +23,8 @@
/**
* Board 99 pin assignments
*/
#define BOARD_NAME "99 Unknown"
#define X_STEP_PIN 2
#define X_DIR_PIN 3
#define X_ENABLE_PIN -1

@ -28,6 +28,8 @@
#error "Oops! Make sure you have 'Arduino Mega 2560' selected from the 'Tools -> Boards' menu."
#endif
#define BOARD_NAME "AJ4P"
// Servo support
#define SERVO0_PIN 22 // Motor header MX1
#define SERVO1_PIN 23 // Motor header MX2

@ -24,6 +24,7 @@
* Azteeg X1 pin assignments
*/
#define SANGUINOLOLU_V_1_2
#define BOARD_NAME "Azteeg X1"
#define SANGUINOLOLU_V_1_2
#include "pins_SANGUINOLOLU_11.h"

@ -24,6 +24,8 @@
* AZTEEG_X3 Arduino Mega with RAMPS v1.4 pin assignments
*/
#define BOARD_NAME "Azteeg X3"
#include "pins_RAMPS_14_EFB.h"
#if ENABLED(VIKI2) || ENABLED(miniVIKI)

@ -24,6 +24,8 @@
* AZTEEG_X3_PRO (Arduino Mega) pin assignments
*/
#define BOARD_NAME "Azteeg X3 Pro"
#include "pins_RAMPS_14.h"
#undef FAN_PIN

@ -24,6 +24,8 @@
* BAM&DICE Due (Arduino Mega) pin assignments
*/
#define BOARD_NAME "2PrintBeta Due"
#include "pins_RAMPS_14_EFB.h"
#undef TEMP_0_PIN

@ -28,6 +28,8 @@
#error "Oops! Make sure you have 'Arduino Mega 2560' selected from the 'Tools -> Boards' menu."
#endif
#define BOARD_NAME "ZUM Mega 3D"
#include "pins_RAMPS_13.h"
#undef X_MAX_PIN

@ -31,6 +31,8 @@
#error "Oops! Make sure you have 'Brainwave' selected from the 'Tools -> Boards' menu."
#endif
#define BOARD_NAME "Brainwave"
#define X_STEP_PIN 27
#define X_DIR_PIN 29
#define X_ENABLE_PIN 28

@ -37,6 +37,8 @@
#error "Uncomment #define AT90USBxx_TEENSYPP_ASSIGNMENTS in fastio.h for this config"
#endif
#define BOARD_NAME "Brainwave Pro"
#define LARGE_FLASH true
#define X_STEP_PIN 33

@ -28,6 +28,7 @@
#error "Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu."
#endif
#define BOARD_NAME "Cheaptronic v1.0"
#define LARGE_FLASH true
// X motor stepper

@ -6,6 +6,8 @@
#error Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu.
#endif
#define BOARD_NAME "CN Controls V12"
//#define LARGE_FLASH true
#define X_ENABLE_PIN 26

@ -28,6 +28,8 @@
#error "Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu."
#endif
#define BOARD_NAME "Elefu Ra v3"
#define X_STEP_PIN 49
#define X_DIR_PIN 13
#define X_ENABLE_PIN 48

@ -24,6 +24,8 @@
* FELIXprinters v2.0/3.0 (RAMPS v1.4) pin assignments
*/
#define BOARD_NAME "Felix 2.0+"
#include "pins_RAMPS_14_EFB.h"
#undef HEATER_1_PIN

@ -28,6 +28,7 @@
#error "Oops! Make sure you have 'Sanguino' selected from the 'Tools -> Boards' menu."
#endif
#define BOARD_NAME "Gen3 Monolithic"
#define DEBUG_PIN 0
// x axis

@ -28,6 +28,8 @@
#error "Oops! Make sure you have 'Sanguino' selected from the 'Tools -> Boards' menu."
#endif
#define BOARD_NAME "Gen3+"
#define X_STEP_PIN 15
#define X_DIR_PIN 18
#define X_STOP_PIN 20

@ -30,6 +30,10 @@
#endif
#endif
#ifndef BOARD_NAME
#define BOARD_NAME "Gen6"
#endif
//x axis pins
#define X_STEP_PIN 15
#define X_DIR_PIN 18

@ -24,4 +24,6 @@
* Gen6 Deluxe pin assignments
*/
#define BOARD_NAME "Gen6 Deluxe"
#include "pins_GEN6.h"

@ -28,6 +28,10 @@
#error "Oops! Make sure you have 'Gen7' selected from the 'Tools -> Boards' menu."
#endif
#ifndef BOARD_NAME
#define BOARD_NAME "Gen7 v1.1 / 1.2"
#endif
#ifndef GEN7_VERSION
#define GEN7_VERSION 12 // v1.x
#endif

@ -24,7 +24,7 @@
* Gen7 v1.3 pin assignments
*/
#define MOTHERBOARD BOARD_GEN7_12
#define GEN7_VERSION 13 // v1.3
#define BOARD_NAME "Gen7 v1.3"
#define GEN7_VERSION 13 // v1.3
#include "pins_GEN7_12.h"

@ -24,12 +24,14 @@
* Gen7 v1.4 pin assignments
*/
#define GEN7_VERSION 14 // v1.4
#if !defined(__AVR_ATmega644P__) && !defined(__AVR_ATmega644__) && !defined(__AVR_ATmega1284P__)
#error "Oops! Make sure you have 'Gen7' selected from the 'Tools -> Boards' menu."
#endif
#define BOARD_NAME "Gen7 v1.4"
#define GEN7_VERSION 14 // v1.4
//x axis pins
#define X_STEP_PIN 29
#define X_DIR_PIN 28

@ -31,6 +31,8 @@
#error "Oops! Make sure you have 'Gen7' selected from the 'Tools -> Boards' menu."
#endif
#define BOARD_NAME "Gen7 Custom"
//x axis pins
#define X_STEP_PIN 21 // different from standard GEN7
#define X_DIR_PIN 20 // different from standard GEN7

@ -25,10 +25,8 @@
* Identical to 3DRAG
*/
#include "pins_3DRAG.h"
#undef DEFAULT_MACHINE_NAME
#define BOARD_NAME "Velleman K8200"
#define DEFAULT_MACHINE_NAME "K8200"
#undef DEFAULT_SOURCE_CODE_URL
#define DEFAULT_SOURCE_CODE_URL "https://github.com/CONSULitAS/Marlin-K8200"
#include "pins_3DRAG.h"

@ -28,6 +28,8 @@
#error "Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu."
#endif
#define BOARD_NAME "Leapfrog"
#define X_STEP_PIN 28
#define X_DIR_PIN 63
#define X_ENABLE_PIN 29

@ -32,6 +32,8 @@
#error "Mega Controller supports up to 2 extruders. Comment this line to keep going."
#endif
#define BOARD_NAME "Mega Controller"
#define SERVO0_PIN 30
#define SERVO1_PIN 31
#define SERVO2_PIN 32

@ -28,6 +28,7 @@
#error "Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu."
#endif
#define BOARD_NAME "Megatronics"
#define LARGE_FLASH true
#define X_STEP_PIN 26

@ -28,6 +28,7 @@
#error "Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu."
#endif
#define BOARD_NAME "Megatronics v2.0"
#define LARGE_FLASH true
#define X_STEP_PIN 26

@ -28,6 +28,7 @@
#error "Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu."
#endif
#define BOARD_NAME "Megatronics v3.0"
#define LARGE_FLASH true
#if ENABLED(Z_PROBE_SLED)

@ -24,10 +24,11 @@
* Melzi pin assignments
*/
#define SANGUINOLOLU_V_1_2
#define BOARD_NAME "Melzi"
#if defined(__AVR_ATmega1284P__)
#define LARGE_FLASH true
#endif
#define SANGUINOLOLU_V_1_2
#include "pins_SANGUINOLOLU_11.h"

@ -24,12 +24,11 @@
* Melzi with ATmega1284 (MaKr3d version) pin assignments
*/
#undef MOTHERBOARD
#define MOTHERBOARD BOARD_MELZI
#define SANGUINOLOLU_V_1_2
#define BOARD_NAME "Melzi ATmega1284"
#if defined(__AVR_ATmega1284P__)
#define LARGE_FLASH true
#endif
#define SANGUINOLOLU_V_1_2
#include "pins_SANGUINOLOLU_11.h"

@ -28,6 +28,7 @@
#error "Oops! Make sure you have 'Arduino Mega 2560 or Rambo' selected from the 'Tools -> Boards' menu."
#endif
#define BOARD_NAME "Mini Rambo"
#define LARGE_FLASH true
#define X_STEP_PIN 37

@ -28,6 +28,7 @@
#error "Oops! Make sure you have 'Minitronics' selected from the 'Tools -> Boards' menu."
#endif
#define BOARD_NAME "Minitronics v1.0 / v1.1"
#define LARGE_FLASH true
#define X_STEP_PIN 48

@ -29,6 +29,8 @@
* MKS v1.4 (Extruder, Extruder, Fan, Bed)
*/
#define BOARD_NAME "MKS > v1.3"
#include "pins_RAMPS_14_EFB.h"
#undef HEATER_1_PIN

@ -24,6 +24,8 @@
* MKS BASE 1.0 Arduino Mega2560 with RAMPS v1.4 pin assignments
*/
#define BOARD_NAME "MKS BASE 1.0"
#include "pins_RAMPS_14_EFB.h"
#undef HEATER_1_PIN

@ -55,6 +55,8 @@
#error "Oops! Make sure you have 'Sanguino' selected from the 'Tools -> Boards' menu. (Final OMCA board)"
#endif
#define BOARD_NAME "Final OMCA"
#define X_STEP_PIN 26
#define X_DIR_PIN 25
#define X_ENABLE_PIN 10

@ -54,6 +54,8 @@
#error "Oops! Make sure you have 'SanguinoA' selected from the 'Tools -> Boards' menu."
#endif
#define BOARD_NAME "Alpha OMCA"
#define X_STEP_PIN 21
#define X_DIR_PIN 20
#define X_ENABLE_PIN 24

@ -35,6 +35,7 @@
#error "These Printrboard assignments depend on traditional Marlin assignments, not AT90USBxx_TEENSYPP_ASSIGNMENTS in fastio.h"
#endif
#define BOARD_NAME "Printrboard"
#define LARGE_FLASH true
// Disable JTAG pins so they can be used for the Extrudrboard

@ -35,6 +35,7 @@
#error "These Printrboard assignments depend on traditional Marlin assignments, not AT90USBxx_TEENSYPP_ASSIGNMENTS in fastio.h"
#endif
#define BOARD_NAME "Printrboard Rev F"
#define LARGE_FLASH true
#define X_STEP_PIN 0

@ -28,6 +28,8 @@
#error "Oops! Make sure you have 'Arduino Mega 2560' selected from the 'Tools -> Boards' menu."
#endif
#define BOARD_NAME "Rambo"
#define LARGE_FLASH true
// Servo support

@ -33,6 +33,9 @@
*
*/
#define IS_RAMPS_13
#ifndef BOARD_NAME
#define BOARD_NAME "RAMPS 1.3"
#endif
#define IS_RAMPS_13
#include "pins_RAMPS_14.h"

@ -26,6 +26,7 @@
* RAMPS_13_EFB (Extruder, Fan, Bed)
*/
#define IS_RAMPS_13
#define BOARD_NAME "RAMPS 1.3 EFB"
#define IS_RAMPS_13
#include "pins_RAMPS_14_EFB.h"

@ -48,6 +48,10 @@
#error "Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu."
#endif
#ifndef BOARD_NAME
#define BOARD_NAME "RAMPS 1.4"
#endif
#define LARGE_FLASH true
#ifdef IS_RAMPS_13

@ -26,6 +26,9 @@
* RAMPS_14_EFB (Extruder, Fan, Bed)
*/
#define IS_RAMPS_EFB
#ifndef BOARD_NAME
#define BOARD_NAME "RAMPS 1.4 EFB"
#endif
#define IS_RAMPS_EFB
#include "pins_RAMPS_14.h"

@ -28,6 +28,8 @@
#error "Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu."
#endif
#define BOARD_NAME "MEGA/RAMPS <1.2"
// Uncomment the following line for RAMPS v1.0
//#define RAMPS_V_1_0

@ -26,6 +26,9 @@
#include "pins_RAMPS_14.h"
#undef BOARD_NAME
#define BOARD_NAME "RigidBoard"
#if ENABLED(Z_MIN_PROBE_ENDSTOP)
#undef Z_MAX_PIN
#define Z_MAX_PIN -1

@ -26,6 +26,9 @@
#include "pins_RIGIDBOARD.h"
#undef BOARD_NAME
#define BOARD_NAME "RigidBoard V2"
// I2C based DAC like on the Printrboard REVF
#define DAC_STEPPER_CURRENT
// Channels available for DAC, For Rigidboard there are 4

@ -33,6 +33,7 @@
#endif
#define DEFAULT_MACHINE_NAME "Rumba"
#define BOARD_NAME "Rumba"
#define X_STEP_PIN 17
#define X_DIR_PIN 16

@ -26,6 +26,9 @@
#include "pins_RAMPS_14_EFB.h"
#undef BOARD_NAME
#define BOARD_NAME "Sainsmart"
#undef FAN_PIN
#define FAN_PIN 7 // PART FAN in front of board next to Extruder heat

@ -28,6 +28,12 @@
#error "Oops! Make sure you have 'Sanguino' selected from the 'Tools -> Boards' menu."
#endif
#ifndef BOARD_NAME
#define BOARD_NAME "Sanguinololu <1.2"
#endif
#define IS_MELZI (MB(MELZI) || MB(MELZI_MAKR3D))
#define X_STEP_PIN 15
#define X_DIR_PIN 21
#define X_STOP_PIN 18
@ -43,11 +49,11 @@
#define E0_STEP_PIN 1
#define E0_DIR_PIN 0
#if MB(AZTEEG_X1) || MB(STB_11) || MB(MELZI)
#if MB(AZTEEG_X1) || MB(STB_11) || IS_MELZI
#define FAN_PIN 4 // Works for Panelolu2 too
#endif
#if MB(MELZI)
#if IS_MELZI
#define LED_PIN 27 // On some broken versions of the Sanguino libraries the pin definitions are wrong, so LED_PIN needs to be 28. But you should upgrade your Sanguino libraries! See #368.
#elif MB(STB_11)
#define LCD_PIN_BL 17 // LCD backlight LED
@ -101,7 +107,7 @@
#if ENABLED(U8GLIB_ST7920) //SPI GLCD 12864 ST7920 ( like [www.digole.com] ) For Melzi V2.0
#if MB(MELZI) // Melzi board
#if IS_MELZI // Melzi board
#define LCD_PINS_RS 30 //CS chip select /SS chip slave select
#define LCD_PINS_ENABLE 29 //SID (MOSI)
#define LCD_PINS_D4 17 //SCK (CLK) clock
@ -147,7 +153,7 @@
#define BTN_EN1 11
#define BTN_EN2 10
#if ENABLED(LCD_I2C_PANELOLU2)
#if MB(MELZI)
#if IS_MELZI
#define BTN_ENC 29
#define LCD_SDSS 30 // Panelolu2 SD card reader rather than the Melzi
#else

@ -32,10 +32,11 @@
* STB_11
*/
#define SANGUINOLOLU_V_1_2
#define BOARD_NAME "Sanguinololu 1.2"
#if defined(__AVR_ATmega1284P__)
#define LARGE_FLASH true
#endif
#define SANGUINOLOLU_V_1_2
#include "pins_SANGUINOLOLU_11.h"

@ -33,6 +33,7 @@
#define DEFAULT_MACHINE_NAME "SAV MkI"
#define DEFAULT_SOURCE_CODE_URL "https://github.com/fmalpartida/Marlin/tree/SAV-MkI-config"
#define BOARD_NAME "SAV MkI"
#define LARGE_FLASH true

@ -28,6 +28,8 @@
#error "Oops! Make sure you have 'Sethi 3D' selected from the 'Tools -> Boards' menu."
#endif
#define BOARD_NAME "Sethi 3D_1"
#ifndef GEN7_VERSION
#define GEN7_VERSION 12 // v1.x
#endif

@ -24,10 +24,11 @@
* STB V1.1 pin assignments
*/
#define SANGUINOLOLU_V_1_2
#define BOARD_NAME "STB V1.1"
#if defined(__AVR_ATmega1284P__)
#define LARGE_FLASH true
#endif
#define SANGUINOLOLU_V_1_2
#include "pins_SANGUINOLOLU_11.h"

@ -74,6 +74,8 @@
// (or build from command line)
#endif
#define BOARD_NAME "Teensy++2.0"
#define LARGE_FLASH true
#define X_STEP_PIN 28 // 0 Marlin

@ -35,6 +35,8 @@
#error "These Teensylu assignments depend on traditional Marlin assignments, not AT90USBxx_TEENSYPP_ASSIGNMENTS in fastio.h"
#endif
#define BOARD_NAME "Teensylu"
#define LARGE_FLASH true
#define X_STEP_PIN 0

@ -30,6 +30,7 @@
#define DEFAULT_MACHINE_NAME "Ultimaker"
#define DEFAULT_SOURCE_CODE_URL "https://github.com/Ultimaker/Marlin"
#define BOARD_NAME "Ultimaker 2.x"
#define X_STEP_PIN 25
#define X_DIR_PIN 23

@ -30,6 +30,7 @@
#define DEFAULT_MACHINE_NAME "Ultimaker"
#define DEFAULT_SOURCE_CODE_URL "https://github.com/Ultimaker/Marlin"
#define BOARD_NAME "Ultimaker"
#define LARGE_FLASH true

@ -30,6 +30,7 @@
#define DEFAULT_MACHINE_NAME "Ultimaker"
#define DEFAULT_SOURCE_CODE_URL "https://github.com/Ultimaker/Marlin"
#define BOARD_NAME "Ultimaker <1.5.4"
#define LARGE_FLASH true

@ -131,6 +131,12 @@ class PrintCounter: public Stopwatch {
*/
void showStats();
/**
* @brief Return the currently loaded statistics
* @details Return the raw data, in the same structure used internally
*/
printStatistics getStats() { return this->data; }
/**
* @brief Loop function
* @details This function should be called at loop, it will take care of

@ -0,0 +1,91 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
#undef THERMISTOR_NAME
// Thermcouples
#if THERMISTOR_ID == -3
#define THERMISTOR_NAME "MAX31855"
#elif THERMISTOR_ID == -2
#define THERMISTOR_NAME "MAX6675"
#elif THERMISTOR_ID == -1
#define THERMISTOR_NAME "AD595"
// Standard thermistors
#elif THERMISTOR_ID == 1
#define THERMISTOR_NAME "EPCOS 100K"
#elif THERMISTOR_ID == 2
#define THERMISTOR_NAME "ATC 204GT-2"
#elif THERMISTOR_ID == 3
#define THERMISTOR_NAME "Mendel-parts"
#elif THERMISTOR_ID == 4
#define THERMISTOR_NAME "Generic 10K"
#elif THERMISTOR_ID == 5
#define THERMISTOR_NAME "ATC 104GT-2"
#elif THERMISTOR_ID == 6
#define THERMISTOR_NAME "EPCOS (alt)"
#elif THERMISTOR_ID == 7
#define THERMISTOR_NAME "HW 104LAG"
#elif THERMISTOR_ID == 71
#define THERMISTOR_NAME "HW 104LAF"
#elif THERMISTOR_ID == 8
#define THERMISTOR_NAME "E3104FXT"
#elif THERMISTOR_ID == 9
#define THERMISTOR_NAME "GE AL03006"
#elif THERMISTOR_ID == 10
#define THERMISTOR_NAME "RS 198-961"
#elif THERMISTOR_ID == 11
#define THERMISTOR_NAME "1% beta 3950"
#elif THERMISTOR_ID == 12
#define THERMISTOR_NAME "E3104FXT (alt)"
#elif THERMISTOR_ID == 13
#define THERMISTOR_NAME "Hisens 3950"
#elif THERMISTOR_ID == 20
#define THERMISTOR_NAME "PT100 UltiMB"
#elif THERMISTOR_ID == 60
#define THERMISTOR_NAME "Makers Tool"
#elif THERMISTOR_ID == 70
#define THERMISTOR_NAME "Hephestos 2"
// Modified thermistors
#elif THERMISTOR_ID == 51
#define THERMISTOR_NAME "EPCOS 1K"
#elif THERMISTOR_ID == 52
#define THERMISTOR_NAME "ATC204GT-2 1K"
#elif THERMISTOR_ID == 55
#define THERMISTOR_NAME "ATC104GT-2 1K"
#elif THERMISTOR_ID == 1047
#define THERMISTOR_NAME "PT1000 4K7"
#elif THERMISTOR_ID == 1010
#define THERMISTOR_NAME "PT1000 1K"
#elif THERMISTOR_ID == 147
#define THERMISTOR_NAME "PT100 4K7"
#elif THERMISTOR_ID == 110
#define THERMISTOR_NAME "PT100 1K"
// Dummies for dev testing
#elif THERMISTOR_ID == 998
#define THERMISTOR_NAME "Dummy 1"
#elif THERMISTOR_ID == 999
#define THERMISTOR_NAME "Dummy 2"
#endif // THERMISTOR_ID

@ -29,6 +29,10 @@
#include "stepper.h"
#include "configuration_store.h"
#if ENABLED(PRINTCOUNTER)
#include "printcounter.h"
#endif
int plaPreheatHotendTemp;
int plaPreheatHPBTemp;
int plaPreheatFanSpeed;
@ -117,6 +121,15 @@ uint8_t lcdDrawUpdate = LCDVIEW_CLEAR_CALL_REDRAW; // Set when the LCD needs to
static void lcd_control_motion_menu();
static void lcd_control_volumetric_menu();
#if ENABLED(LCD_INFO_MENU)
#if ENABLED(PRINTCOUNTER)
static void lcd_info_stats_menu();
#endif
static void lcd_info_thermistors_menu();
static void lcd_info_board_menu();
static void lcd_info_menu();
#endif
#if HAS_LCD_CONTRAST
static void lcd_set_contrast();
#endif
@ -189,6 +202,12 @@ uint8_t lcdDrawUpdate = LCDVIEW_CLEAR_CALL_REDRAW; // Set when the LCD needs to
/**
* START_MENU generates the init code for a menu function
*
* encoderLine is the position based on the encoder
* currentMenuViewOffset is the top menu line to display
* _drawLineNr is the index of the LCD line (0-3)
* _lineNr is the menu item to draw and process
* _menuItemNr is the index of each MENU_ITEM
*/
#define START_MENU() do { \
ENCODER_DIRECTION_MENUS(); \
@ -242,6 +261,26 @@ uint8_t lcdDrawUpdate = LCDVIEW_CLEAR_CALL_REDRAW; // Set when the LCD needs to
_MENU_ITEM_PART_2(type, ## args); \
} while(0)
// Used to print static text with no visible cursor.
#define STATIC_ITEM(label, args...) \
if (_menuItemNr == _lineNr) { \
if (encoderLine == _menuItemNr && _menuItemNr < LCD_HEIGHT - 1) \
encoderPosition += ENCODER_STEPS_PER_MENU_ITEM; \
if (lcdDrawUpdate) \
lcd_implementation_drawmenu_static(_drawLineNr, PSTR(label), ## args); \
} \
_menuItemNr++
// Same as STATIC_ITEM, but can display variables. Do not use for text strings.
#define STATIC_ITEM_VAR(label, args...) \
if (_menuItemNr == _lineNr) { \
if (encoderLine == _menuItemNr && _menuItemNr < LCD_HEIGHT - 1) \
encoderPosition += ENCODER_STEPS_PER_MENU_ITEM; \
if (lcdDrawUpdate) \
lcd_implementation_drawmenu_static(_drawLineNr, label, ## args); \
} \
_menuItemNr++
#if ENABLED(ENCODER_RATE_MULTIPLIER)
//#define ENCODER_RATE_MULTIPLIER_DEBUG // If defined, output the encoder steps per second value
@ -554,6 +593,10 @@ static void lcd_status_screen() {
}
#endif //SDSUPPORT
#if ENABLED(LCD_INFO_MENU)
MENU_ITEM(submenu, MSG_INFO_MENU, lcd_info_menu);
#endif
END_MENU();
}
@ -1870,6 +1913,134 @@ static void lcd_status_screen() {
#endif //SDSUPPORT
#if ENABLED(LCD_INFO_MENU)
#if ENABLED(PRINTCOUNTER)
/**
*
* Printer Info > Stastics submenu
*
*/
static void lcd_info_stats_menu() {
PrintCounter print_job_counter = PrintCounter();
print_job_counter.loadStats();
printStatistics stats = print_job_counter.getStats();
char totalPrints[18];
itoa(stats.totalPrints, totalPrints, 10);
char finishedPrints[18];
itoa(stats.finishedPrints, finishedPrints, 10);
char printTime[18];
itoa(stats.printTime, printTime, 10);
if (LCD_CLICKED) lcd_goto_previous_menu(true);
START_MENU();
STATIC_ITEM(MSG_INFO_TOTAL_PRINTS ": "); // Total Prints:
STATIC_ITEM_VAR(totalPrints); // 999
STATIC_ITEM(MSG_INFO_FINISHED_PRINTS ": "); // Finished Prints:
STATIC_ITEM_VAR(finishedPrints); // 666
STATIC_ITEM(MSG_INFO_PRINT_TIME ": "); // Total Print Time:
STATIC_ITEM_VAR(printTime); // 123456
END_MENU();
}
#endif
/**
*
* Printer Info > Thermistors
*
*/
static void lcd_info_thermistors_menu() {
if (LCD_CLICKED) lcd_goto_previous_menu(true);
START_MENU();
#define THERMISTOR_ID TEMP_SENSOR_0
#include "thermistornames.h"
STATIC_ITEM("T0: " THERMISTOR_NAME);
STATIC_ITEM(MSG_INFO_MIN_TEMP ": " STRINGIFY(HEATER_0_MINTEMP));
STATIC_ITEM(MSG_INFO_MAX_TEMP ": " STRINGIFY(HEATER_0_MAXTEMP));
#if TEMP_SENSOR_1 != 0
#undef THERMISTOR_ID
#define THERMISTOR_ID TEMP_SENSOR_1
#include "thermistornames.h"
STATIC_ITEM("T1: " THERMISTOR_NAME);
STATIC_ITEM(MSG_INFO_MIN_TEMP ": " STRINGIFY(HEATER_1_MINTEMP));
STATIC_ITEM(MSG_INFO_MAX_TEMP ": " STRINGIFY(HEATER_1_MAXTEMP));
#endif
#if TEMP_SENSOR_2 != 0
#undef THERMISTOR_ID
#define THERMISTOR_ID TEMP_SENSOR_2
#include "thermistornames.h"
STATIC_ITEM("T2: " THERMISTOR_NAME);
STATIC_ITEM(MSG_INFO_MIN_TEMP ": " STRINGIFY(HEATER_2_MINTEMP));
STATIC_ITEM(MSG_INFO_MAX_TEMP ": " STRINGIFY(HEATER_2_MAXTEMP));
#endif
#if TEMP_SENSOR_3 != 0
#undef THERMISTOR_ID
#define THERMISTOR_ID TEMP_SENSOR_3
#include "thermistornames.h"
STATIC_ITEM("T3: " THERMISTOR_NAME);
STATIC_ITEM(MSG_INFO_MIN_TEMP ": " STRINGIFY(HEATER_3_MINTEMP));
STATIC_ITEM(MSG_INFO_MAX_TEMP ": " STRINGIFY(HEATER_3_MAXTEMP));
#endif
#if TEMP_SENSOR_BED != 0
#undef THERMISTOR_ID
#define THERMISTOR_ID TEMP_SENSOR_BED
#include "thermistornames.h"
STATIC_ITEM("TBed:" THERMISTOR_NAME);
STATIC_ITEM(MSG_INFO_MIN_TEMP ": " STRINGIFY(BED_MINTEMP));
STATIC_ITEM(MSG_INFO_MAX_TEMP ": " STRINGIFY(BED_MAXTEMP));
#endif
END_MENU();
}
/**
*
* Printer Info > Board Info
*
*/
static void lcd_info_board_menu() {
if (LCD_CLICKED) lcd_goto_previous_menu(true);
START_MENU();
STATIC_ITEM(BOARD_NAME); // MyPrinterController
STATIC_ITEM(MSG_INFO_BAUDRATE ": " STRINGIFY(BAUDRATE)); // Baud: 250000
STATIC_ITEM(MSG_INFO_PROTOCOL ": " PROTOCOL_VERSION); // Protocol: 1.0
#ifdef POWER_SUPPLY
#if (POWER_SUPPLY == 1)
STATIC_ITEM(MSG_INFO_PSU ": ATX"); // Power Supply: ATX
#elif (POWER_SUPPLY == 2)
STATIC_ITEM(MSG_INFO_PSU ": XBox"); // Power Supply: XBox
#endif
#endif // POWER_SUPPLY
END_MENU();
}
/**
*
* "Printer Info" submenu
*
*/
static void lcd_info_menu() {
START_MENU();
MENU_ITEM(back, MSG_INFO_MENU);
STATIC_ITEM(MSG_MARLIN); // Marlin
STATIC_ITEM(SHORT_BUILD_VERSION); // x.x.x-Branch
STATIC_ITEM(STRING_DISTRIBUTION_DATE); // YYYY-MM-DD HH:MM
STATIC_ITEM(MACHINE_NAME); // My3DPrinter
STATIC_ITEM(WEBSITE_URL); // www.my3dprinter.com
STATIC_ITEM(MSG_INFO_EXTRUDERS ": " STRINGIFY(EXTRUDERS)); // Extruders: 2
MENU_ITEM(submenu, MSG_INFO_BOARD_MENU, lcd_info_board_menu); // Board Info ->
MENU_ITEM(submenu, MSG_INFO_THERMISTOR_MENU, lcd_info_thermistors_menu); // Thermistors ->
#if ENABLED(PRINTCOUNTER)
MENU_ITEM(submenu, MSG_INFO_STATS_MENU, lcd_info_stats_menu); // Printer Statistics ->
#endif
END_MENU();
}
#endif // LCD_INFO_MENU
/**
*
* Functions for editing single values

@ -815,6 +815,21 @@ static void lcd_implementation_status_screen() {
lcd_print(lcd_status_message);
}
static void lcd_implementation_drawmenu_static(uint8_t row, const char* pstr, bool center=true) {
char c;
uint8_t n = LCD_WIDTH;
lcd.setCursor(0, row);
if (center) {
int8_t pad = (LCD_WIDTH - lcd_strlen_P(pstr)) / 2;
while (--pad >= 0) { lcd.print(' '); n--; }
}
while ((c = pgm_read_byte(pstr)) && n > 0) {
n -= lcd_print(c);
pstr++;
}
while (n--) lcd.print(' ');
}
static void lcd_implementation_drawmenu_generic(bool sel, uint8_t row, const char* pstr, char pre_char, char post_char) {
char c;
uint8_t n = LCD_WIDTH - 2;

Loading…
Cancel
Save