Commit 607484aa authored by MagoKimbra's avatar MagoKimbra

Merge remote-tracking branch 'refs/remotes/origin/dev'

parents 78f653f5 191024a3
This diff is collapsed.
This diff is collapsed.
#######################################################
# keywords.txt - keywords file for the L6470 library
#
# ORIGINAL CODE 12/12/2011- Mike Hord, SparkFun Electronics
# Library by Adam Meyer of bildr Aug 18th 2012
#
# Released as MIT license
#######################################################
#######################################
# Datatypes (KEYWORD1)
#######################################
L6470 KEYWORD1
#######################################
# Methods and Functions (KEYWORD2)
#######################################
L6470 KEYWORD2
init KEYWORD2
setMicroSteps KEYWORD2
setCurrent KEYWORD2
setMaxSpeed KEYWORD2
setMinSpeed KEYWORD2
setAcc KEYWORD2
setDec KEYWORD2
setOverCurrent KEYWORD2
setThresholdSpeed KEYWORD2
setStallCurrent KEYWORD2
ParamHandler KEYWORD2
SetLowSpeedOpt KEYWORD2
run KEYWORD2
Step_Clock KEYWORD2
goHome KEYWORD2
goMark KEYWORD2
move KEYWORD2
goTo KEYWORD2
goTo_DIR KEYWORD2
goUntil KEYWORD2
isBusy KEYWORD2
releaseSW KEYWORD2
resetPos KEYWORD2
resetDev KEYWORD2
softStop KEYWORD2
hardStop KEYWORD2
softHiZ KEYWORD2
hardHiZ KEYWORD2
getStatus KEYWORD2
#######################################
# Constants (LITERAL1)
#######################################
\ No newline at end of file
#include "LiquidCrystal.h"
#include <stdio.h>
#include <string.h>
#include <inttypes.h>
#include "Arduino.h"
// When the display powers up, it is configured as follows:
//
// 1. Display clear
// 2. Function set:
// DL = 1; 8-bit interface data
// N = 0; 1-line display
// F = 0; 5x8 dot character font
// 3. Display on/off control:
// D = 0; Display off
// C = 0; Cursor off
// B = 0; Blinking off
// 4. Entry mode set:
// I/D = 1; Increment by 1
// S = 0; No shift
//
// Note, however, that resetting the Arduino doesn't reset the LCD, so we
// can't assume that it's in that state when a sketch starts (and the
// LiquidCrystal constructor is called).
LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable,
uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)
{
init(0, rs, rw, enable, d0, d1, d2, d3, d4, d5, d6, d7);
}
LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t enable,
uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)
{
init(0, rs, 255, enable, d0, d1, d2, d3, d4, d5, d6, d7);
}
LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable,
uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3)
{
init(1, rs, rw, enable, d0, d1, d2, d3, 0, 0, 0, 0);
}
LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t enable,
uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3)
{
init(1, rs, 255, enable, d0, d1, d2, d3, 0, 0, 0, 0);
}
void LiquidCrystal::init(uint8_t fourbitmode, uint8_t rs, uint8_t rw, uint8_t enable,
uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)
{
_rs_pin = rs;
_rw_pin = rw;
_enable_pin = enable;
_data_pins[0] = d0;
_data_pins[1] = d1;
_data_pins[2] = d2;
_data_pins[3] = d3;
_data_pins[4] = d4;
_data_pins[5] = d5;
_data_pins[6] = d6;
_data_pins[7] = d7;
pinMode(_rs_pin, OUTPUT);
// we can save 1 pin by not using RW. Indicate by passing 255 instead of pin#
if (_rw_pin != 255) {
pinMode(_rw_pin, OUTPUT);
}
pinMode(_enable_pin, OUTPUT);
if (fourbitmode)
_displayfunction = LCD_4BITMODE | LCD_1LINE | LCD_5x8DOTS;
else
_displayfunction = LCD_8BITMODE | LCD_1LINE | LCD_5x8DOTS;
begin(16, 1);
}
void LiquidCrystal::begin(uint8_t cols, uint8_t lines, uint8_t dotsize) {
if (lines > 1) {
_displayfunction |= LCD_2LINE;
}
_numlines = lines;
_currline = 0;
// for some 1 line displays you can select a 10 pixel high font
if ((dotsize != 0) && (lines == 1)) {
_displayfunction |= LCD_5x10DOTS;
}
// SEE PAGE 45/46 FOR INITIALIZATION SPECIFICATION!
// according to datasheet, we need at least 40ms after power rises above 2.7V
// before sending commands. Arduino can turn on way befer 4.5V so we'll wait 50
delayMicroseconds(50000);
// Now we pull both RS and R/W low to begin commands
digitalWrite(_rs_pin, LOW);
digitalWrite(_enable_pin, LOW);
if (_rw_pin != 255) {
digitalWrite(_rw_pin, LOW);
}
//put the LCD into 4 bit or 8 bit mode
if (! (_displayfunction & LCD_8BITMODE)) {
// this is according to the hitachi HD44780 datasheet
// figure 24, pg 46
// we start in 8bit mode, try to set 4 bit mode
write4bits(0x03);
delayMicroseconds(4500); // wait min 4.1ms
// second try
write4bits(0x03);
delayMicroseconds(4500); // wait min 4.1ms
// third go!
write4bits(0x03);
delayMicroseconds(150);
// finally, set to 4-bit interface
write4bits(0x02);
} else {
// this is according to the hitachi HD44780 datasheet
// page 45 figure 23
// Send function set command sequence
command(LCD_FUNCTIONSET | _displayfunction);
delayMicroseconds(4500); // wait more than 4.1ms
// second try
command(LCD_FUNCTIONSET | _displayfunction);
delayMicroseconds(150);
// third go
command(LCD_FUNCTIONSET | _displayfunction);
}
// finally, set # lines, font size, etc.
command(LCD_FUNCTIONSET | _displayfunction);
// turn the display on with no cursor or blinking default
_displaycontrol = LCD_DISPLAYON | LCD_CURSOROFF | LCD_BLINKOFF;
display();
// clear it off
clear();
// Initialize to default text direction (for romance languages)
_displaymode = LCD_ENTRYLEFT | LCD_ENTRYSHIFTDECREMENT;
// set the entry mode
command(LCD_ENTRYMODESET | _displaymode);
}
/********** high level commands, for the user! */
void LiquidCrystal::clear()
{
command(LCD_CLEARDISPLAY); // clear display, set cursor position to zero
delayMicroseconds(2000); // this command takes a long time!
}
void LiquidCrystal::home()
{
command(LCD_RETURNHOME); // set cursor position to zero
delayMicroseconds(2000); // this command takes a long time!
}
void LiquidCrystal::setCursor(uint8_t col, uint8_t row)
{
int row_offsets[] = { 0x00, 0x40, 0x14, 0x54 };
if ( row >= _numlines ) {
row = _numlines-1; // we count rows starting w/0
}
command(LCD_SETDDRAMADDR | (col + row_offsets[row]));
}
// Turn the display on/off (quickly)
void LiquidCrystal::noDisplay() {
_displaycontrol &= ~LCD_DISPLAYON;
command(LCD_DISPLAYCONTROL | _displaycontrol);
}
void LiquidCrystal::display() {
_displaycontrol |= LCD_DISPLAYON;
command(LCD_DISPLAYCONTROL | _displaycontrol);
}
// Turns the underline cursor on/off
void LiquidCrystal::noCursor() {
_displaycontrol &= ~LCD_CURSORON;
command(LCD_DISPLAYCONTROL | _displaycontrol);
}
void LiquidCrystal::cursor() {
_displaycontrol |= LCD_CURSORON;
command(LCD_DISPLAYCONTROL | _displaycontrol);
}
// Turn on and off the blinking cursor
void LiquidCrystal::noBlink() {
_displaycontrol &= ~LCD_BLINKON;
command(LCD_DISPLAYCONTROL | _displaycontrol);
}
void LiquidCrystal::blink() {
_displaycontrol |= LCD_BLINKON;
command(LCD_DISPLAYCONTROL | _displaycontrol);
}
// These commands scroll the display without changing the RAM
void LiquidCrystal::scrollDisplayLeft(void) {
command(LCD_CURSORSHIFT | LCD_DISPLAYMOVE | LCD_MOVELEFT);
}
void LiquidCrystal::scrollDisplayRight(void) {
command(LCD_CURSORSHIFT | LCD_DISPLAYMOVE | LCD_MOVERIGHT);
}
// This is for text that flows Left to Right
void LiquidCrystal::leftToRight(void) {
_displaymode |= LCD_ENTRYLEFT;
command(LCD_ENTRYMODESET | _displaymode);
}
// This is for text that flows Right to Left
void LiquidCrystal::rightToLeft(void) {
_displaymode &= ~LCD_ENTRYLEFT;
command(LCD_ENTRYMODESET | _displaymode);
}
// This will 'right justify' text from the cursor
void LiquidCrystal::autoscroll(void) {
_displaymode |= LCD_ENTRYSHIFTINCREMENT;
command(LCD_ENTRYMODESET | _displaymode);
}
// This will 'left justify' text from the cursor
void LiquidCrystal::noAutoscroll(void) {
_displaymode &= ~LCD_ENTRYSHIFTINCREMENT;
command(LCD_ENTRYMODESET | _displaymode);
}
// Allows us to fill the first 8 CGRAM locations
// with custom characters
void LiquidCrystal::createChar(uint8_t location, uint8_t charmap[]) {
location &= 0x7; // we only have 8 locations 0-7
command(LCD_SETCGRAMADDR | (location << 3));
for (int i=0; i<8; i++) {
write(charmap[i]);
}
}
/*********** mid level commands, for sending data/cmds */
inline void LiquidCrystal::command(uint8_t value) {
send(value, LOW);
}
inline size_t LiquidCrystal::write(uint8_t value) {
send(value, HIGH);
return 1; // assume sucess
}
/************ low level data pushing commands **********/
// write either command or data, with automatic 4/8-bit selection
void LiquidCrystal::send(uint8_t value, uint8_t mode) {
digitalWrite(_rs_pin, mode);
// if there is a RW pin indicated, set it low to Write
if (_rw_pin != 255) {
digitalWrite(_rw_pin, LOW);
}
if (_displayfunction & LCD_8BITMODE) {
write8bits(value);
} else {
write4bits(value>>4);
write4bits(value);
}
}
void LiquidCrystal::pulseEnable(void) {
digitalWrite(_enable_pin, LOW);
delayMicroseconds(1);
digitalWrite(_enable_pin, HIGH);
delayMicroseconds(1); // enable pulse must be >450ns
digitalWrite(_enable_pin, LOW);
delayMicroseconds(100); // commands need > 37us to settle
}
void LiquidCrystal::write4bits(uint8_t value) {
for (int i = 0; i < 4; i++) {
pinMode(_data_pins[i], OUTPUT);
digitalWrite(_data_pins[i], (value >> i) & 0x01);
}
pulseEnable();
}
void LiquidCrystal::write8bits(uint8_t value) {
for (int i = 0; i < 8; i++) {
pinMode(_data_pins[i], OUTPUT);
digitalWrite(_data_pins[i], (value >> i) & 0x01);
}
pulseEnable();
}
#ifndef LiquidCrystal_h
#define LiquidCrystal_h
#include <inttypes.h>
#include "Print.h"
// commands
#define LCD_CLEARDISPLAY 0x01
#define LCD_RETURNHOME 0x02
#define LCD_ENTRYMODESET 0x04
#define LCD_DISPLAYCONTROL 0x08
#define LCD_CURSORSHIFT 0x10
#define LCD_FUNCTIONSET 0x20
#define LCD_SETCGRAMADDR 0x40
#define LCD_SETDDRAMADDR 0x80
// flags for display entry mode
#define LCD_ENTRYRIGHT 0x00
#define LCD_ENTRYLEFT 0x02
#define LCD_ENTRYSHIFTINCREMENT 0x01
#define LCD_ENTRYSHIFTDECREMENT 0x00
// flags for display on/off control
#define LCD_DISPLAYON 0x04
#define LCD_DISPLAYOFF 0x00
#define LCD_CURSORON 0x02
#define LCD_CURSOROFF 0x00
#define LCD_BLINKON 0x01
#define LCD_BLINKOFF 0x00
// flags for display/cursor shift
#define LCD_DISPLAYMOVE 0x08
#define LCD_CURSORMOVE 0x00
#define LCD_MOVERIGHT 0x04
#define LCD_MOVELEFT 0x00
// flags for function set
#define LCD_8BITMODE 0x10
#define LCD_4BITMODE 0x00
#define LCD_2LINE 0x08
#define LCD_1LINE 0x00
#define LCD_5x10DOTS 0x04
#define LCD_5x8DOTS 0x00
class LiquidCrystal : public Print {
public:
LiquidCrystal(uint8_t rs, uint8_t enable,
uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7);
LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable,
uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7);
LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable,
uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3);
LiquidCrystal(uint8_t rs, uint8_t enable,
uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3);
void init(uint8_t fourbitmode, uint8_t rs, uint8_t rw, uint8_t enable,
uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7);
void begin(uint8_t cols, uint8_t rows, uint8_t charsize = LCD_5x8DOTS);
void clear();
void home();
void noDisplay();
void display();
void noBlink();
void blink();
void noCursor();
void cursor();
void scrollDisplayLeft();
void scrollDisplayRight();
void leftToRight();
void rightToLeft();
void autoscroll();
void noAutoscroll();
void createChar(uint8_t, uint8_t[]);
void setCursor(uint8_t, uint8_t);
virtual size_t write(uint8_t);
void command(uint8_t);
using Print::write;
private:
void send(uint8_t, uint8_t);
void write4bits(uint8_t);
void write8bits(uint8_t);
void pulseEnable();
uint8_t _rs_pin; // LOW: command. HIGH: character.
uint8_t _rw_pin; // LOW: write to LCD. HIGH: read from LCD.
uint8_t _enable_pin; // activated by a HIGH pulse.
uint8_t _data_pins[8];
uint8_t _displayfunction;
uint8_t _displaycontrol;
uint8_t _displaymode;
uint8_t _initialized;
uint8_t _numlines,_currline;
};
#endif
#######################################
# Syntax Coloring Map For LiquidCrystal
#######################################
#######################################
# Datatypes (KEYWORD1)
#######################################
LiquidCrystal KEYWORD1
#######################################
# Methods and Functions (KEYWORD2)
#######################################
begin KEYWORD2
clear KEYWORD2
home KEYWORD2
print KEYWORD2
setCursor KEYWORD2
cursor KEYWORD2
noCursor KEYWORD2
blink KEYWORD2
noBlink KEYWORD2
display KEYWORD2
noDisplay KEYWORD2
autoscroll KEYWORD2
noAutoscroll KEYWORD2
leftToRight KEYWORD2
rightToLeft KEYWORD2
scrollDisplayLeft KEYWORD2
scrollDisplayRight KEYWORD2
createChar KEYWORD2
#######################################
# Constants (LITERAL1)
#######################################
### Version 4.2.5
* Big Update
* Add HAL for 8 bit version
* Rewrite Communication
* Rewrite Servo
* and more
### Version 4.2.4
* Added Abort on endstop hit feature
* Added Purge command G1 P<valor>
......
......@@ -24,13 +24,15 @@
// Serial port 0 is still used by the Arduino bootloader regardless of this setting.
#define SERIAL_PORT 0
// Enable the Bluetooth serial interface on AT90USB devices
//#define BLUETOOTH
// This determines the communication speed of the printer
// 2400,9600,19200,38400,57600,115200,250000
#define BAUDRATE 115200
// Enable the Bluetooth serial interface
//#define BLUETOOTH
#define BLUETOOTH_PORT 1
#define BLUETOOTH_BAUD 115200
// User-specified version info of this build to display in [Pronterface, etc] terminal window during
// startup. Implementation of an idea by Prof Braino to inform user that any changes made to this
// build by the user have been successfully uploaded into firmware.
......
......@@ -49,6 +49,7 @@
* - Filament diameter sensor
* - Filament Runout sensor
* - Power consumption sensor
* - RFID card sensor
* ADDON FEATURES:
* - EEPROM
* - SDCARD
......@@ -276,7 +277,6 @@
//but only if the current temperature is far enough below the target for a reliable test.
#define WATCH_TEMP_PERIOD 16 // Seconds
#define WATCH_TEMP_INCREASE 4 // Degrees Celsius
//#define THERMAL_PROTECTION_BED
......@@ -323,7 +323,7 @@
// Extruder cooling fans
// Configure fan pin outputs to automatically turn on/off when the associated
// extruder temperature is above/below EXTRUDER_AUTO_FAN_TEMPERATURE.
// extruder temperature is above/below EXTRUDER AUTO FAN TEMPERATURE.
// Multiple extruders can be assigned to the same pin in which case
// the fan will turn on when any selected extruder is above the threshold.
// You need to set _AUTO_FAN_PIN in Configuration_pins.h
......@@ -1151,9 +1151,9 @@
// http://reprap.org/wiki/Mini_panel
//#define MINIPANEL
// Nextion HMI panel
// REMEMBER TO INSTALL Nextion library in your ARDUINO library folder. You can find it in Arduino/libraries/
// Nextion HMI panel Serial
//#define NEXTION
#define NEXTION_PORT 1
// For GFX Visualization enable Nextion GFX
//#define NEXTION_GFX
......@@ -1492,7 +1492,7 @@
************************************** Buffer stuff ************************************
****************************************************************************************/
// The number of linear motions that can be in the plan at any give time.
// THE BLOCK_BUFFER_SIZE NEEDS TO BE A POWER OF 2, i.g. 8,16,32 because shifts and ors are used to do the ring-buffering.
// THE BLOCK BUFFER SIZE NEEDS TO BE A POWER OF 2, i.g. 8,16,32 because shifts and ors are used to do the ring-buffering.
#define BLOCK_BUFFER_SIZE 16 // maximize block buffer
//The ASCII buffer for receiving from the serial:
......
/**
* Configuration_Overall.h
* Here you can define all your custom settings and they will overwrite configurations in the main configuration files.
* Decomment or comment CONFIGURATION OVERALL ON for active or deactive this file.
*/
//#define CONFIGURATION_OVERALL_ON
......@@ -133,7 +133,7 @@
#endif
#if ENABLED(Z_PROBE_ENDSTOP)
#define Z_PROBE_PIN -1
#define Z_PROBE_PIN ORIG_Z_MIN_PIN
#endif
//============================================================================
......
#ifndef CONFIGURATION_STORE_H
#define CONFIGURATION_STORE_H
#include "base.h"
void Config_ResetDefault();
void ConfigSD_ResetDefault();
......
#ifndef CONFIGURATION_VERSION_H
#define CONFIGURATION_VERSION_H
#define BUILD_VERSION "MarlinKimbra 4.2.4 dev"
#define SHORT_BUILD_VERSION "4.2.4_dev"
#define SHORT_BUILD_VERSION "4.2.5_dev"
#define BUILD_VERSION "MK_" SHORT_BUILD_VERSION
#define STRING_DISTRIBUTION_DATE __DATE__ " " __TIME__ // build date and time
// It might also be appropriate to define a location where additional information can be found
#define FIRMWARE_URL "https://github.com/MagoKimbra/MarlinKimbra"
......
This diff is collapsed.
#ifndef BASE_H
#define BASE_H
#include "Arduino.h"
#include "pins_arduino.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <inttypes.h>
#include <avr/pgmspace.h>
#include <avr/interrupt.h>
#define ENABLED defined
#define DISABLED !defined
#include "Boards.h"
#include "module/mechanics.h"
#include "Configuration_Version.h"
#include "Configuration_Basic.h"
#include "Configuration_Overall.h"
#if MECH(CARTESIAN)
#include "Configuration_Cartesian.h"
#elif MECH(COREXY)
#include "Configuration_Core.h"
#elif MECH(COREXZ)
#include "Configuration_Core.h"
#elif MECH(DELTA)
#include "Configuration_Delta.h"
#elif MECH(SCARA)
#include "Configuration_Scara.h"
#endif
#include "Configuration_Feature.h"
#include "Configuration_Overall.h"
#include "module/HAL/HAL.h"
#include "module/communication/communication.h"
#include "Configuration_Store.h"
#include "module/language/language.h"
#include "module/conditionals.h"
#include "module/sanitycheck.h"
#include "module/MK_Main.h"
#include "module/motion/stepper.h"
#include "module/motion/stepper_indirection.h"
#include "module/motion/planner.h"
#include "module/temperature/temperature.h"
#include "module/temperature/thermistortables.h"
#include "module/lcd/ultralcd.h"
#include "module/nextion/nextion_lcd.h"
#include "module/sd/cardreader.h"
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
#include "module/motion/vector_3.h"
#if ENABLED(AUTO_BED_LEVELING_GRID)
#include "module/motion/qr_solve.h"
#endif
#endif // AUTO_BED_LEVELING_FEATURE
#if MB(ALLIGATOR)
#include "module/alligator/external_dac.h"
#endif
#if ENABLED(USE_WATCHDOG)
#include "module/watchdog/watchdog.h"
#endif
#if HAS(BUZZER)
#include "module/lcd/buzzer.h"
#endif
#if ENABLED(BLINKM)
#include "module/blinkm/blinkm.h"
#endif
#if HAS(SERVOS)
#include "module/servo/servo.h"
#endif
#if HAS(DIGIPOTSS)
#include <SPI.h>
#endif
#if ENABLED(FIRMWARE_TEST)
#include "module/fwtest/firmware_test.h"
#endif
#endif
/*
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/>.
*/
// **************************************************************************
//
// Description: *** HAL for Arduino ***
//
// **************************************************************************
// --------------------------------------------------------------------------
// Includes
// --------------------------------------------------------------------------
#include "../../base.h"
#include "HAL.h"
HAL::HAL() {
// ctor
}
HAL::~HAL() {
// dtor
}
// Print apparent cause of start/restart
void HAL::showStartReason() {
byte mcu = MCUSR;
if (mcu & 1) ECHO_EM(SERIAL_POWERUP);
if (mcu & 2) ECHO_EM(SERIAL_EXTERNAL_RESET);
if (mcu & 4) ECHO_EM(SERIAL_BROWNOUT_RESET);
if (mcu & 8) ECHO_EM(SERIAL_WATCHDOG_RESET);
if (mcu & 32) ECHO_EM(SERIAL_SOFTWARE_RESET);
MCUSR = 0;
}
// Return available memory
int HAL::getFreeRam() {
int freeram = 0;
InterruptProtectedBlock noInts;
uint8_t * heapptr, * stackptr;
heapptr = (uint8_t *)malloc(4); // get heap pointer
free(heapptr); // free up the memory again (sets heapptr to 0)
stackptr = (uint8_t *)(SP); // save value of stack pointer
freeram = (int)stackptr-(int)heapptr;
return freeram;
}
// Reset peripherals and cpu
void HAL::resetHardware() {}
/**
* This is the main Hardware Abstraction Layer (HAL).
* To make the firmware work with different processors and toolchains,
* all hardware related code should be packed into the hal files.
*
* 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/>.
*
*
* Description: *** HAL for Arduino ***
*
* ARDUINO_ARCH_ARM
*/
#ifndef HAL_H
#define HAL_H
#include <avr/io.h>
#include "fastio.h"
// Arduino < 1.0.0 does not define this, so we need to do it ourselves
#ifndef analogInputToDigitalPin
#define analogInputToDigitalPin(p) ((p) + 0xA0)
#endif
/**
* Defines & Macros
*/
// Compiler warning on unused varable.
#define UNUSED(x) (void) (x)
// Macros for bit
#define BIT(b) (1<<(b))
#define TEST(n, b) (((n)&BIT(b))!=0)
#define SET_BIT(n, b, value) (n) ^= ((-value)^(n)) & (BIT(b))
// Macros for maths shortcuts
#ifndef M_PI
#define M_PI 3.1415926536
#endif
#define RADIANS(d) ((d)*M_PI/180.0)
#define DEGREES(r) ((r)*180.0/M_PI)
#define SIN_60 0.8660254037844386
#define COS_60 0.5
// Macros to support option testing
#define PIN_EXISTS(PN) (defined(PN##_PIN) && PN##_PIN >= 0)
#define HAS(FE) (HAS_##FE)
#define HASNT(FE) (!(HAS_##FE))
// Macros to contrain values
#define NOLESS(v,n) do{ if (v < n) v = n; }while(0)
#define NOMORE(v,n) do{ if (v > n) v = n; }while(0)
#define COUNT(a) (sizeof(a)/sizeof(*a))
#define FORCE_INLINE __attribute__((always_inline)) inline
#ifndef CRITICAL_SECTION_START
#define CRITICAL_SECTION_START unsigned char _sreg = SREG; cli();
#define CRITICAL_SECTION_END SREG = _sreg;
#endif
//#define EXTERNALSERIAL // Force using arduino serial
#ifndef EXTERNALSERIAL
#include "HardwareSerial.h"
#define MKSERIAL MKSerial
#else
#define MKSERIAL Serial
#endif
#if defined(ARDUINO) && ARDUINO >= 100
#include "Arduino.h"
#else
#include "WProgram.h"
#endif
/**
* Types
*/
typedef uint32_t millis_t;
class InterruptProtectedBlock {
uint8_t sreg;
public:
inline void protect() {
cli();
}
inline void unprotect() {
SREG = sreg;
}
inline InterruptProtectedBlock(bool later = false) {
sreg = SREG;
if (!later) cli();
}
inline ~InterruptProtectedBlock() {
SREG = sreg;
}
};
class HAL {
public:
HAL();
virtual ~HAL();
static void showStartReason();
static int getFreeRam();
static void resetHardware();
protected:
private:
};
#endif // HAL_H
/*
HardwareSerial.cpp - Hardware serial library for Wiring
Copyright (c) 2006 Nicholas Zambetti. All right reserved.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library 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
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Modified 23 November 2006 by David A. Mellis
Modified 28 September 2010 by Mark Sproul
*/
#include "../../base.h"
#include "HardwareSerial.h"
#if defined(UBRRH) || defined(UBRR0H) || defined(UBRR1H) || defined(UBRR2H) || defined(UBRR3H)
#if UART_PRESENT(SERIAL_PORT)
ring_buffer rx_buffer = { { 0 }, 0, 0 };
#endif
FORCE_INLINE void store_char(unsigned char c) {
int i = (unsigned int)(rx_buffer.head + 1) % RX_BUFFER_SIZE;
if (i != rx_buffer.tail) {
rx_buffer.buffer[rx_buffer.head] = c;
rx_buffer.head = i;
}
}
#if defined(M_USARTx_RX_vect)
SIGNAL(M_USARTx_RX_vect) {
unsigned char c = M_UDRx;
store_char(c);
}
#endif
// Constructors
MKHardwareSerial::MKHardwareSerial() { }
// Public Methods
void MKHardwareSerial::begin(long baud) {
uint16_t baud_setting;
bool useU2X = true;
#if F_CPU == 16000000UL && SERIAL_PORT == 0
if (baud == 57600) {
useU2X = false;
}
#endif
if (useU2X) {
M_UCSRxA = BIT(M_U2Xx);
baud_setting = (F_CPU / 4 / baud - 1) / 2;
}
else {
M_UCSRxA = 0;
baud_setting = (F_CPU / 8 / baud - 1) / 2;
}
M_UBRRxH = baud_setting >> 8;
M_UBRRxL = baud_setting;
set_bit(M_UCSRxB, M_RXENx);
set_bit(M_UCSRxB, M_TXENx);
set_bit(M_UCSRxB, M_RXCIEx);
}
void MKHardwareSerial::end() {
clear_bit(M_UCSRxB, M_RXENx);
clear_bit(M_UCSRxB, M_TXENx);
clear_bit(M_UCSRxB, M_RXCIEx);
}
int MKHardwareSerial::peek(void) {
if (rx_buffer.head == rx_buffer.tail) {
return -1;
}
else {
return rx_buffer.buffer[rx_buffer.tail];
}
}
int MKHardwareSerial::read(void) {
if (rx_buffer.head == rx_buffer.tail) {
return -1;
}
else {
unsigned char c = rx_buffer.buffer[rx_buffer.tail];
rx_buffer.tail = (unsigned int)(rx_buffer.tail + 1) % RX_BUFFER_SIZE;
return c;
}
}
void MKHardwareSerial::flush() {
rx_buffer.head = rx_buffer.tail;
}
void MKHardwareSerial::print(char c, int base) {
print((long) c, base);
}
void MKHardwareSerial::print(unsigned char b, int base) {
print((unsigned long) b, base);
}
void MKHardwareSerial::print(int n, int base) {
print((long) n, base);
}
void MKHardwareSerial::print(unsigned int n, int base) {
print((unsigned long) n, base);
}
void MKHardwareSerial::print(long n, int base) {
if (base == 0) {
write(n);
}
else if (base == 10) {
if (n < 0) {
print('-');
n = -n;
}
printNumber(n, 10);
}
else {
printNumber(n, base);
}
}
void MKHardwareSerial::print(unsigned long n, int base) {
if (base == 0)
write(n);
else
printNumber(n, base);
}
void MKHardwareSerial::print(double n, int digits) {
printFloat(n, digits);
}
void MKHardwareSerial::println(void) {
print('\r');
print('\n');
}
void MKHardwareSerial::println(const String &s) {
print(s);
println();
}
void MKHardwareSerial::println(const char c[]) {
print(c);
println();
}
void MKHardwareSerial::println(char c, int base) {
print(c, base);
println();
}
void MKHardwareSerial::println(unsigned char b, int base) {
print(b, base);
println();
}
void MKHardwareSerial::println(int n, int base) {
print(n, base);
println();
}
void MKHardwareSerial::println(unsigned int n, int base) {
print(n, base);
println();
}
void MKHardwareSerial::println(long n, int base) {
print(n, base);
println();
}
void MKHardwareSerial::println(unsigned long n, int base) {
print(n, base);
println();
}
void MKHardwareSerial::println(double n, int digits) {
print(n, digits);
println();
}
// Private Methods
void MKHardwareSerial::printNumber(unsigned long n, uint8_t base) {
unsigned char buf[8 * sizeof(long)]; // Assumes 8-bit chars.
unsigned long i = 0;
if (n == 0) {
print('0');
return;
}
while (n > 0) {
buf[i++] = n % base;
n /= base;
}
for (; i > 0; i--)
print((char) (buf[i - 1] < 10 ?
'0' + buf[i - 1] :
'A' + buf[i - 1] - 10));
}
void MKHardwareSerial::printFloat(double number, uint8_t digits) {
// Handle negative numbers
if (number < 0.0) {
print('-');
number = -number;
}
// Round correctly so that print(1.999, 2) prints as "2.00"
double rounding = 0.5;
for (uint8_t i = 0; i < digits; ++i)
rounding /= 10.0;
number += rounding;
// Extract the integer part of the number and print it
unsigned long int_part = (unsigned long)number;
double remainder = number - (double)int_part;
print(int_part);
// Print the decimal point, but only if there are digits beyond
if (digits > 0) print('.');
// Extract digits from the remainder one at a time
while (digits-- > 0) {
remainder *= 10.0;
int toPrint = int(remainder);
print(toPrint);
remainder -= toPrint;
}
}
// Preinstantiate Objects
MKHardwareSerial MKSerial;
#endif
/*
HardwareSerial.h - Hardware serial library for Wiring
Copyright (c) 2006 Nicholas Zambetti. All right reserved.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library 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
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Modified 28 September 2010 by Mark Sproul
*/
#ifndef HardwareSerial_H
#define HardwareSerial_H
#define clear_bit(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
#define set_bit(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
// The presence of the UBRRH register is used to detect a UART.
#define UART_PRESENT(port) ((port == 0 && (defined(UBRRH) || defined(UBRR0H))) || \
(port == 1 && defined(UBRR1H)) || (port == 2 && defined(UBRR2H)) || \
(port == 3 && defined(UBRR3H)))
// These are macros to build serial port register names for the selected SERIAL_PORT (C preprocessor
// requires two levels of indirection to expand macro values properly)
#define SERIAL_REGNAME(registerbase,number,suffix) SERIAL_REGNAME_INTERNAL(registerbase,number,suffix)
#if SERIAL_PORT == 0 && (!defined(UBRR0H) || !defined(UDR0)) // use un-numbered registers if necessary
#define SERIAL_REGNAME_INTERNAL(registerbase,number,suffix) registerbase##suffix
#else
#define SERIAL_REGNAME_INTERNAL(registerbase,number,suffix) registerbase##number##suffix
#endif
// Registers used by MarlinSerial class (these are expanded
// depending on selected serial port
#define M_UCSRxA SERIAL_REGNAME(UCSR,SERIAL_PORT,A) // defines M_UCSRxA to be UCSRnA where n is the serial port number
#define M_UCSRxB SERIAL_REGNAME(UCSR,SERIAL_PORT,B)
#define M_RXENx SERIAL_REGNAME(RXEN,SERIAL_PORT,)
#define M_TXENx SERIAL_REGNAME(TXEN,SERIAL_PORT,)
#define M_RXCIEx SERIAL_REGNAME(RXCIE,SERIAL_PORT,)
#define M_UDREx SERIAL_REGNAME(UDRE,SERIAL_PORT,)
#define M_UDRx SERIAL_REGNAME(UDR,SERIAL_PORT,)
#define M_UBRRxH SERIAL_REGNAME(UBRR,SERIAL_PORT,H)
#define M_UBRRxL SERIAL_REGNAME(UBRR,SERIAL_PORT,L)
#define M_RXCx SERIAL_REGNAME(RXC,SERIAL_PORT,)
#define M_USARTx_RX_vect SERIAL_REGNAME(USART,SERIAL_PORT,_RX_vect)
#define M_U2Xx SERIAL_REGNAME(U2X,SERIAL_PORT,)
#define DEC 10
#define HEX 16
#define OCT 8
#define BIN 2
#define BYTE 0
#define RX_BUFFER_SIZE 128
struct ring_buffer {
unsigned char buffer[RX_BUFFER_SIZE];
int head;
int tail;
};
#if UART_PRESENT(SERIAL_PORT)
extern ring_buffer rx_buffer;
#endif
class MKHardwareSerial {
public:
MKHardwareSerial();
void begin(long);
void end();
int peek(void);
int read(void);
void flush(void);
FORCE_INLINE int available(void) {
return (unsigned int)(RX_BUFFER_SIZE + rx_buffer.head - rx_buffer.tail) % RX_BUFFER_SIZE;
}
FORCE_INLINE void write(uint8_t c) {
while (!TEST(M_UCSRxA, M_UDREx));
M_UDRx = c;
}
FORCE_INLINE void checkRx(void) {
if (TEST(M_UCSRxA, M_RXCx)) {
unsigned char c = M_UDRx;
int i = (unsigned int)(rx_buffer.head + 1) % RX_BUFFER_SIZE;
if (i != rx_buffer.tail) {
rx_buffer.buffer[rx_buffer.head] = c;
rx_buffer.head = i;
}
}
}
private:
void printNumber(unsigned long, uint8_t);
void printFloat(double, uint8_t);
public:
FORCE_INLINE void write(const char *str) { while (*str) write(*str++); }
FORCE_INLINE void write(const uint8_t *buffer, size_t size) { while (size--) write(*buffer++); }
FORCE_INLINE void print(const String &s) { for (int i = 0; i < (int)s.length(); i++) write(s[i]); }
FORCE_INLINE void print(const char *str) { write(str); }
void print(char, int = BYTE);
void print(unsigned char, int = BYTE);
void print(int, int = DEC);
void print(unsigned int, int = DEC);
void print(long, int = DEC);
void print(unsigned long, int = DEC);
void print(double, int = 2);
void println(const String &s);
void println(const char[]);
void println(char, int = BYTE);
void println(unsigned char, int = BYTE);
void println(int, int = DEC);
void println(unsigned int, int = DEC);
void println(long, int = DEC);
void println(unsigned long, int = DEC);
void println(double, int = 2);
void println(void);
};
extern MKHardwareSerial MKSerial;
#endif // HardwareSerial_H
......@@ -6,7 +6,6 @@
#ifndef _FASTIO_ARDUINO_H
#define _FASTIO_ARDUINO_H
#include <avr/io.h>
/*
utility functions
......
// Tonokip RepRap firmware rewrite based off of Hydra-mmm firmware.
// License: GPL
#ifndef MARLIN_H
#define MARLIN_H
#ifndef MK_H
#define MK_H
#include <math.h>
#include <stdint.h>
void get_command();
void idle(bool ignore_stepper_queue = false);
void manage_inactivity(bool ignore_stepper_queue=false);
void manage_inactivity(bool ignore_stepper_queue = false);
void FlushSerialRequestResend();
void ok_to_send();
......@@ -251,4 +254,4 @@ extern void calculate_volumetric_multipliers();
#endif
#endif //MARLIN_H
#endif // MK_H
......@@ -2,7 +2,7 @@
blinkm.cpp - Library for controlling a BlinkM over i2c
Created by Tim Koster, August 21 2013.
*/
#include "../base.h"
#include "../../base.h"
#if ENABLED(BLINKM)
......
#ifndef COMMUNICATION_H
#define COMMUNICATION_H
#define START "start" // start for host
#define OK "ok " // ok answer for host
#define ER "Error: " // error for host
#define WT "Wait" // wait for host
#define DB "Echo: " // message for user
#define CFG "Config: " // config for host
#define INFO "Info: " // info for host
#define RESEND "Resend: " // resend for host
#define WARNING "Warning: " // warning for host
#define TNAN "NAN" // NAN for host
#define TINF "INF" // INF for host
#define PAUSE "//action:pause" // command for host that support action
#define RESUME "//action:resume" // command for host that support action
#define DISCONNECT "//action:disconnect" // command for host that support action
#define SERIAL_INIT(baud) MKSERIAL.begin(baud), delay(1)
#define SERIAL_WRITE(x) MKSERIAL.write(x)
#define SERIAL_PRINT(msg, args...) MKSERIAL.print(msg, ##args)
#define SERIAL_ENDL MKSERIAL.println()
FORCE_INLINE void PS_PGM(const char *str) {
char c;
while (c = pgm_read_byte(str)) {
SERIAL_WRITE(c);
str++;
}
}
#define ECHO_ENDL SERIAL_ENDL
#define ECHO_PGM(message) PS_PGM(PSTR(message))
#define ECHO_S(srt) ECHO_PGM(srt)
#define ECHO_M(msg) ECHO_PGM(msg)
#define ECHO_T SERIAL_PRINT
#define ECHO_V SERIAL_PRINT
#define ECHO_C SERIAL_WRITE
#define ECHO_E SERIAL_ENDL
#define ECHO_MV(msg, val, args...) ECHO_M(msg),ECHO_V(val, ##args)
#define ECHO_VM(val, msg, args...) ECHO_V(val, ##args),ECHO_M(msg)
#define ECHO_MT(msg, txt) ECHO_M(msg),ECHO_T(txt)
#define ECHO_TM(txt, msg) ECHO_T(txt),ECHO_M(msg)
#define ECHO_SM(srt, msg) ECHO_S(srt),ECHO_M(msg)
#define ECHO_ST(srt, txt) ECHO_S(srt),ECHO_T(txt)
#define ECHO_SV(srt, val, args...) ECHO_S(srt),ECHO_V(val, ##args)
#define ECHO_SMV(srt, msg, val, args...) ECHO_S(srt),ECHO_MV(msg, val, ##args)
#define ECHO_SMT(srt, msg, txt) ECHO_S(srt),ECHO_MT(msg, txt)
#define ECHO_EM(msg) ECHO_M(msg),ECHO_E
#define ECHO_ET(txt) ECHO_T(txt),ECHO_E
#define ECHO_EV(val, args...) ECHO_V(val, ##args),ECHO_E
#define ECHO_EMV(msg, val, args...) ECHO_MV(msg, val, ##args),ECHO_E
#define ECHO_EVM(val, msg, args...) ECHO_VM(val, msg, ##args),ECHO_E
#define ECHO_EMT(msg, txt) ECHO_MT(msg, txt),ECHO_E
#define ECHO_L(srt) ECHO_S(srt),ECHO_E
#define ECHO_LM(srt, msg) ECHO_S(srt),ECHO_M(msg),ECHO_E
#define ECHO_LT(srt, txt) ECHO_S(srt),ECHO_T(txt),ECHO_E
#define ECHO_LV(srt, val, args...) ECHO_S(srt),ECHO_V(val, ##args),ECHO_E
#define ECHO_LMV(srt, msg, val, args...) ECHO_S(srt),ECHO_MV(msg, val, ##args),ECHO_E
#define ECHO_LVM(srt, val, msg, args...) ECHO_S(srt),ECHO_VM(val, msg, ##args),ECHO_E
#define ECHO_LMT(srt, msg, txt) ECHO_S(srt),ECHO_MT(msg, txt),ECHO_E
#endif
......@@ -55,6 +55,12 @@
#define REPRAP_DISCOUNT_SMART_CONTROLLER
#endif
#if ENABLED(REPRAP_DISCOUNT_SMART_CONTROLLER)
#if DISABLED(SDSUPPORT)
#define SDSUPPORT
#endif
#endif
#if ENABLED(ULTIMAKERCONTROLLER) || ENABLED(REPRAP_DISCOUNT_SMART_CONTROLLER) || ENABLED(G3D_PANEL) || ENABLED(RIGIDBOT_PANEL)
#define ULTIPANEL
#define NEWPANEL
......@@ -375,6 +381,24 @@
#define MIN_PROBE_Y (max(Y_MIN_POS, Y_MIN_POS + Y_PROBE_OFFSET_FROM_EXTRUDER))
#define MAX_PROBE_Y (min(Y_MAX_POS, Y_MAX_POS + Y_PROBE_OFFSET_FROM_EXTRUDER))
// Make sure probing points are reachable
#if LEFT_PROBE_BED_POSITION < MIN_PROBE_X
#undef LEFT_PROBE_BED_POSITION
#define LEFT_PROBE_BED_POSITION MIN_PROBE_X
#endif
#if RIGHT_PROBE_BED_POSITION > MAX_PROBE_X
#undef RIGHT_PROBE_BED_POSITION
#define RIGHT_PROBE_BED_POSITION MAX_PROBE_X
#endif
#if FRONT_PROBE_BED_POSITION < MIN_PROBE_Y
#undef FRONT_PROBE_BED_POSITION
#define FRONT_PROBE_BED_POSITION MIN_PROBE_Y
#endif
#if BACK_PROBE_BED_POSITION > MAX_PROBE_Y
#undef BACK_PROBE_BED_POSITION
#define BACK_PROBE_BED_POSITION MAX_PROBE_Y
#endif
// Z_RAISE_AFTER_PROBING is not for all probes. Be sure that it is zero in that cases
#if DISABLED(ENABLE_SERVOS) && DISABLED(Z_PROBE_SLED)
#undef Z_RAISE_AFTER_PROBING
......@@ -435,6 +459,7 @@
*
*/
#if ENABLED(SD_DISABLED_DETECT)
#undef SD_DETECT_PIN
#define SD_DETECT_PIN -1
#endif
#if ENABLED(ULTIPANEL) && DISABLED(ELB_FULL_GRAPHIC_CONTROLLER)
......@@ -643,6 +668,7 @@
#define HAS_BTN_BACK (PIN_EXISTS(BTN_BACK))
#define HAS_POWER_SWITCH (POWER_SUPPLY > 0 && PIN_EXISTS(PS_ON))
#define HAS_MOTOR_CURRENT_PWM_XY (PIN_EXISTS(MOTOR_CURRENT_PWM_XY))
#define HAS_SDSUPPORT (ENABLED(SDSUPPORT))
#define HAS_DIGIPOTSS (PIN_EXISTS(DIGIPOTSS))
......
#include "../base.h"
#include "../../base.h"
#if ENABLED(DIGIPOT_I2C)
......
......@@ -3,26 +3,17 @@
* By MagoKimbra
*/
#include "../base.h"
#include "../Marlin_main.h"
#include "../../base.h"
#if ENABLED(FIRMWARE_TEST)
#include "firmware_test.h"
#include "planner.h"
#include "stepper_indirection.h"
#include "stepper.h"
#include "temperature.h"
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
#include "vector_3.h"
#endif
static char serial_answer;
void FirmwareTest() {
ECHO_EM("---------- FIRMWARE TEST --------------");
ECHO_EM("--------- by MarlinKimbra -------------");
ECHO_EM("--------------- MK --------------------");
ECHO_EV(MSG_FWTEST_01);
ECHO_EV(MSG_FWTEST_02);
ECHO_EV(MSG_FWTEST_YES_NO);
......
......@@ -31,7 +31,7 @@
#define STRINGIFY_(n) #n
#define STRINGIFY(n) STRINGIFY_(n)
#define PROTOCOL_VERSION "1.0"
#define PROTOCOL_VERSION "2.0"
#if MB(ULTIMAKER)|| MB(ULTIMAKER_OLD)|| MB(ULTIMAIN_2)
#define MACHINE_NAME "Ultimaker"
......@@ -61,17 +61,17 @@
// Serial Console Messages (do not translate those!)
#if MECH(CARTESIAN)
#define SERIAL_M115_REPORT "FIRMWARE_NAME:MK_" SHORT_BUILD_VERSION " FIRMWARE_URL:" FIRMWARE_URL " PROTOCOL_VERSION:" PROTOCOL_VERSION " MACHINE_TYPE:Mendel EXTRUDER_COUNT:" STRINGIFY(EXTRUDERS) " UUID:" MACHINE_UUID "\n"
#define SERIAL_M115_REPORT "FIRMWARE_NAME:" BUILD_VERSION " FIRMWARE_URL:" FIRMWARE_URL " PROTOCOL_VERSION:" PROTOCOL_VERSION " MACHINE_TYPE:Cartesian EXTRUDER_COUNT:" STRINGIFY(EXTRUDERS) " UUID:" MACHINE_UUID "\n"
#elif MECH(COREXY)
#define SERIAL_M115_REPORT "FIRMWARE_NAME:MK_" SHORT_BUILD_VERSION " FIRMWARE_URL:" FIRMWARE_URL " PROTOCOL_VERSION:" PROTOCOL_VERSION " MACHINE_TYPE:Core_XY EXTRUDER_COUNT:" STRINGIFY(EXTRUDERS) " UUID:" MACHINE_UUID "\n"
#define SERIAL_M115_REPORT "FIRMWARE_NAME:" BUILD_VERSION " FIRMWARE_URL:" FIRMWARE_URL " PROTOCOL_VERSION:" PROTOCOL_VERSION " MACHINE_TYPE:Core_XY EXTRUDER_COUNT:" STRINGIFY(EXTRUDERS) " UUID:" MACHINE_UUID "\n"
#elif MECH(COREXZ)
#define SERIAL_M115_REPORT "FIRMWARE_NAME:MK_" SHORT_BUILD_VERSION " FIRMWARE_URL:" FIRMWARE_URL " PROTOCOL_VERSION:" PROTOCOL_VERSION " MACHINE_TYPE:Core_XZ EXTRUDER_COUNT:" STRINGIFY(EXTRUDERS) " UUID:" MACHINE_UUID "\n"
#define SERIAL_M115_REPORT "FIRMWARE_NAME:" BUILD_VERSION " FIRMWARE_URL:" FIRMWARE_URL " PROTOCOL_VERSION:" PROTOCOL_VERSION " MACHINE_TYPE:Core_XZ EXTRUDER_COUNT:" STRINGIFY(EXTRUDERS) " UUID:" MACHINE_UUID "\n"
#elif MECH(DELTA)
#define SERIAL_M115_REPORT "FIRMWARE_NAME:MK_" SHORT_BUILD_VERSION " FIRMWARE_URL:" FIRMWARE_URL " PROTOCOL_VERSION:" PROTOCOL_VERSION " MACHINE_TYPE:Delta EXTRUDER_COUNT:" STRINGIFY(EXTRUDERS) " UUID:" MACHINE_UUID "\n"
#define SERIAL_M115_REPORT "FIRMWARE_NAME:" BUILD_VERSION " FIRMWARE_URL:" FIRMWARE_URL " PROTOCOL_VERSION:" PROTOCOL_VERSION " MACHINE_TYPE:Delta EXTRUDER_COUNT:" STRINGIFY(EXTRUDERS) " UUID:" MACHINE_UUID "\n"
#elif MECH(SCARA)
#define SERIAL_M115_REPORT "FIRMWARE_NAME:MK_" SHORT_BUILD_VERSION " FIRMWARE_URL:" FIRMWARE_URL " PROTOCOL_VERSION:" PROTOCOL_VERSION " MACHINE_TYPE:Scara EXTRUDER_COUNT:" STRINGIFY(EXTRUDERS) " UUID:" MACHINE_UUID "\n"
#define SERIAL_M115_REPORT "FIRMWARE_NAME:" BUILD_VERSION " FIRMWARE_URL:" FIRMWARE_URL " PROTOCOL_VERSION:" PROTOCOL_VERSION " MACHINE_TYPE:Scara EXTRUDER_COUNT:" STRINGIFY(EXTRUDERS) " UUID:" MACHINE_UUID "\n"
#endif
#define MSG_MARLIN "MarlinKimbra"
#define SERIAL_ENQUEUEING "enqueueing \""
#define SERIAL_POWERUP "PowerUp"
#define SERIAL_EXTERNAL_RESET "External Reset"
......
......@@ -33,6 +33,7 @@
#define MSG_SET_ORIGIN "Establir zero"
#define MSG_ONFOR "On x:"
#define MSG_PWRCONSUMED "P.er:"
#define MSG_FILCONSUMED "F:"
#define MSG_PREHEAT "Prec."
#define MSG_CONGIG "conf."
#define MSG_PREHEAT_PLA MSG_PREHEAT " PLA"
......@@ -206,6 +207,17 @@
#define MSG_RESTORING_POS "Restoring position"
#define MSG_INVALID_POS_SLOT "Invalid slot, total slots: "
// Rfid module
#if ENABLED(RFID_MODULE)
#define MSG_RFID_SPOOL "Spool on E"
#define MSG_RFID_BRAND "Brand: "
#define MSG_RFID_COLOR "Color: "
#define MSG_RFID_SIZE "Size: "
#define MSG_RFID_TEMPERATURE "Temperature: "
#define MSG_RFID_DENSITY "Density: "
#define MSG_RFID_SPOOL_LENGHT "Spool Lenght: "
#endif
// Firmware Test
#if ENABLED(FIRMWARE_TEST)
#define MSG_FWTEST_YES "Put the Y command to go next"
......
......@@ -33,6 +33,7 @@
#define MSG_SET_ORIGIN "Изходна точка"
#define MSG_ONFOR "On x:"
#define MSG_PWRCONSUMED "P.er:"
#define MSG_FILCONSUMED "F:"
#define MSG_PREHEAT "Подгр."
#define MSG_CONGIG "Настр."
#define MSG_PREHEAT_PLA MSG_PREHEAT " PLA"
......@@ -206,6 +207,17 @@
#define MSG_RESTORING_POS "Restoring position"
#define MSG_INVALID_POS_SLOT "Invalid slot, total slots: "
// Rfid module
#if ENABLED(RFID_MODULE)
#define MSG_RFID_SPOOL "Spool on E"
#define MSG_RFID_BRAND "Brand: "
#define MSG_RFID_COLOR "Color: "
#define MSG_RFID_SIZE "Size: "
#define MSG_RFID_TEMPERATURE "Temperature: "
#define MSG_RFID_DENSITY "Density: "
#define MSG_RFID_SPOOL_LENGHT "Spool Lenght: "
#endif
// Firmware Test
#if ENABLED(FIRMWARE_TEST)
#define MSG_FWTEST_YES "Put the Y command to go next"
......
......@@ -33,6 +33,7 @@
#define MSG_SET_ORIGIN "Establir origen"
#define MSG_ONFOR "On x:"
#define MSG_PWRCONSUMED "P.er:"
#define MSG_FILCONSUMED "F:"
#define MSG_PREHEAT "Preesc."
#define MSG_PREHEAT_PLA MSG_PREHEAT " PLA"
#define MSG_PREHEAT_PLA_ALL MSG_PREHEAT_PLA " All"
......@@ -205,6 +206,17 @@
#define MSG_RESTORING_POS "Restoring position"
#define MSG_INVALID_POS_SLOT "Invalid slot, total slots: "
// Rfid module
#if ENABLED(RFID_MODULE)
#define MSG_RFID_SPOOL "Spool on E"
#define MSG_RFID_BRAND "Brand: "
#define MSG_RFID_COLOR "Color: "
#define MSG_RFID_SIZE "Size: "
#define MSG_RFID_TEMPERATURE "Temperature: "
#define MSG_RFID_DENSITY "Density: "
#define MSG_RFID_SPOOL_LENGHT "Spool Lenght: "
#endif
// Firmware Test
#if ENABLED(FIRMWARE_TEST)
#define MSG_FWTEST_YES "Put the Y command to go next"
......
......@@ -33,6 +33,7 @@
#define MSG_SET_ORIGIN "\xbe\xbf\xbc\xbd"
#define MSG_ONFOR "On x:"
#define MSG_PWRCONSUMED "P.er:"
#define MSG_FILCONSUMED "F:"
#define MSG_PREHEAT "\xc3\xc4"
#define MSG_PREHEAT_PLA MSG_PREHEAT " PLA"
#define MSG_PREHEAT_PLA_ALL MSG_PREHEAT_PLA " \xc5\xc6"
......@@ -205,6 +206,17 @@
#define MSG_RESTORING_POS "Restoring position"
#define MSG_INVALID_POS_SLOT "Invalid slot, total slots: "
// Rfid module
#if ENABLED(RFID_MODULE)
#define MSG_RFID_SPOOL "Spool on E"
#define MSG_RFID_BRAND "Brand: "
#define MSG_RFID_COLOR "Color: "
#define MSG_RFID_SIZE "Size: "
#define MSG_RFID_TEMPERATURE "Temperature: "
#define MSG_RFID_DENSITY "Density: "
#define MSG_RFID_SPOOL_LENGHT "Spool Lenght: "
#endif
// Firmware Test
#if ENABLED(FIRMWARE_TEST)
#define MSG_FWTEST_YES "Put the Y command to go next"
......
......@@ -33,6 +33,7 @@
#define MSG_SET_ORIGIN "Set origin"
#define MSG_ONFOR "On x:"
#define MSG_PWRCONSUMED "P.er:"
#define MSG_FILCONSUMED "F:"
#define MSG_PREHEAT "Forvarm"
#define MSG_PREHEAT_PLA MSG_PREHEAT " PLA"
#define MSG_PREHEAT_PLA_ALL MSG_PREHEAT_PLA " Alle"
......@@ -205,6 +206,17 @@
#define MSG_RESTORING_POS "Restoring position"
#define MSG_INVALID_POS_SLOT "Invalid slot, total slots: "
// Rfid module
#if ENABLED(RFID_MODULE)
#define MSG_RFID_SPOOL "Spool on E"
#define MSG_RFID_BRAND "Brand: "
#define MSG_RFID_COLOR "Color: "
#define MSG_RFID_SIZE "Size: "
#define MSG_RFID_TEMPERATURE "Temperature: "
#define MSG_RFID_DENSITY "Density: "
#define MSG_RFID_SPOOL_LENGHT "Spool Lenght: "
#endif
// Firmware Test
#if ENABLED(FIRMWARE_TEST)
#define MSG_FWTEST_YES "Put the Y command to go next"
......
......@@ -33,6 +33,7 @@
#define MSG_SET_ORIGIN "Setze Null hier"
#define MSG_ONFOR "On x:"
#define MSG_PWRCONSUMED "P.er:"
#define MSG_FILCONSUMED "F:"
#define MSG_PREHEAT "Vorwärmen"
#define MSG_PREHEAT_PLA MSG_PREHEAT " PLA"
#define MSG_PREHEAT_PLA_ALL MSG_PREHEAT_PLA " All"
......@@ -205,6 +206,17 @@
#define MSG_RESTORING_POS "Restoring position"
#define MSG_INVALID_POS_SLOT "Invalid slot, total slots: "
// Rfid module
#if ENABLED(RFID_MODULE)
#define MSG_RFID_SPOOL "Spool on E"
#define MSG_RFID_BRAND "Brand: "
#define MSG_RFID_COLOR "Color: "
#define MSG_RFID_SIZE "Size: "
#define MSG_RFID_TEMPERATURE "Temperature: "
#define MSG_RFID_DENSITY "Density: "
#define MSG_RFID_SPOOL_LENGHT "Spool Lenght: "
#endif
// Firmware Test
#if ENABLED(FIRMWARE_TEST)
#define MSG_FWTEST_YES "Put the Y command to go next"
......
......@@ -33,6 +33,7 @@
#define MSG_SET_ORIGIN "Set origin"
#define MSG_ONFOR "On x:"
#define MSG_PWRCONSUMED "P.er:"
#define MSG_FILCONSUMED "F:"
#define MSG_PREHEAT "Preheat"
#define MSG_PREHEAT_PLA MSG_PREHEAT " PLA"
#define MSG_PREHEAT_PLA_ALL MSG_PREHEAT_PLA " All"
......@@ -152,7 +153,7 @@
#define MSG_HEATING_FAILED_LCD "Heating failed"
#define MSG_ERR_REDUNDANT_TEMP "REDUNDANT TEMP ERROR"
#define MSG_THERMAL_RUNAWAY "THERMAL RUNAWAY"
#define MSG_HOTEND_AD595 "HOTEND AD595 Offset & Gain"
#define MSG_AD595 "AD595 Offset & Gain"
#define MSG_ERR_MAXTEMP "MAXTEMP ERROR"
#define MSG_ERR_MINTEMP "MINTEMP ERROR"
#define MSG_ERR_MAXTEMP_BED "MAXTEMP BED ERROR"
......@@ -205,6 +206,21 @@
#define MSG_RESTORING_POS "Restoring position"
#define MSG_INVALID_POS_SLOT "Invalid slot, total slots: "
// Rfid module
#if ENABLED(RFID_MODULE)
#define MSG_RFID_SPOOL "Spool on E"
#define MSG_RFID_BRAND "Brand: "
#define MSG_RFID_TYPE "Type: "
#define MSG_RFID_COLOR "Color: "
#define MSG_RFID_SIZE "Size: "
#define MSG_RFID_TEMP_HOTEND "Temperature Hotend: "
#define MSG_RFID_TEMP_BED "Temperature Bed: "
#define MSG_RFID_TEMP_USER_HOTEND "User temperature Hotend: "
#define MSG_RFID_TEMP_USER_BED "User temperatura Bed: "
#define MSG_RFID_DENSITY "Density: "
#define MSG_RFID_SPOOL_LENGHT "Spool Lenght: "
#endif
// Firmware Test
#if ENABLED(FIRMWARE_TEST)
#define MSG_FWTEST_YES "Put the Y command to go next"
......
......@@ -33,6 +33,7 @@
#define MSG_SET_ORIGIN "Establecer cero"
#define MSG_ONFOR "On x:"
#define MSG_PWRCONSUMED "P.er:"
#define MSG_FILCONSUMED "F:"
#define MSG_PREHEAT "Precalentar"
#define MSG_PREHEAT_PLA MSG_PREHEAT " PLA"
#define MSG_PREHEAT_PLA_ALL MSG_PREHEAT_PLA " All"
......@@ -205,6 +206,17 @@
#define MSG_RESTORING_POS "Restoring position"
#define MSG_INVALID_POS_SLOT "Invalid slot, total slots: "
// Rfid module
#if ENABLED(RFID_MODULE)
#define MSG_RFID_SPOOL "Spool on E"
#define MSG_RFID_BRAND "Brand: "
#define MSG_RFID_COLOR "Color: "
#define MSG_RFID_SIZE "Size: "
#define MSG_RFID_TEMPERATURE "Temperature: "
#define MSG_RFID_DENSITY "Density: "
#define MSG_RFID_SPOOL_LENGHT "Spool Lenght: "
#endif
// Firmware Test
#if ENABLED(FIRMWARE_TEST)
#define MSG_FWTEST_YES "Put the Y command to go next"
......
......@@ -33,6 +33,7 @@
#define MSG_SET_ORIGIN "Hasiera ipini"
#define MSG_ONFOR "On x:"
#define MSG_PWRCONSUMED "P.er:"
#define MSG_FILCONSUMED "F:"
#define MSG_PREHEAT "Berotu"
#define MSG_PREHEAT_PLA MSG_PREHEAT " PLA"
#define MSG_PREHEAT_PLA_ALL MSG_PREHEAT_PLA " Guztia"
......@@ -205,6 +206,17 @@
#define MSG_RESTORING_POS "Restoring position"
#define MSG_INVALID_POS_SLOT "Invalid slot, total slots: "
// Rfid module
#if ENABLED(RFID_MODULE)
#define MSG_RFID_SPOOL "Spool on E"
#define MSG_RFID_BRAND "Brand: "
#define MSG_RFID_COLOR "Color: "
#define MSG_RFID_SIZE "Size: "
#define MSG_RFID_TEMPERATURE "Temperature: "
#define MSG_RFID_DENSITY "Density: "
#define MSG_RFID_SPOOL_LENGHT "Spool Lenght: "
#endif
// Firmware Test
#if ENABLED(FIRMWARE_TEST)
#define MSG_FWTEST_YES "Put the Y command to go next"
......
......@@ -33,6 +33,7 @@
#define MSG_SET_ORIGIN "Aseta origo"
#define MSG_ONFOR "On x:"
#define MSG_PWRCONSUMED "P.er:"
#define MSG_FILCONSUMED "F:"
#define MSG_PREHEAT "Preheat"
#define MSG_PREHEAT_PLA MSG_PREHEAT " PLA"
#define MSG_PREHEAT_PLA_ALL MSG_PREHEAT_PLA " All"
......@@ -205,6 +206,17 @@
#define MSG_RESTORING_POS "Restoring position"
#define MSG_INVALID_POS_SLOT "Invalid slot, total slots: "
// Rfid module
#if ENABLED(RFID_MODULE)
#define MSG_RFID_SPOOL "Spool on E"
#define MSG_RFID_BRAND "Brand: "
#define MSG_RFID_COLOR "Color: "
#define MSG_RFID_SIZE "Size: "
#define MSG_RFID_TEMPERATURE "Temperature: "
#define MSG_RFID_DENSITY "Density: "
#define MSG_RFID_SPOOL_LENGHT "Spool Lenght: "
#endif
// Firmware Test
#if ENABLED(FIRMWARE_TEST)
#define MSG_FWTEST_YES "Put the Y command to go next"
......
......@@ -33,6 +33,7 @@
#define MSG_SET_ORIGIN "Regler origine"
#define MSG_ONFOR "On x:"
#define MSG_PWRCONSUMED "P.er:"
#define MSG_FILCONSUMED "F:"
#define MSG_PREHEAT "Prech."
#define MSG_PREHEAT_PLA MSG_PREHEAT " PLA"
#define MSG_PREHEAT_PLA_ALL MSG_PREHEAT_PLA " Tout"
......@@ -205,6 +206,17 @@
#define MSG_RESTORING_POS "Restoring position"
#define MSG_INVALID_POS_SLOT "Invalid slot, total slots: "
// Rfid module
#if ENABLED(RFID_MODULE)
#define MSG_RFID_SPOOL "Spool on E"
#define MSG_RFID_BRAND "Brand: "
#define MSG_RFID_COLOR "Color: "
#define MSG_RFID_SIZE "Size: "
#define MSG_RFID_TEMPERATURE "Temperature: "
#define MSG_RFID_DENSITY "Density: "
#define MSG_RFID_SPOOL_LENGHT "Spool Lenght: "
#endif
// Firmware Test
#if ENABLED(FIRMWARE_TEST)
#define MSG_FWTEST_YES "Put the Y command to go next"
......
......@@ -33,6 +33,7 @@
#define MSG_SET_ORIGIN "Imposta Origine"
#define MSG_ONFOR "On x:"
#define MSG_PWRCONSUMED "P.za:"
#define MSG_FILCONSUMED "F:"
#define MSG_PREHEAT "Preriscalda"
#define MSG_PREHEAT_PLA "Preriscalda PLA"
#define MSG_PREHEAT_PLA_ALL "Prer. PLA Tutto"
......@@ -152,7 +153,7 @@
#define MSG_HEATING_FAILED_LCD "Riscaldamento fallito"
#define MSG_ERR_REDUNDANT_TEMP "REDUNDANT TEMP ERROR"
#define MSG_THERMAL_RUNAWAY "THERMAL RUNAWAY"
#define MSG_HOTEND_AD595 "HOTEND AD595 Offset & Gain"
#define MSG_AD595 "AD595 Offset & Gain"
#define MSG_ERR_MAXTEMP "MAXTEMP ERROR"
#define MSG_ERR_MINTEMP "MINTEMP ERROR"
#define MSG_ERR_MAXTEMP_BED "MAXTEMP BED ERROR"
......@@ -205,6 +206,21 @@
#define MSG_RESTORING_POS "Ripristino posizione"
#define MSG_INVALID_POS_SLOT "Slot invalido, slot totali: "
// Rfid module
#if ENABLED(RFID_MODULE)
#define MSG_RFID_SPOOL "Bobina su E"
#define MSG_RFID_BRAND "Marca: "
#define MSG_RFID_TYPE "Tipo: "
#define MSG_RFID_COLOR "Colore: "
#define MSG_RFID_SIZE "Size: "
#define MSG_RFID_TEMP_HOTEND "Temperatura Hotend: "
#define MSG_RFID_TEMP_BED "Temperatura Bed: "
#define MSG_RFID_TEMP_USER_HOTEND "Temperatura utente Hotend: "
#define MSG_RFID_TEMP_USER_BED "Temperatura utente Bed: "
#define MSG_RFID_DENSITY "Densita': "
#define MSG_RFID_SPOOL_LENGHT "Lunghezza bobina: "
#endif
// Firmware Test
#if ENABLED(FIRMWARE_TEST)
#define MSG_FWTEST_YES "Dai il comando Y per andare avanti"
......
......@@ -35,6 +35,7 @@
#define MSG_SET_ORIGIN "\xb7\xbc\xde\xad\xdd\xbe\xaf\xc4" // "Set origin"
#define MSG_ONFOR "On x:"
#define MSG_PWRCONSUMED "P.er:"
#define MSG_FILCONSUMED "F:"
#define MSG_PREHEAT "Preheat"
#define MSG_PREHEAT_PLA "PLA \xd6\xc8\xc2"
#define MSG_PREHEAT_PLA_ALL MSG_PREHEAT_PLA " \xbd\xcd\xde\xc3" // " All"
......@@ -207,6 +208,17 @@
#define MSG_RESTORING_POS "Restoring position"
#define MSG_INVALID_POS_SLOT "Invalid slot, total slots: "
// Rfid module
#if ENABLED(RFID_MODULE)
#define MSG_RFID_SPOOL "Spool on E"
#define MSG_RFID_BRAND "Brand: "
#define MSG_RFID_COLOR "Color: "
#define MSG_RFID_SIZE "Size: "
#define MSG_RFID_TEMPERATURE "Temperature: "
#define MSG_RFID_DENSITY "Density: "
#define MSG_RFID_SPOOL_LENGHT "Spool Lenght: "
#endif
// Firmware Test
#if ENABLED(FIRMWARE_TEST)
#define MSG_FWTEST_YES "Put the Y command to go next"
......
......@@ -38,6 +38,7 @@
#define MSG_SET_ORIGIN "キヅユンセツト" // "Set origin"
#define MSG_ONFOR "On x:"
#define MSG_PWRCONSUMED "P.er:"
#define MSG_FILCONSUMED "F:"
#define MSG_PREHEAT "Preheat"
#define MSG_PREHEAT_PLA "PLA ヨネシ" // "Preheat PLA"
#define MSG_PREHEAT_PLA_ALL MSG_PREHEAT_PLA " スベテ" // " All"
......@@ -210,6 +211,17 @@
#define MSG_RESTORING_POS "Restoring position"
#define MSG_INVALID_POS_SLOT "Invalid slot, total slots: "
// Rfid module
#if ENABLED(RFID_MODULE)
#define MSG_RFID_SPOOL "Spool on E"
#define MSG_RFID_BRAND "Brand: "
#define MSG_RFID_COLOR "Color: "
#define MSG_RFID_SIZE "Size: "
#define MSG_RFID_TEMPERATURE "Temperature: "
#define MSG_RFID_DENSITY "Density: "
#define MSG_RFID_SPOOL_LENGHT "Spool Lenght: "
#endif
// Firmware Test
#if ENABLED(FIRMWARE_TEST)
#define MSG_FWTEST_YES "Put the Y command to go next"
......
......@@ -33,6 +33,7 @@
#define MSG_SET_ORIGIN "Nulpunt instellen"
#define MSG_ONFOR "On x:"
#define MSG_PWRCONSUMED "P.er:"
#define MSG_FILCONSUMED "F:"
#define MSG_PREHEAT "Preheat"
#define MSG_PREHEAT_PLA "PLA voorverwarmen"
#define MSG_PREHEAT_PLA_ALL "PLA voorverw. aan"
......@@ -205,6 +206,17 @@
#define MSG_RESTORING_POS "Restoring position"
#define MSG_INVALID_POS_SLOT "Invalid slot, total slots: "
// Rfid module
#if ENABLED(RFID_MODULE)
#define MSG_RFID_SPOOL "Spool on E"
#define MSG_RFID_BRAND "Brand: "
#define MSG_RFID_COLOR "Color: "
#define MSG_RFID_SIZE "Size: "
#define MSG_RFID_TEMPERATURE "Temperature: "
#define MSG_RFID_DENSITY "Density: "
#define MSG_RFID_SPOOL_LENGHT "Spool Lenght: "
#endif
// Firmware Test
#if ENABLED(FIRMWARE_TEST)
#define MSG_FWTEST_YES "Put the Y command to go next"
......
......@@ -33,6 +33,7 @@
#define MSG_SET_ORIGIN "Ustaw punkt zero"
#define MSG_ONFOR "On x:"
#define MSG_PWRCONSUMED "P.er:"
#define MSG_FILCONSUMED "F:"
#define MSG_PREHEAT "Preheat"
#define MSG_PREHEAT_PLA "Rozgrzej PLA"
#define MSG_PREHEAT_PLA_ALL "Roz. PLA Wszystko"
......@@ -205,6 +206,17 @@
#define MSG_RESTORING_POS "Restoring position"
#define MSG_INVALID_POS_SLOT "Invalid slot, total slots: "
// Rfid module
#if ENABLED(RFID_MODULE)
#define MSG_RFID_SPOOL "Spool on E"
#define MSG_RFID_BRAND "Brand: "
#define MSG_RFID_COLOR "Color: "
#define MSG_RFID_SIZE "Size: "
#define MSG_RFID_TEMPERATURE "Temperature: "
#define MSG_RFID_DENSITY "Density: "
#define MSG_RFID_SPOOL_LENGHT "Spool Lenght: "
#endif
// Firmware Test
#if ENABLED(FIRMWARE_TEST)
#define MSG_FWTEST_YES "Put the Y command to go next"
......
......@@ -33,6 +33,7 @@
#define MSG_SET_ORIGIN "Estabelecer orig."
#define MSG_ONFOR "On x:"
#define MSG_PWRCONSUMED "P.er:"
#define MSG_FILCONSUMED "F:"
#define MSG_PREHEAT "Pre-aq."
#define MSG_PREHEAT_PLA MSG_PREHEAT " PLA"
#define MSG_PREHEAT_PLA_ALL MSG_PREHEAT_PLA " Tudo"
......@@ -205,6 +206,17 @@
#define MSG_RESTORING_POS "Restoring position"
#define MSG_INVALID_POS_SLOT "Invalid slot, total slots: "
// Rfid module
#if ENABLED(RFID_MODULE)
#define MSG_RFID_SPOOL "Spool on E"
#define MSG_RFID_BRAND "Brand: "
#define MSG_RFID_COLOR "Color: "
#define MSG_RFID_SIZE "Size: "
#define MSG_RFID_TEMPERATURE "Temperature: "
#define MSG_RFID_DENSITY "Density: "
#define MSG_RFID_SPOOL_LENGHT "Spool Lenght: "
#endif
// Firmware Test
#if ENABLED(FIRMWARE_TEST)
#define MSG_FWTEST_YES "Put the Y command to go next"
......
......@@ -33,6 +33,7 @@
#define MSG_SET_ORIGIN "Estabelecer orig."
#define MSG_ONFOR "On x:"
#define MSG_PWRCONSUMED "P.er:"
#define MSG_FILCONSUMED "F:"
#define MSG_PREHEAT "Pre-aq."
#define MSG_PREHEAT_PLA MSG_PREHEAT " PLA"
#define MSG_PREHEAT_PLA_ALL MSG_PREHEAT_PLA " Tudo"
......@@ -205,6 +206,17 @@
#define MSG_RESTORING_POS "Restoring position"
#define MSG_INVALID_POS_SLOT "Invalid slot, total slots: "
// Rfid module
#if ENABLED(RFID_MODULE)
#define MSG_RFID_SPOOL "Spool on E"
#define MSG_RFID_BRAND "Brand: "
#define MSG_RFID_COLOR "Color: "
#define MSG_RFID_SIZE "Size: "
#define MSG_RFID_TEMPERATURE "Temperature: "
#define MSG_RFID_DENSITY "Density: "
#define MSG_RFID_SPOOL_LENGHT "Spool Lenght: "
#endif
// Firmware Test
#if ENABLED(FIRMWARE_TEST)
#define MSG_FWTEST_YES "Put the Y command to go next"
......
......@@ -33,6 +33,7 @@
#define MSG_SET_ORIGIN "Запомнить ноль"
#define MSG_ONFOR "On x:"
#define MSG_PWRCONSUMED "P.er:"
#define MSG_FILCONSUMED "F:"
#define MSG_PREHEAT "Преднаг"
#define MSG_PREHEAT_PLA MSG_PREHEAT " PLA"
#define MSG_PREHEAT_PLA_ALL MSG_PREHEAT_PLA " все"
......@@ -205,6 +206,17 @@
#define MSG_RESTORING_POS "Restoring position"
#define MSG_INVALID_POS_SLOT "Invalid slot, total slots: "
// Rfid module
#if ENABLED(RFID_MODULE)
#define MSG_RFID_SPOOL "Spool on E"
#define MSG_RFID_BRAND "Brand: "
#define MSG_RFID_COLOR "Color: "
#define MSG_RFID_SIZE "Size: "
#define MSG_RFID_TEMPERATURE "Temperature: "
#define MSG_RFID_DENSITY "Density: "
#define MSG_RFID_SPOOL_LENGHT "Spool Lenght: "
#endif
// Firmware Test
#if ENABLED(FIRMWARE_TEST)
#define MSG_FWTEST_YES "Put the Y command to go next"
......
#include "../base.h"
#include "../../base.h"
#if HAS(BUZZER)
#include "buzzer.h"
#include "ultralcd.h"
void buzz(long duration, uint16_t freq) {
if (freq > 0) {
......
......@@ -11,7 +11,7 @@
* License: http://opensource.org/licenses/BSD-3-Clause
*/
#include "../base.h"
#include "../../base.h"
#ifndef DOGM_LCD_IMPLEMENTATION_H
#define DOGM_LCD_IMPLEMENTATION_H
......
#include "../base.h"
#include "../Marlin_main.h"
#include "../Configuration_Store.h"
#include "../../base.h"
#if ENABLED(ULTRA_LCD)
#include "cardreader.h"
#include "temperature.h"
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
#include "vector_3.h"
#endif
#include "planner.h"
#include "stepper_indirection.h"
#include "stepper.h"
#include "ultralcd.h"
#if HAS(BUZZER)
#include "buzzer.h"
#endif
int8_t encoderDiff; // updated from interrupt context and added to encoderPosition every LCD update
bool encoderRateMultiplierEnabled;
......@@ -1148,6 +1132,13 @@ static void lcd_stats_menu() {
sprintf_P(row, PSTR(MSG_PWRCONSUMED " %iWh"), power_consumption_hour);
LCD_Printpos(0, 1); lcd_print(row);
#endif
char lung[30];
unsigned int kmeter = (long)printer_usage_filament / 1000 / 1000,
meter = ((long)printer_usage_filament / 1000) % 1000,
centimeter = ((long)printer_usage_filament / 10) % 100,
millimeter = ((long)printer_usage_filament) % 10;
sprintf_P(lung, PSTR(MSG_FILCONSUMED "%i Km %i m %i cm %i mm"), kmeter, meter, centimeter, millimeter);
LCD_Printpos(0, 2); lcd_print(lung);
if (LCD_CLICKED) lcd_goto_menu(lcd_main_menu);
}
......
#ifndef ULTRALCD_H
#define ULTRALCD_H
#include "../Marlin_main.h"
#if ENABLED(ULTRA_LCD)
#if HAS(BUZZER)
#include "buzzer.h"
......
......@@ -48,14 +48,8 @@
*
*/
#include "../base.h"
#include "../Marlin_main.h"
#include "../../base.h"
#include "planner.h"
#include "stepper_indirection.h"
#include "stepper.h"
#include "temperature.h"
#include "ultralcd.h"
//===========================================================================
//============================= public variables ============================
......@@ -121,7 +115,7 @@ uint8_t g_uc_extruder_last_move[EXTRUDERS] = { 0 };
#endif
#if ENABLED(FILAMENT_SENSOR)
static char meas_sample; //temporary variable to hold filament measurement sample
static char meas_sample; // temporary variable to hold filament measurement sample
#endif
#if ENABLED(DUAL_X_CARRIAGE)
......
#include "qr_solve.h"
#include "../../base.h"
#if ENABLED(AUTO_BED_LEVELING_FEATURE) && ENABLED(AUTO_BED_LEVELING_GRID)
#include "qr_solve.h"
#include <stdlib.h>
#include <math.h>
......
#include "../base.h"
#if ENABLED(AUTO_BED_LEVELING_GRID)
void daxpy(int n, double da, double dx[], int incx, double dy[], int incy);
......
......@@ -22,26 +22,10 @@
/* The timer calculations of this module informed by the 'RepRap cartesian firmware' by Zack Smith
and Philipp Tiefenbacher. */
#include "../base.h"
#include "../Marlin_main.h"
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
#include "vector_3.h"
#endif
#include "planner.h"
#include "stepper_indirection.h"
#if MB(ALLIGATOR)
#include "external_dac.h"
#endif
#include "../../base.h"
#include "stepper.h"
#include "temperature.h"
#include "ultralcd.h"
#include "nextion_lcd.h"
#if ENABLED(SDSUPPORT)
#include "cardreader.h"
#endif
#include "speed_lookuptable.h"
#if HAS(DIGIPOTSS)
#include <SPI.h>
#endif
......@@ -553,7 +537,7 @@ FORCE_INLINE unsigned short calc_timer(unsigned short step_rate) {
timer = (unsigned short)pgm_read_word_near(table_address);
timer -= (((unsigned short)pgm_read_word_near(table_address + 2) * (unsigned char)(step_rate & 0x0007)) >> 3);
}
if (timer < 100) { timer = 100; MYSERIAL.print(SERIAL_STEPPER_TOO_HIGH); MYSERIAL.println(step_rate); }//(20kHz this should never happen)
if (timer < 100) { timer = 100; ECHO_M(SERIAL_STEPPER_TOO_HIGH); ECHO_T(step_rate); }//(20kHz this should never happen)
return timer;
}
......@@ -702,7 +686,7 @@ ISR(TIMER1_COMPA_vect) {
// Take multiple steps per interrupt (For high speed moves)
for (int8_t i = 0; i < step_loops; i++) {
#ifndef USBCON
customizedSerial.checkRx(); // Check for serial chars.
MKSERIAL.checkRx(); // Check for serial chars.
#endif
#if ENABLED(ADVANCE)
......
......@@ -19,7 +19,7 @@
along with Marlin. If not, see <http://www.gnu.org/licenses/>.
*/
#include "../base.h"
#include "../../base.h"
#include "stepper_indirection.h"
#if ENABLED(HAVE_TMCDRIVER)
......
......@@ -16,8 +16,9 @@
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "../../base.h"
#include <math.h>
#include "../base.h"
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
#include "vector_3.h"
......@@ -60,7 +61,7 @@ void vector_3::apply_rotation(matrix_3x3 matrix) {
}
void vector_3::debug(const char title[]) {
ECHO_SV(DB, title);
ECHO_ST(DB, title);
ECHO_MV(" x: ", x, 6);
ECHO_MV(" y: ", y, 6);
ECHO_EMV(" z: ", z, 6);
......@@ -117,7 +118,7 @@ matrix_3x3 matrix_3x3::transpose(matrix_3x3 original) {
}
void matrix_3x3::debug(const char title[]) {
ECHO_LV(DB, title);
ECHO_LT(DB, title);
int count = 0;
for (int i = 0; i < 3; i++) {
ECHO_S(DB);
......
......@@ -16,6 +16,7 @@
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef VECTOR_3_H
#define VECTOR_3_H
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment