Latest upstream commits
This commit is contained in:
@ -362,7 +362,7 @@
|
||||
#define HAS_AUTO_FAN_1 (defined(EXTRUDER_1_AUTO_FAN_PIN) && EXTRUDER_1_AUTO_FAN_PIN >= 0)
|
||||
#define HAS_AUTO_FAN_2 (defined(EXTRUDER_2_AUTO_FAN_PIN) && EXTRUDER_2_AUTO_FAN_PIN >= 0)
|
||||
#define HAS_AUTO_FAN_3 (defined(EXTRUDER_3_AUTO_FAN_PIN) && EXTRUDER_3_AUTO_FAN_PIN >= 0)
|
||||
#define HAS_AUTO_FAN HAS_AUTO_FAN_0 || HAS_AUTO_FAN_1 || HAS_AUTO_FAN_2 || HAS_AUTO_FAN_3
|
||||
#define HAS_AUTO_FAN (HAS_AUTO_FAN_0 || HAS_AUTO_FAN_1 || HAS_AUTO_FAN_2 || HAS_AUTO_FAN_3)
|
||||
#define HAS_FAN (defined(FAN_PIN) && FAN_PIN >= 0)
|
||||
|
||||
/**
|
||||
|
@ -532,9 +532,11 @@ const bool Z_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic o
|
||||
// Custom M code points
|
||||
#define CUSTOM_M_CODES
|
||||
#ifdef CUSTOM_M_CODES
|
||||
#define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
|
||||
#define Z_PROBE_OFFSET_RANGE_MIN -15
|
||||
#define Z_PROBE_OFFSET_RANGE_MAX -5
|
||||
#ifdef ENABLE_AUTO_BED_LEVELING
|
||||
#define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
|
||||
#define Z_PROBE_OFFSET_RANGE_MIN -20
|
||||
#define Z_PROBE_OFFSET_RANGE_MAX 20
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
@ -561,13 +563,16 @@ const bool Z_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic o
|
||||
//==============================LCD and SD support=============================
|
||||
|
||||
// Define your display language below. Replace (en) with your language code and uncomment.
|
||||
// en, pl, fr, de, es, ru, it, pt, pt-br, fi, an, nl, ca, eu
|
||||
// en, pl, fr, de, es, ru, it, pt, pt-br, fi, an, nl, ca, eu, kana, kana_utf8, test
|
||||
// See also language.h
|
||||
//#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en)
|
||||
#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en)
|
||||
|
||||
// Character based displays can have different extended charsets.
|
||||
#define DISPLAY_CHARSET_HD44780_JAPAN // "ääööüüß23°"
|
||||
//#define DISPLAY_CHARSET_HD44780_WESTERN // "ÄäÖöÜüß²³°" if you see a '~' instead of a 'arrow_right' at the right of submenuitems - this is the right one.
|
||||
// Chose ONE of the next three charsets. This has to match your hardware. In case of a full graphic display this information is not important.
|
||||
// To find out what type you have - compile with (test) - upload - click to get the menu. You'll see two typical lines from the upper half of the charset.
|
||||
// See also documentation/LCDLanguageFont.md
|
||||
#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware
|
||||
//#define DISPLAY_CHARSET_HD44780_WESTERN
|
||||
//#define DISPLAY_CHARSET_HD44780_CYRILLIC
|
||||
|
||||
//#define ULTRA_LCD //general LCD support, also 16x2
|
||||
//#define DOGLCD // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family)
|
||||
@ -580,6 +585,7 @@ const bool Z_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic o
|
||||
//#define ULTIPANEL //the UltiPanel as on Thingiverse
|
||||
//#define LCD_FEEDBACK_FREQUENCY_HZ 1000 // this is the tone frequency the buzzer plays when on UI feedback. ie Screen Click
|
||||
//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 // the duration the buzzer plays the UI feedback sound. ie Screen Click
|
||||
// 0 to disable buzzer feedback
|
||||
|
||||
// PanelOne from T3P3 (via RAMPS 1.4 AUX2/AUX3)
|
||||
// http://reprap.org/wiki/PanelOne
|
||||
|
@ -11,7 +11,7 @@
|
||||
* max_acceleration_units_per_sq_second (x4)
|
||||
* acceleration
|
||||
* retract_acceleration
|
||||
* travel_aceeleration
|
||||
* travel_acceleration
|
||||
* minimumfeedrate
|
||||
* mintravelfeedrate
|
||||
* minsegmenttime
|
||||
@ -25,6 +25,7 @@
|
||||
* mesh_num_x
|
||||
* mesh_num_y
|
||||
* z_values[][]
|
||||
* zprobe_zoffset
|
||||
*
|
||||
* DELTA:
|
||||
* endstop_adj (x3)
|
||||
@ -39,7 +40,6 @@
|
||||
* absPreheatHotendTemp
|
||||
* absPreheatHPBTemp
|
||||
* absPreheatFanSpeed
|
||||
* zprobe_zoffset
|
||||
*
|
||||
* PIDTEMP:
|
||||
* Kp[0], Ki[0], Kd[0], Kc[0]
|
||||
@ -118,7 +118,7 @@ void _EEPROM_readData(int &pos, uint8_t* value, uint8_t size) {
|
||||
// wrong data being written to the variables.
|
||||
// ALSO: always make sure the variables in the Store and retrieve sections are in the same order.
|
||||
|
||||
#define EEPROM_VERSION "V17"
|
||||
#define EEPROM_VERSION "V18"
|
||||
|
||||
#ifdef EEPROM_SETTINGS
|
||||
|
||||
@ -143,7 +143,7 @@ void Config_StoreSettings() {
|
||||
|
||||
uint8_t mesh_num_x = 3;
|
||||
uint8_t mesh_num_y = 3;
|
||||
#if defined(MESH_BED_LEVELING)
|
||||
#ifdef MESH_BED_LEVELING
|
||||
// Compile time test that sizeof(mbl.z_values) is as expected
|
||||
typedef char c_assert[(sizeof(mbl.z_values) == MESH_NUM_X_POINTS*MESH_NUM_Y_POINTS*sizeof(dummy)) ? 1 : -1];
|
||||
mesh_num_x = MESH_NUM_X_POINTS;
|
||||
@ -161,7 +161,12 @@ void Config_StoreSettings() {
|
||||
for (int q=0; q<mesh_num_x*mesh_num_y; q++) {
|
||||
EEPROM_WRITE_VAR(i, dummy);
|
||||
}
|
||||
#endif // MESH_BED_LEVELING
|
||||
#endif // MESH_BED_LEVELING
|
||||
|
||||
#ifndef ENABLE_AUTO_BED_LEVELING
|
||||
float zprobe_zoffset = 0;
|
||||
#endif
|
||||
EEPROM_WRITE_VAR(i, zprobe_zoffset);
|
||||
|
||||
#ifdef DELTA
|
||||
EEPROM_WRITE_VAR(i, endstop_adj); // 3 floats
|
||||
@ -188,7 +193,7 @@ void Config_StoreSettings() {
|
||||
EEPROM_WRITE_VAR(i, absPreheatHotendTemp);
|
||||
EEPROM_WRITE_VAR(i, absPreheatHPBTemp);
|
||||
EEPROM_WRITE_VAR(i, absPreheatFanSpeed);
|
||||
EEPROM_WRITE_VAR(i, zprobe_zoffset);
|
||||
|
||||
|
||||
for (int e = 0; e < 4; e++) {
|
||||
|
||||
@ -328,6 +333,11 @@ void Config_RetrieveSettings() {
|
||||
}
|
||||
#endif // MESH_BED_LEVELING
|
||||
|
||||
#ifndef ENABLE_AUTO_BED_LEVELING
|
||||
float zprobe_zoffset = 0;
|
||||
#endif
|
||||
EEPROM_READ_VAR(i, zprobe_zoffset);
|
||||
|
||||
#ifdef DELTA
|
||||
EEPROM_READ_VAR(i, endstop_adj); // 3 floats
|
||||
EEPROM_READ_VAR(i, delta_radius); // 1 float
|
||||
@ -353,7 +363,6 @@ void Config_RetrieveSettings() {
|
||||
EEPROM_READ_VAR(i, absPreheatHotendTemp);
|
||||
EEPROM_READ_VAR(i, absPreheatHPBTemp);
|
||||
EEPROM_READ_VAR(i, absPreheatFanSpeed);
|
||||
EEPROM_READ_VAR(i, zprobe_zoffset);
|
||||
|
||||
#ifdef PIDTEMP
|
||||
for (int e = 0; e < 4; e++) { // 4 = max extruders currently supported by Marlin
|
||||
@ -461,9 +470,13 @@ void Config_ResetDefault() {
|
||||
max_e_jerk = DEFAULT_EJERK;
|
||||
home_offset[X_AXIS] = home_offset[Y_AXIS] = home_offset[Z_AXIS] = 0;
|
||||
|
||||
#if defined(MESH_BED_LEVELING)
|
||||
#ifdef MESH_BED_LEVELING
|
||||
mbl.active = 0;
|
||||
#endif // MESH_BED_LEVELING
|
||||
#endif
|
||||
|
||||
#ifdef ENABLE_AUTO_BED_LEVELING
|
||||
zprobe_zoffset = -Z_PROBE_OFFSET_FROM_EXTRUDER;
|
||||
#endif
|
||||
|
||||
#ifdef DELTA
|
||||
endstop_adj[X_AXIS] = endstop_adj[Y_AXIS] = endstop_adj[Z_AXIS] = 0;
|
||||
@ -484,10 +497,6 @@ void Config_ResetDefault() {
|
||||
absPreheatFanSpeed = ABS_PREHEAT_FAN_SPEED;
|
||||
#endif
|
||||
|
||||
#ifdef ENABLE_AUTO_BED_LEVELING
|
||||
zprobe_zoffset = -Z_PROBE_OFFSET_FROM_EXTRUDER;
|
||||
#endif
|
||||
|
||||
#ifdef DOGLCD
|
||||
lcd_contrast = DEFAULT_LCD_CONTRAST;
|
||||
#endif
|
||||
@ -738,15 +747,20 @@ void Config_PrintSettings(bool forReplay) {
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef CUSTOM_M_CODES
|
||||
#ifdef ENABLE_AUTO_BED_LEVELING
|
||||
SERIAL_ECHO_START;
|
||||
if (!forReplay) {
|
||||
SERIAL_ECHOLNPGM("Z-Probe Offset (mm):");
|
||||
SERIAL_ECHO_START;
|
||||
}
|
||||
SERIAL_ECHO(" M");
|
||||
SERIAL_ECHO(CUSTOM_M_CODE_SET_Z_PROBE_OFFSET);
|
||||
SERIAL_ECHOPAIR(" Z", -zprobe_zoffset);
|
||||
#ifdef CUSTOM_M_CODES
|
||||
if (!forReplay) {
|
||||
SERIAL_ECHOLNPGM("Z-Probe Offset (mm):");
|
||||
SERIAL_ECHO_START;
|
||||
}
|
||||
SERIAL_ECHOPAIR(" M", (unsigned long)CUSTOM_M_CODE_SET_Z_PROBE_OFFSET);
|
||||
SERIAL_ECHOPAIR(" Z", -zprobe_zoffset);
|
||||
#else
|
||||
if (!forReplay) {
|
||||
SERIAL_ECHOPAIR("Z-Probe Offset (mm):", -zprobe_zoffset);
|
||||
}
|
||||
#endif
|
||||
SERIAL_EOL;
|
||||
#endif
|
||||
}
|
||||
|
@ -1,393 +0,0 @@
|
||||
#include "LiquidCrystalRus.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <inttypes.h>
|
||||
#include <avr/pgmspace.h>
|
||||
|
||||
#if defined(ARDUINO) && ARDUINO >= 100
|
||||
#include "Arduino.h"
|
||||
#else
|
||||
#include "WProgram.h"
|
||||
#endif
|
||||
|
||||
// it is a Russian alphabet translation
|
||||
// except 0401 --> 0xa2 = ╗, 0451 --> 0xb5
|
||||
const PROGMEM uint8_t utf_recode[] =
|
||||
{ 0x41,0xa0,0x42,0xa1,0xe0,0x45,0xa3,0xa4,
|
||||
0xa5,0xa6,0x4b,0xa7,0x4d,0x48,0x4f,0xa8,
|
||||
0x50,0x43,0x54,0xa9,0xaa,0x58,0xe1,0xab,
|
||||
0xac,0xe2,0xad,0xae,0x62,0xaf,0xb0,0xb1,
|
||||
0x61,0xb2,0xb3,0xb4,0xe3,0x65,0xb6,0xb7,
|
||||
0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0x6f,0xbe,
|
||||
0x70,0x63,0xbf,0x79,0xe4,0x78,0xe5,0xc0,
|
||||
0xc1,0xe6,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7
|
||||
};
|
||||
|
||||
// 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).
|
||||
//
|
||||
// modified 27 Jul 2011
|
||||
// by Ilya V. Danilov http://mk90.ru/
|
||||
|
||||
|
||||
LiquidCrystalRus::LiquidCrystalRus(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);
|
||||
}
|
||||
|
||||
LiquidCrystalRus::LiquidCrystalRus(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);
|
||||
}
|
||||
|
||||
LiquidCrystalRus::LiquidCrystalRus(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);
|
||||
}
|
||||
|
||||
LiquidCrystalRus::LiquidCrystalRus(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 LiquidCrystalRus::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 LiquidCrystalRus::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 before 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
|
||||
writeNbits(0x03,4);
|
||||
delayMicroseconds(4500); // wait min 4.1ms
|
||||
|
||||
// second try
|
||||
writeNbits(0x03,4);
|
||||
delayMicroseconds(4500); // wait min 4.1ms
|
||||
|
||||
// third go!
|
||||
writeNbits(0x03,4);
|
||||
delayMicroseconds(150);
|
||||
|
||||
// finally, set to 8-bit interface
|
||||
writeNbits(0x02,4);
|
||||
} 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);
|
||||
|
||||
}
|
||||
|
||||
void LiquidCrystalRus::setDRAMModel(uint8_t model) {
|
||||
_dram_model = model;
|
||||
}
|
||||
|
||||
/********** high level commands, for the user! */
|
||||
void LiquidCrystalRus::clear()
|
||||
{
|
||||
command(LCD_CLEARDISPLAY); // clear display, set cursor position to zero
|
||||
delayMicroseconds(2000); // this command takes a long time!
|
||||
}
|
||||
|
||||
void LiquidCrystalRus::home()
|
||||
{
|
||||
command(LCD_RETURNHOME); // set cursor position to zero
|
||||
delayMicroseconds(2000); // this command takes a long time!
|
||||
}
|
||||
|
||||
void LiquidCrystalRus::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 LiquidCrystalRus::noDisplay() {
|
||||
_displaycontrol &= ~LCD_DISPLAYON;
|
||||
command(LCD_DISPLAYCONTROL | _displaycontrol);
|
||||
}
|
||||
void LiquidCrystalRus::display() {
|
||||
_displaycontrol |= LCD_DISPLAYON;
|
||||
command(LCD_DISPLAYCONTROL | _displaycontrol);
|
||||
}
|
||||
|
||||
// Turns the underline cursor on/off
|
||||
void LiquidCrystalRus::noCursor() {
|
||||
_displaycontrol &= ~LCD_CURSORON;
|
||||
command(LCD_DISPLAYCONTROL | _displaycontrol);
|
||||
}
|
||||
void LiquidCrystalRus::cursor() {
|
||||
_displaycontrol |= LCD_CURSORON;
|
||||
command(LCD_DISPLAYCONTROL | _displaycontrol);
|
||||
}
|
||||
|
||||
// Turn on and off the blinking cursor
|
||||
void LiquidCrystalRus::noBlink() {
|
||||
_displaycontrol &= ~LCD_BLINKON;
|
||||
command(LCD_DISPLAYCONTROL | _displaycontrol);
|
||||
}
|
||||
void LiquidCrystalRus::blink() {
|
||||
_displaycontrol |= LCD_BLINKON;
|
||||
command(LCD_DISPLAYCONTROL | _displaycontrol);
|
||||
}
|
||||
|
||||
// These commands scroll the display without changing the RAM
|
||||
void LiquidCrystalRus::scrollDisplayLeft(void) {
|
||||
command(LCD_CURSORSHIFT | LCD_DISPLAYMOVE | LCD_MOVELEFT);
|
||||
}
|
||||
void LiquidCrystalRus::scrollDisplayRight(void) {
|
||||
command(LCD_CURSORSHIFT | LCD_DISPLAYMOVE | LCD_MOVERIGHT);
|
||||
}
|
||||
|
||||
// This is for text that flows Left to Right
|
||||
void LiquidCrystalRus::leftToRight(void) {
|
||||
_displaymode |= LCD_ENTRYLEFT;
|
||||
command(LCD_ENTRYMODESET | _displaymode);
|
||||
}
|
||||
|
||||
// This is for text that flows Right to Left
|
||||
void LiquidCrystalRus::rightToLeft(void) {
|
||||
_displaymode &= ~LCD_ENTRYLEFT;
|
||||
command(LCD_ENTRYMODESET | _displaymode);
|
||||
}
|
||||
|
||||
// This will 'right justify' text from the cursor
|
||||
void LiquidCrystalRus::autoscroll(void) {
|
||||
_displaymode |= LCD_ENTRYSHIFTINCREMENT;
|
||||
command(LCD_ENTRYMODESET | _displaymode);
|
||||
}
|
||||
|
||||
// This will 'left justify' text from the cursor
|
||||
void LiquidCrystalRus::noAutoscroll(void) {
|
||||
_displaymode &= ~LCD_ENTRYSHIFTINCREMENT;
|
||||
command(LCD_ENTRYMODESET | _displaymode);
|
||||
}
|
||||
|
||||
// Allows us to fill the first 8 CGRAM locations
|
||||
// with custom characters
|
||||
void LiquidCrystalRus::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 LiquidCrystalRus::command(uint8_t value) {
|
||||
send(value, LOW);
|
||||
}
|
||||
|
||||
#if defined(ARDUINO) && ARDUINO >= 100
|
||||
size_t LiquidCrystalRus::write(uint8_t value)
|
||||
#else
|
||||
void LiquidCrystalRus::write(uint8_t value)
|
||||
#endif
|
||||
{
|
||||
uint8_t out_char=value;
|
||||
|
||||
if (_dram_model == LCD_DRAM_WH1601) {
|
||||
uint8_t ac=recv(LOW) & 0x7f;
|
||||
if (ac>7 && ac<0x14) command(LCD_SETDDRAMADDR | (0x40+ac-8));
|
||||
}
|
||||
|
||||
if (value>=0x80) { // UTF-8 handling
|
||||
if (value >= 0xc0) {
|
||||
utf_hi_char = value - 0xd0;
|
||||
} else {
|
||||
value &= 0x3f;
|
||||
if (!utf_hi_char && (value == 1))
|
||||
send(0xa2,HIGH); // ╗
|
||||
else if ((utf_hi_char == 1) && (value == 0x11))
|
||||
send(0xb5,HIGH); // ╦
|
||||
else
|
||||
send(pgm_read_byte_near(utf_recode + value + (utf_hi_char<<6) - 0x10), HIGH);
|
||||
}
|
||||
} else send(out_char, HIGH);
|
||||
#if defined(ARDUINO) && ARDUINO >= 100
|
||||
return 1; // assume success
|
||||
#endif
|
||||
}
|
||||
|
||||
/************ low level data pushing commands **********/
|
||||
|
||||
// write either command or data, with automatic 4/8-bit selection
|
||||
void LiquidCrystalRus::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) {
|
||||
writeNbits(value,8);
|
||||
} else {
|
||||
writeNbits(value>>4,4);
|
||||
writeNbits(value,4);
|
||||
}
|
||||
}
|
||||
|
||||
// read data, with automatic 4/8-bit selection
|
||||
uint8_t LiquidCrystalRus::recv(uint8_t mode) {
|
||||
uint8_t retval;
|
||||
digitalWrite(_rs_pin, mode);
|
||||
|
||||
// if there is a RW pin indicated, set it low to Write
|
||||
if (_rw_pin != 255) {
|
||||
digitalWrite(_rw_pin, HIGH);
|
||||
}
|
||||
|
||||
if (_displayfunction & LCD_8BITMODE) {
|
||||
retval = readNbits(8);
|
||||
} else {
|
||||
retval = readNbits(4) << 4;
|
||||
retval |= readNbits(4);
|
||||
}
|
||||
return retval;
|
||||
}
|
||||
void LiquidCrystalRus::pulseEnable() {
|
||||
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 LiquidCrystalRus::writeNbits(uint8_t value, uint8_t n) {
|
||||
for (int i = 0; i < n; i++) {
|
||||
pinMode(_data_pins[i], OUTPUT);
|
||||
digitalWrite(_data_pins[i], (value >> i) & 0x01);
|
||||
}
|
||||
|
||||
pulseEnable();
|
||||
}
|
||||
|
||||
uint8_t LiquidCrystalRus::readNbits(uint8_t n) {
|
||||
uint8_t retval=0;
|
||||
for (int i = 0; i < n; i++) {
|
||||
pinMode(_data_pins[i], INPUT);
|
||||
}
|
||||
|
||||
digitalWrite(_enable_pin, LOW);
|
||||
delayMicroseconds(1);
|
||||
digitalWrite(_enable_pin, HIGH);
|
||||
delayMicroseconds(1); // enable pulse must be >450ns
|
||||
|
||||
for (int i = 0; i < n; i++) {
|
||||
retval |= (digitalRead(_data_pins[i]) == HIGH)?(1 << i):0;
|
||||
}
|
||||
|
||||
digitalWrite(_enable_pin, LOW);
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
@ -1,129 +0,0 @@
|
||||
//
|
||||
// based on LiquidCrystal library from ArduinoIDE, see http://arduino.cc
|
||||
// modified 27 Jul 2011
|
||||
// by Ilya V. Danilov http://mk90.ru/
|
||||
//
|
||||
|
||||
#ifndef LiquidCrystalRus_h
|
||||
#define LiquidCrystalRus_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
|
||||
|
||||
// enum for
|
||||
#define LCD_DRAM_Normal 0x00
|
||||
#define LCD_DRAM_WH1601 0x01
|
||||
|
||||
|
||||
class LiquidCrystalRus : public Print {
|
||||
public:
|
||||
LiquidCrystalRus(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);
|
||||
LiquidCrystalRus(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);
|
||||
LiquidCrystalRus(uint8_t rs, uint8_t rw, uint8_t enable,
|
||||
uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3);
|
||||
LiquidCrystalRus(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);
|
||||
|
||||
#if defined(ARDUINO) && ARDUINO >= 100
|
||||
virtual size_t write(uint8_t);
|
||||
using Print::write;
|
||||
#else
|
||||
virtual void write(uint8_t);
|
||||
#endif
|
||||
|
||||
void command(uint8_t);
|
||||
|
||||
void setDRAMModel(uint8_t);
|
||||
|
||||
private:
|
||||
void send(uint8_t, uint8_t);
|
||||
void writeNbits(uint8_t, uint8_t);
|
||||
uint8_t recv(uint8_t);
|
||||
uint8_t readNbits(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;
|
||||
|
||||
uint8_t _dram_model;
|
||||
uint8_t utf_hi_char; // UTF-8 high part
|
||||
};
|
||||
|
||||
#endif
|
@ -251,7 +251,9 @@ extern float z_endstop_adj;
|
||||
extern float min_pos[3];
|
||||
extern float max_pos[3];
|
||||
extern bool axis_known_position[3];
|
||||
extern float zprobe_zoffset;
|
||||
#ifdef ENABLE_AUTO_BED_LEVELING
|
||||
extern float zprobe_zoffset;
|
||||
#endif
|
||||
extern int fanSpeed;
|
||||
#ifdef BARICUDA
|
||||
extern int ValvePressure;
|
||||
|
@ -203,7 +203,8 @@
|
||||
|
||||
float homing_feedrate[] = HOMING_FEEDRATE;
|
||||
#ifdef ENABLE_AUTO_BED_LEVELING
|
||||
int xy_travel_speed = XY_TRAVEL_SPEED;
|
||||
int xy_travel_speed = XY_TRAVEL_SPEED;
|
||||
float zprobe_zoffset = -Z_PROBE_OFFSET_FROM_EXTRUDER;
|
||||
#endif
|
||||
int homing_bump_divisor[] = HOMING_BUMP_DIVISOR;
|
||||
bool axis_relative_modes[] = AXIS_RELATIVE_MODES;
|
||||
@ -255,7 +256,6 @@ float home_offset[3] = { 0, 0, 0 };
|
||||
float min_pos[3] = { X_MIN_POS, Y_MIN_POS, Z_MIN_POS };
|
||||
float max_pos[3] = { X_MAX_POS, Y_MAX_POS, Z_MAX_POS };
|
||||
bool axis_known_position[3] = { false, false, false };
|
||||
float zprobe_zoffset;
|
||||
|
||||
// Extruder offset
|
||||
#if EXTRUDERS > 1
|
||||
@ -1101,9 +1101,6 @@ static void set_bed_level_equation_lsq(double *plane_equation_coefficients)
|
||||
current_position[Y_AXIS] = corrected_position.y;
|
||||
current_position[Z_AXIS] = corrected_position.z;
|
||||
|
||||
// put the bed at 0 so we don't go below it.
|
||||
current_position[Z_AXIS] = zprobe_zoffset; // in the lsq we reach here after raising the extruder due to the loop structure
|
||||
|
||||
plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
|
||||
}
|
||||
#endif
|
||||
@ -1117,11 +1114,13 @@ static void set_bed_level_equation_3pts(float z_at_pt_1, float z_at_pt_2, float
|
||||
vector_3 pt1 = vector_3(ABL_PROBE_PT_1_X, ABL_PROBE_PT_1_Y, z_at_pt_1);
|
||||
vector_3 pt2 = vector_3(ABL_PROBE_PT_2_X, ABL_PROBE_PT_2_Y, z_at_pt_2);
|
||||
vector_3 pt3 = vector_3(ABL_PROBE_PT_3_X, ABL_PROBE_PT_3_Y, z_at_pt_3);
|
||||
vector_3 planeNormal = vector_3::cross(pt1 - pt2, pt3 - pt2).get_normal();
|
||||
|
||||
vector_3 from_2_to_1 = (pt1 - pt2).get_normal();
|
||||
vector_3 from_2_to_3 = (pt3 - pt2).get_normal();
|
||||
vector_3 planeNormal = vector_3::cross(from_2_to_1, from_2_to_3).get_normal();
|
||||
planeNormal = vector_3(planeNormal.x, planeNormal.y, abs(planeNormal.z));
|
||||
if (planeNormal.z < 0) {
|
||||
planeNormal.x = -planeNormal.x;
|
||||
planeNormal.y = -planeNormal.y;
|
||||
planeNormal.z = -planeNormal.z;
|
||||
}
|
||||
|
||||
plan_bed_level_matrix = matrix_3x3::create_look_at(planeNormal);
|
||||
|
||||
@ -1130,11 +1129,7 @@ static void set_bed_level_equation_3pts(float z_at_pt_1, float z_at_pt_2, float
|
||||
current_position[Y_AXIS] = corrected_position.y;
|
||||
current_position[Z_AXIS] = corrected_position.z;
|
||||
|
||||
// put the bed at 0 so we don't go below it.
|
||||
current_position[Z_AXIS] = zprobe_zoffset;
|
||||
|
||||
plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
|
||||
|
||||
}
|
||||
|
||||
#endif // AUTO_BED_LEVELING_GRID
|
||||
@ -2017,8 +2012,19 @@ inline void gcode_G28() {
|
||||
endstops_hit_on_purpose();
|
||||
}
|
||||
|
||||
#if defined(MESH_BED_LEVELING)
|
||||
#ifdef MESH_BED_LEVELING
|
||||
|
||||
/**
|
||||
* G29: Mesh-based Z-Probe, probes a grid and produces a
|
||||
* mesh to compensate for variable bed height
|
||||
*
|
||||
* Parameters With MESH_BED_LEVELING:
|
||||
*
|
||||
* S0 Produce a mesh report
|
||||
* S1 Start probing mesh points
|
||||
* S2 Probe the next mesh point
|
||||
*
|
||||
*/
|
||||
inline void gcode_G29() {
|
||||
static int probe_point = -1;
|
||||
int state = 0;
|
||||
@ -2060,7 +2066,7 @@ inline void gcode_G28() {
|
||||
} else if (state == 2) { // Goto next point
|
||||
|
||||
if (probe_point < 0) {
|
||||
SERIAL_PROTOCOLPGM("Mesh probing not started.\n");
|
||||
SERIAL_PROTOCOLPGM("Start mesh probing with \"G29 S1\" first.\n");
|
||||
return;
|
||||
}
|
||||
int ix, iy;
|
||||
@ -2070,16 +2076,14 @@ inline void gcode_G28() {
|
||||
} else {
|
||||
ix = (probe_point-1) % MESH_NUM_X_POINTS;
|
||||
iy = (probe_point-1) / MESH_NUM_X_POINTS;
|
||||
if (iy&1) { // Zig zag
|
||||
ix = (MESH_NUM_X_POINTS - 1) - ix;
|
||||
}
|
||||
if (iy & 1) ix = (MESH_NUM_X_POINTS - 1) - ix; // zig-zag
|
||||
mbl.set_z(ix, iy, current_position[Z_AXIS]);
|
||||
current_position[Z_AXIS] = MESH_HOME_SEARCH_Z;
|
||||
plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], homing_feedrate[X_AXIS]/60, active_extruder);
|
||||
st_synchronize();
|
||||
}
|
||||
if (probe_point == MESH_NUM_X_POINTS*MESH_NUM_Y_POINTS) {
|
||||
SERIAL_PROTOCOLPGM("Mesh done.\n");
|
||||
if (probe_point == MESH_NUM_X_POINTS * MESH_NUM_Y_POINTS) {
|
||||
SERIAL_PROTOCOLPGM("Mesh probing done.\n");
|
||||
probe_point = -1;
|
||||
mbl.active = 1;
|
||||
enquecommands_P(PSTR("G28"));
|
||||
@ -2087,9 +2091,7 @@ inline void gcode_G28() {
|
||||
}
|
||||
ix = probe_point % MESH_NUM_X_POINTS;
|
||||
iy = probe_point / MESH_NUM_X_POINTS;
|
||||
if (iy&1) { // Zig zag
|
||||
ix = (MESH_NUM_X_POINTS - 1) - ix;
|
||||
}
|
||||
if (iy & 1) ix = (MESH_NUM_X_POINTS - 1) - ix; // zig-zag
|
||||
current_position[X_AXIS] = mbl.get_x(ix);
|
||||
current_position[Y_AXIS] = mbl.get_y(iy);
|
||||
plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], homing_feedrate[X_AXIS]/60, active_extruder);
|
||||
@ -2098,9 +2100,7 @@ inline void gcode_G28() {
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef ENABLE_AUTO_BED_LEVELING
|
||||
#elif defined(ENABLE_AUTO_BED_LEVELING)
|
||||
|
||||
/**
|
||||
* G29: Detailed Z-Probe, probes the bed at 3 or more points.
|
||||
@ -2116,8 +2116,9 @@ inline void gcode_G28() {
|
||||
*
|
||||
* S Set the XY travel speed between probe points (in mm/min)
|
||||
*
|
||||
* D Dry-Run mode. Just evaluate the bed Topology - It does not apply or clean the rotation Matrix
|
||||
* Useful to check the topology after a first run of G29.
|
||||
* D Dry-Run mode. Just evaluate the bed Topology - Don't apply
|
||||
* or clean the rotation Matrix. Useful to check the topology
|
||||
* after a first run of G29.
|
||||
*
|
||||
* V Set the verbose level (0-4). Example: "G29 V3"
|
||||
*
|
||||
@ -2164,9 +2165,9 @@ inline void gcode_G28() {
|
||||
|
||||
#ifdef AUTO_BED_LEVELING_GRID
|
||||
|
||||
#ifndef DELTA
|
||||
bool do_topography_map = verbose_level > 2 || code_seen('T') || code_seen('t');
|
||||
#endif
|
||||
#ifndef DELTA
|
||||
bool do_topography_map = verbose_level > 2 || code_seen('T') || code_seen('t');
|
||||
#endif
|
||||
|
||||
if (verbose_level > 0)
|
||||
{
|
||||
@ -2223,7 +2224,7 @@ inline void gcode_G28() {
|
||||
|
||||
#ifdef Z_PROBE_SLED
|
||||
dock_sled(false); // engage (un-dock) the probe
|
||||
#elif defined(Z_PROBE_ALLEN_KEY)
|
||||
#elif defined(Z_PROBE_ALLEN_KEY) //|| defined(SERVO_LEVELING)
|
||||
engage_z_probe();
|
||||
#endif
|
||||
|
||||
@ -2233,19 +2234,18 @@ inline void gcode_G28() {
|
||||
{
|
||||
#ifdef DELTA
|
||||
reset_bed_level();
|
||||
#else
|
||||
#else //!DELTA
|
||||
|
||||
// make sure the bed_level_rotation_matrix is identity or the planner will get it incorectly
|
||||
//vector_3 corrected_position = plan_get_position_mm();
|
||||
//corrected_position.debug("position before G29");
|
||||
plan_bed_level_matrix.set_to_identity();
|
||||
vector_3 uncorrected_position = plan_get_position();
|
||||
// uncorrected_position.debug("position during G29");
|
||||
|
||||
current_position[X_AXIS] = uncorrected_position.x;
|
||||
current_position[Y_AXIS] = uncorrected_position.y;
|
||||
current_position[Z_AXIS] = uncorrected_position.z;
|
||||
plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
|
||||
// make sure the bed_level_rotation_matrix is identity or the planner will get it incorectly
|
||||
//vector_3 corrected_position = plan_get_position_mm();
|
||||
//corrected_position.debug("position before G29");
|
||||
plan_bed_level_matrix.set_to_identity();
|
||||
vector_3 uncorrected_position = plan_get_position();
|
||||
//uncorrected_position.debug("position during G29");
|
||||
current_position[X_AXIS] = uncorrected_position.x;
|
||||
current_position[Y_AXIS] = uncorrected_position.y;
|
||||
current_position[Z_AXIS] = uncorrected_position.z;
|
||||
plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
|
||||
|
||||
#endif
|
||||
}
|
||||
@ -2260,26 +2260,24 @@ inline void gcode_G28() {
|
||||
const int xGridSpacing = (right_probe_bed_position - left_probe_bed_position) / (auto_bed_leveling_grid_points-1);
|
||||
const int yGridSpacing = (back_probe_bed_position - front_probe_bed_position) / (auto_bed_leveling_grid_points-1);
|
||||
|
||||
#ifndef DELTA
|
||||
// solve the plane equation ax + by + d = z
|
||||
// A is the matrix with rows [x y 1] for all the probed points
|
||||
// B is the vector of the Z positions
|
||||
// the normal vector to the plane is formed by the coefficients of the plane equation in the standard form, which is Vx*x+Vy*y+Vz*z+d = 0
|
||||
// so Vx = -a Vy = -b Vz = 1 (we want the vector facing towards positive Z
|
||||
#ifdef DELTA
|
||||
delta_grid_spacing[0] = xGridSpacing;
|
||||
delta_grid_spacing[1] = yGridSpacing;
|
||||
float z_offset = Z_PROBE_OFFSET_FROM_EXTRUDER;
|
||||
if (code_seen(axis_codes[Z_AXIS])) z_offset += code_value();
|
||||
#else // !DELTA
|
||||
// solve the plane equation ax + by + d = z
|
||||
// A is the matrix with rows [x y 1] for all the probed points
|
||||
// B is the vector of the Z positions
|
||||
// the normal vector to the plane is formed by the coefficients of the plane equation in the standard form, which is Vx*x+Vy*y+Vz*z+d = 0
|
||||
// so Vx = -a Vy = -b Vz = 1 (we want the vector facing towards positive Z
|
||||
|
||||
int abl2 = auto_bed_leveling_grid_points * auto_bed_leveling_grid_points;
|
||||
int abl2 = auto_bed_leveling_grid_points * auto_bed_leveling_grid_points;
|
||||
|
||||
double eqnAMatrix[abl2 * 3], // "A" matrix of the linear system of equations
|
||||
eqnBVector[abl2], // "B" vector of Z points
|
||||
mean = 0.0;
|
||||
|
||||
#else
|
||||
delta_grid_spacing[0] = xGridSpacing;
|
||||
delta_grid_spacing[1] = yGridSpacing;
|
||||
|
||||
float z_offset = Z_PROBE_OFFSET_FROM_EXTRUDER;
|
||||
if (code_seen(axis_codes[Z_AXIS])) z_offset += code_value();
|
||||
#endif
|
||||
double eqnAMatrix[abl2 * 3], // "A" matrix of the linear system of equations
|
||||
eqnBVector[abl2], // "B" vector of Z points
|
||||
mean = 0.0;
|
||||
#endif // !DELTA
|
||||
|
||||
int probePointCounter = 0;
|
||||
bool zig = true;
|
||||
@ -2312,12 +2310,12 @@ inline void gcode_G28() {
|
||||
float measured_z,
|
||||
z_before = probePointCounter == 0 ? Z_RAISE_BEFORE_PROBING : current_position[Z_AXIS] + Z_RAISE_BETWEEN_PROBINGS;
|
||||
|
||||
#ifdef DELTA
|
||||
// Avoid probing the corners (outside the round or hexagon print surface) on a delta printer.
|
||||
float distance_from_center = sqrt(xProbe*xProbe + yProbe*yProbe);
|
||||
if (distance_from_center > DELTA_PROBABLE_RADIUS)
|
||||
continue;
|
||||
#endif //DELTA
|
||||
#ifdef DELTA
|
||||
// Avoid probing the corners (outside the round or hexagon print surface) on a delta printer.
|
||||
float distance_from_center = sqrt(xProbe*xProbe + yProbe*yProbe);
|
||||
if (distance_from_center > DELTA_PROBABLE_RADIUS)
|
||||
continue;
|
||||
#endif //DELTA
|
||||
|
||||
// Enhanced G29 - Do not retract servo between probes
|
||||
ProbeAction act;
|
||||
@ -2334,16 +2332,16 @@ inline void gcode_G28() {
|
||||
|
||||
measured_z = probe_pt(xProbe, yProbe, z_before, act, verbose_level);
|
||||
|
||||
#ifndef DELTA
|
||||
mean += measured_z;
|
||||
#ifndef DELTA
|
||||
mean += measured_z;
|
||||
|
||||
eqnBVector[probePointCounter] = measured_z;
|
||||
eqnAMatrix[probePointCounter + 0 * abl2] = xProbe;
|
||||
eqnAMatrix[probePointCounter + 1 * abl2] = yProbe;
|
||||
eqnAMatrix[probePointCounter + 2 * abl2] = 1;
|
||||
#else
|
||||
bed_level[xCount][yCount] = measured_z + z_offset;
|
||||
#endif
|
||||
eqnBVector[probePointCounter] = measured_z;
|
||||
eqnAMatrix[probePointCounter + 0 * abl2] = xProbe;
|
||||
eqnAMatrix[probePointCounter + 1 * abl2] = yProbe;
|
||||
eqnAMatrix[probePointCounter + 2 * abl2] = 1;
|
||||
#else
|
||||
bed_level[xCount][yCount] = measured_z + z_offset;
|
||||
#endif
|
||||
|
||||
probePointCounter++;
|
||||
} //xProbe
|
||||
@ -2351,60 +2349,64 @@ inline void gcode_G28() {
|
||||
|
||||
clean_up_after_endstop_move();
|
||||
|
||||
#ifndef DELTA
|
||||
// solve lsq problem
|
||||
double *plane_equation_coefficients = qr_solve(abl2, 3, eqnAMatrix, eqnBVector);
|
||||
#ifdef DELTA
|
||||
|
||||
mean /= abl2;
|
||||
if (!dryrun) extrapolate_unprobed_bed_level();
|
||||
print_bed_level();
|
||||
|
||||
if (verbose_level) {
|
||||
SERIAL_PROTOCOLPGM("Eqn coefficients: a: ");
|
||||
SERIAL_PROTOCOL_F(plane_equation_coefficients[0], 8);
|
||||
SERIAL_PROTOCOLPGM(" b: ");
|
||||
SERIAL_PROTOCOL_F(plane_equation_coefficients[1], 8);
|
||||
SERIAL_PROTOCOLPGM(" d: ");
|
||||
SERIAL_PROTOCOL_F(plane_equation_coefficients[2], 8);
|
||||
SERIAL_EOL;
|
||||
if (verbose_level > 2) {
|
||||
SERIAL_PROTOCOLPGM("Mean of sampled points: ");
|
||||
SERIAL_PROTOCOL_F(mean, 8);
|
||||
#else // !DELTA
|
||||
|
||||
// solve lsq problem
|
||||
double *plane_equation_coefficients = qr_solve(abl2, 3, eqnAMatrix, eqnBVector);
|
||||
|
||||
mean /= abl2;
|
||||
|
||||
if (verbose_level) {
|
||||
SERIAL_PROTOCOLPGM("Eqn coefficients: a: ");
|
||||
SERIAL_PROTOCOL_F(plane_equation_coefficients[0], 8);
|
||||
SERIAL_PROTOCOLPGM(" b: ");
|
||||
SERIAL_PROTOCOL_F(plane_equation_coefficients[1], 8);
|
||||
SERIAL_PROTOCOLPGM(" d: ");
|
||||
SERIAL_PROTOCOL_F(plane_equation_coefficients[2], 8);
|
||||
SERIAL_EOL;
|
||||
if (verbose_level > 2) {
|
||||
SERIAL_PROTOCOLPGM("Mean of sampled points: ");
|
||||
SERIAL_PROTOCOL_F(mean, 8);
|
||||
SERIAL_EOL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Show the Topography map if enabled
|
||||
if (do_topography_map) {
|
||||
// Show the Topography map if enabled
|
||||
if (do_topography_map) {
|
||||
|
||||
SERIAL_PROTOCOLPGM(" \nBed Height Topography: \n");
|
||||
SERIAL_PROTOCOLPGM("+-----------+\n");
|
||||
SERIAL_PROTOCOLPGM("|...Back....|\n");
|
||||
SERIAL_PROTOCOLPGM("|Left..Right|\n");
|
||||
SERIAL_PROTOCOLPGM("|...Front...|\n");
|
||||
SERIAL_PROTOCOLPGM("+-----------+\n");
|
||||
SERIAL_PROTOCOLPGM(" \nBed Height Topography: \n");
|
||||
SERIAL_PROTOCOLPGM("+-----------+\n");
|
||||
SERIAL_PROTOCOLPGM("|...Back....|\n");
|
||||
SERIAL_PROTOCOLPGM("|Left..Right|\n");
|
||||
SERIAL_PROTOCOLPGM("|...Front...|\n");
|
||||
SERIAL_PROTOCOLPGM("+-----------+\n");
|
||||
|
||||
for (int yy = auto_bed_leveling_grid_points - 1; yy >= 0; yy--) {
|
||||
for (int xx = 0; xx < auto_bed_leveling_grid_points; xx++) {
|
||||
int ind = yy * auto_bed_leveling_grid_points + xx;
|
||||
float diff = eqnBVector[ind] - mean;
|
||||
if (diff >= 0.0)
|
||||
SERIAL_PROTOCOLPGM(" +"); // Include + for column alignment
|
||||
else
|
||||
SERIAL_PROTOCOLPGM(" ");
|
||||
SERIAL_PROTOCOL_F(diff, 5);
|
||||
} // xx
|
||||
for (int yy = auto_bed_leveling_grid_points - 1; yy >= 0; yy--) {
|
||||
for (int xx = 0; xx < auto_bed_leveling_grid_points; xx++) {
|
||||
int ind = yy * auto_bed_leveling_grid_points + xx;
|
||||
float diff = eqnBVector[ind] - mean;
|
||||
if (diff >= 0.0)
|
||||
SERIAL_PROTOCOLPGM(" +"); // Include + for column alignment
|
||||
else
|
||||
SERIAL_PROTOCOLPGM(" ");
|
||||
SERIAL_PROTOCOL_F(diff, 5);
|
||||
} // xx
|
||||
SERIAL_EOL;
|
||||
} // yy
|
||||
SERIAL_EOL;
|
||||
} // yy
|
||||
SERIAL_EOL;
|
||||
|
||||
} //do_topography_map
|
||||
} //do_topography_map
|
||||
|
||||
|
||||
if (!dryrun) set_bed_level_equation_lsq(plane_equation_coefficients);
|
||||
free(plane_equation_coefficients);
|
||||
#else //Delta
|
||||
if (!dryrun) extrapolate_unprobed_bed_level();
|
||||
print_bed_level();
|
||||
#endif //Delta
|
||||
if (!dryrun) set_bed_level_equation_lsq(plane_equation_coefficients);
|
||||
free(plane_equation_coefficients);
|
||||
|
||||
#endif //!DELTA
|
||||
|
||||
#else // !AUTO_BED_LEVELING_GRID
|
||||
|
||||
@ -2427,36 +2429,37 @@ inline void gcode_G28() {
|
||||
|
||||
#endif // !AUTO_BED_LEVELING_GRID
|
||||
|
||||
#ifndef DELTA
|
||||
if (verbose_level > 0) plan_bed_level_matrix.debug(" \n\nBed Level Correction Matrix:");
|
||||
#ifndef DELTA
|
||||
if (verbose_level > 0)
|
||||
plan_bed_level_matrix.debug(" \n\nBed Level Correction Matrix:");
|
||||
|
||||
// Correct the Z height difference from z-probe position and hotend tip position.
|
||||
// The Z height on homing is measured by Z-Probe, but the probe is quite far from the hotend.
|
||||
// When the bed is uneven, this height must be corrected.
|
||||
if (!dryrun)
|
||||
{
|
||||
float x_tmp, y_tmp, z_tmp, real_z;
|
||||
real_z = float(st_get_position(Z_AXIS)) / axis_steps_per_unit[Z_AXIS]; //get the real Z (since the auto bed leveling is already correcting the plane)
|
||||
x_tmp = current_position[X_AXIS] + X_PROBE_OFFSET_FROM_EXTRUDER;
|
||||
y_tmp = current_position[Y_AXIS] + Y_PROBE_OFFSET_FROM_EXTRUDER;
|
||||
z_tmp = current_position[Z_AXIS];
|
||||
// Correct the Z height difference from z-probe position and hotend tip position.
|
||||
// The Z height on homing is measured by Z-Probe, but the probe is quite far from the hotend.
|
||||
// When the bed is uneven, this height must be corrected.
|
||||
if (!dryrun)
|
||||
{
|
||||
float x_tmp, y_tmp, z_tmp, real_z;
|
||||
real_z = float(st_get_position(Z_AXIS)) / axis_steps_per_unit[Z_AXIS]; //get the real Z (since the auto bed leveling is already correcting the plane)
|
||||
x_tmp = current_position[X_AXIS] + X_PROBE_OFFSET_FROM_EXTRUDER;
|
||||
y_tmp = current_position[Y_AXIS] + Y_PROBE_OFFSET_FROM_EXTRUDER;
|
||||
z_tmp = current_position[Z_AXIS];
|
||||
|
||||
apply_rotation_xyz(plan_bed_level_matrix, x_tmp, y_tmp, z_tmp); //Apply the correction sending the probe offset
|
||||
current_position[Z_AXIS] = z_tmp - real_z + current_position[Z_AXIS]; //The difference is added to current position and sent to planner.
|
||||
plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
|
||||
}
|
||||
#endif
|
||||
apply_rotation_xyz(plan_bed_level_matrix, x_tmp, y_tmp, z_tmp); //Apply the correction sending the probe offset
|
||||
current_position[Z_AXIS] = z_tmp - real_z + current_position[Z_AXIS]; //The difference is added to current position and sent to planner.
|
||||
plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
|
||||
}
|
||||
#endif // !DELTA
|
||||
|
||||
#ifdef Z_PROBE_SLED
|
||||
dock_sled(true, -SLED_DOCKING_OFFSET); // dock the probe, correcting for over-travel
|
||||
#elif defined(Z_PROBE_ALLEN_KEY)
|
||||
retract_z_probe();
|
||||
#endif
|
||||
|
||||
#ifdef Z_PROBE_END_SCRIPT
|
||||
enquecommands_P(PSTR(Z_PROBE_END_SCRIPT));
|
||||
st_synchronize();
|
||||
#endif
|
||||
#ifdef Z_PROBE_SLED
|
||||
dock_sled(true, -SLED_DOCKING_OFFSET); // dock the probe, correcting for over-travel
|
||||
#elif defined(Z_PROBE_ALLEN_KEY) //|| defined(SERVO_LEVELING)
|
||||
retract_z_probe();
|
||||
#endif
|
||||
|
||||
#ifdef Z_PROBE_END_SCRIPT
|
||||
enquecommands_P(PSTR(Z_PROBE_END_SCRIPT));
|
||||
st_synchronize();
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifndef Z_PROBE_SLED
|
||||
@ -2919,7 +2922,7 @@ inline void gcode_M42() {
|
||||
do_blocking_move_to( X_probe_location, Y_probe_location, Z_start_location); // Make sure we are at the probe location
|
||||
|
||||
if (n_legs) {
|
||||
double radius=0.0, theta=0.0, x_sweep, y_sweep;
|
||||
double radius=0.0, theta=0.0;
|
||||
int l;
|
||||
int rotational_direction = (unsigned long) millis() & 0x0001; // clockwise or counter clockwise
|
||||
radius = (unsigned long)millis() % (long)(X_MAX_LENGTH / 4); // limit how far out to go
|
||||
@ -5182,18 +5185,16 @@ void ClearToSend()
|
||||
SERIAL_PROTOCOLLNPGM(MSG_OK);
|
||||
}
|
||||
|
||||
void get_coordinates()
|
||||
{
|
||||
for(int8_t i=0; i < NUM_AXIS; i++) {
|
||||
if(code_seen(axis_codes[i]))
|
||||
{
|
||||
destination[i] = (float)code_value() + (axis_relative_modes[i] || relative_mode)*current_position[i];
|
||||
}
|
||||
else destination[i] = current_position[i]; //Are these else lines really needed?
|
||||
void get_coordinates() {
|
||||
for (int i = 0; i < NUM_AXIS; i++) {
|
||||
if (code_seen(axis_codes[i]))
|
||||
destination[i] = code_value() + (axis_relative_modes[i] || relative_mode ? current_position[i] : 0);
|
||||
else
|
||||
destination[i] = current_position[i];
|
||||
}
|
||||
if(code_seen('F')) {
|
||||
if (code_seen('F')) {
|
||||
next_feedrate = code_value();
|
||||
if(next_feedrate > 0.0) feedrate = next_feedrate;
|
||||
if (next_feedrate > 0.0) feedrate = next_feedrate;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -104,13 +104,13 @@
|
||||
|
||||
// Make sure probing points are reachable
|
||||
#if LEFT_PROBE_BED_POSITION < MIN_PROBE_X
|
||||
#error The given LEFT_PROBE_BED_POSITION can not be reached by the probe.
|
||||
#error "The given LEFT_PROBE_BED_POSITION can't be reached by the probe."
|
||||
#elif RIGHT_PROBE_BED_POSITION > MAX_PROBE_X
|
||||
#error The given RIGHT_PROBE_BED_POSITION can not be reached by the probe.
|
||||
#error "The given RIGHT_PROBE_BED_POSITION can't be reached by the probe."
|
||||
#elif FRONT_PROBE_BED_POSITION < MIN_PROBE_Y
|
||||
#error The given FRONT_PROBE_BED_POSITION can not be reached by the probe.
|
||||
#error "The given FRONT_PROBE_BED_POSITION can't be reached by the probe."
|
||||
#elif BACK_PROBE_BED_POSITION > MAX_PROBE_Y
|
||||
#error The given BACK_PROBE_BED_POSITION can not be reached by the probe.
|
||||
#error "The given BACK_PROBE_BED_POSITION can't be reached by the probe."
|
||||
#endif
|
||||
|
||||
#define PROBE_SIZE_X (X_PROBE_OFFSET_FROM_EXTRUDER * (AUTO_BED_LEVELING_GRID_POINTS-1))
|
||||
|
@ -569,9 +569,11 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
|
||||
// Custom M code points
|
||||
#define CUSTOM_M_CODES
|
||||
#ifdef CUSTOM_M_CODES
|
||||
#define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
|
||||
#define Z_PROBE_OFFSET_RANGE_MIN -15
|
||||
#define Z_PROBE_OFFSET_RANGE_MAX -5
|
||||
#ifdef ENABLE_AUTO_BED_LEVELING
|
||||
#define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
|
||||
#define Z_PROBE_OFFSET_RANGE_MIN -15
|
||||
#define Z_PROBE_OFFSET_RANGE_MAX -5
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// @section extras
|
||||
|
157
Marlin/dogm_font_data_6x9_marlin.h
Normal file
157
Marlin/dogm_font_data_6x9_marlin.h
Normal file
@ -0,0 +1,157 @@
|
||||
/*
|
||||
Fontname: -Misc-Fixed-Medium-R-Normal--9-90-75-75-C-60-ISO10646-1
|
||||
Copyright: Public domain font. Share and enjoy.
|
||||
Capital A Height: 6, '1' Height: 6
|
||||
Calculated Max Values w= 6 h= 9 x= 2 y= 7 dx= 6 dy= 0 ascent= 7 len= 9
|
||||
Font Bounding box w= 6 h= 9 x= 0 y=-2
|
||||
Calculated Min Values x= 0 y=-2 dx= 0 dy= 0
|
||||
Pure Font ascent = 6 descent=-2
|
||||
X Font ascent = 6 descent=-2
|
||||
Max Font ascent = 7 descent=-2
|
||||
*/
|
||||
#include <utility/u8g.h>
|
||||
const u8g_fntpgm_uint8_t u8g_font_6x9[2300] U8G_SECTION(".progmem.u8g_font_6x9") = {
|
||||
0,6,9,0,254,6,1,137,2,254,32,255,254,7,254,6,
|
||||
254,0,0,0,6,0,7,1,6,6,6,2,0,128,128,128,
|
||||
128,0,128,3,3,3,6,1,3,160,160,160,5,7,7,6,
|
||||
0,255,80,80,248,80,248,80,80,5,9,9,6,0,254,32,
|
||||
112,168,160,112,40,168,112,32,6,8,8,6,0,255,64,168,
|
||||
72,16,32,72,84,8,5,7,7,6,0,255,96,144,144,96,
|
||||
152,144,104,1,3,3,6,2,3,128,128,128,2,7,7,6,
|
||||
2,255,64,128,128,128,128,128,64,2,7,7,6,2,255,128,
|
||||
64,64,64,64,64,128,5,5,5,6,0,0,136,80,248,80,
|
||||
136,5,5,5,6,0,0,32,32,248,32,32,2,4,4,6,
|
||||
2,254,192,64,64,128,5,1,1,6,0,2,248,2,2,2,
|
||||
6,2,0,192,192,4,6,6,6,1,0,16,16,32,64,128,
|
||||
128,4,6,6,6,1,0,96,144,144,144,144,96,3,6,6,
|
||||
6,1,0,64,192,64,64,64,224,4,6,6,6,1,0,96,
|
||||
144,16,32,64,240,4,6,6,6,1,0,240,32,96,16,16,
|
||||
224,5,6,6,6,0,0,16,48,80,144,248,16,4,6,6,
|
||||
6,1,0,240,128,224,16,16,224,4,6,6,6,1,0,96,
|
||||
128,224,144,144,96,4,6,6,6,1,0,240,16,16,32,64,
|
||||
64,4,6,6,6,1,0,96,144,96,144,144,96,4,6,6,
|
||||
6,1,0,96,144,144,112,16,96,2,5,5,6,2,0,192,
|
||||
192,0,192,192,2,7,7,6,2,254,192,192,0,192,64,64,
|
||||
128,5,5,5,6,0,0,24,96,128,96,24,5,3,3,6,
|
||||
0,1,248,0,248,5,5,5,6,0,0,192,48,8,48,192,
|
||||
4,7,7,6,1,0,96,144,16,96,64,0,64,5,6,6,
|
||||
6,0,0,112,144,168,176,128,112,5,6,6,6,0,0,32,
|
||||
80,136,248,136,136,5,6,6,6,0,0,240,136,240,136,136,
|
||||
240,4,6,6,6,1,0,96,144,128,128,144,96,4,6,6,
|
||||
6,1,0,224,144,144,144,144,224,4,6,6,6,1,0,240,
|
||||
128,224,128,128,240,4,6,6,6,1,0,240,128,224,128,128,
|
||||
128,4,6,6,6,1,0,96,144,128,176,144,96,4,6,6,
|
||||
6,1,0,144,144,240,144,144,144,3,6,6,6,1,0,224,
|
||||
64,64,64,64,224,5,6,6,6,0,0,56,16,16,16,144,
|
||||
96,4,6,6,6,1,0,144,160,192,160,144,144,4,6,6,
|
||||
6,1,0,128,128,128,128,128,240,5,6,6,6,0,0,136,
|
||||
216,168,168,136,136,4,6,6,6,1,0,144,208,176,144,144,
|
||||
144,5,6,6,6,0,0,112,136,136,136,136,112,4,6,6,
|
||||
6,1,0,224,144,144,224,128,128,4,7,7,6,1,255,96,
|
||||
144,144,208,176,96,16,4,6,6,6,1,0,224,144,144,224,
|
||||
144,144,4,6,6,6,1,0,96,144,64,32,144,96,5,6,
|
||||
6,6,0,0,248,32,32,32,32,32,4,6,6,6,1,0,
|
||||
144,144,144,144,144,96,4,6,6,6,1,0,144,144,144,240,
|
||||
96,96,5,6,6,6,0,0,136,136,168,168,216,136,5,6,
|
||||
6,6,0,0,136,80,32,32,80,136,5,6,6,6,0,0,
|
||||
136,136,80,32,32,32,4,6,6,6,1,0,240,16,32,64,
|
||||
128,240,3,6,6,6,1,0,224,128,128,128,128,224,4,6,
|
||||
6,6,1,0,128,128,64,32,16,16,3,6,6,6,1,0,
|
||||
224,32,32,32,32,224,5,3,3,6,0,3,32,80,136,5,
|
||||
1,1,6,0,254,248,2,2,2,6,2,4,128,64,4,4,
|
||||
4,6,1,0,112,144,144,112,4,6,6,6,1,0,128,128,
|
||||
224,144,144,224,4,4,4,6,1,0,112,128,128,112,4,6,
|
||||
6,6,1,0,16,16,112,144,144,112,4,4,4,6,1,0,
|
||||
96,176,192,112,4,6,6,6,1,0,32,80,64,224,64,64,
|
||||
4,6,6,6,1,254,96,144,144,112,16,96,4,6,6,6,
|
||||
1,0,128,128,224,144,144,144,3,6,6,6,1,0,64,0,
|
||||
192,64,64,224,3,8,8,6,1,254,32,0,96,32,32,32,
|
||||
160,64,4,6,6,6,1,0,128,128,160,192,160,144,3,6,
|
||||
6,6,1,0,192,64,64,64,64,224,5,4,4,6,0,0,
|
||||
208,168,168,136,4,4,4,6,1,0,224,144,144,144,4,4,
|
||||
4,6,1,0,96,144,144,96,4,6,6,6,1,254,224,144,
|
||||
144,224,128,128,4,6,6,6,1,254,112,144,144,112,16,16,
|
||||
4,4,4,6,1,0,160,208,128,128,4,4,4,6,1,0,
|
||||
112,192,48,224,4,6,6,6,1,0,64,64,224,64,80,32,
|
||||
4,4,4,6,1,0,144,144,144,112,4,4,4,6,1,0,
|
||||
144,144,96,96,5,4,4,6,0,0,136,168,168,80,4,4,
|
||||
4,6,1,0,144,96,96,144,4,6,6,6,1,254,144,144,
|
||||
144,112,144,96,4,4,4,6,1,0,240,32,64,240,3,7,
|
||||
7,6,1,0,32,64,64,128,64,64,32,1,7,7,6,2,
|
||||
255,128,128,128,128,128,128,128,3,7,7,6,1,0,128,64,
|
||||
64,32,64,64,128,4,2,2,6,1,3,80,160,255,255,255,
|
||||
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
|
||||
255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,
|
||||
0,6,0,7,1,6,6,6,2,0,128,0,128,128,128,128,
|
||||
4,6,6,6,1,255,32,112,160,160,112,32,5,7,7,6,
|
||||
0,255,48,72,64,240,64,64,248,5,5,5,6,0,0,168,
|
||||
80,136,80,168,5,6,6,6,0,0,136,80,248,32,248,32,
|
||||
1,7,7,6,2,255,128,128,128,0,128,128,128,4,7,7,
|
||||
6,1,255,112,128,96,144,96,16,224,3,1,1,6,1,5,
|
||||
160,6,7,7,6,0,0,120,132,148,164,148,132,120,3,5,
|
||||
5,6,1,1,96,160,96,0,224,5,5,5,6,0,0,40,
|
||||
80,160,80,40,4,3,3,6,1,0,240,16,16,4,1,1,
|
||||
6,1,2,240,6,7,7,6,0,0,120,132,180,164,164,132,
|
||||
120,4,1,1,6,1,5,240,4,3,3,6,1,2,96,144,
|
||||
96,5,7,7,6,0,255,32,32,248,32,32,0,248,3,5,
|
||||
5,6,1,1,64,160,32,64,224,3,5,5,6,1,1,192,
|
||||
32,64,32,192,2,2,2,6,2,4,64,128,4,5,5,6,
|
||||
1,255,144,144,176,208,128,5,6,6,6,0,0,120,232,232,
|
||||
104,40,40,1,1,1,6,2,2,128,2,2,2,6,2,254,
|
||||
64,128,3,5,5,6,1,1,64,192,64,64,224,3,5,5,
|
||||
6,1,1,64,160,64,0,224,5,5,5,6,0,0,160,80,
|
||||
40,80,160,5,8,8,6,0,255,64,192,64,80,112,48,120,
|
||||
16,5,8,8,6,0,255,64,192,64,80,104,8,16,56,5,
|
||||
8,8,6,0,255,192,32,64,48,240,48,120,16,4,7,7,
|
||||
6,1,0,32,0,32,96,128,144,96,5,7,7,6,0,0,
|
||||
64,32,32,80,112,136,136,5,7,7,6,0,0,16,32,32,
|
||||
80,112,136,136,5,7,7,6,0,0,32,80,32,80,112,136,
|
||||
136,5,7,7,6,0,0,40,80,32,80,112,136,136,5,7,
|
||||
7,6,0,0,80,0,32,80,112,136,136,5,7,7,6,0,
|
||||
0,32,80,32,80,112,136,136,5,6,6,6,0,0,120,160,
|
||||
240,160,160,184,4,8,8,6,1,254,96,144,128,128,144,96,
|
||||
32,64,4,7,7,6,1,0,64,32,240,128,224,128,240,4,
|
||||
7,7,6,1,0,32,64,240,128,224,128,240,4,7,7,6,
|
||||
1,0,32,80,240,128,224,128,240,4,7,7,6,1,0,80,
|
||||
0,240,128,224,128,240,3,7,7,6,1,0,128,64,224,64,
|
||||
64,64,224,3,7,7,6,1,0,32,64,224,64,64,64,224,
|
||||
3,7,7,6,1,0,64,160,224,64,64,64,224,3,7,7,
|
||||
6,1,0,160,0,224,64,64,64,224,5,6,6,6,0,0,
|
||||
112,72,232,72,72,112,4,7,7,6,1,0,80,160,144,208,
|
||||
176,144,144,4,7,7,6,1,0,64,32,96,144,144,144,96,
|
||||
4,7,7,6,1,0,32,64,96,144,144,144,96,4,7,7,
|
||||
6,1,0,32,80,96,144,144,144,96,4,7,7,6,1,0,
|
||||
80,160,96,144,144,144,96,4,7,7,6,1,0,80,0,96,
|
||||
144,144,144,96,5,5,5,6,0,0,136,80,32,80,136,4,
|
||||
8,8,6,1,255,16,112,176,176,208,208,224,128,4,7,7,
|
||||
6,1,0,64,32,144,144,144,144,96,4,7,7,6,1,0,
|
||||
32,64,144,144,144,144,96,4,7,7,6,1,0,32,80,144,
|
||||
144,144,144,96,4,7,7,6,1,0,80,0,144,144,144,144,
|
||||
96,5,7,7,6,0,0,16,32,136,80,32,32,32,4,6,
|
||||
6,6,1,0,128,224,144,144,224,128,4,6,6,6,1,0,
|
||||
96,144,160,160,144,160,4,7,7,6,1,0,64,32,0,112,
|
||||
144,144,112,4,7,7,6,1,0,32,64,0,112,144,144,112,
|
||||
4,7,7,6,1,0,32,80,0,112,144,144,112,4,7,7,
|
||||
6,1,0,80,160,0,112,144,144,112,4,6,6,6,1,0,
|
||||
80,0,112,144,144,112,4,7,7,6,1,0,32,80,32,112,
|
||||
144,144,112,5,4,4,6,0,0,112,168,176,120,4,6,6,
|
||||
6,1,254,112,128,128,112,32,64,4,7,7,6,1,0,64,
|
||||
32,0,96,176,192,112,4,7,7,6,1,0,32,64,0,96,
|
||||
176,192,112,4,7,7,6,1,0,32,80,0,96,176,192,112,
|
||||
4,6,6,6,1,0,80,0,96,176,192,112,3,7,7,6,
|
||||
1,0,128,64,0,192,64,64,224,3,7,7,6,1,0,32,
|
||||
64,0,192,64,64,224,3,7,7,6,1,0,64,160,0,192,
|
||||
64,64,224,3,6,6,6,1,0,160,0,192,64,64,224,4,
|
||||
7,7,6,1,0,48,96,16,112,144,144,96,4,7,7,6,
|
||||
1,0,80,160,0,224,144,144,144,4,7,7,6,1,0,64,
|
||||
32,0,96,144,144,96,4,7,7,6,1,0,32,64,0,96,
|
||||
144,144,96,4,7,7,6,1,0,32,80,0,96,144,144,96,
|
||||
4,7,7,6,1,0,80,160,0,96,144,144,96,4,6,6,
|
||||
6,1,0,80,0,96,144,144,96,5,5,5,6,0,0,32,
|
||||
0,248,0,32,4,4,4,6,1,0,112,176,208,224,4,7,
|
||||
7,6,1,0,64,32,0,144,144,144,112,4,7,7,6,1,
|
||||
0,32,64,0,144,144,144,112,4,7,7,6,1,0,32,80,
|
||||
0,144,144,144,112,4,6,6,6,1,0,80,0,144,144,144,
|
||||
112,4,9,9,6,1,254,32,64,0,144,144,144,112,144,96,
|
||||
4,8,8,6,1,254,128,128,224,144,144,224,128,128,4,8,
|
||||
8,6,1,254,80,0,144,144,144,112,144,96};
|
171
Marlin/dogm_font_data_HD44780_C.h
Normal file
171
Marlin/dogm_font_data_HD44780_C.h
Normal file
@ -0,0 +1,171 @@
|
||||
/*
|
||||
Fontname: HD44780_C v1.2
|
||||
Copyright: A. Hardtung, public domain
|
||||
Capital A Height: 7, '1' Height: 7
|
||||
Calculated Max Values w= 5 h= 8 x= 2 y= 7 dx= 6 dy= 0 ascent= 8 len= 8
|
||||
Font Bounding box w= 6 h= 9 x= 0 y=-2
|
||||
Calculated Min Values x= 0 y=-1 dx= 0 dy= 0
|
||||
Pure Font ascent = 7 descent=-1
|
||||
X Font ascent = 7 descent=-1
|
||||
Max Font ascent = 8 descent=-1
|
||||
*/
|
||||
#include <utility/u8g.h>
|
||||
const u8g_fntpgm_uint8_t HD44780_C_5x7[2522] U8G_SECTION(".progmem.HD44780_C_5x7") = {
|
||||
0,6,9,0,254,7,1,145,3,34,32,255,255,8,255,7,
|
||||
255,0,0,0,6,0,0,1,7,7,6,2,0,128,128,128,
|
||||
128,128,0,128,3,2,2,6,1,5,160,160,5,7,7,6,
|
||||
0,0,80,80,248,80,248,80,80,5,7,7,6,0,0,32,
|
||||
120,160,112,40,240,32,5,7,7,6,0,0,192,200,16,32,
|
||||
64,152,24,5,7,7,6,0,0,96,144,160,64,168,144,104,
|
||||
2,3,3,6,1,4,192,64,128,3,7,7,6,1,0,32,
|
||||
64,128,128,128,64,32,3,7,7,6,1,0,128,64,32,32,
|
||||
32,64,128,5,5,5,6,0,1,32,168,112,168,32,5,5,
|
||||
5,6,0,1,32,32,248,32,32,2,3,3,6,2,255,192,
|
||||
64,128,5,1,1,6,0,3,248,2,2,2,6,2,0,192,
|
||||
192,5,5,5,6,0,1,8,16,32,64,128,5,7,7,6,
|
||||
0,0,112,136,152,168,200,136,112,3,7,7,6,1,0,64,
|
||||
192,64,64,64,64,224,5,7,7,6,0,0,112,136,8,112,
|
||||
128,128,248,5,7,7,6,0,0,248,16,32,16,8,8,240,
|
||||
5,7,7,6,0,0,16,48,80,144,248,16,16,5,7,7,
|
||||
6,0,0,248,128,240,8,8,136,112,5,7,7,6,0,0,
|
||||
48,64,128,240,136,136,112,5,7,7,6,0,0,248,8,16,
|
||||
32,32,32,32,5,7,7,6,0,0,112,136,136,112,136,136,
|
||||
112,5,7,7,6,0,0,112,136,136,120,8,16,96,2,5,
|
||||
5,6,2,0,192,192,0,192,192,2,6,6,6,2,255,192,
|
||||
192,0,192,64,128,4,7,7,6,0,0,16,32,64,128,64,
|
||||
32,16,5,3,3,6,0,2,248,0,248,4,7,7,6,1,
|
||||
0,128,64,32,16,32,64,128,5,7,7,6,0,0,112,136,
|
||||
8,16,32,0,32,5,6,6,6,0,0,112,136,8,104,168,
|
||||
112,5,7,7,6,0,0,112,136,136,248,136,136,136,5,7,
|
||||
7,6,0,0,240,136,136,240,136,136,240,5,7,7,6,0,
|
||||
0,112,136,128,128,128,136,112,5,7,7,6,0,0,224,144,
|
||||
136,136,136,144,224,5,7,7,6,0,0,248,128,128,240,128,
|
||||
128,248,5,7,7,6,0,0,248,128,128,240,128,128,128,5,
|
||||
7,7,6,0,0,112,136,128,184,136,136,112,5,7,7,6,
|
||||
0,0,136,136,136,248,136,136,136,1,7,7,6,2,0,128,
|
||||
128,128,128,128,128,128,5,7,7,6,0,0,56,16,16,16,
|
||||
16,144,96,5,7,7,6,0,0,136,144,160,192,160,144,136,
|
||||
5,7,7,6,0,0,128,128,128,128,128,128,248,5,7,7,
|
||||
6,0,0,136,216,168,136,136,136,136,5,7,7,6,0,0,
|
||||
136,136,200,168,152,136,136,5,7,7,6,0,0,112,136,136,
|
||||
136,136,136,112,5,7,7,6,0,0,240,136,136,240,128,128,
|
||||
128,5,7,7,6,0,0,112,136,136,136,168,144,104,5,7,
|
||||
7,6,0,0,240,136,136,240,160,144,136,5,7,7,6,0,
|
||||
0,120,128,128,112,8,8,240,5,7,7,6,0,0,248,32,
|
||||
32,32,32,32,32,5,7,7,6,0,0,136,136,136,136,136,
|
||||
136,112,5,7,7,6,0,0,136,136,136,136,136,80,32,5,
|
||||
7,7,6,0,0,136,136,136,136,136,168,80,5,7,7,6,
|
||||
0,0,136,136,80,32,80,136,136,5,7,7,6,0,0,136,
|
||||
136,136,80,32,32,32,5,7,7,6,0,0,248,8,16,32,
|
||||
64,128,248,3,7,7,6,1,0,224,128,128,128,128,128,224,
|
||||
5,7,7,6,0,0,32,112,160,160,168,112,32,3,7,7,
|
||||
6,1,0,224,32,32,32,32,32,224,5,3,3,6,0,4,
|
||||
32,80,136,5,1,1,6,0,0,248,2,2,2,6,2,5,
|
||||
128,64,5,5,5,6,0,0,112,8,120,136,120,5,7,7,
|
||||
6,0,0,128,128,176,200,136,136,240,5,5,5,6,0,0,
|
||||
112,128,128,136,112,5,7,7,6,0,0,8,8,104,152,136,
|
||||
136,120,5,5,5,6,0,0,112,136,248,128,112,5,7,7,
|
||||
6,0,0,48,72,224,64,64,64,64,5,6,6,6,0,255,
|
||||
112,136,136,120,8,112,5,7,7,6,0,0,128,128,176,200,
|
||||
136,136,136,1,7,7,6,2,0,128,0,128,128,128,128,128,
|
||||
3,8,8,6,1,255,32,0,32,32,32,32,160,64,4,7,
|
||||
7,6,0,0,128,128,144,160,192,160,144,3,7,7,6,1,
|
||||
0,192,64,64,64,64,64,224,5,5,5,6,0,0,208,168,
|
||||
168,168,168,5,5,5,6,0,0,176,200,136,136,136,5,5,
|
||||
5,6,0,0,112,136,136,136,112,5,6,6,6,0,255,240,
|
||||
136,136,240,128,128,5,6,6,6,0,255,120,136,136,120,8,
|
||||
8,5,5,5,6,0,0,176,200,128,128,128,5,5,5,6,
|
||||
0,0,112,128,112,8,240,5,7,7,6,0,0,64,64,224,
|
||||
64,64,72,48,5,5,5,6,0,0,136,136,136,152,104,5,
|
||||
5,5,6,0,0,136,136,136,80,32,5,5,5,6,0,0,
|
||||
136,136,168,168,80,5,5,5,6,0,0,136,80,32,80,136,
|
||||
5,6,6,6,0,255,136,136,136,120,8,112,5,5,5,6,
|
||||
0,0,248,16,32,64,248,5,5,5,6,0,2,184,168,168,
|
||||
168,184,5,5,5,6,0,2,184,136,184,160,184,5,5,5,
|
||||
6,0,2,184,160,184,136,184,5,6,6,6,0,1,8,40,
|
||||
72,248,64,32,5,5,5,6,0,0,56,112,224,136,240,0,
|
||||
0,0,6,0,0,0,0,0,6,0,0,0,0,0,6,0,
|
||||
0,0,0,0,6,0,0,0,0,0,6,0,0,0,0,0,
|
||||
6,0,0,0,0,0,6,0,0,0,0,0,6,0,0,0,
|
||||
0,0,6,0,0,0,0,0,6,0,0,0,0,0,6,0,
|
||||
0,0,0,0,6,0,0,0,0,0,6,0,0,0,0,0,
|
||||
6,0,0,0,0,0,6,0,0,0,0,0,6,0,0,0,
|
||||
0,0,6,0,0,0,0,0,6,0,0,0,0,0,6,0,
|
||||
0,0,0,0,6,0,0,0,0,0,6,0,0,0,0,0,
|
||||
6,0,0,0,0,0,6,0,0,0,0,0,6,0,0,0,
|
||||
0,0,6,0,0,0,0,0,6,0,0,0,0,0,6,0,
|
||||
0,0,0,0,6,0,0,0,0,0,6,0,0,0,0,0,
|
||||
6,0,0,0,0,0,6,0,0,0,0,0,6,0,0,5,
|
||||
7,7,6,0,0,248,136,128,240,136,136,240,5,7,7,6,
|
||||
0,0,248,136,128,128,128,128,128,5,7,7,6,0,0,80,
|
||||
0,248,128,240,128,248,5,7,7,6,0,0,168,168,168,112,
|
||||
168,168,168,5,7,7,6,0,0,240,8,8,112,8,8,240,
|
||||
5,7,7,6,0,0,136,136,152,168,200,136,136,5,8,8,
|
||||
6,0,0,80,32,136,152,168,168,200,136,5,7,7,6,0,
|
||||
0,120,40,40,40,40,168,72,5,7,7,6,0,0,248,136,
|
||||
136,136,136,136,136,5,7,7,6,0,0,136,136,136,80,32,
|
||||
64,128,5,7,7,6,0,0,32,112,168,168,168,112,32,5,
|
||||
7,7,6,0,0,136,136,136,120,8,8,8,5,7,7,6,
|
||||
0,0,168,168,168,168,168,168,248,5,7,7,6,0,0,192,
|
||||
64,64,112,72,72,112,5,7,7,6,0,0,136,136,136,200,
|
||||
168,168,200,5,7,7,6,0,0,112,136,8,56,8,136,112,
|
||||
5,7,7,6,0,0,144,168,168,232,168,168,144,5,7,7,
|
||||
6,0,0,120,136,136,120,40,72,136,5,7,7,6,0,0,
|
||||
24,96,128,240,136,136,112,4,5,5,6,0,0,224,144,224,
|
||||
144,224,5,5,5,6,0,0,248,136,128,128,128,5,7,7,
|
||||
6,0,0,80,0,112,136,248,128,112,5,5,5,6,0,0,
|
||||
168,168,112,168,168,5,5,5,6,0,0,240,8,48,8,240,
|
||||
5,5,5,6,0,0,136,152,168,200,136,5,7,7,6,0,
|
||||
0,80,32,136,152,168,200,136,4,5,5,6,0,0,144,160,
|
||||
192,160,144,5,5,5,6,0,0,248,40,40,168,72,5,5,
|
||||
5,6,0,0,136,216,168,136,136,5,5,5,6,0,0,136,
|
||||
136,248,136,136,5,5,5,6,0,0,248,136,136,136,136,5,
|
||||
5,5,6,0,0,248,32,32,32,32,5,5,5,6,0,0,
|
||||
136,136,120,8,8,5,5,5,6,0,0,168,168,168,168,248,
|
||||
5,5,5,6,0,0,192,64,112,72,112,5,5,5,6,0,
|
||||
0,136,136,200,168,200,4,5,5,6,0,0,128,128,224,144,
|
||||
224,5,5,5,6,0,0,112,136,56,136,112,5,5,5,6,
|
||||
0,0,144,168,232,168,144,5,5,5,6,0,0,120,136,120,
|
||||
40,72,5,5,5,6,0,1,32,72,144,72,32,5,5,5,
|
||||
6,0,1,32,144,72,144,32,5,3,3,6,0,0,72,144,
|
||||
216,5,3,3,6,0,4,216,72,144,5,7,7,6,0,0,
|
||||
144,208,176,144,56,40,56,5,7,7,6,0,0,32,0,32,
|
||||
64,128,136,112,5,7,7,6,0,0,24,32,32,112,32,32,
|
||||
192,5,7,7,6,0,0,32,80,64,240,64,64,120,1,2,
|
||||
2,6,2,0,128,128,1,4,4,6,2,0,128,128,128,128,
|
||||
3,5,5,6,1,0,160,160,160,0,224,3,5,5,6,1,
|
||||
0,160,160,160,0,160,5,7,7,6,0,0,160,0,232,16,
|
||||
32,64,128,5,5,5,6,0,1,216,112,32,112,216,5,7,
|
||||
7,6,0,0,160,64,168,16,32,64,128,3,6,6,6,1,
|
||||
1,224,64,64,64,64,224,5,6,6,6,0,1,248,80,80,
|
||||
80,80,248,5,7,7,6,0,0,32,112,168,32,32,32,32,
|
||||
5,7,7,6,0,0,32,32,32,32,168,112,32,5,7,7,
|
||||
6,0,0,128,144,176,248,176,144,128,5,7,7,6,0,0,
|
||||
8,72,104,248,104,72,8,5,7,7,6,0,0,128,136,168,
|
||||
248,168,136,128,5,7,7,6,0,0,128,224,136,16,32,64,
|
||||
128,2,2,2,6,2,2,192,192,5,8,8,6,0,255,120,
|
||||
40,40,40,72,136,248,136,5,8,8,6,0,255,136,136,136,
|
||||
136,136,136,248,8,5,8,8,6,0,255,168,168,168,168,168,
|
||||
168,248,8,5,6,6,6,0,255,120,40,72,136,248,136,5,
|
||||
7,7,6,0,255,32,32,112,168,168,112,32,5,6,6,6,
|
||||
0,255,136,136,136,136,248,8,5,6,6,6,0,255,168,168,
|
||||
168,168,248,8,2,2,2,6,2,6,64,128,3,1,1,6,
|
||||
1,7,160,5,2,2,6,0,6,72,176,5,8,8,6,0,
|
||||
0,16,32,0,112,136,248,128,112,5,6,6,6,0,255,112,
|
||||
128,136,112,32,96,3,7,7,6,1,0,160,0,160,160,160,
|
||||
32,192,5,6,6,6,0,1,32,112,112,112,248,32,5,5,
|
||||
5,6,0,1,80,0,136,0,80,5,5,5,6,0,1,112,
|
||||
136,136,136,112,5,7,7,6,0,0,136,144,168,88,184,8,
|
||||
8,5,7,7,6,0,0,136,144,184,72,184,8,56,5,7,
|
||||
7,6,0,0,136,144,184,72,152,32,56,5,8,8,6,0,
|
||||
0,192,64,192,72,216,56,8,8,5,7,7,6,0,0,136,
|
||||
248,136,248,136,248,136,4,5,5,6,0,2,192,0,48,0,
|
||||
96,5,8,8,6,0,0,64,160,224,168,8,40,120,32,5,
|
||||
8,8,6,0,0,64,112,64,120,64,112,64,224,5,8,8,
|
||||
6,0,0,32,112,32,248,32,112,32,112,5,7,7,6,0,
|
||||
0,104,0,232,0,104,16,56,5,8,8,6,0,0,16,112,
|
||||
16,240,16,112,16,56,5,7,7,6,0,1,32,112,32,248,
|
||||
32,112,32,5,8,8,6,0,0,16,144,80,48,80,144,16,
|
||||
56,5,8,8,6,0,0,48,72,32,80,80,32,144,96,5,
|
||||
7,7,6,0,0,120,168,168,120,40,40,40,5,8,8,6,
|
||||
0,0,248,248,248,248,248,248,248,248};
|
169
Marlin/dogm_font_data_HD44780_J.h
Normal file
169
Marlin/dogm_font_data_HD44780_J.h
Normal file
@ -0,0 +1,169 @@
|
||||
/*
|
||||
Fontname: HD44780_J
|
||||
Copyright: A. Hardtung, public domain
|
||||
Capital A Height: 7, '1' Height: 7
|
||||
Calculated Max Values w= 6 h=10 x= 2 y= 8 dx= 6 dy= 0 ascent= 8 len= 8
|
||||
Font Bounding box w= 6 h= 9 x= 0 y=-2
|
||||
Calculated Min Values x= 0 y=-2 dx= 0 dy= 0
|
||||
Pure Font ascent = 7 descent=-1
|
||||
X Font ascent = 7 descent=-1
|
||||
Max Font ascent = 8 descent=-2
|
||||
*/
|
||||
#include <utility/u8g.h>
|
||||
const u8g_fntpgm_uint8_t HD44780_J_5x7[2491] U8G_SECTION(".progmem.HD44780_J_5x7") = {
|
||||
0,6,9,0,254,7,1,145,3,34,32,255,255,8,254,7,
|
||||
255,0,0,0,6,0,8,1,7,7,6,2,0,128,128,128,
|
||||
128,128,0,128,3,2,2,6,1,5,160,160,5,7,7,6,
|
||||
0,0,80,80,248,80,248,80,80,5,7,7,6,0,0,32,
|
||||
120,160,112,40,240,32,5,7,7,6,0,0,192,200,16,32,
|
||||
64,152,24,5,7,7,6,0,0,96,144,160,64,168,144,104,
|
||||
2,3,3,6,1,4,192,64,128,3,7,7,6,1,0,32,
|
||||
64,128,128,128,64,32,3,7,7,6,1,0,128,64,32,32,
|
||||
32,64,128,5,5,5,6,0,1,32,168,112,168,32,5,5,
|
||||
5,6,0,1,32,32,248,32,32,2,3,3,6,2,255,192,
|
||||
64,128,5,1,1,6,0,3,248,2,2,2,6,2,0,192,
|
||||
192,5,5,5,6,0,1,8,16,32,64,128,5,7,7,6,
|
||||
0,0,112,136,152,168,200,136,112,3,7,7,6,1,0,64,
|
||||
192,64,64,64,64,224,5,7,7,6,0,0,112,136,8,112,
|
||||
128,128,248,5,7,7,6,0,0,248,16,32,16,8,8,240,
|
||||
5,7,7,6,0,0,16,48,80,144,248,16,16,5,7,7,
|
||||
6,0,0,248,128,240,8,8,136,112,5,7,7,6,0,0,
|
||||
48,64,128,240,136,136,112,5,7,7,6,0,0,248,8,16,
|
||||
32,32,32,32,5,7,7,6,0,0,112,136,136,112,136,136,
|
||||
112,5,7,7,6,0,0,112,136,136,120,8,16,96,2,5,
|
||||
5,6,2,0,192,192,0,192,192,2,6,6,6,2,255,192,
|
||||
192,0,192,64,128,4,7,7,6,0,0,16,32,64,128,64,
|
||||
32,16,5,3,3,6,0,2,248,0,248,4,7,7,6,1,
|
||||
0,128,64,32,16,32,64,128,5,7,7,6,0,0,112,136,
|
||||
8,16,32,0,32,5,6,6,6,0,0,112,136,8,104,168,
|
||||
112,5,7,7,6,0,0,112,136,136,248,136,136,136,5,7,
|
||||
7,6,0,0,240,136,136,240,136,136,240,5,7,7,6,0,
|
||||
0,112,136,128,128,128,136,112,5,7,7,6,0,0,224,144,
|
||||
136,136,136,144,224,5,7,7,6,0,0,248,128,128,240,128,
|
||||
128,248,5,7,7,6,0,0,248,128,128,240,128,128,128,5,
|
||||
7,7,6,0,0,112,136,128,184,136,136,112,5,7,7,6,
|
||||
0,0,136,136,136,248,136,136,136,1,7,7,6,2,0,128,
|
||||
128,128,128,128,128,128,5,7,7,6,0,0,56,16,16,16,
|
||||
16,144,96,5,7,7,6,0,0,136,144,160,192,160,144,136,
|
||||
5,7,7,6,0,0,128,128,128,128,128,128,248,5,7,7,
|
||||
6,0,0,136,216,168,136,136,136,136,5,7,7,6,0,0,
|
||||
136,136,200,168,152,136,136,5,7,7,6,0,0,112,136,136,
|
||||
136,136,136,112,5,7,7,6,0,0,240,136,136,240,128,128,
|
||||
128,5,7,7,6,0,0,112,136,136,136,168,144,104,5,7,
|
||||
7,6,0,0,240,136,136,240,160,144,136,5,7,7,6,0,
|
||||
0,120,128,128,112,8,8,240,5,7,7,6,0,0,248,32,
|
||||
32,32,32,32,32,5,7,7,6,0,0,136,136,136,136,136,
|
||||
136,112,5,7,7,6,0,0,136,136,136,136,136,80,32,5,
|
||||
7,7,6,0,0,136,136,136,136,136,168,80,5,7,7,6,
|
||||
0,0,136,136,80,32,80,136,136,5,7,7,6,0,0,136,
|
||||
136,136,80,32,32,32,5,7,7,6,0,0,248,8,16,32,
|
||||
64,128,248,3,7,7,6,1,0,224,128,128,128,128,128,224,
|
||||
5,7,7,6,0,0,136,80,248,32,248,32,32,3,7,7,
|
||||
6,1,0,224,32,32,32,32,32,224,5,3,3,6,0,4,
|
||||
32,80,136,5,1,1,6,0,0,248,2,2,2,6,2,5,
|
||||
128,64,5,5,5,6,0,0,112,8,120,136,120,5,7,7,
|
||||
6,0,0,128,128,176,200,136,136,240,5,5,5,6,0,0,
|
||||
112,128,128,136,112,5,7,7,6,0,0,8,8,104,152,136,
|
||||
136,120,5,5,5,6,0,0,112,136,248,128,112,5,7,7,
|
||||
6,0,0,48,72,224,64,64,64,64,5,6,6,6,0,255,
|
||||
112,136,136,120,8,112,5,7,7,6,0,0,128,128,176,200,
|
||||
136,136,136,1,7,7,6,2,0,128,0,128,128,128,128,128,
|
||||
3,8,8,6,1,255,32,0,32,32,32,32,160,64,4,7,
|
||||
7,6,0,0,128,128,144,160,192,160,144,3,7,7,6,1,
|
||||
0,192,64,64,64,64,64,224,5,5,5,6,0,0,208,168,
|
||||
168,168,168,5,5,5,6,0,0,176,200,136,136,136,5,5,
|
||||
5,6,0,0,112,136,136,136,112,5,6,6,6,0,255,240,
|
||||
136,136,240,128,128,5,6,6,6,0,255,120,136,136,120,8,
|
||||
8,5,5,5,6,0,0,176,200,128,128,128,5,5,5,6,
|
||||
0,0,112,128,112,8,240,5,7,7,6,0,0,64,64,224,
|
||||
64,64,72,48,5,5,5,6,0,0,136,136,136,152,104,5,
|
||||
5,5,6,0,0,136,136,136,80,32,5,5,5,6,0,0,
|
||||
136,136,168,168,80,5,5,5,6,0,0,136,80,32,80,136,
|
||||
5,6,6,6,0,255,136,136,136,120,8,112,5,5,5,6,
|
||||
0,0,248,16,32,64,248,3,7,7,6,1,0,32,64,64,
|
||||
128,64,64,32,1,7,7,6,2,0,128,128,128,128,128,128,
|
||||
128,3,7,7,6,1,0,128,64,64,32,64,64,128,5,5,
|
||||
5,6,0,1,32,16,248,16,32,5,5,5,6,0,1,32,
|
||||
64,248,64,32,0,0,0,6,0,8,0,0,0,6,0,8,
|
||||
0,0,0,6,0,8,0,0,0,6,0,8,0,0,0,6,
|
||||
0,8,0,0,0,6,0,8,0,0,0,6,0,8,0,0,
|
||||
0,6,0,8,0,0,0,6,0,8,0,0,0,6,0,8,
|
||||
0,0,0,6,0,8,0,0,0,6,0,8,0,0,0,6,
|
||||
0,8,0,0,0,6,0,8,0,0,0,6,0,8,0,0,
|
||||
0,6,0,8,0,0,0,6,0,8,0,0,0,6,0,8,
|
||||
0,0,0,6,0,8,0,0,0,6,0,8,0,0,0,6,
|
||||
0,8,0,0,0,6,0,8,0,0,0,6,0,8,0,0,
|
||||
0,6,0,8,0,0,0,6,0,8,0,0,0,6,0,8,
|
||||
0,0,0,6,0,8,0,0,0,6,0,8,0,0,0,6,
|
||||
0,8,0,0,0,6,0,8,0,0,0,6,0,8,0,0,
|
||||
0,6,0,8,0,0,0,6,0,8,3,3,3,6,0,0,
|
||||
224,160,224,3,4,4,6,2,3,224,128,128,128,3,4,4,
|
||||
6,0,0,32,32,32,224,3,3,3,6,0,0,128,64,32,
|
||||
2,2,2,6,1,2,192,192,5,6,6,6,0,0,248,8,
|
||||
248,8,16,32,5,5,5,6,0,0,248,8,48,32,64,4,
|
||||
5,5,6,0,0,16,32,96,160,32,5,5,5,6,0,0,
|
||||
32,248,136,8,48,5,4,4,6,0,0,248,32,32,248,5,
|
||||
5,5,6,0,0,16,248,48,80,144,5,5,5,6,0,0,
|
||||
64,248,72,80,64,5,4,4,6,0,0,112,16,16,248,4,
|
||||
5,5,6,0,0,240,16,240,16,240,5,4,4,6,0,0,
|
||||
168,168,8,48,5,1,1,6,0,4,248,5,7,7,6,0,
|
||||
0,248,8,40,48,32,32,64,5,7,7,6,0,0,8,16,
|
||||
32,96,160,32,32,5,7,7,6,0,0,32,248,136,136,8,
|
||||
16,32,5,6,6,6,0,0,248,32,32,32,32,248,5,7,
|
||||
7,6,0,0,16,248,16,48,80,144,16,5,7,7,6,0,
|
||||
0,64,248,72,72,72,72,144,5,7,7,6,0,0,32,248,
|
||||
32,248,32,32,32,5,6,6,6,0,0,120,72,136,8,16,
|
||||
96,5,7,7,6,0,0,64,120,144,16,16,16,32,5,6,
|
||||
6,6,0,0,248,8,8,8,8,248,5,7,7,6,0,0,
|
||||
80,248,80,80,16,32,64,5,6,6,6,0,0,192,8,200,
|
||||
8,16,224,5,6,6,6,0,0,248,8,16,32,80,136,5,
|
||||
7,7,6,0,0,64,248,72,80,64,64,56,5,6,6,6,
|
||||
0,0,136,136,72,8,16,96,5,6,6,6,0,0,120,72,
|
||||
168,24,16,96,5,7,7,6,0,0,16,224,32,248,32,32,
|
||||
64,5,6,6,6,0,0,168,168,168,8,16,32,5,7,7,
|
||||
6,0,0,112,0,248,32,32,32,64,3,7,7,6,1,0,
|
||||
128,128,128,192,160,128,128,5,7,7,6,0,0,32,32,248,
|
||||
32,32,64,128,5,6,6,6,0,0,112,0,0,0,0,248,
|
||||
5,6,6,6,0,0,248,8,80,32,80,128,5,6,6,6,
|
||||
0,1,32,248,16,32,112,168,3,7,7,6,1,0,32,32,
|
||||
32,32,32,64,128,5,6,6,6,0,0,32,16,136,136,136,
|
||||
136,5,7,7,6,0,0,128,128,248,128,128,128,120,5,6,
|
||||
6,6,0,0,248,8,8,8,16,96,5,5,5,6,0,1,
|
||||
64,160,16,8,8,5,7,7,6,0,0,32,248,32,32,168,
|
||||
168,32,5,6,6,6,0,0,248,8,8,80,32,16,4,6,
|
||||
6,6,1,0,224,0,224,0,224,16,5,6,6,6,0,0,
|
||||
32,64,128,136,248,8,5,6,6,6,0,0,8,8,80,32,
|
||||
80,128,5,6,6,6,0,0,248,64,248,64,64,56,5,7,
|
||||
7,6,0,0,64,64,248,72,80,64,64,5,7,7,6,0,
|
||||
0,112,16,16,16,16,16,248,5,6,6,6,0,0,248,8,
|
||||
248,8,8,248,5,7,7,6,0,0,112,0,248,8,8,16,
|
||||
32,4,7,7,6,0,0,144,144,144,144,16,32,64,5,6,
|
||||
6,6,0,0,32,160,160,168,168,176,5,7,7,6,0,0,
|
||||
128,128,128,136,144,160,192,5,6,6,6,0,0,248,136,136,
|
||||
136,136,248,5,6,6,6,0,0,248,136,136,8,16,32,5,
|
||||
6,6,6,0,0,192,0,8,8,16,224,4,3,3,6,0,
|
||||
4,32,144,64,3,3,3,6,0,4,224,160,224,5,5,5,
|
||||
6,0,1,72,168,144,144,104,5,7,7,6,0,0,80,0,
|
||||
112,8,120,136,120,4,8,8,6,1,255,96,144,144,224,144,
|
||||
144,224,128,5,5,5,6,0,0,112,128,96,136,112,5,6,
|
||||
6,6,0,255,136,136,152,232,136,128,5,5,5,6,0,0,
|
||||
120,160,144,136,112,5,7,7,6,0,254,48,72,136,136,240,
|
||||
128,128,5,8,8,6,0,254,120,136,136,136,120,8,8,112,
|
||||
5,5,5,6,0,1,56,32,32,160,64,4,3,3,6,0,
|
||||
3,16,208,16,4,8,8,6,0,255,16,0,48,16,16,16,
|
||||
144,96,3,3,3,6,0,4,160,64,160,5,7,7,6,0,
|
||||
0,32,112,160,160,168,112,32,5,7,7,6,0,0,64,64,
|
||||
224,64,224,64,120,5,7,7,6,0,0,112,0,176,200,136,
|
||||
136,136,5,7,7,6,0,0,80,0,112,136,136,136,112,5,
|
||||
7,7,6,0,255,176,200,136,136,240,128,128,5,7,7,6,
|
||||
0,255,104,152,136,136,120,8,8,5,6,6,6,0,0,112,
|
||||
136,248,136,136,112,5,3,3,6,0,2,88,168,208,5,5,
|
||||
5,6,0,0,112,136,136,80,216,5,7,7,6,0,0,80,
|
||||
0,136,136,136,152,104,5,7,7,6,0,0,248,128,64,32,
|
||||
64,128,248,5,5,5,6,0,0,248,80,80,80,152,5,7,
|
||||
7,6,0,0,248,0,136,80,32,80,136,5,7,7,6,0,
|
||||
255,136,136,136,136,120,8,112,5,6,6,6,0,1,8,240,
|
||||
32,248,32,32,5,5,5,6,0,0,248,64,120,72,136,5,
|
||||
5,5,6,0,0,248,168,248,136,136,5,5,5,6,0,1,
|
||||
32,0,248,0,32,0,0,0,6,0,8,6,10,10,6,0,
|
||||
254,252,252,252,252,252,252,252,252,252,252};
|
203
Marlin/dogm_font_data_HD44780_W.h
Normal file
203
Marlin/dogm_font_data_HD44780_W.h
Normal file
@ -0,0 +1,203 @@
|
||||
/*
|
||||
Fontname: HD44780_W
|
||||
Copyright: A.Hardtung, public domain
|
||||
Capital A Height: 7, '1' Height: 7
|
||||
Calculated Max Values w= 5 h= 9 x= 2 y= 5 dx= 6 dy= 0 ascent= 8 len= 9
|
||||
Font Bounding box w= 6 h= 9 x= 0 y=-2
|
||||
Calculated Min Values x= 0 y=-1 dx= 0 dy= 0
|
||||
Pure Font ascent = 7 descent=-1
|
||||
X Font ascent = 7 descent=-1
|
||||
Max Font ascent = 8 descent=-1
|
||||
*/
|
||||
#include <utility/u8g.h>
|
||||
const u8g_fntpgm_uint8_t HD44780_W_5x7[3034] U8G_SECTION(".progmem.HD44780_W_5x7") = {
|
||||
0,6,9,0,254,7,2,79,3,222,16,255,255,8,255,7,
|
||||
255,4,7,7,6,0,0,16,48,112,240,112,48,16,4,7,
|
||||
7,6,1,0,128,192,224,240,224,192,128,5,3,3,6,0,
|
||||
4,216,72,144,5,3,3,6,0,4,216,144,72,5,7,7,
|
||||
6,0,0,32,112,248,0,32,112,248,5,7,7,6,0,0,
|
||||
248,112,32,0,248,112,32,5,5,5,6,0,1,112,248,248,
|
||||
248,112,5,7,7,6,0,0,8,8,40,72,248,64,32,5,
|
||||
7,7,6,0,0,32,112,168,32,32,32,32,5,7,7,6,
|
||||
0,0,32,32,32,32,168,112,32,5,5,5,6,0,1,32,
|
||||
64,248,64,32,5,5,5,6,0,1,32,16,248,16,32,5,
|
||||
7,7,6,0,0,16,32,64,32,16,0,248,5,7,7,6,
|
||||
0,0,64,32,16,32,64,0,248,5,5,5,6,0,1,32,
|
||||
32,112,112,248,5,5,5,6,0,0,248,112,112,32,32,0,
|
||||
0,0,6,0,0,1,7,7,6,2,0,128,128,128,128,128,
|
||||
0,128,3,2,2,6,1,5,160,160,5,7,7,6,0,0,
|
||||
80,80,248,80,248,80,80,5,7,7,6,0,0,32,120,160,
|
||||
112,40,240,32,5,7,7,6,0,0,192,200,16,32,64,152,
|
||||
24,5,7,7,6,0,0,96,144,160,64,168,144,104,2,3,
|
||||
3,6,1,4,192,64,128,3,7,7,6,1,0,32,64,128,
|
||||
128,128,64,32,3,7,7,6,1,0,128,64,32,32,32,64,
|
||||
128,5,5,5,6,0,1,32,168,112,168,32,5,5,5,6,
|
||||
0,1,32,32,248,32,32,2,3,3,6,2,255,192,64,128,
|
||||
5,1,1,6,0,3,248,2,2,2,6,2,0,192,192,5,
|
||||
5,5,6,0,1,8,16,32,64,128,5,7,7,6,0,0,
|
||||
112,136,152,168,200,136,112,3,7,7,6,1,0,64,192,64,
|
||||
64,64,64,224,5,7,7,6,0,0,112,136,8,112,128,128,
|
||||
248,5,7,7,6,0,0,248,16,32,16,8,8,240,5,7,
|
||||
7,6,0,0,16,48,80,144,248,16,16,5,7,7,6,0,
|
||||
0,248,128,240,8,8,136,112,5,7,7,6,0,0,48,64,
|
||||
128,240,136,136,112,5,7,7,6,0,0,248,8,16,32,32,
|
||||
32,32,5,7,7,6,0,0,112,136,136,112,136,136,112,5,
|
||||
7,7,6,0,0,112,136,136,120,8,16,96,2,5,5,6,
|
||||
2,0,192,192,0,192,192,2,6,6,6,2,255,192,192,0,
|
||||
192,64,128,4,7,7,6,0,0,16,32,64,128,64,32,16,
|
||||
5,3,3,6,0,2,248,0,248,4,7,7,6,1,0,128,
|
||||
64,32,16,32,64,128,5,7,7,6,0,0,112,136,8,16,
|
||||
32,0,32,5,6,6,6,0,0,112,136,8,104,168,112,5,
|
||||
7,7,6,0,0,112,136,136,248,136,136,136,5,7,7,6,
|
||||
0,0,240,136,136,240,136,136,240,5,7,7,6,0,0,112,
|
||||
136,128,128,128,136,112,5,7,7,6,0,0,224,144,136,136,
|
||||
136,144,224,5,7,7,6,0,0,248,128,128,240,128,128,248,
|
||||
5,7,7,6,0,0,248,128,128,240,128,128,128,5,7,7,
|
||||
6,0,0,112,136,128,184,136,136,112,5,7,7,6,0,0,
|
||||
136,136,136,248,136,136,136,1,7,7,6,2,0,128,128,128,
|
||||
128,128,128,128,5,7,7,6,0,0,56,16,16,16,16,144,
|
||||
96,5,7,7,6,0,0,136,144,160,192,160,144,136,5,7,
|
||||
7,6,0,0,128,128,128,128,128,128,248,5,7,7,6,0,
|
||||
0,136,216,168,136,136,136,136,5,7,7,6,0,0,136,136,
|
||||
200,168,152,136,136,5,7,7,6,0,0,112,136,136,136,136,
|
||||
136,112,5,7,7,6,0,0,240,136,136,240,128,128,128,5,
|
||||
7,7,6,0,0,112,136,136,136,168,144,104,5,7,7,6,
|
||||
0,0,240,136,136,240,160,144,136,5,7,7,6,0,0,120,
|
||||
128,128,112,8,8,240,5,7,7,6,0,0,248,32,32,32,
|
||||
32,32,32,5,7,7,6,0,0,136,136,136,136,136,136,112,
|
||||
5,7,7,6,0,0,136,136,136,136,136,80,32,5,7,7,
|
||||
6,0,0,136,136,136,136,136,168,80,5,7,7,6,0,0,
|
||||
136,136,80,32,80,136,136,5,7,7,6,0,0,136,136,136,
|
||||
80,32,32,32,5,7,7,6,0,0,248,8,16,32,64,128,
|
||||
248,3,7,7,6,1,0,224,128,128,128,128,128,224,5,5,
|
||||
5,6,0,1,128,64,32,16,8,3,7,7,6,1,0,224,
|
||||
32,32,32,32,32,224,5,3,3,6,0,4,32,80,136,5,
|
||||
1,1,6,0,0,248,2,2,2,6,2,5,128,64,5,5,
|
||||
5,6,0,0,112,8,120,136,120,5,7,7,6,0,0,128,
|
||||
128,176,200,136,136,240,5,5,5,6,0,0,112,128,128,136,
|
||||
112,5,7,7,6,0,0,8,8,104,152,136,136,120,5,5,
|
||||
5,6,0,0,112,136,248,128,112,5,7,7,6,0,0,48,
|
||||
72,224,64,64,64,64,5,6,6,6,0,255,112,136,136,120,
|
||||
8,112,5,7,7,6,0,0,128,128,176,200,136,136,136,1,
|
||||
7,7,6,2,0,128,0,128,128,128,128,128,3,8,8,6,
|
||||
1,255,32,0,32,32,32,32,160,64,4,7,7,6,0,0,
|
||||
128,128,144,160,192,160,144,3,7,7,6,1,0,192,64,64,
|
||||
64,64,64,224,5,5,5,6,0,0,208,168,168,168,168,5,
|
||||
5,5,6,0,0,176,200,136,136,136,5,5,5,6,0,0,
|
||||
112,136,136,136,112,5,6,6,6,0,255,240,136,136,240,128,
|
||||
128,5,6,6,6,0,255,120,136,136,120,8,8,5,5,5,
|
||||
6,0,0,176,200,128,128,128,5,5,5,6,0,0,112,128,
|
||||
112,8,240,5,7,7,6,0,0,64,64,224,64,64,72,48,
|
||||
5,5,5,6,0,0,136,136,136,152,104,5,5,5,6,0,
|
||||
0,136,136,136,80,32,5,5,5,6,0,0,136,136,168,168,
|
||||
80,5,5,5,6,0,0,136,80,32,80,136,5,6,6,6,
|
||||
0,255,136,136,136,120,8,112,5,5,5,6,0,0,248,16,
|
||||
32,64,248,3,7,7,6,1,0,32,64,64,128,64,64,32,
|
||||
1,7,7,6,2,0,128,128,128,128,128,128,128,3,7,7,
|
||||
6,1,0,128,64,64,32,64,64,128,5,6,6,6,0,1,
|
||||
8,40,72,248,64,32,5,7,7,6,0,0,32,80,136,136,
|
||||
136,136,248,5,7,7,6,0,0,248,136,128,240,136,136,240,
|
||||
5,8,8,6,0,255,120,40,40,40,72,136,248,136,5,7,
|
||||
7,6,0,0,168,168,168,112,168,168,168,5,7,7,6,0,
|
||||
0,240,8,8,112,8,8,240,5,7,7,6,0,0,136,136,
|
||||
152,168,200,136,136,5,8,8,6,0,0,80,32,136,152,168,
|
||||
168,200,136,5,7,7,6,0,0,120,40,40,40,40,168,72,
|
||||
5,7,7,6,0,0,248,136,136,136,136,136,136,5,7,7,
|
||||
6,0,0,136,136,136,80,32,64,128,5,8,8,6,0,255,
|
||||
136,136,136,136,136,136,248,8,5,7,7,6,0,0,136,136,
|
||||
136,120,8,8,8,5,7,7,6,0,0,168,168,168,168,168,
|
||||
168,248,5,8,8,6,0,255,168,168,168,168,168,168,248,8,
|
||||
5,7,7,6,0,0,192,64,64,112,72,72,112,5,7,7,
|
||||
6,0,0,136,136,136,200,168,168,200,5,7,7,6,0,0,
|
||||
112,136,40,80,8,136,112,5,5,5,6,0,0,64,160,144,
|
||||
144,104,5,7,7,6,0,0,32,48,40,40,32,224,224,5,
|
||||
7,7,6,0,0,248,136,128,128,128,128,128,5,5,5,6,
|
||||
0,0,248,80,80,80,152,5,7,7,6,0,0,248,128,64,
|
||||
32,64,128,248,5,5,5,6,0,0,120,144,144,144,96,5,
|
||||
7,7,6,0,0,48,40,56,40,200,216,24,5,6,6,6,
|
||||
0,0,8,112,160,32,32,16,5,6,6,6,0,1,32,112,
|
||||
112,112,248,32,5,7,7,6,0,0,112,136,136,248,136,136,
|
||||
112,5,5,5,6,0,0,112,136,136,80,216,5,7,7,6,
|
||||
0,0,48,72,32,80,136,136,112,5,3,3,6,0,2,88,
|
||||
168,208,5,6,6,6,0,0,80,248,248,248,112,32,5,5,
|
||||
5,6,0,0,112,128,96,136,112,5,7,7,6,0,0,112,
|
||||
136,136,136,136,136,136,5,7,7,6,0,0,216,216,216,216,
|
||||
216,216,216,1,7,7,6,2,0,128,0,128,128,128,128,128,
|
||||
5,7,7,6,0,0,32,112,160,160,168,112,32,5,7,7,
|
||||
6,0,0,48,64,64,224,64,80,168,5,5,5,6,0,0,
|
||||
136,112,80,112,136,5,7,7,6,0,0,136,80,248,32,248,
|
||||
32,32,1,7,7,6,2,0,128,128,128,0,128,128,128,5,
|
||||
8,8,6,0,0,48,72,32,80,80,32,144,96,5,7,7,
|
||||
6,0,0,24,32,32,112,32,32,192,5,7,7,6,0,0,
|
||||
248,136,184,184,184,136,248,5,7,7,6,0,0,112,8,120,
|
||||
136,120,0,248,5,5,5,6,0,1,40,80,160,80,40,5,
|
||||
7,7,6,0,0,144,168,168,232,168,168,144,5,7,7,6,
|
||||
0,0,120,136,136,120,40,72,136,5,7,7,6,0,0,248,
|
||||
136,168,136,152,168,248,2,3,3,6,2,4,64,128,192,4,
|
||||
5,5,6,0,3,96,144,144,144,96,5,7,7,6,0,0,
|
||||
32,32,248,32,32,0,248,4,5,5,6,0,3,96,144,32,
|
||||
64,240,3,5,5,6,0,3,224,32,224,32,224,5,8,8,
|
||||
6,0,0,224,144,224,128,144,184,144,24,5,8,8,6,0,
|
||||
255,136,136,136,136,152,232,128,128,5,7,7,6,0,0,120,
|
||||
152,152,120,24,24,24,2,2,2,6,2,2,192,192,5,5,
|
||||
5,6,0,0,80,136,168,168,80,3,5,5,6,0,3,64,
|
||||
192,64,64,224,5,7,7,6,0,0,112,136,136,136,112,0,
|
||||
248,5,5,5,6,0,1,160,80,40,80,160,5,7,7,6,
|
||||
0,0,136,144,168,88,184,8,8,5,7,7,6,0,0,136,
|
||||
144,184,72,152,32,56,5,8,8,6,0,0,192,64,192,72,
|
||||
216,56,8,8,5,7,7,6,0,0,32,0,32,64,128,136,
|
||||
112,5,8,8,6,0,0,64,32,32,80,136,248,136,136,5,
|
||||
8,8,6,0,0,16,32,32,80,136,248,136,136,5,8,8,
|
||||
6,0,0,32,80,0,112,136,248,136,136,5,8,8,6,0,
|
||||
0,104,144,0,112,136,248,136,136,5,8,8,6,0,0,80,
|
||||
0,32,80,136,248,136,136,5,8,8,6,0,0,32,80,32,
|
||||
112,136,248,136,136,5,7,7,6,0,0,56,96,160,184,224,
|
||||
160,184,5,8,8,6,0,255,112,136,128,128,136,112,32,96,
|
||||
5,8,8,6,0,0,64,32,0,248,128,240,128,248,5,8,
|
||||
8,6,0,0,8,16,0,248,128,240,128,248,5,8,8,6,
|
||||
0,0,32,80,0,248,128,240,128,248,5,7,7,6,0,0,
|
||||
80,0,248,128,240,128,248,3,8,8,6,1,0,128,64,0,
|
||||
224,64,64,64,224,3,8,8,6,1,0,32,64,0,224,64,
|
||||
64,64,224,3,8,8,6,1,0,64,160,0,224,64,64,64,
|
||||
224,3,7,7,6,1,0,160,0,224,64,64,64,224,5,7,
|
||||
7,6,0,0,112,72,72,232,72,72,112,5,8,8,6,0,
|
||||
0,104,144,0,136,200,168,152,136,5,8,8,6,0,0,64,
|
||||
32,112,136,136,136,136,112,5,8,8,6,0,0,16,32,112,
|
||||
136,136,136,136,112,5,8,8,6,0,0,32,80,0,112,136,
|
||||
136,136,112,5,8,8,6,0,0,104,144,0,112,136,136,136,
|
||||
112,5,8,8,6,0,0,80,0,112,136,136,136,136,112,5,
|
||||
5,5,6,0,1,136,80,32,80,136,5,7,7,6,0,0,
|
||||
112,32,112,168,112,32,112,5,8,8,6,0,0,64,32,136,
|
||||
136,136,136,136,112,5,8,8,6,0,0,16,32,136,136,136,
|
||||
136,136,112,5,8,8,6,0,0,32,80,0,136,136,136,136,
|
||||
112,5,8,8,6,0,0,80,0,136,136,136,136,136,112,5,
|
||||
8,8,6,0,0,16,32,136,80,32,32,32,32,5,8,8,
|
||||
6,0,0,192,64,112,72,72,112,64,224,5,7,7,6,0,
|
||||
0,48,72,72,112,72,72,176,5,8,8,6,0,0,64,32,
|
||||
0,112,8,120,136,120,5,8,8,6,0,0,16,32,0,112,
|
||||
8,120,136,120,5,8,8,6,0,0,32,80,0,112,8,120,
|
||||
136,120,5,8,8,6,0,0,104,144,0,112,8,120,136,120,
|
||||
5,7,7,6,0,0,80,0,112,8,120,136,120,5,8,8,
|
||||
6,0,0,32,80,32,112,8,120,136,120,5,6,6,6,0,
|
||||
0,208,40,120,160,168,80,5,6,6,6,0,255,112,128,136,
|
||||
112,32,96,5,8,8,6,0,0,64,32,0,112,136,248,128,
|
||||
112,5,8,8,6,0,0,16,32,0,112,136,248,128,112,5,
|
||||
8,8,6,0,0,32,80,0,112,136,248,128,112,5,7,7,
|
||||
6,0,0,80,0,112,136,248,128,112,3,8,8,6,1,0,
|
||||
128,64,0,64,192,64,64,224,3,8,8,6,1,0,32,64,
|
||||
0,64,192,64,64,224,3,8,8,6,1,0,64,160,0,64,
|
||||
192,64,64,224,3,7,7,6,1,0,160,0,64,192,64,64,
|
||||
224,5,7,7,6,0,0,160,64,160,16,120,136,112,5,8,
|
||||
8,6,0,0,104,144,0,176,200,136,136,136,5,8,8,6,
|
||||
0,0,64,32,0,112,136,136,136,112,5,8,8,6,0,0,
|
||||
16,32,0,112,136,136,136,112,5,8,8,6,0,0,32,80,
|
||||
0,112,136,136,136,112,5,8,8,6,0,0,104,144,0,112,
|
||||
136,136,136,112,5,7,7,6,0,0,80,0,112,136,136,136,
|
||||
112,5,5,5,6,0,1,32,0,248,0,32,5,7,7,6,
|
||||
0,0,16,32,112,168,112,32,64,5,8,8,6,0,0,64,
|
||||
32,0,136,136,136,152,104,5,8,8,6,0,0,16,32,0,
|
||||
136,136,136,152,104,5,8,8,6,0,0,32,80,0,136,136,
|
||||
136,152,104,5,7,7,6,0,0,80,0,136,136,136,152,104,
|
||||
5,9,9,6,0,255,16,32,0,136,136,136,248,8,112,4,
|
||||
7,7,6,1,0,192,64,96,80,96,64,224,5,8,8,6,
|
||||
0,255,80,0,136,136,136,248,8,112};
|
@ -1,17 +1,17 @@
|
||||
/*
|
||||
Fontname: ISO10646-1-Marlin
|
||||
Fontname: ISO10646-1
|
||||
Copyright: A.Hardtung, public domain
|
||||
Capital A Height: 7, '1' Height: 7
|
||||
Calculated Max Values w= 5 h=10 x= 2 y= 7 dx= 6 dy= 0 ascent= 8 len= 9
|
||||
Calculated Max Values w= 5 h= 9 x= 2 y= 7 dx= 6 dy= 0 ascent= 8 len= 9
|
||||
Font Bounding box w= 6 h= 9 x= 0 y=-2
|
||||
Calculated Min Values x= 0 y=-2 dx= 0 dy= 0
|
||||
Calculated Min Values x= 0 y=-1 dx= 0 dy= 0
|
||||
Pure Font ascent = 7 descent=-1
|
||||
X Font ascent = 7 descent=-1
|
||||
Max Font ascent = 8 descent=-2
|
||||
Max Font ascent = 8 descent=-1
|
||||
*/
|
||||
#include <utility/u8g.h>
|
||||
const u8g_fntpgm_uint8_t ISO10646_1_Marlin_5x7[2596] U8G_SECTION(".progmem.ISO10646_1_Marlin_5x7") = {
|
||||
0,6,9,0,254,7,1,146,3,33,32,255,255,8,254,7,
|
||||
const u8g_fntpgm_uint8_t ISO10646_1_5x7[2592] U8G_SECTION(".progmem.ISO10646_1_5x7") = {
|
||||
0,6,9,0,254,7,1,146,3,33,32,255,255,8,255,7,
|
||||
255,0,0,0,6,0,0,1,7,7,6,2,0,128,128,128,
|
||||
128,128,0,128,3,2,2,6,1,5,160,160,5,7,7,6,
|
||||
0,0,80,80,248,80,248,80,80,5,7,7,6,0,0,32,
|
||||
@ -166,11 +166,11 @@ const u8g_fntpgm_uint8_t ISO10646_1_Marlin_5x7[2596] U8G_SECTION(".progmem.ISO10
|
||||
8,6,0,0,32,80,0,112,136,136,136,112,5,8,8,6,
|
||||
0,0,104,144,0,112,136,136,136,112,5,7,7,6,0,0,
|
||||
80,0,112,136,136,136,112,5,5,5,6,0,1,32,0,248,
|
||||
0,32,5,8,8,6,0,0,64,240,200,136,136,152,120,16,
|
||||
5,8,8,6,0,0,192,248,136,136,136,136,136,248,5,5,
|
||||
5,6,0,1,32,48,248,48,32,5,8,8,6,0,0,32,
|
||||
112,248,32,32,32,32,224,5,9,9,6,0,255,32,112,168,
|
||||
168,184,136,136,112,32,5,9,9,6,0,255,224,128,192,176,
|
||||
168,40,48,40,40,5,9,9,6,0,255,248,168,136,136,136,
|
||||
136,136,168,248,5,10,10,6,0,254,32,80,80,80,80,136,
|
||||
168,168,136,112};
|
||||
0,32,5,7,7,6,0,255,16,112,168,168,168,112,64,5,
|
||||
8,8,6,0,0,64,32,0,136,136,136,152,104,5,8,8,
|
||||
6,0,0,16,32,0,136,136,136,152,104,5,8,8,6,0,
|
||||
0,32,80,0,136,136,136,152,104,5,7,7,6,0,0,80,
|
||||
0,136,136,136,152,104,5,9,9,6,0,255,16,32,0,136,
|
||||
136,136,248,8,112,4,7,7,6,1,255,192,64,96,80,96,
|
||||
64,224,5,8,8,6,0,255,80,0,136,136,136,120,8,112
|
||||
};
|
174
Marlin/dogm_font_data_ISO10646_5_Cyrillic.h
Normal file
174
Marlin/dogm_font_data_ISO10646_5_Cyrillic.h
Normal file
@ -0,0 +1,174 @@
|
||||
/*
|
||||
Fontname: ISO10646_5_Cyrillic
|
||||
Copyright: A. Hardtung, public domain
|
||||
Capital A Height: 7, '1' Height: 7
|
||||
Calculated Max Values w= 5 h= 9 x= 2 y= 5 dx= 6 dy= 0 ascent= 8 len= 9
|
||||
Font Bounding box w= 6 h= 9 x= 0 y=-2
|
||||
Calculated Min Values x= 0 y=-1 dx= 0 dy= 0
|
||||
Pure Font ascent = 7 descent=-1
|
||||
X Font ascent = 7 descent=-1
|
||||
Max Font ascent = 8 descent=-1
|
||||
*/
|
||||
#include <utility/u8g.h>
|
||||
const u8g_fntpgm_uint8_t ISO10646_5_Cyrillic_5x7[2560] U8G_SECTION(".progmem.ISO10646_5_Cyrillic_5x7") = {
|
||||
0,6,9,0,254,7,1,145,3,32,32,255,255,8,255,7,
|
||||
255,0,0,0,6,0,0,1,7,7,6,2,0,128,128,128,
|
||||
128,128,0,128,3,2,2,6,1,5,160,160,5,7,7,6,
|
||||
0,0,80,80,248,80,248,80,80,5,7,7,6,0,0,32,
|
||||
120,160,112,40,240,32,5,7,7,6,0,0,192,200,16,32,
|
||||
64,152,24,5,7,7,6,0,0,96,144,160,64,168,144,104,
|
||||
2,3,3,6,1,4,192,64,128,3,7,7,6,1,0,32,
|
||||
64,128,128,128,64,32,3,7,7,6,1,0,128,64,32,32,
|
||||
32,64,128,5,5,5,6,0,1,32,168,112,168,32,5,5,
|
||||
5,6,0,1,32,32,248,32,32,2,3,3,6,2,255,192,
|
||||
64,128,5,1,1,6,0,3,248,2,2,2,6,2,0,192,
|
||||
192,5,5,5,6,0,1,8,16,32,64,128,5,7,7,6,
|
||||
0,0,112,136,152,168,200,136,112,3,7,7,6,1,0,64,
|
||||
192,64,64,64,64,224,5,7,7,6,0,0,112,136,8,112,
|
||||
128,128,248,5,7,7,6,0,0,248,16,32,16,8,8,240,
|
||||
5,7,7,6,0,0,16,48,80,144,248,16,16,5,7,7,
|
||||
6,0,0,248,128,240,8,8,136,112,5,7,7,6,0,0,
|
||||
48,64,128,240,136,136,112,5,7,7,6,0,0,248,8,16,
|
||||
32,32,32,32,5,7,7,6,0,0,112,136,136,112,136,136,
|
||||
112,5,7,7,6,0,0,112,136,136,120,8,16,96,2,5,
|
||||
5,6,2,0,192,192,0,192,192,2,6,6,6,2,255,192,
|
||||
192,0,192,64,128,4,7,7,6,0,0,16,32,64,128,64,
|
||||
32,16,5,3,3,6,0,2,248,0,248,4,7,7,6,1,
|
||||
0,128,64,32,16,32,64,128,5,7,7,6,0,0,112,136,
|
||||
8,16,32,0,32,5,6,6,6,0,0,112,136,8,104,168,
|
||||
112,5,7,7,6,0,0,112,136,136,248,136,136,136,5,7,
|
||||
7,6,0,0,240,136,136,240,136,136,240,5,7,7,6,0,
|
||||
0,112,136,128,128,128,136,112,5,7,7,6,0,0,224,144,
|
||||
136,136,136,144,224,5,7,7,6,0,0,248,128,128,240,128,
|
||||
128,248,5,7,7,6,0,0,248,128,128,240,128,128,128,5,
|
||||
7,7,6,0,0,112,136,128,184,136,136,112,5,7,7,6,
|
||||
0,0,136,136,136,248,136,136,136,1,7,7,6,2,0,128,
|
||||
128,128,128,128,128,128,5,7,7,6,0,0,56,16,16,16,
|
||||
16,144,96,5,7,7,6,0,0,136,144,160,192,160,144,136,
|
||||
5,7,7,6,0,0,128,128,128,128,128,128,248,5,7,7,
|
||||
6,0,0,136,216,168,136,136,136,136,5,7,7,6,0,0,
|
||||
136,136,200,168,152,136,136,5,7,7,6,0,0,112,136,136,
|
||||
136,136,136,112,5,7,7,6,0,0,240,136,136,240,128,128,
|
||||
128,5,7,7,6,0,0,112,136,136,136,168,144,104,5,7,
|
||||
7,6,0,0,240,136,136,240,160,144,136,5,7,7,6,0,
|
||||
0,120,128,128,112,8,8,240,5,7,7,6,0,0,248,32,
|
||||
32,32,32,32,32,5,7,7,6,0,0,136,136,136,136,136,
|
||||
136,112,5,7,7,6,0,0,136,136,136,136,136,80,32,5,
|
||||
7,7,6,0,0,136,136,136,136,136,168,80,5,7,7,6,
|
||||
0,0,136,136,80,32,80,136,136,5,7,7,6,0,0,136,
|
||||
136,136,80,32,32,32,5,7,7,6,0,0,248,8,16,32,
|
||||
64,128,248,3,7,7,6,1,0,224,128,128,128,128,128,224,
|
||||
5,5,5,6,0,1,128,64,32,16,8,3,7,7,6,1,
|
||||
0,224,32,32,32,32,32,224,5,3,3,6,0,4,32,80,
|
||||
136,5,1,1,6,0,0,248,2,2,2,6,2,5,128,64,
|
||||
5,5,5,6,0,0,112,8,120,136,120,5,7,7,6,0,
|
||||
0,128,128,176,200,136,136,240,5,5,5,6,0,0,112,128,
|
||||
128,136,112,5,7,7,6,0,0,8,8,104,152,136,136,120,
|
||||
5,5,5,6,0,0,112,136,248,128,112,5,7,7,6,0,
|
||||
0,48,72,224,64,64,64,64,5,6,6,6,0,255,112,136,
|
||||
136,120,8,112,5,7,7,6,0,0,128,128,176,200,136,136,
|
||||
136,1,7,7,6,2,0,128,0,128,128,128,128,128,3,8,
|
||||
8,6,1,255,32,0,32,32,32,32,160,64,4,7,7,6,
|
||||
0,0,128,128,144,160,192,160,144,3,7,7,6,1,0,192,
|
||||
64,64,64,64,64,224,5,5,5,6,0,0,208,168,168,168,
|
||||
168,5,5,5,6,0,0,176,200,136,136,136,5,5,5,6,
|
||||
0,0,112,136,136,136,112,5,6,6,6,0,255,240,136,136,
|
||||
240,128,128,5,6,6,6,0,255,120,136,136,120,8,8,5,
|
||||
5,5,6,0,0,176,200,128,128,128,5,5,5,6,0,0,
|
||||
112,128,112,8,240,5,7,7,6,0,0,64,64,224,64,64,
|
||||
72,48,5,5,5,6,0,0,136,136,136,152,104,5,5,5,
|
||||
6,0,0,136,136,136,80,32,5,5,5,6,0,0,136,136,
|
||||
168,168,80,5,5,5,6,0,0,136,80,32,80,136,5,6,
|
||||
6,6,0,255,136,136,136,120,8,112,5,5,5,6,0,0,
|
||||
248,16,32,64,248,3,7,7,6,1,0,32,64,64,128,64,
|
||||
64,32,1,7,7,6,2,0,128,128,128,128,128,128,128,3,
|
||||
7,7,6,1,0,128,64,64,32,64,64,128,5,2,2,6,
|
||||
0,3,104,144,0,0,0,6,0,0,0,0,0,6,0,0,
|
||||
0,0,0,6,0,0,0,0,0,6,0,0,0,0,0,6,
|
||||
0,0,0,0,0,6,0,0,0,0,0,6,0,0,0,0,
|
||||
0,6,0,0,0,0,0,6,0,0,0,0,0,6,0,0,
|
||||
0,0,0,6,0,0,0,0,0,6,0,0,0,0,0,6,
|
||||
0,0,0,0,0,6,0,0,0,0,0,6,0,0,0,0,
|
||||
0,6,0,0,0,0,0,6,0,0,0,0,0,6,0,0,
|
||||
0,0,0,6,0,0,0,0,0,6,0,0,0,0,0,6,
|
||||
0,0,0,0,0,6,0,0,0,0,0,6,0,0,0,0,
|
||||
0,6,0,0,0,0,0,6,0,0,0,0,0,6,0,0,
|
||||
0,0,0,6,0,0,0,0,0,6,0,0,0,0,0,6,
|
||||
0,0,0,0,0,6,0,0,0,0,0,6,0,0,0,0,
|
||||
0,6,0,0,0,0,0,6,0,0,5,8,8,6,0,0,
|
||||
64,248,128,128,240,128,128,248,5,8,8,6,0,0,80,248,
|
||||
128,128,240,128,128,248,5,7,7,6,0,0,224,64,64,112,
|
||||
72,72,112,5,8,8,6,0,0,16,32,248,136,128,128,128,
|
||||
128,5,7,7,6,0,0,48,72,128,224,128,72,48,5,7,
|
||||
7,6,0,0,112,136,128,112,8,136,112,3,7,7,6,1,
|
||||
0,224,64,64,64,64,64,224,3,8,8,6,1,0,160,0,
|
||||
224,64,64,64,64,224,5,7,7,6,0,0,56,16,16,16,
|
||||
16,144,96,5,7,7,6,0,0,160,160,160,184,168,168,184,
|
||||
5,7,7,6,0,0,160,160,160,248,168,168,184,4,7,7,
|
||||
6,0,0,224,64,112,80,80,80,80,5,8,8,6,0,0,
|
||||
16,32,136,144,160,224,144,136,5,8,8,6,0,0,64,32,
|
||||
136,152,168,200,136,136,5,9,9,6,0,255,80,32,136,136,
|
||||
136,80,32,32,32,5,8,8,6,0,255,136,136,136,136,136,
|
||||
136,248,32,5,7,7,6,0,0,112,136,136,248,136,136,136,
|
||||
5,7,7,6,0,0,248,128,128,240,136,136,240,5,7,7,
|
||||
6,0,0,240,136,136,240,136,136,240,5,7,7,6,0,0,
|
||||
248,136,128,128,128,128,128,5,8,8,6,0,255,120,40,40,
|
||||
40,72,136,248,136,5,7,7,6,0,0,248,128,128,240,128,
|
||||
128,248,5,7,7,6,0,0,168,168,168,112,168,168,168,5,
|
||||
7,7,6,0,0,240,8,8,112,8,8,240,5,7,7,6,
|
||||
0,0,136,136,152,168,200,136,136,5,8,8,6,0,0,80,
|
||||
32,136,152,168,168,200,136,5,7,7,6,0,0,136,144,160,
|
||||
192,160,144,136,5,7,7,6,0,0,120,40,40,40,40,168,
|
||||
72,5,7,7,6,0,0,136,216,168,136,136,136,136,5,7,
|
||||
7,6,0,0,136,136,136,248,136,136,136,5,7,7,6,0,
|
||||
0,112,136,136,136,136,136,112,5,7,7,6,0,0,248,136,
|
||||
136,136,136,136,136,5,7,7,6,0,0,240,136,136,240,128,
|
||||
128,128,5,7,7,6,0,0,112,136,128,128,128,136,112,5,
|
||||
7,7,6,0,0,248,32,32,32,32,32,32,5,7,7,6,
|
||||
0,0,136,136,136,80,32,64,128,5,7,7,6,0,0,32,
|
||||
112,168,168,168,112,32,5,7,7,6,0,0,136,136,80,32,
|
||||
80,136,136,5,8,8,6,0,255,136,136,136,136,136,136,248,
|
||||
8,5,7,7,6,0,0,136,136,136,152,104,8,8,5,7,
|
||||
7,6,0,0,168,168,168,168,168,168,248,5,8,8,6,0,
|
||||
255,168,168,168,168,168,168,248,8,5,7,7,6,0,0,192,
|
||||
64,64,112,72,72,112,5,7,7,6,0,0,136,136,136,200,
|
||||
168,168,200,5,7,7,6,0,0,128,128,128,240,136,136,240,
|
||||
5,7,7,6,0,0,112,136,8,56,8,136,112,5,7,7,
|
||||
6,0,0,144,168,168,232,168,168,144,5,7,7,6,0,0,
|
||||
120,136,136,120,40,72,136,5,5,5,6,0,0,112,8,120,
|
||||
136,120,5,7,7,6,0,0,24,96,128,240,136,136,112,4,
|
||||
5,5,6,0,0,224,144,224,144,224,5,5,5,6,0,0,
|
||||
248,136,128,128,128,5,6,6,6,0,255,120,40,72,136,248,
|
||||
136,5,5,5,6,0,0,112,136,248,128,112,5,5,5,6,
|
||||
0,0,168,168,112,168,168,5,5,5,6,0,0,240,8,48,
|
||||
8,240,5,5,5,6,0,0,136,152,168,200,136,5,7,7,
|
||||
6,0,0,80,32,136,152,168,200,136,4,5,5,6,0,0,
|
||||
144,160,192,160,144,5,5,5,6,0,0,248,40,40,168,72,
|
||||
5,5,5,6,0,0,136,216,168,136,136,5,5,5,6,0,
|
||||
0,136,136,248,136,136,5,5,5,6,0,0,112,136,136,136,
|
||||
112,5,5,5,6,0,0,248,136,136,136,136,5,6,6,6,
|
||||
0,255,240,136,136,240,128,128,5,5,5,6,0,0,112,128,
|
||||
128,136,112,5,5,5,6,0,0,248,32,32,32,32,5,6,
|
||||
6,6,0,255,136,136,136,120,8,112,5,6,6,6,0,0,
|
||||
32,112,168,168,112,32,5,5,5,6,0,0,136,80,32,80,
|
||||
136,5,6,6,6,0,255,136,136,136,136,248,8,5,5,5,
|
||||
6,0,0,136,136,248,8,8,5,5,5,6,0,0,168,168,
|
||||
168,168,248,5,6,6,6,0,255,168,168,168,168,248,8,5,
|
||||
5,5,6,0,0,192,64,112,72,112,5,5,5,6,0,0,
|
||||
136,136,200,168,200,3,5,5,6,1,0,128,128,192,160,192,
|
||||
5,5,5,6,0,0,112,136,56,136,112,5,5,5,6,0,
|
||||
0,144,168,232,168,144,5,5,5,6,0,0,120,136,120,40,
|
||||
72,5,8,8,6,0,0,64,32,0,112,136,248,128,112,5,
|
||||
7,7,6,0,0,80,0,112,136,248,128,112,5,9,9,6,
|
||||
0,255,64,224,64,64,120,72,72,72,16,5,8,8,6,0,
|
||||
0,16,32,0,248,136,128,128,128,5,5,5,6,0,0,112,
|
||||
136,96,136,112,5,5,5,6,0,0,112,128,112,8,240,1,
|
||||
7,7,6,2,0,128,0,128,128,128,128,128,3,7,7,6,
|
||||
1,0,160,0,64,64,64,64,64,3,8,8,6,1,255,32,
|
||||
0,32,32,32,32,160,64,5,5,5,6,0,0,160,160,184,
|
||||
168,184,5,5,5,6,0,0,160,160,248,168,184,5,6,6,
|
||||
6,0,0,64,224,64,120,72,72,4,8,8,6,0,0,16,
|
||||
32,0,144,160,192,160,144,5,8,8,6,0,0,64,32,0,
|
||||
136,152,168,200,136,5,9,9,6,0,255,80,32,0,136,136,
|
||||
136,120,8,112,5,6,6,6,0,255,136,136,136,136,248,32
|
||||
};
|
173
Marlin/dogm_font_data_ISO10646_Kana.h
Normal file
173
Marlin/dogm_font_data_ISO10646_Kana.h
Normal file
@ -0,0 +1,173 @@
|
||||
/*
|
||||
Fontname: ISO10646_Kana
|
||||
Copyright: A. Hardtung, public domain
|
||||
Capital A Height: 7, '1' Height: 7
|
||||
Calculated Max Values w= 5 h= 9 x= 2 y= 5 dx= 6 dy= 0 ascent= 8 len= 9
|
||||
Font Bounding box w= 6 h= 9 x= 0 y=-2
|
||||
Calculated Min Values x= 0 y=-1 dx= 0 dy= 0
|
||||
Pure Font ascent = 7 descent=-1
|
||||
X Font ascent = 7 descent=-1
|
||||
Max Font ascent = 8 descent=-1
|
||||
*/
|
||||
#include <utility/u8g.h>
|
||||
const u8g_fntpgm_uint8_t ISO10646_Kana_5x7[2549] U8G_SECTION(".progmem.ISO10646_Kana_5x7") = {
|
||||
0,6,9,0,254,7,1,145,3,32,32,255,255,8,255,7,
|
||||
255,0,0,0,6,0,0,1,7,7,6,2,0,128,128,128,
|
||||
128,128,0,128,3,2,2,6,1,5,160,160,5,7,7,6,
|
||||
0,0,80,80,248,80,248,80,80,5,7,7,6,0,0,32,
|
||||
120,160,112,40,240,32,5,7,7,6,0,0,192,200,16,32,
|
||||
64,152,24,5,7,7,6,0,0,96,144,160,64,168,144,104,
|
||||
2,3,3,6,1,4,192,64,128,3,7,7,6,1,0,32,
|
||||
64,128,128,128,64,32,3,7,7,6,1,0,128,64,32,32,
|
||||
32,64,128,5,5,5,6,0,1,32,168,112,168,32,5,5,
|
||||
5,6,0,1,32,32,248,32,32,2,3,3,6,2,255,192,
|
||||
64,128,5,1,1,6,0,3,248,2,2,2,6,2,0,192,
|
||||
192,5,5,5,6,0,1,8,16,32,64,128,5,7,7,6,
|
||||
0,0,112,136,152,168,200,136,112,3,7,7,6,1,0,64,
|
||||
192,64,64,64,64,224,5,7,7,6,0,0,112,136,8,112,
|
||||
128,128,248,5,7,7,6,0,0,248,16,32,16,8,8,240,
|
||||
5,7,7,6,0,0,16,48,80,144,248,16,16,5,7,7,
|
||||
6,0,0,248,128,240,8,8,136,112,5,7,7,6,0,0,
|
||||
48,64,128,240,136,136,112,5,7,7,6,0,0,248,8,16,
|
||||
32,32,32,32,5,7,7,6,0,0,112,136,136,112,136,136,
|
||||
112,5,7,7,6,0,0,112,136,136,120,8,16,96,2,5,
|
||||
5,6,2,0,192,192,0,192,192,2,6,6,6,2,255,192,
|
||||
192,0,192,64,128,4,7,7,6,0,0,16,32,64,128,64,
|
||||
32,16,5,3,3,6,0,2,248,0,248,4,7,7,6,1,
|
||||
0,128,64,32,16,32,64,128,5,7,7,6,0,0,112,136,
|
||||
8,16,32,0,32,5,6,6,6,0,0,112,136,8,104,168,
|
||||
112,5,7,7,6,0,0,112,136,136,248,136,136,136,5,7,
|
||||
7,6,0,0,240,136,136,240,136,136,240,5,7,7,6,0,
|
||||
0,112,136,128,128,128,136,112,5,7,7,6,0,0,224,144,
|
||||
136,136,136,144,224,5,7,7,6,0,0,248,128,128,240,128,
|
||||
128,248,5,7,7,6,0,0,248,128,128,240,128,128,128,5,
|
||||
7,7,6,0,0,112,136,128,184,136,136,112,5,7,7,6,
|
||||
0,0,136,136,136,248,136,136,136,1,7,7,6,2,0,128,
|
||||
128,128,128,128,128,128,5,7,7,6,0,0,56,16,16,16,
|
||||
16,144,96,5,7,7,6,0,0,136,144,160,192,160,144,136,
|
||||
5,7,7,6,0,0,128,128,128,128,128,128,248,5,7,7,
|
||||
6,0,0,136,216,168,136,136,136,136,5,7,7,6,0,0,
|
||||
136,136,200,168,152,136,136,5,7,7,6,0,0,112,136,136,
|
||||
136,136,136,112,5,7,7,6,0,0,240,136,136,240,128,128,
|
||||
128,5,7,7,6,0,0,112,136,136,136,168,144,104,5,7,
|
||||
7,6,0,0,240,136,136,240,160,144,136,5,7,7,6,0,
|
||||
0,120,128,128,112,8,8,240,5,7,7,6,0,0,248,32,
|
||||
32,32,32,32,32,5,7,7,6,0,0,136,136,136,136,136,
|
||||
136,112,5,7,7,6,0,0,136,136,136,136,136,80,32,5,
|
||||
7,7,6,0,0,136,136,136,136,136,168,80,5,7,7,6,
|
||||
0,0,136,136,80,32,80,136,136,5,7,7,6,0,0,136,
|
||||
136,136,80,32,32,32,5,7,7,6,0,0,248,8,16,32,
|
||||
64,128,248,3,7,7,6,1,0,224,128,128,128,128,128,224,
|
||||
5,5,5,6,0,1,128,64,32,16,8,3,7,7,6,1,
|
||||
0,224,32,32,32,32,32,224,5,3,3,6,0,4,32,80,
|
||||
136,5,1,1,6,0,0,248,2,2,2,6,2,5,128,64,
|
||||
5,5,5,6,0,0,112,8,120,136,120,5,7,7,6,0,
|
||||
0,128,128,176,200,136,136,240,5,5,5,6,0,0,112,128,
|
||||
128,136,112,5,7,7,6,0,0,8,8,104,152,136,136,120,
|
||||
5,5,5,6,0,0,112,136,248,128,112,5,7,7,6,0,
|
||||
0,48,72,224,64,64,64,64,5,6,6,6,0,255,112,136,
|
||||
136,120,8,112,5,7,7,6,0,0,128,128,176,200,136,136,
|
||||
136,1,7,7,6,2,0,128,0,128,128,128,128,128,3,8,
|
||||
8,6,1,255,32,0,32,32,32,32,160,64,4,7,7,6,
|
||||
0,0,128,128,144,160,192,160,144,3,7,7,6,1,0,192,
|
||||
64,64,64,64,64,224,5,5,5,6,0,0,208,168,168,168,
|
||||
168,5,5,5,6,0,0,176,200,136,136,136,5,5,5,6,
|
||||
0,0,112,136,136,136,112,5,6,6,6,0,255,240,136,136,
|
||||
240,128,128,5,6,6,6,0,255,120,136,136,120,8,8,5,
|
||||
5,5,6,0,0,176,200,128,128,128,5,5,5,6,0,0,
|
||||
112,128,112,8,240,5,7,7,6,0,0,64,64,224,64,64,
|
||||
72,48,5,5,5,6,0,0,136,136,136,152,104,5,5,5,
|
||||
6,0,0,136,136,136,80,32,5,5,5,6,0,0,136,136,
|
||||
168,168,80,5,5,5,6,0,0,136,80,32,80,136,5,6,
|
||||
6,6,0,255,136,136,136,120,8,112,5,5,5,6,0,0,
|
||||
248,16,32,64,248,3,7,7,6,1,0,32,64,64,128,64,
|
||||
64,32,1,7,7,6,2,0,128,128,128,128,128,128,128,3,
|
||||
7,7,6,1,0,128,64,64,32,64,64,128,5,2,2,6,
|
||||
0,3,104,144,0,0,0,6,0,0,0,0,0,6,0,0,
|
||||
0,0,0,6,0,0,0,0,0,6,0,0,0,0,0,6,
|
||||
0,0,0,0,0,6,0,0,0,0,0,6,0,0,0,0,
|
||||
0,6,0,0,0,0,0,6,0,0,0,0,0,6,0,0,
|
||||
0,0,0,6,0,0,0,0,0,6,0,0,0,0,0,6,
|
||||
0,0,0,0,0,6,0,0,0,0,0,6,0,0,0,0,
|
||||
0,6,0,0,0,0,0,6,0,0,0,0,0,6,0,0,
|
||||
0,0,0,6,0,0,0,0,0,6,0,0,0,0,0,6,
|
||||
0,0,0,0,0,6,0,0,0,0,0,6,0,0,0,0,
|
||||
0,6,0,0,0,0,0,6,0,0,0,0,0,6,0,0,
|
||||
0,0,0,6,0,0,0,0,0,6,0,0,0,0,0,6,
|
||||
0,0,0,0,0,6,0,0,0,0,0,6,0,0,0,0,
|
||||
0,6,0,0,0,0,0,6,0,0,5,3,3,6,0,2,
|
||||
248,0,248,5,6,6,6,0,0,248,8,40,48,32,64,5,
|
||||
7,7,6,0,0,248,8,40,48,32,32,64,4,5,5,6,
|
||||
0,0,16,32,96,160,32,5,7,7,6,0,0,8,16,32,
|
||||
96,160,32,32,5,5,5,6,0,0,32,248,136,8,48,5,
|
||||
7,7,6,0,0,32,248,136,136,8,16,32,5,4,4,6,
|
||||
0,0,248,32,32,248,5,6,6,6,0,0,248,32,32,32,
|
||||
32,248,5,5,5,6,0,0,16,248,48,80,144,5,7,7,
|
||||
6,0,0,16,248,16,48,80,144,16,5,5,5,6,0,0,
|
||||
64,248,72,80,64,5,7,7,6,0,0,40,0,64,248,72,
|
||||
80,64,5,7,7,6,0,0,32,248,32,248,32,32,32,5,
|
||||
8,8,6,0,0,40,0,32,248,32,248,32,32,4,6,6,
|
||||
6,0,0,64,112,144,16,16,32,5,8,8,6,0,0,40,
|
||||
0,64,112,144,16,16,32,5,6,6,6,0,0,64,120,144,
|
||||
16,16,32,5,8,8,6,0,0,40,0,64,120,144,16,16,
|
||||
32,5,5,5,6,0,0,248,8,8,8,248,5,7,7,6,
|
||||
0,0,40,0,248,8,8,8,248,5,7,7,6,0,255,80,
|
||||
248,80,80,16,32,64,5,9,9,6,0,255,40,0,80,248,
|
||||
80,80,16,32,64,5,6,6,6,0,0,192,8,200,8,16,
|
||||
224,5,8,8,6,0,0,40,0,192,8,200,8,16,224,5,
|
||||
6,6,6,0,0,248,8,16,32,80,136,5,8,8,6,0,
|
||||
0,40,0,248,8,16,32,80,136,5,6,6,6,0,0,64,
|
||||
248,72,80,64,120,5,8,8,6,0,0,40,0,64,248,72,
|
||||
80,64,120,4,4,4,6,0,1,16,208,16,224,5,7,7,
|
||||
6,0,0,40,0,8,200,8,16,224,5,7,7,6,0,255,
|
||||
32,120,136,40,16,40,64,5,9,9,6,0,255,40,0,32,
|
||||
120,136,40,16,40,64,5,6,6,6,0,0,240,32,248,32,
|
||||
64,128,5,8,8,6,0,0,40,0,240,32,248,32,64,128,
|
||||
4,5,5,6,0,1,192,16,208,16,224,5,6,6,6,0,
|
||||
0,192,8,200,8,16,224,5,8,8,6,0,0,40,0,192,
|
||||
8,200,8,16,224,5,6,6,6,0,0,112,0,248,32,32,
|
||||
64,5,8,8,6,0,0,40,0,112,0,248,32,32,64,3,
|
||||
7,7,6,1,0,128,128,128,192,160,128,128,4,8,8,6,
|
||||
1,0,80,0,128,128,192,160,128,128,5,7,7,6,0,0,
|
||||
32,32,248,32,32,64,128,5,6,6,6,0,0,112,0,0,
|
||||
0,0,248,5,6,6,6,0,0,248,8,80,32,80,128,5,
|
||||
7,7,6,0,255,32,248,8,16,32,112,168,3,7,7,6,
|
||||
1,0,32,32,32,32,32,64,128,5,5,5,6,0,0,16,
|
||||
136,136,136,136,5,7,7,6,0,0,40,0,16,136,136,136,
|
||||
136,5,8,8,6,0,0,24,24,0,16,136,136,136,136,5,
|
||||
7,7,6,0,0,128,128,248,128,128,128,120,5,8,8,6,
|
||||
0,0,40,128,128,248,128,128,128,120,5,8,8,6,0,0,
|
||||
24,152,128,248,128,128,128,120,5,6,6,6,0,0,248,8,
|
||||
8,8,16,96,5,8,8,6,0,0,40,0,248,8,8,8,
|
||||
16,96,5,8,8,6,0,0,24,24,248,8,8,8,16,96,
|
||||
5,5,5,6,0,1,64,160,16,8,8,5,7,7,6,0,
|
||||
1,40,0,64,160,16,8,8,5,7,7,6,0,1,24,24,
|
||||
64,160,16,8,8,5,6,6,6,0,0,32,248,32,32,168,
|
||||
168,5,8,8,6,0,0,40,0,32,248,32,32,168,168,5,
|
||||
8,8,6,0,0,24,24,32,248,32,32,168,168,5,6,6,
|
||||
6,0,0,248,8,8,80,32,16,4,6,6,6,1,0,224,
|
||||
0,224,0,224,16,5,6,6,6,0,0,32,64,128,144,248,
|
||||
8,5,6,6,6,0,0,8,8,80,32,80,128,5,6,6,
|
||||
6,0,0,120,32,248,32,32,56,5,7,7,6,0,0,64,
|
||||
64,248,72,80,64,64,5,7,7,6,0,0,64,248,72,80,
|
||||
64,64,64,5,5,5,6,0,0,112,16,16,16,248,5,7,
|
||||
7,6,0,0,112,16,16,16,16,16,248,4,5,5,6,1,
|
||||
0,240,16,240,16,240,5,7,7,6,0,0,248,8,8,248,
|
||||
8,8,248,5,6,6,6,0,0,112,0,248,8,16,32,3,
|
||||
6,6,6,1,0,160,160,160,160,32,64,5,6,6,6,0,
|
||||
0,80,80,80,80,88,144,4,6,6,6,1,0,128,128,128,
|
||||
144,160,192,5,6,6,6,0,0,248,136,136,136,248,136,5,
|
||||
5,5,6,0,0,248,136,8,16,96,5,6,6,6,0,0,
|
||||
248,136,8,8,16,96,5,6,6,6,0,0,16,248,80,80,
|
||||
248,16,5,6,6,6,0,0,248,8,80,96,64,248,5,6,
|
||||
6,6,0,0,248,8,248,8,16,32,5,6,6,6,0,0,
|
||||
128,64,8,8,16,224,5,8,8,6,0,0,40,0,32,248,
|
||||
136,8,24,32,5,6,6,6,0,0,64,248,72,72,136,144,
|
||||
4,5,5,6,1,0,128,240,160,32,32,5,8,8,6,0,
|
||||
0,40,0,248,136,8,8,16,96,5,8,8,6,0,0,40,
|
||||
0,16,248,80,80,248,16,5,7,7,6,0,0,40,0,248,
|
||||
16,32,32,248,5,8,8,6,0,0,40,0,248,8,248,8,
|
||||
16,32,2,2,2,6,2,2,192,192,5,1,1,6,0,3,
|
||||
248,5,5,5,6,0,1,128,64,32,16,8,5,6,6,6,
|
||||
0,1,40,128,64,32,16,8,5,7,7,6,0,0,248,8,
|
||||
8,8,8,8,8};
|
22
Marlin/dogm_font_data_Marlin_symbols.h
Normal file
22
Marlin/dogm_font_data_Marlin_symbols.h
Normal file
@ -0,0 +1,22 @@
|
||||
/*
|
||||
Fontname: Marlin_symbols
|
||||
Copyright: Created with Fony 1.4.7
|
||||
Capital A Height: 0, '1' Height: 0
|
||||
Calculated Max Values w= 5 h=10 x= 0 y= 3 dx= 6 dy= 0 ascent= 8 len=10
|
||||
Font Bounding box w= 6 h= 9 x= 0 y=-2
|
||||
Calculated Min Values x= 0 y=-2 dx= 0 dy= 0
|
||||
Pure Font ascent = 0 descent= 0
|
||||
X Font ascent = 0 descent= 0
|
||||
Max Font ascent = 8 descent=-2
|
||||
*/
|
||||
#include <utility/u8g.h>
|
||||
const u8g_fntpgm_uint8_t Marlin_symbols[140] U8G_SECTION(".progmem.Marlin_symbols") = {
|
||||
0,6,9,0,254,0,0,0,0,0,1,9,0,8,254,0,
|
||||
0,5,8,8,6,0,0,64,240,200,136,136,152,120,16,5,
|
||||
8,8,6,0,0,192,248,136,136,136,136,136,248,5,5,5,
|
||||
6,0,1,32,48,248,48,32,5,8,8,6,0,0,32,112,
|
||||
248,32,32,32,32,224,5,9,9,6,0,255,32,112,168,168,
|
||||
184,136,136,112,32,5,9,9,6,0,255,224,128,192,176,168,
|
||||
40,48,40,40,5,9,9,6,0,255,248,168,136,136,136,136,
|
||||
136,168,248,5,10,10,6,0,254,32,80,80,80,80,136,168,
|
||||
168,136,112,3,3,3,6,0,3,64,160,64};
|
@ -14,11 +14,9 @@
|
||||
#ifndef DOGM_LCD_IMPLEMENTATION_H
|
||||
#define DOGM_LCD_IMPLEMENTATION_H
|
||||
|
||||
#define MARLIN_VERSION "1.0.2"
|
||||
|
||||
/**
|
||||
* Implementation of the LCD display routines for a DOGM128 graphic display. These are common LCD 128x64 pixel graphic displays.
|
||||
**/
|
||||
* Implementation of the LCD display routines for a DOGM128 graphic display. These are common LCD 128x64 pixel graphic displays.
|
||||
*/
|
||||
|
||||
#ifdef ULTIPANEL
|
||||
#define BLEN_A 0
|
||||
@ -32,53 +30,99 @@
|
||||
|
||||
#include <U8glib.h>
|
||||
#include "DOGMbitmaps.h"
|
||||
#include "dogm_font_data_ISO10646_1_Marlin.h"
|
||||
|
||||
#include "ultralcd.h"
|
||||
#include "ultralcd_st7920_u8glib_rrd.h"
|
||||
#include "Configuration.h"
|
||||
|
||||
/* Russian language not supported yet, needs custom font
|
||||
|
||||
#ifdef LANGUAGE_RU
|
||||
#include "LiquidCrystalRus.h"
|
||||
#define LCD_CLASS LiquidCrystalRus
|
||||
#else
|
||||
#include <LiquidCrystal.h>
|
||||
#define LCD_CLASS LiquidCrystal
|
||||
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT
|
||||
// we don't have a big font for Cyrillic, Kana
|
||||
#if defined( MAPPER_C2C3 ) || defined( MAPPER_NON )
|
||||
// #define USE_BIG_EDIT_FONT
|
||||
#endif
|
||||
*/
|
||||
|
||||
#define USE_BIG_EDIT_FONT // save 3120 bytes of PROGMEM by commenting out this line
|
||||
#define FONT_MENU ISO10646_1_Marlin_5x7
|
||||
// If you have spare 2300Byte of progmem and want to use a
|
||||
// smaller font on the Info-screen uncomment the next line.
|
||||
//#define USE_SMALL_INFOFONT
|
||||
#ifdef USE_SMALL_INFOFONT
|
||||
#include "dogm_font_data_6x9_marlin.h"
|
||||
#define FONT_STATUSMENU_NAME u8g_font_6x9
|
||||
#else
|
||||
#define FONT_STATUSMENU_NAME FONT_MENU_NAME
|
||||
#endif
|
||||
|
||||
#include "dogm_font_data_Marlin_symbols.h" // The Marlin special symbols
|
||||
#define FONT_SPECIAL_NAME Marlin_symbols
|
||||
|
||||
#ifndef SIMULATE_ROMFONT
|
||||
#if defined( DISPLAY_CHARSET_ISO10646_1 )
|
||||
#include "dogm_font_data_ISO10646_1.h"
|
||||
#define FONT_MENU_NAME ISO10646_1_5x7
|
||||
#elif defined( DISPLAY_CHARSET_ISO10646_5 )
|
||||
#include "dogm_font_data_ISO10646_5_Cyrillic.h"
|
||||
#define FONT_MENU_NAME ISO10646_5_Cyrillic_5x7
|
||||
#elif defined( DISPLAY_CHARSET_ISO10646_KANA )
|
||||
#include "dogm_font_data_ISO10646_Kana.h"
|
||||
#define FONT_MENU_NAME ISO10646_Kana_5x7
|
||||
#else // fall-back
|
||||
#include "dogm_font_data_ISO10646_1.h"
|
||||
#define FONT_MENU_NAME ISO10646_1_5x7
|
||||
#endif
|
||||
#else // SIMULATE_ROMFONT
|
||||
#if defined( DISPLAY_CHARSET_HD44780_JAPAN )
|
||||
#include "dogm_font_data_HD44780_J.h"
|
||||
#define FONT_MENU_NAME HD44780_J_5x7
|
||||
#elif defined( DISPLAY_CHARSET_HD44780_WESTERN )
|
||||
#include "dogm_font_data_HD44780_W.h"
|
||||
#define FONT_MENU_NAME HD44780_W_5x7
|
||||
#elif defined( DISPLAY_CHARSET_HD44780_CYRILLIC )
|
||||
#include "dogm_font_data_HD44780_C.h"
|
||||
#define FONT_MENU_NAME HD44780_C_5x7
|
||||
#else // fall-back
|
||||
#include "dogm_font_data_ISO10646_1.h"
|
||||
#define FONT_MENU_NAME ISO10646_1_5x7
|
||||
#endif
|
||||
#endif // SIMULATE_ROMFONT
|
||||
|
||||
//#define FONT_STATUSMENU_NAME FONT_MENU_NAME
|
||||
|
||||
#define FONT_STATUSMENU 1
|
||||
#define FONT_SPECIAL 2
|
||||
#define FONT_MENU_EDIT 3
|
||||
#define FONT_MENU 4
|
||||
|
||||
// DOGM parameters (size in pixels)
|
||||
#define DOG_CHAR_WIDTH 6
|
||||
#define DOG_CHAR_HEIGHT 12
|
||||
#ifdef USE_BIG_EDIT_FONT
|
||||
#define FONT_MENU_EDIT u8g_font_9x18
|
||||
#define FONT_MENU_EDIT_NAME u8g_font_9x18
|
||||
#define DOG_CHAR_WIDTH_EDIT 9
|
||||
#define DOG_CHAR_HEIGHT_EDIT 18
|
||||
#define LCD_WIDTH_EDIT 14
|
||||
#else
|
||||
#define FONT_MENU_EDIT ISO10646_1_Marlin_5x7
|
||||
#define FONT_MENU_EDIT_NAME FONT_MENU_NAME
|
||||
#define DOG_CHAR_WIDTH_EDIT 6
|
||||
#define DOG_CHAR_HEIGHT_EDIT 12
|
||||
#define LCD_WIDTH_EDIT 22
|
||||
#endif
|
||||
|
||||
#define FONT_STATUSMENU FONT_MENU
|
||||
|
||||
#define START_ROW 0
|
||||
|
||||
/* Custom characters defined in font font_6x10_marlin.c */
|
||||
#define LCD_STR_DEGREE "\xB0"
|
||||
#define LCD_STR_REFRESH "\xF8"
|
||||
#define LCD_STR_FOLDER "\xF9"
|
||||
#define LCD_STR_ARROW_RIGHT "\xFA"
|
||||
#define LCD_STR_UPLEVEL "\xFB"
|
||||
#define LCD_STR_CLOCK "\xFC"
|
||||
#define LCD_STR_FEEDRATE "\xFD"
|
||||
#define LCD_STR_BEDTEMP "\xFE"
|
||||
#define LCD_STR_THERMOMETER "\xFF"
|
||||
/* Custom characters defined in font font_6x10_marlin_symbols */
|
||||
// \x00 intentionally skipped to avoid problems in strings
|
||||
#define LCD_STR_REFRESH "\x01"
|
||||
#define LCD_STR_FOLDER "\x02"
|
||||
#define LCD_STR_ARROW_RIGHT "\x03"
|
||||
#define LCD_STR_UPLEVEL "\x04"
|
||||
#define LCD_STR_CLOCK "\x05"
|
||||
#define LCD_STR_FEEDRATE "\x06"
|
||||
#define LCD_STR_BEDTEMP "\x07"
|
||||
#define LCD_STR_THERMOMETER "\x08"
|
||||
#define LCD_STR_DEGREE "\x09"
|
||||
|
||||
#define LCD_STR_SPECIAL_MAX '\x09'
|
||||
// Maximum here is 0x1f because 0x20 is ' ' (space) and the normal charsets begin.
|
||||
// Better stay below 0x10 because DISPLAY_CHARSET_HD44780_WESTERN begins here.
|
||||
|
||||
int lcd_contrast;
|
||||
|
||||
@ -97,6 +141,51 @@ U8GLIB_NHD_C12864 u8g(DOGLCD_CS, DOGLCD_A0);
|
||||
U8GLIB_DOGM128 u8g(DOGLCD_CS, DOGLCD_A0); // HW-SPI Com: CS, A0
|
||||
#endif
|
||||
|
||||
#include "utf_mapper.h"
|
||||
|
||||
char currentfont = 0;
|
||||
|
||||
static void lcd_setFont(char font_nr) {
|
||||
switch(font_nr) {
|
||||
case FONT_STATUSMENU : {u8g.setFont(FONT_STATUSMENU_NAME); currentfont = FONT_STATUSMENU;}; break;
|
||||
case FONT_MENU : {u8g.setFont(FONT_MENU_NAME); currentfont = FONT_MENU;}; break;
|
||||
case FONT_SPECIAL : {u8g.setFont(FONT_SPECIAL_NAME); currentfont = FONT_SPECIAL;}; break;
|
||||
case FONT_MENU_EDIT : {u8g.setFont(FONT_MENU_EDIT_NAME); currentfont = FONT_MENU_EDIT;}; break;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
char lcd_print(char c) {
|
||||
if ((c > 0) && (c <= LCD_STR_SPECIAL_MAX)) {
|
||||
u8g.setFont(FONT_SPECIAL_NAME);
|
||||
u8g.print(c);
|
||||
lcd_setFont(currentfont);
|
||||
return 1;
|
||||
} else {
|
||||
return charset_mapper(c);
|
||||
}
|
||||
}
|
||||
|
||||
char lcd_print(char* str) {
|
||||
char c;
|
||||
int i = 0;
|
||||
char n = 0;
|
||||
while ((c = str[i++])) {
|
||||
n += lcd_print(c);
|
||||
}
|
||||
return n;
|
||||
}
|
||||
|
||||
/* Arduino < 1.0.0 is missing a function to print PROGMEM strings, so we need to implement our own */
|
||||
char lcd_printPGM(const char* str) {
|
||||
char c;
|
||||
char n = 0;
|
||||
while ((c = pgm_read_byte(str++))) {
|
||||
n += lcd_print(c);
|
||||
}
|
||||
return n;
|
||||
}
|
||||
|
||||
static void lcd_implementation_init()
|
||||
{
|
||||
#ifdef LCD_PIN_BL // Enable LCD backlight
|
||||
@ -131,7 +220,7 @@ static void lcd_implementation_init()
|
||||
u8g.firstPage();
|
||||
do {
|
||||
u8g.drawBitmapP(offx, offy, START_BMPBYTEWIDTH, START_BMPHEIGHT, start_bmp);
|
||||
u8g.setFont(FONT_MENU);
|
||||
lcd_setFont(FONT_MENU);
|
||||
#ifndef STRING_SPLASH_LINE2
|
||||
u8g.drawStr(txt1X, u8g.getHeight() - DOG_CHAR_HEIGHT, STRING_SPLASH_LINE1);
|
||||
#else
|
||||
@ -144,21 +233,17 @@ static void lcd_implementation_init()
|
||||
|
||||
static void lcd_implementation_clear() { } // Automatically cleared by Picture Loop
|
||||
|
||||
/* Arduino < 1.0.0 is missing a function to print PROGMEM strings, so we need to implement our own */
|
||||
static void lcd_printPGM(const char* str) {
|
||||
char c;
|
||||
while ((c = pgm_read_byte(str++))) u8g.print(c);
|
||||
}
|
||||
|
||||
static void _draw_heater_status(int x, int heater) {
|
||||
bool isBed = heater < 0;
|
||||
int y = 17 + (isBed ? 1 : 0);
|
||||
u8g.setFont(FONT_STATUSMENU);
|
||||
|
||||
lcd_setFont(FONT_STATUSMENU);
|
||||
u8g.setPrintPos(x,7);
|
||||
u8g.print(itostr3(int((heater >= 0 ? degTargetHotend(heater) : degTargetBed()) + 0.5)));
|
||||
lcd_print(itostr3(int((heater >= 0 ? degTargetHotend(heater) : degTargetBed()) + 0.5)));
|
||||
lcd_printPGM(PSTR(LCD_STR_DEGREE " "));
|
||||
u8g.setPrintPos(x,28);
|
||||
u8g.print(itostr3(int(heater >= 0 ? degHotend(heater) : degBed()) + 0.5));
|
||||
lcd_print(itostr3(int(heater >= 0 ? degHotend(heater) : degBed()) + 0.5));
|
||||
|
||||
lcd_printPGM(PSTR(LCD_STR_DEGREE " "));
|
||||
if (!isHeatingHotend(0)) {
|
||||
u8g.drawBox(x+7,y,2,2);
|
||||
@ -190,7 +275,7 @@ static void lcd_implementation_status_screen() {
|
||||
u8g.drawFrame(54,49,73,4);
|
||||
|
||||
// SD Card Progress bar and clock
|
||||
u8g.setFont(FONT_STATUSMENU);
|
||||
lcd_setFont(FONT_STATUSMENU);
|
||||
|
||||
if (IS_SD_PRINTING) {
|
||||
// Progress bar solid part
|
||||
@ -200,9 +285,9 @@ static void lcd_implementation_status_screen() {
|
||||
u8g.setPrintPos(80,48);
|
||||
if (starttime != 0) {
|
||||
uint16_t time = (millis() - starttime) / 60000;
|
||||
u8g.print(itostr2(time/60));
|
||||
u8g.print(':');
|
||||
u8g.print(itostr2(time%60));
|
||||
lcd_print(itostr2(time/60));
|
||||
lcd_print(':');
|
||||
lcd_print(itostr2(time%60));
|
||||
}
|
||||
else {
|
||||
lcd_printPGM(PSTR("--:--"));
|
||||
@ -216,69 +301,79 @@ static void lcd_implementation_status_screen() {
|
||||
if (EXTRUDERS < 4) _draw_heater_status(81, -1);
|
||||
|
||||
// Fan
|
||||
u8g.setFont(FONT_STATUSMENU);
|
||||
lcd_setFont(FONT_STATUSMENU);
|
||||
u8g.setPrintPos(104,27);
|
||||
#if defined(FAN_PIN) && FAN_PIN > -1
|
||||
int per = ((fanSpeed + 1) * 100) / 256;
|
||||
if (per) {
|
||||
u8g.print(itostr3(per));
|
||||
u8g.print('%');
|
||||
|
||||
lcd_print(itostr3(per));
|
||||
lcd_print('%');
|
||||
}
|
||||
else
|
||||
#endif
|
||||
{
|
||||
u8g.print("---");
|
||||
lcd_printPGM(PSTR("---"));
|
||||
}
|
||||
|
||||
// X, Y, Z-Coordinates
|
||||
#define XYZ_BASELINE 38
|
||||
u8g.setFont(FONT_STATUSMENU);
|
||||
u8g.drawBox(0,30,128,9);
|
||||
lcd_setFont(FONT_STATUSMENU);
|
||||
|
||||
#ifdef USE_SMALL_INFOFONT
|
||||
u8g.drawBox(0,30,128,10);
|
||||
#else
|
||||
u8g.drawBox(0,30,128,9);
|
||||
#endif
|
||||
u8g.setColorIndex(0); // white on black
|
||||
u8g.setPrintPos(2,XYZ_BASELINE);
|
||||
u8g.print('X');
|
||||
lcd_print('X');
|
||||
u8g.drawPixel(8,XYZ_BASELINE - 5);
|
||||
u8g.drawPixel(8,XYZ_BASELINE - 3);
|
||||
u8g.setPrintPos(10,XYZ_BASELINE);
|
||||
u8g.print(ftostr31ns(current_position[X_AXIS]));
|
||||
lcd_print(ftostr31ns(current_position[X_AXIS]));
|
||||
u8g.setPrintPos(43,XYZ_BASELINE);
|
||||
u8g.print('Y');
|
||||
lcd_print('Y');
|
||||
u8g.drawPixel(49,XYZ_BASELINE - 5);
|
||||
u8g.drawPixel(49,XYZ_BASELINE - 3);
|
||||
u8g.setPrintPos(51,XYZ_BASELINE);
|
||||
u8g.print(ftostr31ns(current_position[Y_AXIS]));
|
||||
lcd_print(ftostr31ns(current_position[Y_AXIS]));
|
||||
u8g.setPrintPos(83,XYZ_BASELINE);
|
||||
u8g.print('Z');
|
||||
lcd_print('Z');
|
||||
u8g.drawPixel(89,XYZ_BASELINE - 5);
|
||||
u8g.drawPixel(89,XYZ_BASELINE - 3);
|
||||
u8g.setPrintPos(91,XYZ_BASELINE);
|
||||
u8g.print(ftostr31(current_position[Z_AXIS]));
|
||||
lcd_print(ftostr31(current_position[Z_AXIS]));
|
||||
u8g.setColorIndex(1); // black on white
|
||||
|
||||
// Feedrate
|
||||
u8g.setFont(FONT_MENU);
|
||||
lcd_setFont(FONT_MENU);
|
||||
u8g.setPrintPos(3,49);
|
||||
u8g.print(LCD_STR_FEEDRATE[0]);
|
||||
u8g.setFont(FONT_STATUSMENU);
|
||||
lcd_print(LCD_STR_FEEDRATE[0]);
|
||||
lcd_setFont(FONT_STATUSMENU);
|
||||
u8g.setPrintPos(12,49);
|
||||
u8g.print(itostr3(feedmultiply));
|
||||
u8g.print('%');
|
||||
lcd_print(itostr3(feedmultiply));
|
||||
lcd_print('%');
|
||||
|
||||
// Status line
|
||||
u8g.setFont(FONT_STATUSMENU);
|
||||
lcd_setFont(FONT_STATUSMENU);
|
||||
#ifdef USE_SMALL_INFOFONT
|
||||
u8g.setPrintPos(0,62);
|
||||
#else
|
||||
u8g.setPrintPos(0,63);
|
||||
#endif
|
||||
#ifndef FILAMENT_LCD_DISPLAY
|
||||
u8g.print(lcd_status_message);
|
||||
lcd_print(lcd_status_message);
|
||||
#else
|
||||
if (millis() < message_millis + 5000) { //Display both Status message line and Filament display on the last line
|
||||
u8g.print(lcd_status_message);
|
||||
lcd_print(lcd_status_message);
|
||||
}
|
||||
else {
|
||||
lcd_printPGM(PSTR("dia:"));
|
||||
u8g.print(ftostr12ns(filament_width_meas));
|
||||
lcd_print(ftostr12ns(filament_width_meas));
|
||||
lcd_printPGM(PSTR(" factor:"));
|
||||
u8g.print(itostr3(extrudemultiply));
|
||||
u8g.print('%');
|
||||
lcd_print(itostr3(extrudemultiply));
|
||||
lcd_print('%');
|
||||
}
|
||||
#endif
|
||||
}
|
||||
@ -301,14 +396,13 @@ static void lcd_implementation_drawmenu_generic(bool isSelected, uint8_t row, co
|
||||
|
||||
lcd_implementation_mark_as_selected(row, isSelected);
|
||||
|
||||
while ((c = pgm_read_byte(pstr))) {
|
||||
u8g.print(c);
|
||||
while (c = pgm_read_byte(pstr)) {
|
||||
n -= lcd_print(c);
|
||||
pstr++;
|
||||
n--;
|
||||
}
|
||||
while (n--) u8g.print(' ');
|
||||
u8g.print(post_char);
|
||||
u8g.print(' ');
|
||||
while (n--) lcd_print(' ');
|
||||
lcd_print(post_char);
|
||||
lcd_print(' ');
|
||||
}
|
||||
|
||||
static void _drawmenu_setting_edit_generic(bool isSelected, uint8_t row, const char* pstr, const char* data, bool pgm) {
|
||||
@ -317,14 +411,13 @@ static void _drawmenu_setting_edit_generic(bool isSelected, uint8_t row, const c
|
||||
|
||||
lcd_implementation_mark_as_selected(row, isSelected);
|
||||
|
||||
while ((c = pgm_read_byte(pstr))) {
|
||||
u8g.print(c);
|
||||
while (c = pgm_read_byte(pstr)) {
|
||||
n -= lcd_print(c);
|
||||
pstr++;
|
||||
n--;
|
||||
}
|
||||
u8g.print(':');
|
||||
while (n--) u8g.print(' ');
|
||||
if (pgm) { lcd_printPGM(data); } else { u8g.print(data); }
|
||||
lcd_print(':');
|
||||
while (n--) lcd_print(' ');
|
||||
if (pgm) { lcd_printPGM(data); } else { lcd_print((char *)data); }
|
||||
}
|
||||
|
||||
#define lcd_implementation_drawmenu_setting_edit_generic(sel, row, pstr, data) _drawmenu_setting_edit_generic(sel, row, pstr, data, false)
|
||||
@ -358,13 +451,13 @@ void lcd_implementation_drawedit(const char* pstr, char* value) {
|
||||
|
||||
#ifdef USE_BIG_EDIT_FONT
|
||||
if (lcd_strlen_P(pstr) <= LCD_WIDTH_EDIT - 1) {
|
||||
u8g.setFont(FONT_MENU_EDIT);
|
||||
lcd_setFont(FONT_MENU_EDIT);
|
||||
lcd_width = LCD_WIDTH_EDIT + 1;
|
||||
char_width = DOG_CHAR_WIDTH_EDIT;
|
||||
if (lcd_strlen_P(pstr) >= LCD_WIDTH_EDIT - vallen) rows = 2;
|
||||
}
|
||||
else {
|
||||
u8g.setFont(FONT_MENU);
|
||||
lcd_setFont(FONT_MENU);
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -375,9 +468,9 @@ void lcd_implementation_drawedit(const char* pstr, char* value) {
|
||||
|
||||
u8g.setPrintPos(0, rowHeight + kHalfChar);
|
||||
lcd_printPGM(pstr);
|
||||
u8g.print(':');
|
||||
lcd_print(':');
|
||||
u8g.setPrintPos((lcd_width - 1 - vallen) * char_width, rows * rowHeight + kHalfChar);
|
||||
u8g.print(value);
|
||||
lcd_print(value);
|
||||
}
|
||||
|
||||
static void _drawmenu_sd(bool isSelected, uint8_t row, const char* pstr, const char* filename, char * const longFilename, bool isDir) {
|
||||
@ -391,13 +484,12 @@ static void _drawmenu_sd(bool isSelected, uint8_t row, const char* pstr, const c
|
||||
|
||||
lcd_implementation_mark_as_selected(row, isSelected);
|
||||
|
||||
if (isDir) u8g.print(LCD_STR_FOLDER[0]);
|
||||
while ((c = *filename)) {
|
||||
u8g.print(c);
|
||||
if (isDir) lcd_print(LCD_STR_FOLDER[0]);
|
||||
while (c = *filename) {
|
||||
n -= lcd_print(c);
|
||||
filename++;
|
||||
n--;
|
||||
}
|
||||
while (n--) u8g.print(' ');
|
||||
while (n--) lcd_print(' ');
|
||||
}
|
||||
|
||||
#define lcd_implementation_drawmenu_sdfile(sel, row, pstr, filename, longFilename) _drawmenu_sd(sel, row, pstr, filename, longFilename, false)
|
||||
@ -408,16 +500,4 @@ static void _drawmenu_sd(bool isSelected, uint8_t row, const char* pstr, const c
|
||||
#define lcd_implementation_drawmenu_gcode(sel, row, pstr, gcode) lcd_implementation_drawmenu_generic(sel, row, pstr, '>', ' ')
|
||||
#define lcd_implementation_drawmenu_function(sel, row, pstr, data) lcd_implementation_drawmenu_generic(sel, row, pstr, '>', ' ')
|
||||
|
||||
static void lcd_implementation_quick_feedback() {
|
||||
#if BEEPER > -1
|
||||
SET_OUTPUT(BEEPER);
|
||||
for(int8_t i=0; i<10; i++) {
|
||||
WRITE(BEEPER,HIGH);
|
||||
delay(3);
|
||||
WRITE(BEEPER,LOW);
|
||||
delay(3);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
#endif //__DOGM_LCD_IMPLEMENTATION_H
|
||||
|
@ -511,9 +511,11 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
|
||||
// Custom M code points
|
||||
#define CUSTOM_M_CODES
|
||||
#ifdef CUSTOM_M_CODES
|
||||
#define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
|
||||
#define Z_PROBE_OFFSET_RANGE_MIN -15
|
||||
#define Z_PROBE_OFFSET_RANGE_MAX -5
|
||||
#ifdef ENABLE_AUTO_BED_LEVELING
|
||||
#define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
|
||||
#define Z_PROBE_OFFSET_RANGE_MIN -15
|
||||
#define Z_PROBE_OFFSET_RANGE_MAX -5
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
|
@ -511,9 +511,11 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
|
||||
// Custom M code points
|
||||
#define CUSTOM_M_CODES
|
||||
#ifdef CUSTOM_M_CODES
|
||||
#define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
|
||||
#define Z_PROBE_OFFSET_RANGE_MIN -15
|
||||
#define Z_PROBE_OFFSET_RANGE_MAX -5
|
||||
#ifdef ENABLE_AUTO_BED_LEVELING
|
||||
#define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
|
||||
#define Z_PROBE_OFFSET_RANGE_MIN -15
|
||||
#define Z_PROBE_OFFSET_RANGE_MAX -5
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
|
@ -539,9 +539,11 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
|
||||
// Custom M code points
|
||||
#define CUSTOM_M_CODES
|
||||
#ifdef CUSTOM_M_CODES
|
||||
#define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
|
||||
#define Z_PROBE_OFFSET_RANGE_MIN -15
|
||||
#define Z_PROBE_OFFSET_RANGE_MAX -5
|
||||
#ifdef ENABLE_AUTO_BED_LEVELING
|
||||
#define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
|
||||
#define Z_PROBE_OFFSET_RANGE_MIN -15
|
||||
#define Z_PROBE_OFFSET_RANGE_MAX -5
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
|
@ -543,9 +543,11 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
|
||||
// Custom M code points
|
||||
#define CUSTOM_M_CODES
|
||||
#ifdef CUSTOM_M_CODES
|
||||
#define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
|
||||
#define Z_PROBE_OFFSET_RANGE_MIN -15
|
||||
#define Z_PROBE_OFFSET_RANGE_MAX -5
|
||||
#ifdef ENABLE_AUTO_BED_LEVELING
|
||||
#define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
|
||||
#define Z_PROBE_OFFSET_RANGE_MIN -15
|
||||
#define Z_PROBE_OFFSET_RANGE_MAX -5
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
|
@ -569,9 +569,11 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
|
||||
// Custom M code points
|
||||
//#define CUSTOM_M_CODES
|
||||
#ifdef CUSTOM_M_CODES
|
||||
#define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
|
||||
#define Z_PROBE_OFFSET_RANGE_MIN -15
|
||||
#define Z_PROBE_OFFSET_RANGE_MAX -5
|
||||
#ifdef ENABLE_AUTO_BED_LEVELING
|
||||
#define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
|
||||
#define Z_PROBE_OFFSET_RANGE_MIN -15
|
||||
#define Z_PROBE_OFFSET_RANGE_MAX -5
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
|
@ -536,9 +536,11 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
|
||||
// Custom M code points
|
||||
#define CUSTOM_M_CODES
|
||||
#ifdef CUSTOM_M_CODES
|
||||
#define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
|
||||
#define Z_PROBE_OFFSET_RANGE_MIN -15
|
||||
#define Z_PROBE_OFFSET_RANGE_MAX -5
|
||||
#ifdef ENABLE_AUTO_BED_LEVELING
|
||||
#define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
|
||||
#define Z_PROBE_OFFSET_RANGE_MIN -15
|
||||
#define Z_PROBE_OFFSET_RANGE_MAX -5
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
|
@ -552,9 +552,11 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
|
||||
// Custom M code points
|
||||
#define CUSTOM_M_CODES
|
||||
#ifdef CUSTOM_M_CODES
|
||||
#define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
|
||||
#define Z_PROBE_OFFSET_RANGE_MIN -15
|
||||
#define Z_PROBE_OFFSET_RANGE_MAX -5
|
||||
#ifdef ENABLE_AUTO_BED_LEVELING
|
||||
#define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
|
||||
#define Z_PROBE_OFFSET_RANGE_MIN -15
|
||||
#define Z_PROBE_OFFSET_RANGE_MAX -5
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
@ -581,13 +583,16 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
|
||||
//==============================LCD and SD support=============================
|
||||
|
||||
// Define your display language below. Replace (en) with your language code and uncomment.
|
||||
// en, pl, fr, de, es, ru, it, pt, pt-br, fi, an, nl, ca, eu
|
||||
// en, pl, fr, de, es, ru, it, pt, pt-br, fi, an, nl, ca, eu, kana, kana_utf8, test
|
||||
// See also language.h
|
||||
//#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en)
|
||||
#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en)
|
||||
|
||||
// Character based displays can have different extended charsets.
|
||||
#define DISPLAY_CHARSET_HD44780_JAPAN // "ääööüüß23°"
|
||||
//#define DISPLAY_CHARSET_HD44780_WESTERN // "ÄäÖöÜüß²³°" if you see a '~' instead of a 'arrow_right' at the right of submenuitems - this is the right one.
|
||||
// Chose ONE of the next three charsets. This has to match your hardware. In case of a full graphic display this information is not important.
|
||||
// To find out what type you have - compile with (test) - upload - click to get the menu. You'll see two typical lines from the upper half of the charset.
|
||||
// See also documentation/LCDLanguageFont.md
|
||||
#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware
|
||||
//#define DISPLAY_CHARSET_HD44780_WESTERN
|
||||
//#define DISPLAY_CHARSET_HD44780_CYRILLIC
|
||||
|
||||
//#define ULTRA_LCD //general LCD support, also 16x2
|
||||
//#define DOGLCD // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family)
|
||||
|
@ -554,9 +554,11 @@ const bool Z_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic o
|
||||
// Custom M code points
|
||||
#define CUSTOM_M_CODES
|
||||
#ifdef CUSTOM_M_CODES
|
||||
#define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
|
||||
#define Z_PROBE_OFFSET_RANGE_MIN -15
|
||||
#define Z_PROBE_OFFSET_RANGE_MAX -5
|
||||
#ifdef ENABLE_AUTO_BED_LEVELING
|
||||
#define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
|
||||
#define Z_PROBE_OFFSET_RANGE_MIN -15
|
||||
#define Z_PROBE_OFFSET_RANGE_MAX -5
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
@ -583,13 +585,16 @@ const bool Z_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic o
|
||||
//==============================LCD and SD support=============================
|
||||
|
||||
// Define your display language below. Replace (en) with your language code and uncomment.
|
||||
// en, pl, fr, de, es, ru, it, pt, pt-br, fi, an, nl, ca, eu
|
||||
// en, pl, fr, de, es, ru, it, pt, pt-br, fi, an, nl, ca, eu, kana, kana_utf8, test
|
||||
// See also language.h
|
||||
//#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en)
|
||||
#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en)
|
||||
|
||||
// Character based displays can have different extended charsets.
|
||||
#define DISPLAY_CHARSET_HD44780_JAPAN // "ääööüüß23°"
|
||||
//#define DISPLAY_CHARSET_HD44780_WESTERN // "ÄäÖöÜüß²³°" if you see a '~' instead of a 'arrow_right' at the right of submenuitems - this is the right one.
|
||||
// Chose ONE of the next three charsets. This has to match your hardware. In case of a full graphic display this information is not important.
|
||||
// To find out what type you have - compile with (test) - upload - click to get the menu. You'll see two typical lines from the upper half of the charset.
|
||||
// See also documentation/LCDLanguageFont.md
|
||||
#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware
|
||||
//#define DISPLAY_CHARSET_HD44780_WESTERN
|
||||
//#define DISPLAY_CHARSET_HD44780_CYRILLIC
|
||||
|
||||
//#define ULTRA_LCD //general LCD support, also 16x2
|
||||
//#define DOGLCD // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family)
|
||||
|
@ -534,9 +534,11 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
|
||||
// Custom M code points
|
||||
#define CUSTOM_M_CODES
|
||||
#ifdef CUSTOM_M_CODES
|
||||
#define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
|
||||
#define Z_PROBE_OFFSET_RANGE_MIN -15
|
||||
#define Z_PROBE_OFFSET_RANGE_MAX -5
|
||||
#ifdef ENABLE_AUTO_BED_LEVELING
|
||||
#define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
|
||||
#define Z_PROBE_OFFSET_RANGE_MIN -15
|
||||
#define Z_PROBE_OFFSET_RANGE_MAX -5
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
|
@ -541,9 +541,11 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
|
||||
// Custom M code points
|
||||
#define CUSTOM_M_CODES
|
||||
#ifdef CUSTOM_M_CODES
|
||||
#define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
|
||||
#define Z_PROBE_OFFSET_RANGE_MIN -15
|
||||
#define Z_PROBE_OFFSET_RANGE_MAX -5
|
||||
#ifdef ENABLE_AUTO_BED_LEVELING
|
||||
#define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
|
||||
#define Z_PROBE_OFFSET_RANGE_MIN -15
|
||||
#define Z_PROBE_OFFSET_RANGE_MAX -5
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
|
BIN
Marlin/fonts/HD44780_C.fon
Normal file
BIN
Marlin/fonts/HD44780_C.fon
Normal file
Binary file not shown.
BIN
Marlin/fonts/HD44780_J.fon
Normal file
BIN
Marlin/fonts/HD44780_J.fon
Normal file
Binary file not shown.
BIN
Marlin/fonts/HD44780_W.fon
Normal file
BIN
Marlin/fonts/HD44780_W.fon
Normal file
Binary file not shown.
Binary file not shown.
BIN
Marlin/fonts/ISO10646-5_Cyrillic.fon
Normal file
BIN
Marlin/fonts/ISO10646-5_Cyrillic.fon
Normal file
Binary file not shown.
BIN
Marlin/fonts/ISO10646_Kana.fon
Normal file
BIN
Marlin/fonts/ISO10646_Kana.fon
Normal file
Binary file not shown.
6
Marlin/fonts/README.fonts
Normal file
6
Marlin/fonts/README.fonts
Normal file
@ -0,0 +1,6 @@
|
||||
The fonts are created with Fony.exe (http://hukka.ncn.fi/?fony) because Fontforge didn't do what I want (probably lack off experience).
|
||||
In Fony export the fonts to bdf-format. Maybe another one can edit them with Fontforge.
|
||||
Then run make_fonts.bat what calls bdf2u8g.exe with the needed parameters to produce the .h files.
|
||||
The .h files must be edited to replace '#include "u8g.h"' with '#include <utility/u8g.h>', replace 'U8G_FONT_SECTION' with 'U8G_SECTION', insert '.progmem.' right behind the first '"' and moved to the main directory.
|
||||
|
||||
Especially the Kana and Cyrillic fonts should be revised by someone who knows what he/she does. I am only a west-European with very little knowledge about this scripts.
|
BIN
Marlin/fonts/bdf2u8g.exe
Normal file
BIN
Marlin/fonts/bdf2u8g.exe
Normal file
Binary file not shown.
@ -3,6 +3,5 @@
|
||||
.\bdf2u8g.exe -b 32 -e 255 HD44780_C.bdf HD44780_C_5x7 dogm_font_data_HD44780_C.h
|
||||
.\bdf2u8g.exe -b 32 -e 255 HD44780_J.bdf HD44780_J_5x7 dogm_font_data_HD44780_J.h
|
||||
.\bdf2u8g.exe -b 32 -e 255 ISO10646-1.bdf ISO10646_1_5x7 dogm_font_data_ISO10646_1.h
|
||||
.\bdf2u8g.exe -b 32 -e 255 ISO10646-1-Marlin.bdf ISO10646_1_Marlin_5x7 dogm_font_data_ISO10646_1_Marlin.h
|
||||
.\bdf2u8g.exe -b 32 -e 255 ISO10646_5_Cyrillic.bdf ISO10646_5_Cyrillic_5x7 dogm_font_data_ISO10646_5_Cyrillic.h
|
||||
.\bdf2u8g.exe -b 32 -e 255 ISO10646_Kana.bdf ISO10646_Kana_5x7 dogm_font_data_ISO10646_Kana.h
|
||||
|
@ -11,22 +11,25 @@
|
||||
//
|
||||
// ==> ALWAYS TRY TO COMPILE MARLIN WITH/WITHOUT "ULTIPANEL" / "ULTRALCD" / "SDSUPPORT" #define IN "Configuration.h"
|
||||
// ==> ALSO TRY ALL AVAILABLE LANGUAGE OPTIONS
|
||||
// See also documentation/LCDLanguageFont.md
|
||||
|
||||
// Languages
|
||||
// en English
|
||||
// pl Polish
|
||||
// fr French
|
||||
// de German
|
||||
// es Spanish
|
||||
// ru Russian
|
||||
// it Italian
|
||||
// pt Portuguese
|
||||
// pt-br Portuguese (Brazil)
|
||||
// fi Finnish
|
||||
// an Aragonese
|
||||
// nl Dutch
|
||||
// ca Catalan
|
||||
// eu Basque-Euskera
|
||||
// en English
|
||||
// pl Polish
|
||||
// fr French
|
||||
// de German
|
||||
// es Spanish
|
||||
// ru Russian
|
||||
// it Italian
|
||||
// pt Portuguese
|
||||
// pt-br Portuguese (Brazil)
|
||||
// fi Finnish
|
||||
// an Aragonese
|
||||
// nl Dutch
|
||||
// ca Catalan
|
||||
// eu Basque-Euskera
|
||||
// kana Japanese
|
||||
// kana_utf Japanese
|
||||
|
||||
#ifndef LANGUAGE_INCLUDE
|
||||
// pick your language from the list above
|
||||
@ -201,65 +204,9 @@
|
||||
|
||||
// LCD Menu Messages
|
||||
|
||||
// Add your own character. Reference: https://github.com/MarlinFirmware/Marlin/pull/1434 photos
|
||||
// and https://www.sparkfun.com/datasheets/LCD/HD44780.pdf page 17-18
|
||||
#ifdef DOGLCD
|
||||
#define STR_Ae "\304" // 'Ä' U8glib
|
||||
#define STR_ae "\344" // 'ä'
|
||||
#define STR_Oe "\326" // 'Ö'
|
||||
#define STR_oe STR_Oe // 'ö'
|
||||
#define STR_Ue "\334" // 'Ü'
|
||||
#define STR_ue STR_Ue // 'ü'
|
||||
#define STR_sz "\337" // 'ß'
|
||||
#define STR_h2 "\262" // '²'
|
||||
#define STR_h3 "\263" // '³'
|
||||
#define STR_Deg "\260" // '°'
|
||||
#define STR_THERMOMETER "\377"
|
||||
#else
|
||||
#ifdef DISPLAY_CHARSET_HD44780_JAPAN // HD44780 ROM Code: A00 (Japan)
|
||||
#define STR_ae "\xe1"
|
||||
#define STR_Ae STR_ae
|
||||
#define STR_oe "\357"
|
||||
#define STR_Oe STR_oe
|
||||
#define STR_ue "\365"
|
||||
#define STR_Ue STR_ue
|
||||
#define STR_sz "\342"
|
||||
#define STR_h2 "2"
|
||||
#define STR_h3 "3"
|
||||
#define STR_Deg "\271"
|
||||
#define STR_THERMOMETER "\002"
|
||||
#elif defined(DISPLAY_CHARSET_HD44780_WESTERN) // HD44780 ROM Code: A02 (Western)
|
||||
#define STR_Ae "\216"
|
||||
#define STR_ae "\204"
|
||||
#define STR_Oe "\211"
|
||||
#define STR_oe "\204"
|
||||
#define STR_Ue "\212"
|
||||
#define STR_ue "\201"
|
||||
#define STR_sz "\160"
|
||||
#define STR_h2 "\262"
|
||||
#define STR_h3 "\263"
|
||||
#define STR_Deg "\337"
|
||||
#define STR_THERMOMETER "\002"
|
||||
#endif
|
||||
#if !(defined( DISPLAY_CHARSET_HD44780_JAPAN ) || defined( DISPLAY_CHARSET_HD44780_WESTERN ) || defined( DISPLAY_CHARSET_HD44780_CYRILLIC ))
|
||||
#define DISPLAY_CHARSET_HD44780_JAPAN
|
||||
#endif
|
||||
/*
|
||||
#define TESTSTRING000 "\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017"
|
||||
#define TESTSTRING020 "\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
|
||||
#define TESTSTRING040 "\040\041\042\043\044\045\046\047\050\051\052\053\054\055\056\057"
|
||||
#define TESTSTRING060 "\060\061\062\063\064\065\066\067\070\071\072\073\074\075\076\077"
|
||||
#define TESTSTRING100 "\100\101\102\103\104\105\106\107\110\111\112\113\114\115\116\117"
|
||||
#define TESTSTRING120 "\120\121\122\123\124\125\126\127\130\131\132\133\134\135\136\137"
|
||||
#define TESTSTRING140 "\140\141\142\143\144\145\146\147\150\151\152\153\154\155\156\157"
|
||||
#define TESTSTRING160 "\160\161\162\163\164\165\166\167\170\171\172\173\174\175\176\177"
|
||||
#define TESTSTRING200 "\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217"
|
||||
#define TESTSTRING220 "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237"
|
||||
#define TESTSTRING240 "\240\241\242\243\244\245\246\247\250\251\252\253\254\255\256\257"
|
||||
#define TESTSTRING260 "\260\261\262\263\264\265\266\267\270\271\272\273\274\275\276\277"
|
||||
#define TESTSTRING300 "\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317"
|
||||
#define TESTSTRING320 "\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337"
|
||||
#define TESTSTRING340 "\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357"
|
||||
#define TESTSTRING360 "\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377"
|
||||
*/
|
||||
|
||||
#include LANGUAGE_INCLUDE
|
||||
#include "language_en.h"
|
||||
|
@ -2,12 +2,17 @@
|
||||
* Aragonese
|
||||
*
|
||||
* LCD Menu Messages
|
||||
* Please note these are limited to 17 characters!
|
||||
* See also documentation/LCDLanguageFont.md
|
||||
*
|
||||
*/
|
||||
#ifndef LANGUAGE_AN_H
|
||||
#define LANGUAGE_AN_H
|
||||
|
||||
#define MAPPER_NON
|
||||
// Define SIMULATE_ROMFONT to see what is seen on the character based display defined in Configuration.h
|
||||
//#define SIMULATE_ROMFONT
|
||||
#define DISPLAY_CHARSET_ISO10646_1
|
||||
|
||||
#define WELCOME_MSG MACHINE_NAME " parada."
|
||||
#define MSG_SD_INSERTED "Tarcheta colocada"
|
||||
#define MSG_SD_REMOVED "Tarcheta retirada"
|
||||
@ -46,9 +51,9 @@
|
||||
#define MSG_FAN_SPEED "Ixoriador"
|
||||
#define MSG_FLOW "Fluxo"
|
||||
#define MSG_CONTROL "Control"
|
||||
#define MSG_MIN "\002 Min"
|
||||
#define MSG_MAX "\002 Max"
|
||||
#define MSG_FACTOR "\002 Fact"
|
||||
#define MSG_MIN LCD_STR_THERMOMETER " Min"
|
||||
#define MSG_MAX LCD_STR_THERMOMETER " Max"
|
||||
#define MSG_FACTOR LCD_STR_THERMOMETER " Fact"
|
||||
#define MSG_AUTOTEMP "Autotemp"
|
||||
#define MSG_ON "On"
|
||||
#define MSG_OFF "Off"
|
||||
|
@ -2,12 +2,18 @@
|
||||
* Catalan
|
||||
*
|
||||
* LCD Menu Messages
|
||||
* Please note these are limited to 17 characters!
|
||||
* See also documentation/LCDLanguageFont.md
|
||||
*
|
||||
*/
|
||||
#ifndef LANGUAGE_CA_H
|
||||
#define LANGUAGE_CA_H
|
||||
|
||||
//#define MAPPER_NON
|
||||
#define MAPPER_C2C3 // because of "ó"
|
||||
// Define SIMULATE_ROMFONT to see what is seen on the character based display defined in Configuration.h
|
||||
//#define SIMULATE_ROMFONT
|
||||
#define DISPLAY_CHARSET_ISO10646_1
|
||||
|
||||
#define WELCOME_MSG MACHINE_NAME " preparada."
|
||||
#define MSG_SD_INSERTED "SD detectada."
|
||||
#define MSG_SD_REMOVED "SD expulsada."
|
||||
@ -46,9 +52,9 @@
|
||||
#define MSG_FAN_SPEED "Vel. Ventilador"
|
||||
#define MSG_FLOW "Fluxe"
|
||||
#define MSG_CONTROL "Control"
|
||||
#define MSG_MIN " \002 Min"
|
||||
#define MSG_MAX " \002 Max"
|
||||
#define MSG_FACTOR " \002 Fact"
|
||||
#define MSG_MIN LCD_STR_THERMOMETER " Min"
|
||||
#define MSG_MAX LCD_STR_THERMOMETER " Max"
|
||||
#define MSG_FACTOR LCD_STR_THERMOMETER " Fact"
|
||||
#define MSG_AUTOTEMP "Autotemp"
|
||||
#define MSG_ON "On "
|
||||
#define MSG_OFF "Off"
|
||||
@ -76,7 +82,7 @@
|
||||
#define MSG_TEMPERATURE "Temperatura"
|
||||
#define MSG_MOTION "Moviment"
|
||||
#define MSG_VOLUMETRIC "Filament"
|
||||
#define MSG_VOLUMETRIC_ENABLED "E in mm3"
|
||||
#define MSG_VOLUMETRIC_ENABLED "E in mm3"
|
||||
#define MSG_FILAMENT_SIZE_EXTRUDER_0 "Fil. Dia. 1"
|
||||
#define MSG_FILAMENT_SIZE_EXTRUDER_1 "Fil. Dia. 2"
|
||||
#define MSG_FILAMENT_SIZE_EXTRUDER_2 "Fil. Dia. 3"
|
||||
|
@ -2,32 +2,37 @@
|
||||
* German
|
||||
*
|
||||
* LCD Menu Messages
|
||||
* Please note these are limited to 17 characters!
|
||||
* See also documentation/LCDLanguageFont.md
|
||||
*
|
||||
*/
|
||||
#ifndef LANGUAGE_DE_H
|
||||
#define LANGUAGE_DE_H
|
||||
|
||||
#define MAPPER_C2C3
|
||||
// Define SIMULATE_ROMFONT to see what is seen on the character based display defined in Configuration.h
|
||||
//#define SIMULATE_ROMFONT
|
||||
#define DISPLAY_CHARSET_ISO10646_1
|
||||
|
||||
#define WELCOME_MSG MACHINE_NAME " Bereit."
|
||||
#define MSG_SD_INSERTED "SDKarte erkannt."
|
||||
#define MSG_SD_REMOVED "SDKarte entfernt."
|
||||
#define MSG_MAIN "Hauptmen" STR_ue
|
||||
#define MSG_MAIN "Hauptmenü"
|
||||
#define MSG_AUTOSTART "Autostart"
|
||||
#define MSG_DISABLE_STEPPERS "Motoren Aus" // M84
|
||||
#define MSG_AUTO_HOME "Home" // G28
|
||||
#define MSG_SET_HOME_OFFSETS "Setze Home hier"
|
||||
#define MSG_SET_ORIGIN "Setze Null hier" //"G92 X0 Y0 Z0" commented out in ultralcd.cpp
|
||||
#define MSG_PREHEAT_PLA "Vorw" STR_ae "rmen PLA"
|
||||
#define MSG_PREHEAT_PLA_N "Vorw" STR_ae "rmen PLA "
|
||||
#define MSG_PREHEAT_PLA "Vorwärmen PLA"
|
||||
#define MSG_PREHEAT_PLA_N "Vorwärmen PLA "
|
||||
#define MSG_PREHEAT_PLA_ALL "Vorw. PLA Alle"
|
||||
#define MSG_PREHEAT_PLA_BEDONLY "Vorw. PLA Bett"
|
||||
#define MSG_PREHEAT_PLA_SETTINGS "Vorw" STR_ae "rm. PLA Ein."
|
||||
#define MSG_PREHEAT_ABS "Vorw" STR_ae "rmen ABS"
|
||||
#define MSG_PREHEAT_ABS_N "Vorw" STR_ae "rmen ABS "
|
||||
#define MSG_PREHEAT_PLA_SETTINGS "Vorwärm. PLA Ein."
|
||||
#define MSG_PREHEAT_ABS "Vorwärmen ABS"
|
||||
#define MSG_PREHEAT_ABS_N "Vorwärmen ABS "
|
||||
#define MSG_PREHEAT_ABS_ALL "Vorw. ABS Alle"
|
||||
#define MSG_PREHEAT_ABS_BEDONLY "Vorw. ABS Bett"
|
||||
#define MSG_PREHEAT_ABS_SETTINGS "Vorw" STR_ae "rm. ABS Ein."
|
||||
#define MSG_COOLDOWN "Abk" STR_ue "hlen"
|
||||
#define MSG_PREHEAT_ABS_SETTINGS "Vorwärm. ABS Ein."
|
||||
#define MSG_COOLDOWN "Abkühlen"
|
||||
#define MSG_SWITCH_PS_ON "Netzteil Ein"
|
||||
#define MSG_SWITCH_PS_OFF "Netzteil Aus"
|
||||
#define MSG_RETRACT "Retract"
|
||||
@ -40,14 +45,14 @@
|
||||
#define MSG_MOVE_1MM " 1.0 mm"
|
||||
#define MSG_MOVE_10MM "10.0 mm"
|
||||
#define MSG_SPEED "Geschw."
|
||||
#define MSG_NOZZLE "D" STR_ue "se"
|
||||
#define MSG_NOZZLE "Düse"
|
||||
#define MSG_BED "Bett"
|
||||
#define MSG_FAN_SPEED "L" STR_ue "ftergeschw."
|
||||
#define MSG_FAN_SPEED "Lüftergeschw."
|
||||
#define MSG_FLOW "Fluss"
|
||||
#define MSG_CONTROL "Einstellungen"
|
||||
#define MSG_MIN STR_THERMOMETER " Min"
|
||||
#define MSG_MAX STR_THERMOMETER " Max"
|
||||
#define MSG_FACTOR STR_THERMOMETER " Faktor"
|
||||
#define MSG_MIN LCD_STR_THERMOMETER " Min"
|
||||
#define MSG_MAX LCD_STR_THERMOMETER " Max"
|
||||
#define MSG_FACTOR LCD_STR_THERMOMETER " Faktor"
|
||||
#define MSG_AUTOTEMP "AutoTemp"
|
||||
#define MSG_ON "Ein"
|
||||
#define MSG_OFF "Aus"
|
||||
@ -75,7 +80,7 @@
|
||||
#define MSG_TEMPERATURE "Temperatur"
|
||||
#define MSG_MOTION "Bewegung"
|
||||
#define MSG_VOLUMETRIC "Filament"
|
||||
#define MSG_VOLUMETRIC_ENABLED "E in mm" STR_h3
|
||||
#define MSG_VOLUMETRIC_ENABLED "E in mm³"
|
||||
#define MSG_FILAMENT_SIZE_EXTRUDER_0 "Filament D 1"
|
||||
#define MSG_FILAMENT_SIZE_EXTRUDER_1 "Filament D 2"
|
||||
#define MSG_FILAMENT_SIZE_EXTRUDER_2 "Filament D 3"
|
||||
|
@ -2,12 +2,22 @@
|
||||
* English
|
||||
*
|
||||
* LCD Menu Messages
|
||||
* Please note these are limited to 17 characters!
|
||||
* Se also documentation/LCDLanguageFont.md
|
||||
*
|
||||
*/
|
||||
#ifndef LANGUAGE_EN_H
|
||||
#define LANGUAGE_EN_H
|
||||
|
||||
#if !( defined(MAPPER_NON)|| defined(MAPPER_C2C3)|| defined(MAPPER_D0D1)|| defined(MAPPER_D0D1_MOD)|| defined(MAPPER_E382E383) )
|
||||
#define MAPPER_NON // For direct asci codes
|
||||
#endif
|
||||
|
||||
//#define SIMULATE_ROMFONT //Comment in to see what is seen on the character based displays
|
||||
#if !( defined(SIMULATE_ROMFONT)|| defined(DISPLAY_CHARSET_ISO10646_1)|| defined(DISPLAY_CHARSET_ISO10646_5)|| defined(DISPLAY_CHARSET_ISO10646_KANA) )
|
||||
#define DISPLAY_CHARSET_ISO10646_1 // use the better font on full graphic displays.
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef WELCOME_MSG
|
||||
#define WELCOME_MSG MACHINE_NAME " ready."
|
||||
#endif
|
||||
@ -159,13 +169,13 @@
|
||||
#define MSG_CONTROL "Control"
|
||||
#endif
|
||||
#ifndef MSG_MIN
|
||||
#define MSG_MIN " " STR_THERMOMETER " Min"
|
||||
#define MSG_MIN " "LCD_STR_THERMOMETER " Min"
|
||||
#endif
|
||||
#ifndef MSG_MAX
|
||||
#define MSG_MAX " " STR_THERMOMETER " Max"
|
||||
#define MSG_MAX " "LCD_STR_THERMOMETER " Max"
|
||||
#endif
|
||||
#ifndef MSG_FACTOR
|
||||
#define MSG_FACTOR " " STR_THERMOMETER " Fact"
|
||||
#define MSG_FACTOR " "LCD_STR_THERMOMETER " Fact"
|
||||
#endif
|
||||
#ifndef MSG_AUTOTEMP
|
||||
#define MSG_AUTOTEMP "Autotemp"
|
||||
@ -261,7 +271,7 @@
|
||||
#define MSG_VOLUMETRIC "Filament"
|
||||
#endif
|
||||
#ifndef MSG_VOLUMETRIC_ENABLED
|
||||
#define MSG_VOLUMETRIC_ENABLED "E in mm" STR_h3
|
||||
#define MSG_VOLUMETRIC_ENABLED "E in mm3"
|
||||
#endif
|
||||
#ifndef MSG_FILAMENT_SIZE_EXTRUDER_0
|
||||
#define MSG_FILAMENT_SIZE_EXTRUDER_0 "Fil. Dia. 1"
|
||||
|
@ -2,12 +2,17 @@
|
||||
* Spanish
|
||||
*
|
||||
* LCD Menu Messages
|
||||
* Please note these are limited to 17 characters!
|
||||
* See also documentation/LCDLanguageFont.md
|
||||
*
|
||||
*/
|
||||
#ifndef LANGUAGE_ES_H
|
||||
#define LANGUAGE_ES_H
|
||||
|
||||
#define MAPPER_NON
|
||||
// Define SIMULATE_ROMFONT to see what is seen on the character based display defined in Configuration.h
|
||||
//#define SIMULATE_ROMFONT
|
||||
#define DISPLAY_CHARSET_ISO10646_1
|
||||
|
||||
#define WELCOME_MSG MACHINE_NAME " lista."
|
||||
#define MSG_SD_INSERTED "Tarjeta colocada"
|
||||
#define MSG_SD_REMOVED "Tarjeta retirada"
|
||||
@ -46,9 +51,9 @@
|
||||
#define MSG_FAN_SPEED "Ventilador"
|
||||
#define MSG_FLOW "Flujo"
|
||||
#define MSG_CONTROL "Control"
|
||||
#define MSG_MIN "\002 Min"
|
||||
#define MSG_MAX "\002 Max"
|
||||
#define MSG_FACTOR "\002 Fact"
|
||||
#define MSG_MIN LCD_STR_THERMOMETER " Min"
|
||||
#define MSG_MAX LCD_STR_THERMOMETER " Max"
|
||||
#define MSG_FACTOR LCD_STR_THERMOMETER " Fact"
|
||||
#define MSG_AUTOTEMP "Autotemp"
|
||||
#define MSG_ON "On"
|
||||
#define MSG_OFF "Off"
|
||||
|
@ -2,12 +2,17 @@
|
||||
* Basque-Euskera
|
||||
*
|
||||
* LCD Menu Messages
|
||||
* Please note these are limited to 17 characters!
|
||||
* See also documentation/LCDLanguageFont.md
|
||||
*
|
||||
*/
|
||||
#ifndef LANGUAGE_EU_H
|
||||
#define LANGUAGE_EU_H
|
||||
|
||||
#define MAPPER_NON
|
||||
// Define SIMULATE_ROMFONT to see what is seen on the character based display defined in Configuration.h
|
||||
//#define SIMULATE_ROMFONT
|
||||
#define DISPLAY_CHARSET_ISO10646_1
|
||||
|
||||
#define WELCOME_MSG MACHINE_NAME " prest."
|
||||
#define MSG_SD_INSERTED "Txartela sartuta"
|
||||
#define MSG_SD_REMOVED "Txartela kenduta"
|
||||
@ -46,9 +51,9 @@
|
||||
#define MSG_FAN_SPEED "Haizagailua"
|
||||
#define MSG_FLOW "Fluxua"
|
||||
#define MSG_CONTROL "Kontrola"
|
||||
#define MSG_MIN " \002 Min"
|
||||
#define MSG_MAX " \002 Max"
|
||||
#define MSG_FACTOR " \002 Faktorea"
|
||||
#define MSG_MIN LCD_STR_THERMOMETER " Min"
|
||||
#define MSG_MAX LCD_STR_THERMOMETER " Max"
|
||||
#define MSG_FACTOR LCD_STR_THERMOMETER " Faktorea"
|
||||
#define MSG_AUTOTEMP "Auto tenperatura"
|
||||
#define MSG_ON "On "
|
||||
#define MSG_OFF "Off"
|
||||
|
@ -2,12 +2,17 @@
|
||||
* Finnish
|
||||
*
|
||||
* LCD Menu Messages
|
||||
* Please note these are limited to 17 characters!
|
||||
* See also documentation/LCDLanguageFont.md
|
||||
*
|
||||
*/
|
||||
#ifndef LANGUAGE_FI_H
|
||||
#define LANGUAGE_FI_H
|
||||
|
||||
#define MAPPER_C2C3
|
||||
// Define SIMULATE_ROMFONT to see what is seen on the character based display defined in Configuration.h
|
||||
//#define SIMULATE_ROMFONT
|
||||
#define DISPLAY_CHARSET_ISO10646_1
|
||||
|
||||
#define WELCOME_MSG MACHINE_NAME " valmis."
|
||||
#define MSG_SD_INSERTED "Kortti asetettu"
|
||||
#define MSG_SD_REMOVED "Kortti poistettu"
|
||||
@ -17,21 +22,21 @@
|
||||
#define MSG_AUTO_HOME "Aja referenssiin"
|
||||
#define MSG_SET_HOME_OFFSETS "Set home offsets"
|
||||
#define MSG_SET_ORIGIN "Aseta origo"
|
||||
#define MSG_PREHEAT_PLA "Esil" STR_ae "mmit" STR_ae " PLA"
|
||||
#define MSG_PREHEAT_PLA_N "Esil" STR_ae "mmit" STR_ae " PLA "
|
||||
#define MSG_PREHEAT_PLA_ALL "Esil" STR_ae ". PLA Kaikki"
|
||||
#define MSG_PREHEAT_PLA_BEDONLY "Esil" STR_ae ". PLA Alusta"
|
||||
#define MSG_PREHEAT_PLA_SETTINGS "Esil" STR_ae "mm. PLA konf"
|
||||
#define MSG_PREHEAT_ABS "Esil" STR_ae "mmit" STR_ae " ABS"
|
||||
#define MSG_PREHEAT_ABS_N "Esil" STR_ae "mmit" STR_ae " ABS "
|
||||
#define MSG_PREHEAT_ABS_ALL "Esil" STR_ae ". ABS Kaikki"
|
||||
#define MSG_PREHEAT_ABS_BEDONLY "Esil" STR_ae ". ABS Alusta"
|
||||
#define MSG_PREHEAT_ABS_SETTINGS "Esil" STR_ae "mm. ABS konf"
|
||||
#define MSG_COOLDOWN "J" STR_ae "" STR_ae "hdyt" STR_ae ""
|
||||
#define MSG_SWITCH_PS_ON "Virta p" STR_ae "" STR_ae "lle"
|
||||
#define MSG_PREHEAT_PLA "Esilämmitä PLA"
|
||||
#define MSG_PREHEAT_PLA_N "Esilämmitä PLA "
|
||||
#define MSG_PREHEAT_PLA_ALL "Esilä. PLA Kaikki"
|
||||
#define MSG_PREHEAT_PLA_BEDONLY "Esilä. PLA Alusta"
|
||||
#define MSG_PREHEAT_PLA_SETTINGS "Esilämm. PLA konf"
|
||||
#define MSG_PREHEAT_ABS "Esilämmitä ABS"
|
||||
#define MSG_PREHEAT_ABS_N "Esilämmitä ABS "
|
||||
#define MSG_PREHEAT_ABS_ALL "Esilä. ABS Kaikki"
|
||||
#define MSG_PREHEAT_ABS_BEDONLY "Esilä. ABS Alusta"
|
||||
#define MSG_PREHEAT_ABS_SETTINGS "Esilämm. ABS konf"
|
||||
#define MSG_COOLDOWN "Jäähdytä"
|
||||
#define MSG_SWITCH_PS_ON "Virta päälle"
|
||||
#define MSG_SWITCH_PS_OFF "Virta pois"
|
||||
#define MSG_EXTRUDE "Pursota"
|
||||
#define MSG_RETRACT "Ved" STR_ae " takaisin"
|
||||
#define MSG_RETRACT "Vedä takaisin"
|
||||
#define MSG_MOVE_AXIS "Liikuta akseleita"
|
||||
#define MSG_MOVE_X "Liikuta X"
|
||||
#define MSG_MOVE_Y "Liikuta Y"
|
||||
@ -46,9 +51,9 @@
|
||||
#define MSG_FAN_SPEED "Tuul. nopeus"
|
||||
#define MSG_FLOW "Virtaus"
|
||||
#define MSG_CONTROL "Kontrolli"
|
||||
#define MSG_MIN STR_THERMOMETER " Min"
|
||||
#define MSG_MAX STR_THERMOMETER " Max"
|
||||
#define MSG_FACTOR STR_THERMOMETER " Kerr"
|
||||
#define MSG_MIN LCD_STR_THERMOMETER " Min"
|
||||
#define MSG_MAX LCD_STR_THERMOMETER " Max"
|
||||
#define MSG_FACTOR LCD_STR_THERMOMETER " Kerr"
|
||||
#define MSG_AUTOTEMP "Autotemp"
|
||||
#define MSG_ON "On "
|
||||
#define MSG_OFF "Off"
|
||||
@ -73,10 +78,10 @@
|
||||
#define MSG_YSTEPS "Ysteps/mm"
|
||||
#define MSG_ZSTEPS "Zsteps/mm"
|
||||
#define MSG_ESTEPS "Esteps/mm"
|
||||
#define MSG_TEMPERATURE "L" STR_ae "mp" STR_oe "tila"
|
||||
#define MSG_TEMPERATURE "Lämpötila"
|
||||
#define MSG_MOTION "Liike"
|
||||
#define MSG_VOLUMETRIC "Filament"
|
||||
#define MSG_VOLUMETRIC_ENABLED "E in mm3"
|
||||
#define MSG_VOLUMETRIC_ENABLED "E in mm³"
|
||||
#define MSG_FILAMENT_SIZE_EXTRUDER_0 "Fil. Dia. 1"
|
||||
#define MSG_FILAMENT_SIZE_EXTRUDER_1 "Fil. Dia. 2"
|
||||
#define MSG_FILAMENT_SIZE_EXTRUDER_2 "Fil. Dia. 3"
|
||||
@ -84,13 +89,13 @@
|
||||
#define MSG_STORE_EPROM "Tallenna muistiin"
|
||||
#define MSG_LOAD_EPROM "Lataa muistista"
|
||||
#define MSG_RESTORE_FAILSAFE "Palauta oletus"
|
||||
#define MSG_REFRESH "P" STR_ae "ivit" STR_ae ""
|
||||
#define MSG_REFRESH "Päivitä"
|
||||
#define MSG_WATCH "Seuraa"
|
||||
#define MSG_PREPARE "Valmistele"
|
||||
#define MSG_TUNE "S" STR_ae "" STR_ae "d" STR_ae ""
|
||||
#define MSG_PAUSE_PRINT "Keskeyt" STR_ae " tulostus"
|
||||
#define MSG_TUNE "Säädä"
|
||||
#define MSG_PAUSE_PRINT "Keskeytä tulostus"
|
||||
#define MSG_RESUME_PRINT "Jatka tulostusta"
|
||||
#define MSG_STOP_PRINT "Pys" STR_ae "yt" STR_ae " tulostus"
|
||||
#define MSG_STOP_PRINT "Pysäytä tulostus"
|
||||
#define MSG_CARD_MENU "Korttivalikko"
|
||||
#define MSG_NO_CARD "Ei korttia"
|
||||
#define MSG_DWELL "Nukkumassa..."
|
||||
@ -100,9 +105,9 @@
|
||||
#define MSG_NO_MOVE "Ei liiketta."
|
||||
#define MSG_KILLED "KILLED. "
|
||||
#define MSG_STOPPED "STOPPED. "
|
||||
#define MSG_CONTROL_RETRACT "Ved" STR_ae " mm"
|
||||
#define MSG_CONTROL_RETRACT_SWAP "Va. Ved" STR_ae " mm"
|
||||
#define MSG_CONTROL_RETRACTF "Ved" STR_ae " V"
|
||||
#define MSG_CONTROL_RETRACT "Vedä mm"
|
||||
#define MSG_CONTROL_RETRACT_SWAP "Va. Vedä mm"
|
||||
#define MSG_CONTROL_RETRACTF "Vedä V"
|
||||
#define MSG_CONTROL_RETRACT_ZLIFT "Z mm"
|
||||
#define MSG_CONTROL_RETRACT_RECOVER "UnRet +mm"
|
||||
#define MSG_CONTROL_RETRACT_RECOVER_SWAP "Va. UnRet +mm"
|
||||
|
@ -2,12 +2,18 @@
|
||||
* French
|
||||
*
|
||||
* LCD Menu Messages
|
||||
* Please note these are limited to 17 characters!
|
||||
* See also documentation/LCDLanguageFont.md
|
||||
*
|
||||
*/
|
||||
#ifndef LANGUAGE_FR_H
|
||||
#define LANGUAGE_FR_H
|
||||
|
||||
#define MAPPER_NON
|
||||
// Define SIMULATE_ROMFONT to see what is seen on the character based display defined in Configuration.h
|
||||
//#define SIMULATE_ROMFONT
|
||||
#define DISPLAY_CHARSET_ISO10646_1
|
||||
|
||||
|
||||
#define WELCOME_MSG MACHINE_NAME " prete."
|
||||
#define MSG_SD_INSERTED "Carte inseree"
|
||||
#define MSG_SD_REMOVED "Carte retiree"
|
||||
@ -46,9 +52,9 @@
|
||||
#define MSG_FAN_SPEED "Vite. ventilateur"
|
||||
#define MSG_FLOW "Flux"
|
||||
#define MSG_CONTROL "Controler"
|
||||
#define MSG_MIN " \002 Min"
|
||||
#define MSG_MAX " \002 Max"
|
||||
#define MSG_FACTOR " \002 Facteur"
|
||||
#define MSG_MIN LCD_STR_THERMOMETER " Min"
|
||||
#define MSG_MAX LCD_STR_THERMOMETER " Max"
|
||||
#define MSG_FACTOR LCD_STR_THERMOMETER " Facteur"
|
||||
#define MSG_AUTOTEMP "Temp. Auto."
|
||||
#define MSG_ON "Marche "
|
||||
#define MSG_OFF "Arret"
|
||||
@ -76,7 +82,7 @@
|
||||
#define MSG_TEMPERATURE "Temperature"
|
||||
#define MSG_MOTION "Mouvement"
|
||||
#define MSG_VOLUMETRIC "Filament"
|
||||
#define MSG_VOLUMETRIC_ENABLED "E in mm3"
|
||||
#define MSG_VOLUMETRIC_ENABLED "E in mm3"
|
||||
#define MSG_FILAMENT_SIZE_EXTRUDER_0 "Fil. Dia. 1"
|
||||
#define MSG_FILAMENT_SIZE_EXTRUDER_1 "Fil. Dia. 2"
|
||||
#define MSG_FILAMENT_SIZE_EXTRUDER_2 "Fil. Dia. 3"
|
||||
|
@ -2,12 +2,17 @@
|
||||
* Italian
|
||||
*
|
||||
* LCD Menu Messages
|
||||
* Please note these are limited to 17 characters!
|
||||
* See also documentation/LCDLanguageFont.md
|
||||
*
|
||||
*/
|
||||
#ifndef LANGUAGE_IT_H
|
||||
#define LANGUAGE_IT_H
|
||||
|
||||
#define MAPPER_NON
|
||||
// Define SIMULATE_ROMFONT to see what is seen on the character based display defined in Configuration.h
|
||||
//#define SIMULATE_ROMFONT
|
||||
#define DISPLAY_CHARSET_ISO10646_1
|
||||
|
||||
#define WELCOME_MSG MACHINE_NAME " pronto."
|
||||
#define MSG_SD_INSERTED "SD Card inserita"
|
||||
#define MSG_SD_REMOVED "SD Card rimossa"
|
||||
@ -46,9 +51,9 @@
|
||||
#define MSG_FAN_SPEED "Ventola"
|
||||
#define MSG_FLOW "Flusso"
|
||||
#define MSG_CONTROL "Controllo"
|
||||
#define MSG_MIN " \002 Min"
|
||||
#define MSG_MAX " \002 Max"
|
||||
#define MSG_FACTOR " \002 Fact"
|
||||
#define MSG_MIN LCD_STR_THERMOMETER " Min"
|
||||
#define MSG_MAX LCD_STR_THERMOMETER " Max"
|
||||
#define MSG_FACTOR LCD_STR_THERMOMETER " Fact"
|
||||
#define MSG_AUTOTEMP "Autotemp"
|
||||
#define MSG_ON "ON "
|
||||
#define MSG_OFF "OFF"
|
||||
|
147
Marlin/language_kana.h
Normal file
147
Marlin/language_kana.h
Normal file
@ -0,0 +1,147 @@
|
||||
/**
|
||||
* Japanese (Kana)
|
||||
*
|
||||
* LCD Menu Messages
|
||||
* See also documentation/LCDLanguageFont.md
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef LANGUAGE_KANA_H
|
||||
#define LANGUAGE_KANA_H
|
||||
|
||||
#define MAPPER_NON
|
||||
// Define SIMULATE_ROMFONT to see what is seen on the character based display defined in Configuration.h
|
||||
#define SIMULATE_ROMFONT
|
||||
#define DISPLAY_CHARSET_ISO10646_KANA
|
||||
|
||||
// 片仮名表示定義
|
||||
#define WELCOME_MSG MACHINE_NAME " ready."
|
||||
#define MSG_SD_INSERTED "\xb6\xb0\xc4\xde\x20\xbf\xb3\xc6\xad\xb3\xbb\xda\xcf\xbc\xc0" // "Card inserted"
|
||||
#define MSG_SD_REMOVED "\xb6\xb0\xc4\xde\xb6xde\xb1\xd8\xcf\xbe\xdd" // "Card removed"
|
||||
#define MSG_MAIN "\xd2\xb2\xdd" // "Main"
|
||||
#define MSG_AUTOSTART "\xbc\xde\xc4\xde\xb3\xb6\xb2\xbc" // "Autostart"
|
||||
#define MSG_DISABLE_STEPPERS "\xd3\xb0\xc0\xb0\xc3\xde\xdd\xb9\xde\xdd\x20\xb5\xcc" // "Disable steppers"
|
||||
#define MSG_AUTO_HOME "\xb9\xde\xdd\xc3\xdd\xc6\xb2\xc4\xde\xb3" // "Auto home"
|
||||
#define MSG_SET_HOME_OFFSETS "\xb7\xbc\xde\xad\xdd\xb5\xcc\xbe\xaf\xc4\xbe\xaf\xc3\xb2" // "Set home offsets"
|
||||
#define MSG_SET_ORIGIN "\xb7\xbc\xde\xad\xdd\xbe\xaf\xc4" // "Set origin"
|
||||
#define MSG_PREHEAT_PLA "PLA \xd6\xc8\xc2" // "Preheat PLA"
|
||||
#define MSG_PREHEAT_PLA_N MSG_PREHEAT_PLA " "
|
||||
#define MSG_PREHEAT_PLA_ALL MSG_PREHEAT_PLA " \xbd\xcd\xde\xc3" // " All"
|
||||
#define MSG_PREHEAT_PLA_BEDONLY MSG_PREHEAT_PLA " \xcd\xde\xaf\xc4\xde" // "Bed"
|
||||
#define MSG_PREHEAT_PLA_SETTINGS MSG_PREHEAT_PLA " \xbe\xaf\xc3\xb2" // "conf"
|
||||
#define MSG_PREHEAT_ABS "ABS \xd6\xc8\xc2" // "Preheat ABS"
|
||||
#define MSG_PREHEAT_ABS_N MSG_PREHEAT_ABS " "
|
||||
#define MSG_PREHEAT_ABS_ALL MSG_PREHEAT_ABS " \xbd\xcd\xde\xc3" // " All"
|
||||
#define MSG_PREHEAT_ABS_BEDONLY MSG_PREHEAT_ABS " \xcd\xde\xaf\xc4\xde" // "Bed"
|
||||
#define MSG_PREHEAT_ABS_SETTINGS MSG_PREHEAT_ABS " \xbe\xaf\xc3\xb2" // "conf"
|
||||
#define MSG_COOLDOWN "\xb6\xc8\xc2\xc3\xb2\xbc" // "Cooldown"
|
||||
#define MSG_SWITCH_PS_ON "\xc3\xde\xdd\xb9\xdd\xde\x20\xb5\xdd" // "Switch power on"
|
||||
#define MSG_SWITCH_PS_OFF "\xc3\xde\xdd\xb9\xdd\xde\x20\xb5\xcc" // "Switch power off"
|
||||
#define MSG_EXTRUDE "\xb5\xbc\xc0\xde\xbc" // "Extrude"
|
||||
#define MSG_RETRACT "\xd8\xc4\xd7\xb8\xc4" // "Retract"
|
||||
#define MSG_MOVE_AXIS "\xbc\xde\xb8\xb2\xc4\xde\xb3" // "Move axis"
|
||||
#define MSG_MOVE_X "X\xbc\xde\xb8\x20\xb2\xc4\xde\xb3" // "Move X"
|
||||
#define MSG_MOVE_Y "Y\xbc\xde\xb8\x20\xb2\xc4\xde\xb3" // "Move Y"
|
||||
#define MSG_MOVE_Z "Z\xbc\xde\xb8\x20\xb2\xc4\xde\xb3" // "Move Z"
|
||||
#define MSG_MOVE_E "\xb4\xb8\xbd\xc4\xd9\xb0\xc0\xde\xb0" // "Extruder"
|
||||
#define MSG_MOVE_01MM "0.1mm \xb2\xc4\xde\xb3" // "Move 0.1mm"
|
||||
#define MSG_MOVE_1MM " 1mm \xb2\xc4\xde\xb3" // "Move 1mm"
|
||||
#define MSG_MOVE_10MM " 10mm \xb2\xc4\xde\xb3" // "Move 10mm"
|
||||
#define MSG_SPEED "\xbd\xcb\xdf\xb0\xc4\xde" // "Speed"
|
||||
#define MSG_NOZZLE "\xc9\xbd\xde\xd9" // "Nozzle"
|
||||
#define MSG_BED "\xcd\xde\xaf\xc4\xde" // "Bed"
|
||||
#define MSG_FAN_SPEED "\xcc\xa7\xdd\xbf\xb8\xc4\xde" // "Fan speed"
|
||||
#define MSG_FLOW "\xb5\xb8\xd8\xd8\xae\xb3" // "Flow"
|
||||
#define MSG_CONTROL "\xba\xdd\xc4\xdb\xb0\xd9" // "Control"
|
||||
#define MSG_MIN LCD_STR_THERMOMETER " Min"
|
||||
#define MSG_MAX LCD_STR_THERMOMETER " Max"
|
||||
#define MSG_FACTOR LCD_STR_THERMOMETER " Fact"
|
||||
#define MSG_AUTOTEMP "\xbc\xde\xc4\xde\xb3\xb5\xdd\xc4\xde" // "Autotemp"
|
||||
#define MSG_ON "On "
|
||||
#define MSG_OFF "Off"
|
||||
#define MSG_PID_P "PID-P"
|
||||
#define MSG_PID_I "PID-I"
|
||||
#define MSG_PID_D "PID-D"
|
||||
#define MSG_PID_C "PID-C"
|
||||
#define MSG_ACC "\xb6\xbf\xb8\xc4\xde" // "Accel"
|
||||
#define MSG_VXY_JERK "Vxy-jerk"
|
||||
#define MSG_VZ_JERK "Vz-jerk"
|
||||
#define MSG_VE_JERK "Ve-jerk"
|
||||
#define MSG_VMAX "Vmax "
|
||||
#define MSG_X "x"
|
||||
#define MSG_Y "y"
|
||||
#define MSG_Z "z"
|
||||
#define MSG_E "e"
|
||||
#define MSG_VMIN "Vmin"
|
||||
#define MSG_VTRAV_MIN "VTrav min"
|
||||
#define MSG_AMAX "Amax "
|
||||
#define MSG_A_RETRACT "A-retract"
|
||||
#define MSG_XSTEPS "Xsteps/mm"
|
||||
#define MSG_YSTEPS "Ysteps/mm"
|
||||
#define MSG_ZSTEPS "Zsteps/mm"
|
||||
#define MSG_ESTEPS "Esteps/mm"
|
||||
#define MSG_TEMPERATURE "\xb5\xdd\xc4\xde" // "Temperature"
|
||||
#define MSG_MOTION "\xb3\xba\xde\xb7\xbe\xaf\xc3\xb2" // "Motion"
|
||||
#define MSG_VOLUMETRIC "\xcc\xa8\xd7\xd2\xdd\xc4" // "Filament"
|
||||
#define MSG_VOLUMETRIC_ENABLED "E in mm3"
|
||||
#define MSG_FILAMENT_SIZE_EXTRUDER_0 "Fil. Dia. 1"
|
||||
#define MSG_FILAMENT_SIZE_EXTRUDER_1 "Fil. Dia. 2"
|
||||
#define MSG_FILAMENT_SIZE_EXTRUDER_2 "Fil. Dia. 3"
|
||||
#define MSG_FILAMENT_SIZE_EXTRUDER_3 "Fil. Dia. 4"
|
||||
#define MSG_CONTRAST "LCD\xba\xdd\xc4\xd7\xbd\xc4" // "LCD contrast"
|
||||
#define MSG_STORE_EPROM "\xd2\xd3\xd8\xcd\xb6\xb8\xc9\xb3" // "Store memory"
|
||||
#define MSG_LOAD_EPROM "\xd2\xd3\xd8\xb6\xd7\xd6\xd0\ba\xd0" // "Load memory"
|
||||
#define MSG_RESTORE_FAILSAFE "\xbe\xaf\xc3\xb2\xd8\xbe\xaf\xc4" // "Restore failsafe"
|
||||
#define MSG_REFRESH "\xd8\xcc\xda\xaf\xbc\xad" // "Refresh"
|
||||
#define MSG_WATCH "\xb2\xdd\xcc\xab" // "Info screen"
|
||||
#define MSG_PREPARE "\xbc\xde\xad\xdd\xcb\xde\xbe\xaf\xc3\xb2" // "Prepare"
|
||||
#define MSG_TUNE "\xc1\xae\xb3\xbe\xb2" // "Tune"
|
||||
#define MSG_PAUSE_PRINT "\xb2\xc1\xbc\xde\xc3\xb2\xbc" // "Pause print"
|
||||
#define MSG_RESUME_PRINT "\xcc\xdf\xd8\xdd\xc4\xbb\xb2\xb6\xb2" // "Resume print"
|
||||
#define MSG_STOP_PRINT "\xcc\xdf\xd8\xdd\xc4\xc3\xb2\xbc" // "Stop print"
|
||||
#define MSG_CARD_MENU "SD\xb6\xb0\xc4\xde\xb6\xd7\xcc\xdf\xd8\xdd\xc4" // "Print from SD"
|
||||
#define MSG_NO_CARD "SD\xb6\xb0\xc4\xde\xb6\xde\xb1\xd8\xcf\xbe\xdd" // "No SD card"
|
||||
#define MSG_DWELL "\xbd\xd8\xb0\xcc\xdf" // "Sleep..."
|
||||
#define MSG_USERWAIT "\xbc\xca\xde\xd7\xb9\xb5\xcf\xc1\xb8\xc0\xde\xbb\xb2" // "Wait for user..."
|
||||
#define MSG_RESUMING "\xcc\xdf\xd8\xdd\xc4\xbb\xb2\xb6\xb2" // "Resuming print"
|
||||
#define MSG_PRINT_ABORTED "\xcc\xdf\xd8\xdd\xc4\xc1\xad\xb3\xbc\xbb\xda\xcf\xbc\xc0" // "Print aborted"
|
||||
#define MSG_NO_MOVE "\xb3\xba\xde\xb7\xcf\xbe\xdd" // "No move."
|
||||
#define MSG_KILLED "\xbc\xae\xb3\xb7\xae" // "KILLED. "
|
||||
#define MSG_STOPPED "\xc3\xb2\xbc\xbc\xcf\xbc\xc0" // "STOPPED. "
|
||||
#define MSG_CONTROL_RETRACT "Retract mm"
|
||||
#define MSG_CONTROL_RETRACT_SWAP "Swap Re.mm"
|
||||
#define MSG_CONTROL_RETRACTF "Retract V"
|
||||
#define MSG_CONTROL_RETRACT_ZLIFT "Hop mm"
|
||||
#define MSG_CONTROL_RETRACT_RECOVER "UnRet +mm"
|
||||
#define MSG_CONTROL_RETRACT_RECOVER_SWAP "S UnRet+mm"
|
||||
#define MSG_CONTROL_RETRACT_RECOVERF "UnRet V"
|
||||
#define MSG_AUTORETRACT "AutoRetr."
|
||||
#define MSG_FILAMENTCHANGE "\xcc\xa8\xd7\xd2\xdd\xc4\xba\xb3\xb6\xdd" // "Change filament"
|
||||
#define MSG_INIT_SDCARD "SD\xb6\xb0\xc4\xde\xbb\xb2\xd6\xd0\xba\xd0" // "Init. SD card"
|
||||
#define MSG_CNG_SDCARD "SD\xb6\xb0\xc4\xde\xba\xb3\xb6\xdd" // "Change SD card"
|
||||
#define MSG_ZPROBE_OUT "Z\xcc\xdf\xdb\xb0\xcc\xde \xcd\xde\xaf\xc4\xee\xb6\xde\xb2" // "Z probe out. bed"
|
||||
#define MSG_POSITION_UNKNOWN "\xb9\xde\xdd\xc3\xdd\xcaXY\xb2\xc4\xde\xb3\xba\xdeZ" // "Home X/Y before Z"
|
||||
#define MSG_ZPROBE_ZOFFSET "Z\xb5\xcc\xbe\xaf\xc4" // "Z Offset"
|
||||
#define MSG_BABYSTEP_X "\xcb\xde\xc4\xde\xb3 X" // "Babystep X"
|
||||
#define MSG_BABYSTEP_Y "\xcb\xde\xc4\xde\xb3 Y" // "Babystep Y"
|
||||
#define MSG_BABYSTEP_Z "\xcb\xde\xc4\xde\xb3 Z" // "Babystep Z"
|
||||
#define MSG_ENDSTOP_ABORT "Endstop abort"
|
||||
|
||||
/* These are from language.h. PLEASE DON'T TRANSLATE! All translatable messages can be found in language_en.h
|
||||
#define MSG_HEATING "\xb6\xc8\xc2\xc1\xad\xb3..." // "Heating..."
|
||||
#define MSG_HEATING_COMPLETE "\xb6\xc8\xc2\xb6\xdd\xd8x\xae\xb3" // "Heating done."
|
||||
#define MSG_BED_HEATING "\xcd\xde\xaf\xc4\xde\xb6\xc8\xc2\xc1\xad\xb3" // "Bed Heating."
|
||||
#define MSG_BED_DONE "\xcd\xde\xaf\xc4\xde\xb6\xc8\xc2\xb6\xdd\xd8x\xae\xb3" // "Bed done."
|
||||
#define MSG_ENDSTOPS_HIT "endstops hit: "
|
||||
^ typho
|
||||
*/
|
||||
|
||||
#ifdef DELTA_CALIBRATION_MENU
|
||||
#define MSG_DELTA_CALIBRATE "Delta Calibration"
|
||||
#define MSG_DELTA_CALIBRATE_X "Calibrate X"
|
||||
#define MSG_DELTA_CALIBRATE_Y "Calibrate Y"
|
||||
#define MSG_DELTA_CALIBRATE_Z "Calibrate Z"
|
||||
#define MSG_DELTA_CALIBRATE_CENTER "Calibrate Center"
|
||||
#endif // DELTA_CALIBRATION_MENU
|
||||
|
||||
#endif // LANGUAGE_KANA_H
|
142
Marlin/language_kana_utf8.h
Normal file
142
Marlin/language_kana_utf8.h
Normal file
@ -0,0 +1,142 @@
|
||||
/**
|
||||
* Japanese (Kana UTF8 version)
|
||||
*
|
||||
* LCD Menu Messages
|
||||
* See also documentation/LCDLanguageFont.md
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef LANGUAGE_KANA_UTF_H
|
||||
#define LANGUAGE_KANA_UTF_H
|
||||
|
||||
#define MAPPER_E382E383
|
||||
// Define SIMULATE_ROMFONT to see what is seen on the character based display defined in Configuration.h
|
||||
//#define SIMULATE_ROMFONT
|
||||
#define DISPLAY_CHARSET_ISO10646_KANA
|
||||
|
||||
// This is very crude replacement of the codes used in language_kana.h from somebody who really does not know what he is doing.
|
||||
// Just to show the potential benefit of unicode.
|
||||
// This translation can be improved by using the full charset of unicode codeblock U+30A0 to U+30FF.
|
||||
|
||||
// 片仮名表示定義
|
||||
#define WELCOME_MSG MACHINE_NAME " ready."
|
||||
#define MSG_SD_INSERTED "セード ンウニユウアレマシタ" // "Card inserted"
|
||||
#define MSG_SD_REMOVED "セードゼアリマセン" // "Card removed"
|
||||
#define MSG_MAIN "ナイン" // "Main"
|
||||
#define MSG_AUTOSTART "ヅドウセイシ" // "Autostart"
|
||||
#define MSG_DISABLE_STEPPERS "モーターデンゲン オフ" // "Disable steppers"
|
||||
#define MSG_AUTO_HOME "ゲンテンニイドウ" // "Auto home"
|
||||
#define MSG_SET_HOME_OFFSETS "キヅユンオフセツトセツテイ" // "Set home offsets"
|
||||
#define MSG_SET_ORIGIN "キヅユンセツト" // "Set origin"
|
||||
#define MSG_PREHEAT_PLA "PLA ヨネシ" // "Preheat PLA"
|
||||
#define MSG_PREHEAT_PLA_N MSG_PREHEAT_PLA " "
|
||||
#define MSG_PREHEAT_PLA_ALL MSG_PREHEAT_PLA " スベテ" // " All"
|
||||
#define MSG_PREHEAT_PLA_BEDONLY MSG_PREHEAT_PLA " ベツド" // "Bed"
|
||||
#define MSG_PREHEAT_PLA_SETTINGS MSG_PREHEAT_PLA " セツテイ" // "conf"
|
||||
#define MSG_PREHEAT_ABS "ABS ヨネシ" // "Preheat ABS"
|
||||
#define MSG_PREHEAT_ABS_N MSG_PREHEAT_ABS " "
|
||||
#define MSG_PREHEAT_ABS_ALL MSG_PREHEAT_ABS " スベテ" // " All"
|
||||
#define MSG_PREHEAT_ABS_BEDONLY MSG_PREHEAT_ABS " ベツド" // "Bed"
|
||||
#define MSG_PREHEAT_ABS_SETTINGS MSG_PREHEAT_ABS " セツテイ" // "conf"
|
||||
#define MSG_COOLDOWN "セネシテイシ" // "Cooldown"
|
||||
#define MSG_SWITCH_PS_ON "デンケゾ オン" // "Switch power on"
|
||||
#define MSG_SWITCH_PS_OFF "デンケゾ オフ" // "Switch power off"
|
||||
#define MSG_EXTRUDE "オシダシ" // "Extrude"
|
||||
#define MSG_RETRACT "リトラケト" // "Retract"
|
||||
#define MSG_MOVE_AXIS "ヅケイドウ" // "Move axis"
|
||||
#define MSG_MOVE_X "Xヅケ イドウ" // "Move X"
|
||||
#define MSG_MOVE_Y "Yヅケ イドウ" // "Move Y"
|
||||
#define MSG_MOVE_Z "Zヅケ イドウ" // "Move Z"
|
||||
#define MSG_MOVE_E "エケストルーダー" // "Extruder"
|
||||
#define MSG_MOVE_01MM "0.1mm イドウ" // "Move 0.1mm"
|
||||
#define MSG_MOVE_1MM " 1mm イドウ" // "Move 1mm"
|
||||
#define MSG_MOVE_10MM " 10mm イドウ" // "Move 10mm"
|
||||
#define MSG_SPEED "スヒ゜ード" // "Speed"
|
||||
#define MSG_NOZZLE "ノズル" // "Nozzle"
|
||||
#define MSG_BED "ベツド" // "Bed"
|
||||
#define MSG_FAN_SPEED "ファンンケド" // "Fan speed"
|
||||
#define MSG_FLOW "オケリリョウ" // "Flow"
|
||||
#define MSG_CONTROL "コントロール" // "Control"
|
||||
#define MSG_MIN LCD_STR_THERMOMETER " Min"
|
||||
#define MSG_MAX LCD_STR_THERMOMETER " Max"
|
||||
#define MSG_FACTOR LCD_STR_THERMOMETER " Fact"
|
||||
#define MSG_AUTOTEMP "ヅドウオンド" // "Autotemp"
|
||||
#define MSG_ON "On "
|
||||
#define MSG_OFF "Off"
|
||||
#define MSG_PID_P "PID-P"
|
||||
#define MSG_PID_I "PID-I"
|
||||
#define MSG_PID_D "PID-D"
|
||||
#define MSG_PID_C "PID-C"
|
||||
#define MSG_ACC "センケド" // "Accel"
|
||||
#define MSG_VXY_JERK "Vxy-jerk"
|
||||
#define MSG_VZ_JERK "Vz-jerk"
|
||||
#define MSG_VE_JERK "Ve-jerk"
|
||||
#define MSG_VMAX "Vmax "
|
||||
#define MSG_X "x"
|
||||
#define MSG_Y "y"
|
||||
#define MSG_Z "z"
|
||||
#define MSG_E "e"
|
||||
#define MSG_VMIN "Vmin"
|
||||
#define MSG_VTRAV_MIN "VTrav min"
|
||||
#define MSG_AMAX "Amax "
|
||||
#define MSG_A_RETRACT "A-retract"
|
||||
#define MSG_XSTEPS "Xsteps/mm"
|
||||
#define MSG_YSTEPS "Ysteps/mm"
|
||||
#define MSG_ZSTEPS "Zsteps/mm"
|
||||
#define MSG_ESTEPS "Esteps/mm"
|
||||
#define MSG_TEMPERATURE "オンド" // "Temperature"
|
||||
#define MSG_MOTION "ウゴキセツテイ" // "Motion"
|
||||
#define MSG_VOLUMETRIC "フィラナント" // "Filament"
|
||||
#define MSG_VOLUMETRIC_ENABLED "E in mm3"
|
||||
#define MSG_FILAMENT_SIZE_EXTRUDER_0 "Fil. Dia. 1"
|
||||
#define MSG_FILAMENT_SIZE_EXTRUDER_1 "Fil. Dia. 2"
|
||||
#define MSG_FILAMENT_SIZE_EXTRUDER_2 "Fil. Dia. 3"
|
||||
#define MSG_FILAMENT_SIZE_EXTRUDER_3 "Fil. Dia. 4"
|
||||
#define MSG_CONTRAST "LCDコントラスト" // "LCD contrast"
|
||||
#define MSG_STORE_EPROM "ナモリヘセケノウ" // "Store memory"
|
||||
#define MSG_LOAD_EPROM "ナモリセラヨミbaミ" // "Load memory"
|
||||
#define MSG_RESTORE_FAILSAFE "セツテイリセツト" // "Restore failsafe"
|
||||
#define MSG_REFRESH "リフレツシユ" // "Refresh"
|
||||
#define MSG_WATCH "インフォ" // "Info screen"
|
||||
#define MSG_PREPARE "ヅユンゼセツテイ" //"Prepare"
|
||||
#define MSG_TUNE "チョウセイ" // "Tune"
|
||||
#define MSG_PAUSE_PRINT "イチヅテイシ" // "Pause print"
|
||||
#define MSG_RESUME_PRINT "プリントアイセイ" // "Resume print"
|
||||
#define MSG_STOP_PRINT "プリントテイシ" // "Stop print"
|
||||
#define MSG_CARD_MENU "SDセードセラプリント" // "Print from SD"
|
||||
#define MSG_NO_CARD "SDセードゼアリマセン" // "No SD card"
|
||||
#define MSG_DWELL "スリープ" // "Sleep..."
|
||||
#define MSG_USERWAIT "シバラケオマチケダアイ" // "Wait for user..."
|
||||
#define MSG_RESUMING "プリントアイセイ" // "Resuming print"
|
||||
#define MSG_PRINT_ABORTED "プリントチユウシアレマシタ" // "Print aborted"
|
||||
#define MSG_NO_MOVE "ウゴキマセン" // "No move."
|
||||
#define MSG_KILLED "ショウキョ" // "KILLED. "
|
||||
#define MSG_STOPPED "テイシシマシタ" // "STOPPED. "
|
||||
#define MSG_CONTROL_RETRACT "Retract mm"
|
||||
#define MSG_CONTROL_RETRACT_SWAP "Swap Re.mm"
|
||||
#define MSG_CONTROL_RETRACTF "Retract V"
|
||||
#define MSG_CONTROL_RETRACT_ZLIFT "Hop mm"
|
||||
#define MSG_CONTROL_RETRACT_RECOVER "UnRet +mm"
|
||||
#define MSG_CONTROL_RETRACT_RECOVER_SWAP "S UnRet+mm"
|
||||
#define MSG_CONTROL_RETRACT_RECOVERF "UnRet V"
|
||||
#define MSG_AUTORETRACT "AutoRetr."
|
||||
#define MSG_FILAMENTCHANGE "フィラナントコウセン" // "Change filament"
|
||||
#define MSG_INIT_SDCARD "SDセードアイヨミコミ" // "Init. SD card"
|
||||
#define MSG_CNG_SDCARD "SDセードコウセン" // "Change SD card"
|
||||
#define MSG_ZPROBE_OUT "Zプローブ ベツトnゼイ" // "Z probe out. bed"
|
||||
#define MSG_POSITION_UNKNOWN "ゲンテンハXYイドウゴZ" // "Home X/Y before Z"
|
||||
#define MSG_ZPROBE_ZOFFSET "Zオフセツト" // "Z Offset"
|
||||
#define MSG_BABYSTEP_X "ゼドウ X" // "Babystep X"
|
||||
#define MSG_BABYSTEP_Y "ゼドウ Y" // "Babystep Y"
|
||||
#define MSG_BABYSTEP_Z "ゼドウ Z" // "Babystep Z"
|
||||
#define MSG_ENDSTOP_ABORT "Endstop abort"
|
||||
|
||||
#ifdef DELTA_CALIBRATION_MENU
|
||||
#define MSG_DELTA_CALIBRATE "Delta Calibration"
|
||||
#define MSG_DELTA_CALIBRATE_X "Calibrate X"
|
||||
#define MSG_DELTA_CALIBRATE_Y "Calibrate Y"
|
||||
#define MSG_DELTA_CALIBRATE_Z "Calibrate Z"
|
||||
#define MSG_DELTA_CALIBRATE_CENTER "Calibrate Center"
|
||||
#endif // DELTA_CALIBRATION_MENU
|
||||
|
||||
#endif // LANGUAGE_KANA_UTF_H
|
@ -2,12 +2,17 @@
|
||||
* Dutch
|
||||
*
|
||||
* LCD Menu Messages
|
||||
* Please note these are limited to 17 characters!
|
||||
* See also documentation/LCDLanguageFont.md
|
||||
*
|
||||
*/
|
||||
#ifndef LANGUAGE_NL_H
|
||||
#define LANGUAGE_NL_H
|
||||
|
||||
#define MAPPER_NON
|
||||
// Define SIMULATE_ROMFONT to see what is seen on the character based display defined in Configuration.h
|
||||
//#define SIMULATE_ROMFONT
|
||||
#define DISPLAY_CHARSET_ISO10646_1
|
||||
|
||||
#define WELCOME_MSG MACHINE_NAME " gereed."
|
||||
#define MSG_SD_INSERTED "Kaart ingestoken"
|
||||
#define MSG_SD_REMOVED "Kaart verwijderd"
|
||||
@ -46,9 +51,9 @@
|
||||
#define MSG_FAN_SPEED "Fan snelheid"
|
||||
#define MSG_FLOW "Flow"
|
||||
#define MSG_CONTROL "Control"
|
||||
#define MSG_MIN " \002 Min"
|
||||
#define MSG_MAX " \002 Max"
|
||||
#define MSG_FACTOR " \002 Fact"
|
||||
#define MSG_MIN LCD_STR_THERMOMETER " Min"
|
||||
#define MSG_MAX LCD_STR_THERMOMETER " Max"
|
||||
#define MSG_FACTOR LCD_STR_THERMOMETER " Fact"
|
||||
#define MSG_AUTOTEMP "Autotemp"
|
||||
#define MSG_ON "Aan "
|
||||
#define MSG_OFF "Uit"
|
||||
|
@ -2,12 +2,17 @@
|
||||
* Polish
|
||||
*
|
||||
* LCD Menu Messages
|
||||
* Please note these are limited to 17 characters!
|
||||
* See also documentation/LCDLanguageFont.md
|
||||
*
|
||||
*/
|
||||
#ifndef LANGUAGE_PL_H
|
||||
#define LANGUAGE_PL_H
|
||||
|
||||
#define MAPPER_NON
|
||||
// Define SIMULATE_ROMFONT to see what is seen on the character based display defined in Configuration.h
|
||||
//#define SIMULATE_ROMFONT
|
||||
#define DISPLAY_CHARSET_ISO10646_1
|
||||
|
||||
#define WELCOME_MSG MACHINE_NAME " gotowy."
|
||||
#define MSG_SD_INSERTED "Karta wlozona"
|
||||
#define MSG_SD_REMOVED "Karta usunieta"
|
||||
@ -46,9 +51,9 @@
|
||||
#define MSG_FAN_SPEED "Obroty wiatraka"
|
||||
#define MSG_FLOW "Przeplyw"
|
||||
#define MSG_CONTROL "Ustawienia"
|
||||
#define MSG_MIN " \002 Min"
|
||||
#define MSG_MAX " \002 Max"
|
||||
#define MSG_FACTOR " \002 Mnoznik"
|
||||
#define MSG_MIN LCD_STR_THERMOMETER " Min"
|
||||
#define MSG_MAX LCD_STR_THERMOMETER " Max"
|
||||
#define MSG_FACTOR LCD_STR_THERMOMETER " Mnoznik"
|
||||
#define MSG_AUTOTEMP "Auto. temperatura"
|
||||
#define MSG_ON "Wl. "
|
||||
#define MSG_OFF "Wyl."
|
||||
@ -84,7 +89,7 @@
|
||||
#define MSG_STORE_EPROM "Zapisz w pamieci"
|
||||
#define MSG_LOAD_EPROM "Wczytaj z pamieci"
|
||||
#define MSG_RESTORE_FAILSAFE "Ustaw. fabryczne"
|
||||
#define MSG_REFRESH "\004Odswiez"
|
||||
#define MSG_REFRESH LCD_STR_REFRESH " Odswiez"
|
||||
#define MSG_WATCH "Ekran glowny"
|
||||
#define MSG_PREPARE "Przygotuj"
|
||||
#define MSG_TUNE "Strojenie"
|
||||
|
@ -2,16 +2,21 @@
|
||||
* Portuguese (Brazil)
|
||||
*
|
||||
* LCD Menu Messages
|
||||
* Please note these are limited to 17 characters!
|
||||
* See also documentation/LCDLanguageFont.md
|
||||
*
|
||||
*/
|
||||
#ifndef LANGUAGE_PT_BR_H
|
||||
#define LANGUAGE_PT_BR_H
|
||||
|
||||
#define MAPPER_NON
|
||||
// Define SIMULATE_ROMFONT to see what is seen on the character based display defined in Configuration.h
|
||||
//#define SIMULATE_ROMFONT
|
||||
#define DISPLAY_CHARSET_ISO10646_1
|
||||
|
||||
#define WELCOME_MSG MACHINE_NAME " pronto."
|
||||
#define MSG_SD_INSERTED "Cartao inserido"
|
||||
#define MSG_SD_REMOVED "Cartao removido"
|
||||
#define MSG_MAIN " Menu principal \003"
|
||||
#define MSG_MAIN " Menu principal"
|
||||
#define MSG_AUTOSTART "Autostart"
|
||||
#define MSG_DISABLE_STEPPERS " Apagar motores"
|
||||
#define MSG_AUTO_HOME "Ir para origen"
|
||||
@ -20,19 +25,19 @@
|
||||
#define MSG_PREHEAT_PLA "Pre-aquecer PLA"
|
||||
#define MSG_PREHEAT_PLA_N "Pre-aquecer PLA "
|
||||
#define MSG_PREHEAT_PLA_ALL "Pre-aq. PLA Tudo"
|
||||
#define MSG_PREHEAT_PLA_BEDONLY "Pre-aq. PLA \002Base"
|
||||
#define MSG_PREHEAT_PLA_BEDONLY "Pre-aq. PLA " LCD_STR_THERMOMETER "Base"
|
||||
#define MSG_PREHEAT_PLA_SETTINGS "PLA setting"
|
||||
#define MSG_PREHEAT_ABS "Pre-aquecer ABS"
|
||||
#define MSG_PREHEAT_ABS_N "Pre-aquecer ABS "
|
||||
#define MSG_PREHEAT_ABS_ALL "Pre-aq. ABS Tudo"
|
||||
#define MSG_PREHEAT_ABS_BEDONLY "Pre-aq. ABS \002Base"
|
||||
#define MSG_PREHEAT_ABS_BEDONLY "Pre-aq. ABS " LCD_STR_THERMOMETER "Base"
|
||||
#define MSG_PREHEAT_ABS_SETTINGS "ABS setting"
|
||||
#define MSG_COOLDOWN "Esfriar"
|
||||
#define MSG_SWITCH_PS_ON "Switch Power On"
|
||||
#define MSG_SWITCH_PS_OFF "Switch Power Off"
|
||||
#define MSG_EXTRUDE "Extrudar"
|
||||
#define MSG_RETRACT "Retrair"
|
||||
#define MSG_MOVE_AXIS "Mover eixo \x7E"
|
||||
#define MSG_MOVE_AXIS "Mover eixo"
|
||||
#define MSG_MOVE_X "Move X"
|
||||
#define MSG_MOVE_Y "Move Y"
|
||||
#define MSG_MOVE_Z "Move Z"
|
||||
@ -41,14 +46,14 @@
|
||||
#define MSG_MOVE_1MM "Move 1mm"
|
||||
#define MSG_MOVE_10MM "Move 10mm"
|
||||
#define MSG_SPEED "Velocidade"
|
||||
#define MSG_NOZZLE "\002Nozzle"
|
||||
#define MSG_BED "\002Base"
|
||||
#define MSG_NOZZLE LCD_STR_THERMOMETER " Nozzle"
|
||||
#define MSG_BED LCD_STR_THERMOMETER " Base"
|
||||
#define MSG_FAN_SPEED "Velocidade vento."
|
||||
#define MSG_FLOW "Fluxo"
|
||||
#define MSG_CONTROL "Controle \003"
|
||||
#define MSG_MIN "\002 Min"
|
||||
#define MSG_MAX "\002 Max"
|
||||
#define MSG_FACTOR "\002 Fact"
|
||||
#define MSG_CONTROL "Controle"
|
||||
#define MSG_MIN LCD_STR_THERMOMETER " Min"
|
||||
#define MSG_MAX LCD_STR_THERMOMETER " Max"
|
||||
#define MSG_FACTOR LCD_STR_THERMOMETER " Fact"
|
||||
#define MSG_AUTOTEMP "Autotemp"
|
||||
#define MSG_ON "On "
|
||||
#define MSG_OFF "Off"
|
||||
@ -76,7 +81,7 @@
|
||||
#define MSG_TEMPERATURE "Temperatura"
|
||||
#define MSG_MOTION "Movimento"
|
||||
#define MSG_VOLUMETRIC "Filament"
|
||||
#define MSG_VOLUMETRIC_ENABLED "E in mm3"
|
||||
#define MSG_VOLUMETRIC_ENABLED "E in mm3"
|
||||
#define MSG_FILAMENT_SIZE_EXTRUDER_0 "Fil. Dia. 1"
|
||||
#define MSG_FILAMENT_SIZE_EXTRUDER_1 "Fil. Dia. 2"
|
||||
#define MSG_FILAMENT_SIZE_EXTRUDER_2 "Fil. Dia. 3"
|
||||
@ -84,10 +89,10 @@
|
||||
#define MSG_STORE_EPROM "Guardar memoria"
|
||||
#define MSG_LOAD_EPROM "Carregar memoria"
|
||||
#define MSG_RESTORE_FAILSAFE "Rest. de emergen."
|
||||
#define MSG_REFRESH "\004Recarregar"
|
||||
#define MSG_WATCH "Monitorar \003"
|
||||
#define MSG_PREPARE "Preparar \x7E"
|
||||
#define MSG_TUNE "Tune \x7E"
|
||||
#define MSG_REFRESH LCD_STR_REFRESH " Recarregar"
|
||||
#define MSG_WATCH "Monitorar"
|
||||
#define MSG_PREPARE "Preparar"
|
||||
#define MSG_TUNE "Tune"
|
||||
#define MSG_PAUSE_PRINT "Pausar impressao"
|
||||
#define MSG_RESUME_PRINT "Resumir impressao"
|
||||
#define MSG_STOP_PRINT "Parar impressao"
|
||||
|
@ -2,16 +2,21 @@
|
||||
* Portuguese
|
||||
*
|
||||
* LCD Menu Messages
|
||||
* Please note these are limited to 17 characters!
|
||||
* See also documentation/LCDLanguageFont.md
|
||||
*
|
||||
*/
|
||||
#ifndef LANGUAGE_PT_H
|
||||
#define LANGUAGE_PT_H
|
||||
|
||||
#define MAPPER_NON
|
||||
// Define SIMULATE_ROMFONT to see what is seen on the character based display defined in Configuration.h
|
||||
//#define SIMULATE_ROMFONT
|
||||
#define DISPLAY_CHARSET_ISO10646_1
|
||||
|
||||
#define WELCOME_MSG MACHINE_NAME " pronto."
|
||||
#define MSG_SD_INSERTED "Cartao inserido"
|
||||
#define MSG_SD_REMOVED "Cartao removido"
|
||||
#define MSG_MAIN " Menu principal \003"
|
||||
#define MSG_MAIN " Menu principal"
|
||||
#define MSG_AUTOSTART "Autostart"
|
||||
#define MSG_DISABLE_STEPPERS " Desligar motores"
|
||||
#define MSG_AUTO_HOME "Ir para home"
|
||||
@ -20,19 +25,19 @@
|
||||
#define MSG_PREHEAT_PLA "Pre-aquecer PLA"
|
||||
#define MSG_PREHEAT_PLA_N "Pre-aquecer PLA "
|
||||
#define MSG_PREHEAT_PLA_ALL "Pre-aq. PLA Tudo"
|
||||
#define MSG_PREHEAT_PLA_BEDONLY "Pre-aq. PLA \002Base"
|
||||
#define MSG_PREHEAT_PLA_BEDONLY "Pre-aq. PLA " LCD_STR_THERMOMETER "Base"
|
||||
#define MSG_PREHEAT_PLA_SETTINGS "PLA definicoes"
|
||||
#define MSG_PREHEAT_ABS "Pre-aquecer ABS"
|
||||
#define MSG_PREHEAT_ABS_N "Pre-aquecer ABS "
|
||||
#define MSG_PREHEAT_ABS_ALL "Pre-aq. ABS Tudo"
|
||||
#define MSG_PREHEAT_ABS_BEDONLY "Pre-aq. ABS \002Base"
|
||||
#define MSG_PREHEAT_ABS_BEDONLY "Pre-aq. ABS " LCD_STR_THERMOMETER "Base"
|
||||
#define MSG_PREHEAT_ABS_SETTINGS "ABS definicoes"
|
||||
#define MSG_COOLDOWN "Arrefecer"
|
||||
#define MSG_SWITCH_PS_ON "Ligar"
|
||||
#define MSG_SWITCH_PS_OFF "Desligar"
|
||||
#define MSG_EXTRUDE "Extrudir"
|
||||
#define MSG_RETRACT "Retrair"
|
||||
#define MSG_MOVE_AXIS "Mover eixo \x7E"
|
||||
#define MSG_MOVE_AXIS "Mover eixo"
|
||||
#define MSG_MOVE_X "Mover X"
|
||||
#define MSG_MOVE_Y "Mover Y"
|
||||
#define MSG_MOVE_Z "Mover Z"
|
||||
@ -41,14 +46,14 @@
|
||||
#define MSG_MOVE_1MM "Mover 1mm"
|
||||
#define MSG_MOVE_10MM "Mover 10mm"
|
||||
#define MSG_SPEED "Velocidade"
|
||||
#define MSG_NOZZLE "\002Bico"
|
||||
#define MSG_BED "\002Base"
|
||||
#define MSG_NOZZLE LCD_STR_THERMOMETER "Bico"
|
||||
#define MSG_BED LCD_STR_THERMOMETER "Base"
|
||||
#define MSG_FAN_SPEED "Velocidade do ar."
|
||||
#define MSG_FLOW "Fluxo"
|
||||
#define MSG_CONTROL "Controlo \003"
|
||||
#define MSG_MIN "\002 Min"
|
||||
#define MSG_MAX "\002 Max"
|
||||
#define MSG_FACTOR "\002 Fact"
|
||||
#define MSG_CONTROL "Controlo"
|
||||
#define MSG_MIN LCD_STR_THERMOMETER " Min"
|
||||
#define MSG_MAX LCD_STR_THERMOMETER " Max"
|
||||
#define MSG_FACTOR LCD_STR_THERMOMETER " Fact"
|
||||
#define MSG_AUTOTEMP "Autotemp"
|
||||
#define MSG_ON "On "
|
||||
#define MSG_OFF "Off"
|
||||
@ -76,7 +81,7 @@
|
||||
#define MSG_TEMPERATURE "Temperatura"
|
||||
#define MSG_MOTION "Movimento"
|
||||
#define MSG_VOLUMETRIC "Filamento"
|
||||
#define MSG_VOLUMETRIC_ENABLED "E in mm3"
|
||||
#define MSG_VOLUMETRIC_ENABLED "E in mm3"
|
||||
#define MSG_FILAMENT_SIZE_EXTRUDER_0 "Fil. Diam. 1"
|
||||
#define MSG_FILAMENT_SIZE_EXTRUDER_1 "Fil. Diam. 2"
|
||||
#define MSG_FILAMENT_SIZE_EXTRUDER_2 "Fil. Diam. 3"
|
||||
@ -84,10 +89,10 @@
|
||||
#define MSG_STORE_EPROM "Guardar na memoria"
|
||||
#define MSG_LOAD_EPROM "Carregar da memoria"
|
||||
#define MSG_RESTORE_FAILSAFE "Rest. de emergen."
|
||||
#define MSG_REFRESH "\004Recarregar"
|
||||
#define MSG_WATCH "Monitorar \003"
|
||||
#define MSG_PREPARE "Preparar \x7E"
|
||||
#define MSG_TUNE "Afinar \x7E"
|
||||
#define MSG_REFRESH LCD_STR_REFRESH " Recarregar"
|
||||
#define MSG_WATCH "Monitorar"
|
||||
#define MSG_PREPARE "Preparar"
|
||||
#define MSG_TUNE "Afinar"
|
||||
#define MSG_PAUSE_PRINT "Pausar impressao"
|
||||
#define MSG_RESUME_PRINT "Resumir impressao"
|
||||
#define MSG_STOP_PRINT "Parar impressao"
|
||||
|
@ -2,13 +2,16 @@
|
||||
* Russian
|
||||
*
|
||||
* LCD Menu Messages
|
||||
* Please note these are limited to 17 characters!
|
||||
* See also documentation/LCDLanguageFont.md
|
||||
*
|
||||
*/
|
||||
#ifndef LANGUAGE_RU_H
|
||||
#define LANGUAGE_RU_H
|
||||
|
||||
#define LANGUAGE_RU
|
||||
#define MAPPER_D0D1 // For Cyrillic
|
||||
// Define SIMULATE_ROMFONT to see what is seen on the character based display defined in Configuration.h
|
||||
//#define SIMULATE_ROMFONT
|
||||
#define DISPLAY_CHARSET_ISO10646_5
|
||||
|
||||
#define WELCOME_MSG MACHINE_NAME " Готов."
|
||||
#define MSG_SD_INSERTED "Карта вставлена"
|
||||
|
215
Marlin/language_test.h
Normal file
215
Marlin/language_test.h
Normal file
@ -0,0 +1,215 @@
|
||||
/**
|
||||
* TEST
|
||||
*
|
||||
* LCD Menu Messages
|
||||
* See also documentation/LCDLanguageFont.md
|
||||
*
|
||||
*/
|
||||
#ifndef LANGUAGE_TEST_H
|
||||
#define LANGUAGE_TEST_H
|
||||
|
||||
// Select ONE of the following Mappers.
|
||||
// They decide what to do with a symbol in the area of [0x80:0xFF]. They take a symbol of this language file and make them point
|
||||
// into an array with 128 cells, where they'll find the place of the symbol of the font in use.
|
||||
//
|
||||
// a.)For ASCII coded Language_xx.h files like (en) there are no occurrences of symbols above 0x7F so no mapper is needed.
|
||||
// If such a symbol appears it is mapped directly into the font. This is the case for the language files we used until now, with all the STR_XX or
|
||||
// "\xxx" symbols. All Symbols are only one byte long.
|
||||
// b.) For Unicoded Language_xx.h files (currently ru, de and kana_utf8 ) the non ASCII [0x00-0x7F] symbols are represented by more then one byte.
|
||||
// In the case of two bytes the first is pointing to a 'codepage' and the second to a place in the codepage. These codepages contain 64 symbols.
|
||||
// So two of them can be mapped. For most of the European languages the necessary symbols are contained in the pages C2 and C3. Cyrillic uses D0
|
||||
// and D1.
|
||||
// c.) For katakana (one of the Japanese symbol sets) Unicode uses 3 bytes. Here the second byte also points to a codepage and byte 3 to the symbol.
|
||||
// I hope the pages E282 and E283 are sufficient to write katakana.
|
||||
// Kanji (an other Japanese symbol set) uses far more than two codepages. So currently I don't see a chance to map the Unicodes. Its not
|
||||
// impossible to have a close to direct mapping but will need giant conversion tables and fonts (we don't want to have in a embedded system).
|
||||
|
||||
|
||||
#define MAPPER_NON // For direct asci codes ( until now all languages except ru, de, fi, kana_utf8, ... )
|
||||
//#define MAPPER_C2C3 // For most European languages when language file is in utf8
|
||||
//#define MAPPER_D0D1 // For Cyrillic
|
||||
//#define MAPPER_E382E383 // For Katakana
|
||||
|
||||
// Define SIMULATE_ROMFONT to see what is seen on the character based display defined in Configuration.h
|
||||
//#define SIMULATE_ROMFONT
|
||||
|
||||
// Select the better font for full graphic displays.
|
||||
//#define DISPLAY_CHARSET_ISO10646_1
|
||||
//#define DISPLAY_CHARSET_ISO10646_5
|
||||
//#define DISPLAY_CHARSET_ISO10646_KANA
|
||||
|
||||
|
||||
|
||||
// next 5 lines select variants in this file only
|
||||
#define DISPLAYTEST
|
||||
//#define WEST
|
||||
//#define CYRIL
|
||||
//#define KANA
|
||||
|
||||
|
||||
// TESTSTRINGS
|
||||
|
||||
#define STRG_ASCII_2 " !\"#$%&'()*+,-./"
|
||||
#define STRG_ASCII_3 "0123456789:;<=>?"
|
||||
#define STRG_ASCII_4 "@ABCDEFGHIJKLMNO"
|
||||
#define STRG_ASCII_5 "PQRSTUVWXYZ[\]^_"
|
||||
#define STRG_ASCII_6 "`abcdefghijklmno"
|
||||
#define STRG_ASCII_7 "pqrstuvwxyz{|}~"
|
||||
|
||||
#define STRG_C2_8 ""
|
||||
#define STRG_C2_9 ""
|
||||
#define STRG_C2_a " ¡¢£¤¥¦§¨©ª«¬®¯"
|
||||
#define STRG_C2_b "°±²³´µ¶·¸¹º»¼½¾¿"
|
||||
#define STRG_C3_8 "ÈÁÂÃÄÅÆÇÈÉÊËÌÍÎÏ"
|
||||
#define STRG_C3_9 "ÐÑÒÓÔÕÖרÙÚÛÜÝÞß"
|
||||
#define STRG_C3_a "àáâãäåæçèéêëìíîï"
|
||||
#define STRG_C3_b "ðñòóôõö÷øùúûüýþÿ"
|
||||
|
||||
#define STRG_D0_8 "ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏ"
|
||||
#define STRG_D0_9 "АБВГДЕЖЗИЙКЛМНОП"
|
||||
#define STRG_D0_a "РСТУФХЦЧШЩЪЫЬЭЮЯ"
|
||||
#define STRG_D0_b "абвгдежзийклмноп"
|
||||
#define STRG_D1_8 "рстуфхцчшщъыьэюя"
|
||||
#define STRG_D1_9 "ѐёђѓєѕіїјљњћќѝўџ"
|
||||
#define STRG_D1_a "ѠѡѢѣѤѥѦѧѨѩѪѫѬѭѮѯ"
|
||||
#define STRG_D1_b "ѰѱѲѳѴѵѶѷѸѹѺѻѼѽѾѿ"
|
||||
|
||||
#define STRG_E382_8 "よめもゃやゅゆょよらりるれろゎわ"
|
||||
#define STRG_E382_9 "ゐゑをんゔゕゖ゙゚゛ ゜ゝゞゟ"
|
||||
#define STRG_E382_a "゠ァアィイゥウェエォオカガキギク"
|
||||
#define STRG_E382_b "グケゲコゴサザシジスズセゼソゾタ"
|
||||
#define STRG_E383_8 "トチヂッツヅテデトドナニヌネノハ"
|
||||
#define STRG_E383_9 "バパヒビピフブプヘベペホボポマミ"
|
||||
#define STRG_E383_a "ムメモャヤュユョヨラリルレロヮワ"
|
||||
#define STRG_E383_b "ヰヱヲンヴヵヶヷヸヹヺ・ーヽヾヿ"
|
||||
|
||||
#define STRG_OKTAL_0 "\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017"
|
||||
#define STRG_OKTAL_1 "\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
|
||||
#define STRG_OKTAL_2 "\040\041\042\043\044\045\046\047\050\051\052\053\054\055\056\057"
|
||||
#define STRG_OKTAL_3 "\060\061\062\063\064\065\066\067\070\071\072\073\074\075\076\077"
|
||||
#define STRG_OKTAL_4 "\100\101\102\103\104\105\106\107\110\111\112\113\114\115\116\117"
|
||||
#define STRG_OKTAL_5 "\120\121\122\123\124\125\126\127\130\131\132\133\134\135\136\137"
|
||||
#define STRG_OKTAL_6 "\140\141\142\143\144\145\146\147\150\151\152\153\154\155\156\157"
|
||||
#define STRG_OKTAL_7 "\160\161\162\163\164\165\166\167\170\171\172\173\174\175\176\177"
|
||||
#define STRG_OKTAL_8 "\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217"
|
||||
#define STRG_OKTAL_9 "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237"
|
||||
#define STRG_OKTAL_a "\240\241\242\243\244\245\246\247\250\251\252\253\254\255\256\257"
|
||||
#define STRG_OKTAL_b "\260\261\262\263\264\265\266\267\270\271\272\273\274\275\276\277"
|
||||
#define STRG_OKTAL_c "\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317"
|
||||
#define STRG_OKTAL_d "\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337"
|
||||
#define STRG_OKTAL_e "\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357"
|
||||
#define STRG_OKTAL_f "\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377"
|
||||
|
||||
#ifdef DISPLAYTEST
|
||||
#define WELCOME_MSG "Language TEST"
|
||||
|
||||
#define MSG_WATCH "Display test"
|
||||
#define MSG_PREPARE STRG_OKTAL_b
|
||||
#define MSG_CONTROL STRG_OKTAL_c
|
||||
#endif
|
||||
|
||||
#ifdef WEST
|
||||
#define WELCOME_MSG "Language TEST"
|
||||
|
||||
#define MSG_WATCH "\001\002\003\004\005\006\007\010\011"
|
||||
#define MSG_PREPARE "UTF8"
|
||||
#define MSG_CONTROL "ASCII"
|
||||
|
||||
//#define MSG_MAIN ".."
|
||||
#define MSG_DISABLE_STEPPERS STRG_C2_8
|
||||
#define MSG_AUTO_HOME STRG_C2_9
|
||||
#define MSG_SET_HOME_OFFSETS STRG_C2_a
|
||||
#define MSG_PREHEAT_PLA STRG_C2_b
|
||||
#define MSG_PREHEAT_ABS STRG_C3_8
|
||||
#define MSG_COOLDOWN STRG_C3_9
|
||||
#define MSG_SWITCH_PS_OFF STRG_C3_a
|
||||
#define MSG_MOVE_AXIS STRG_C3_b
|
||||
|
||||
#define MSG_MAIN STRG_OKTAL_2
|
||||
#define MSG_TEMPERATURE STRG_OKTAL_3
|
||||
#define MSG_MOTION STRG_OKTAL_4
|
||||
#define MSG_VOLUMETRIC STRG_OKTAL_5
|
||||
#define MSG_CONTRAST STRG_OKTAL_6
|
||||
#define MSG_RESTORE_FAILSAFE STRG_OKTAL_7
|
||||
|
||||
#define MSG_NOZZLE STRG_OKTAL_8
|
||||
#define MSG_FAN_SPEED STRG_OKTAL_9
|
||||
#define MSG_AUTOTEMP STRG_OKTAL_a
|
||||
#define MSG_MIN STRG_OKTAL_b
|
||||
#define MSG_MAX STRG_OKTAL_c
|
||||
#define MSG_FACTOR STRG_OKTAL_d
|
||||
#define MSG_PID_P STRG_OKTAL_e
|
||||
#define MSG_PID_I STRG_OKTAL_f
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef CYRIL
|
||||
#define WELCOME_MSG "Language TEST"
|
||||
|
||||
#define MSG_WATCH "\001\002\003\004\005\006\007\010\011"
|
||||
#define MSG_PREPARE "UTF8"
|
||||
#define MSG_CONTROL "ASCII"
|
||||
|
||||
//#define MSG_MAIN ".."
|
||||
#define MSG_DISABLE_STEPPERS STRG_D0_8
|
||||
#define MSG_AUTO_HOME STRG_D0_9
|
||||
#define MSG_SET_HOME_OFFSETS STRG_D0_a
|
||||
#define MSG_PREHEAT_PLA STRG_D0_b
|
||||
#define MSG_PREHEAT_ABS STRG_D1_8
|
||||
#define MSG_COOLDOWN STRG_D1_9
|
||||
#define MSG_SWITCH_PS_OFF STRG_D1_a
|
||||
#define MSG_MOVE_AXIS STRG_D1_b
|
||||
|
||||
#define MSG_MAIN STRG_OKTAL_2
|
||||
#define MSG_TEMPERATURE STRG_OKTAL_3
|
||||
#define MSG_MOTION STRG_OKTAL_4
|
||||
#define MSG_VOLUMETRIC STRG_OKTAL_5
|
||||
#define MSG_CONTRAST STRG_OKTAL_6
|
||||
#define MSG_RESTORE_FAILSAFE STRG_OKTAL_7
|
||||
|
||||
#define MSG_NOZZLE STRG_OKTAL_8
|
||||
#define MSG_FAN_SPEED STRG_OKTAL_9
|
||||
#define MSG_AUTOTEMP STRG_OKTAL_a
|
||||
#define MSG_MIN STRG_OKTAL_b
|
||||
#define MSG_MAX STRG_OKTAL_c
|
||||
#define MSG_FACTOR STRG_OKTAL_d
|
||||
#define MSG_PID_P STRG_OKTAL_e
|
||||
#define MSG_PID_I STRG_OKTAL_f
|
||||
|
||||
#endif
|
||||
|
||||
#if defined( KANA )
|
||||
#define WELCOME_MSG "Language TEST"
|
||||
|
||||
#define MSG_WATCH "\001\002\003\004\005\006\007\010\011"
|
||||
#define MSG_PREPARE "UTF8"
|
||||
#define MSG_CONTROL "ASCII"
|
||||
|
||||
//#define MSG_MAIN ".."
|
||||
#define MSG_DISABLE_STEPPERS STRG_E382_8
|
||||
#define MSG_AUTO_HOME STRG_E382_9
|
||||
#define MSG_SET_HOME_OFFSETS STRG_E382_a
|
||||
#define MSG_PREHEAT_PLA STRG_E382_b
|
||||
#define MSG_PREHEAT_ABS STRG_E383_8
|
||||
#define MSG_COOLDOWN STRG_E383_9
|
||||
#define MSG_SWITCH_PS_OFF STRG_E383_a
|
||||
#define MSG_MOVE_AXIS STRG_E383_b
|
||||
|
||||
#define MSG_MAIN STRG_OKTAL_2
|
||||
#define MSG_TEMPERATURE STRG_OKTAL_3
|
||||
#define MSG_MOTION STRG_OKTAL_4
|
||||
#define MSG_VOLUMETRIC STRG_OKTAL_5
|
||||
#define MSG_CONTRAST STRG_OKTAL_6
|
||||
#define MSG_RESTORE_FAILSAFE STRG_OKTAL_7
|
||||
|
||||
#define MSG_NOZZLE STRG_OKTAL_8
|
||||
#define MSG_FAN_SPEED STRG_OKTAL_9
|
||||
#define MSG_AUTOTEMP STRG_OKTAL_a
|
||||
#define MSG_MIN STRG_OKTAL_b
|
||||
#define MSG_MAX STRG_OKTAL_c
|
||||
#define MSG_FACTOR STRG_OKTAL_d
|
||||
#define MSG_PID_P STRG_OKTAL_e
|
||||
#define MSG_PID_I STRG_OKTAL_f
|
||||
#endif
|
||||
|
||||
#endif // LANGUAGE_TEST_H
|
@ -1,20 +1,16 @@
|
||||
#include "mesh_bed_leveling.h"
|
||||
|
||||
#if defined(MESH_BED_LEVELING)
|
||||
#ifdef MESH_BED_LEVELING
|
||||
|
||||
mesh_bed_leveling mbl;
|
||||
mesh_bed_leveling mbl;
|
||||
|
||||
mesh_bed_leveling::mesh_bed_leveling() {
|
||||
reset();
|
||||
}
|
||||
|
||||
void mesh_bed_leveling::reset() {
|
||||
for (int y=0; y<MESH_NUM_Y_POINTS; y++) {
|
||||
for (int x=0; x<MESH_NUM_X_POINTS; x++) {
|
||||
z_values[y][x] = 0;
|
||||
}
|
||||
}
|
||||
mesh_bed_leveling::mesh_bed_leveling() { reset(); }
|
||||
|
||||
void mesh_bed_leveling::reset() {
|
||||
active = 0;
|
||||
}
|
||||
for (int y = 0; y < MESH_NUM_Y_POINTS; y++)
|
||||
for (int x = 0; x < MESH_NUM_X_POINTS; x++)
|
||||
z_values[y][x] = 0;
|
||||
}
|
||||
|
||||
#endif // MESH_BED_LEVELING
|
||||
|
@ -2,11 +2,11 @@
|
||||
|
||||
#if defined(MESH_BED_LEVELING)
|
||||
|
||||
#define MESH_X_DIST ((MESH_MAX_X - MESH_MIN_X)/(MESH_NUM_X_POINTS - 1))
|
||||
#define MESH_Y_DIST ((MESH_MAX_Y - MESH_MIN_Y)/(MESH_NUM_Y_POINTS - 1))
|
||||
#define MESH_X_DIST ((MESH_MAX_X - MESH_MIN_X)/(MESH_NUM_X_POINTS - 1))
|
||||
#define MESH_Y_DIST ((MESH_MAX_Y - MESH_MIN_Y)/(MESH_NUM_Y_POINTS - 1))
|
||||
|
||||
class mesh_bed_leveling {
|
||||
public:
|
||||
class mesh_bed_leveling {
|
||||
public:
|
||||
uint8_t active;
|
||||
float z_values[MESH_NUM_Y_POINTS][MESH_NUM_X_POINTS];
|
||||
|
||||
@ -14,48 +14,44 @@ public:
|
||||
|
||||
void reset();
|
||||
|
||||
float get_x(int i) { return MESH_MIN_X + MESH_X_DIST*i; }
|
||||
float get_y(int i) { return MESH_MIN_Y + MESH_Y_DIST*i; }
|
||||
float get_x(int i) { return MESH_MIN_X + MESH_X_DIST * i; }
|
||||
float get_y(int i) { return MESH_MIN_Y + MESH_Y_DIST * i; }
|
||||
void set_z(int ix, int iy, float z) { z_values[iy][ix] = z; }
|
||||
|
||||
int select_x_index(float x) {
|
||||
int i = 1;
|
||||
while (x > get_x(i) && i < MESH_NUM_X_POINTS-1) {
|
||||
i++;
|
||||
}
|
||||
return i-1;
|
||||
int i = 1;
|
||||
while (x > get_x(i) && i < MESH_NUM_X_POINTS-1) i++;
|
||||
return i - 1;
|
||||
}
|
||||
|
||||
int select_y_index(float y) {
|
||||
int i = 1;
|
||||
while (y > get_y(i) && i < MESH_NUM_Y_POINTS-1) {
|
||||
i++;
|
||||
}
|
||||
return i-1;
|
||||
int i = 1;
|
||||
while (y > get_y(i) && i < MESH_NUM_Y_POINTS - 1) i++;
|
||||
return i - 1;
|
||||
}
|
||||
|
||||
float calc_z0(float a0, float a1, float z1, float a2, float z2) {
|
||||
float delta_z = (z2 - z1)/(a2 - a1);
|
||||
float delta_a = a0 - a1;
|
||||
return z1 + delta_a * delta_z;
|
||||
float delta_z = (z2 - z1)/(a2 - a1);
|
||||
float delta_a = a0 - a1;
|
||||
return z1 + delta_a * delta_z;
|
||||
}
|
||||
|
||||
float get_z(float x0, float y0) {
|
||||
int x_index = select_x_index(x0);
|
||||
int y_index = select_y_index(y0);
|
||||
float z1 = calc_z0(x0,
|
||||
get_x(x_index), z_values[y_index][x_index],
|
||||
get_x(x_index+1), z_values[y_index][x_index+1]);
|
||||
float z2 = calc_z0(x0,
|
||||
get_x(x_index), z_values[y_index+1][x_index],
|
||||
get_x(x_index+1), z_values[y_index+1][x_index+1]);
|
||||
float z0 = calc_z0(y0,
|
||||
get_y(y_index), z1,
|
||||
get_y(y_index+1), z2);
|
||||
return z0;
|
||||
int x_index = select_x_index(x0);
|
||||
int y_index = select_y_index(y0);
|
||||
float z1 = calc_z0(x0,
|
||||
get_x(x_index), z_values[y_index][x_index],
|
||||
get_x(x_index+1), z_values[y_index][x_index+1]);
|
||||
float z2 = calc_z0(x0,
|
||||
get_x(x_index), z_values[y_index+1][x_index],
|
||||
get_x(x_index+1), z_values[y_index+1][x_index+1]);
|
||||
float z0 = calc_z0(y0,
|
||||
get_y(y_index), z1,
|
||||
get_y(y_index+1), z2);
|
||||
return z0;
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
extern mesh_bed_leveling mbl;
|
||||
extern mesh_bed_leveling mbl;
|
||||
|
||||
#endif // MESH_BED_LEVELING
|
||||
|
@ -161,7 +161,7 @@ volatile signed char count_direction[NUM_AXIS] = { 1, 1, 1, 1 };
|
||||
Z2_STEP_WRITE(v); \
|
||||
}
|
||||
#else
|
||||
#define Z_APPLY_STEP(v,Q) Z_STEP_WRITE(v), Z2_STEP_WRITE(v)
|
||||
#define Z_APPLY_STEP(v,Q) { Z_STEP_WRITE(v); Z2_STEP_WRITE(v); }
|
||||
#endif
|
||||
#else
|
||||
#define Z_APPLY_DIR(v,Q) Z_DIR_WRITE(v)
|
||||
|
@ -53,10 +53,10 @@
|
||||
//============================= public variables ============================
|
||||
//===========================================================================
|
||||
|
||||
int target_temperature[EXTRUDERS] = { 0 };
|
||||
int target_temperature[4] = { 0 };
|
||||
int target_temperature_bed = 0;
|
||||
int current_temperature_raw[EXTRUDERS] = { 0 };
|
||||
float current_temperature[EXTRUDERS] = { 0.0 };
|
||||
int current_temperature_raw[4] = { 0 };
|
||||
float current_temperature[4] = { 0.0 };
|
||||
int current_temperature_bed_raw = 0;
|
||||
float current_temperature_bed = 0.0;
|
||||
#ifdef TEMP_SENSOR_1_AS_REDUNDANT
|
||||
@ -1181,9 +1181,10 @@ static void set_current_temp_raw() {
|
||||
#endif
|
||||
#if HAS_TEMP_1
|
||||
#ifdef TEMP_SENSOR_1_AS_REDUNDANT
|
||||
redundant_temperature_raw =
|
||||
redundant_temperature_raw = raw_temp_value[1];
|
||||
#else
|
||||
current_temperature_raw[1] = raw_temp_value[1];
|
||||
#endif
|
||||
current_temperature_raw[1] = raw_temp_value[1];
|
||||
#if HAS_TEMP_2
|
||||
current_temperature_raw[2] = raw_temp_value[2];
|
||||
#if HAS_TEMP_3
|
||||
|
@ -41,10 +41,10 @@ void manage_heater(); //it is critical that this is called periodically.
|
||||
|
||||
// low level conversion routines
|
||||
// do not use these routines and variables outside of temperature.cpp
|
||||
extern int target_temperature[EXTRUDERS];
|
||||
extern float current_temperature[EXTRUDERS];
|
||||
extern int target_temperature[4];
|
||||
extern float current_temperature[4];
|
||||
#ifdef SHOW_TEMP_ADC_VALUES
|
||||
extern int current_temperature_raw[EXTRUDERS];
|
||||
extern int current_temperature_raw[4];
|
||||
extern int current_temperature_bed_raw;
|
||||
#endif
|
||||
extern int target_temperature_bed;
|
||||
|
@ -911,7 +911,7 @@ static void lcd_control_motion_menu() {
|
||||
START_MENU();
|
||||
MENU_ITEM(back, MSG_CONTROL, lcd_control_menu);
|
||||
#ifdef ENABLE_AUTO_BED_LEVELING
|
||||
MENU_ITEM_EDIT(float32, MSG_ZPROBE_ZOFFSET, &zprobe_zoffset, 0.0, 50);
|
||||
MENU_ITEM_EDIT(float32, MSG_ZPROBE_ZOFFSET, &zprobe_zoffset, Z_PROBE_OFFSET_RANGE_MIN, Z_PROBE_OFFSET_RANGE_MAX);
|
||||
#endif
|
||||
MENU_ITEM_EDIT(float5, MSG_ACC, &acceleration, 10, 99000);
|
||||
MENU_ITEM_EDIT(float3, MSG_VXY_JERK, &max_xy_jerk, 1, 990);
|
||||
@ -1137,7 +1137,32 @@ menu_edit_type(unsigned long, long5, ftostr5, 0.01)
|
||||
static void lcd_quick_feedback() {
|
||||
lcdDrawUpdate = 2;
|
||||
blocking_enc = millis() + 500;
|
||||
lcd_implementation_quick_feedback();
|
||||
|
||||
#ifdef LCD_USE_I2C_BUZZER
|
||||
#ifndef LCD_FEEDBACK_FREQUENCY_HZ
|
||||
#define LCD_FEEDBACK_FREQUENCY_HZ 100
|
||||
#endif
|
||||
#ifndef LCD_FEEDBACK_FREQUENCY_DURATION_MS
|
||||
#define LCD_FEEDBACK_FREQUENCY_DURATION_MS (1000/6)
|
||||
#endif
|
||||
lcd_buzz(LCD_FEEDBACK_FREQUENCY_DURATION_MS, LCD_FEEDBACK_FREQUENCY_HZ);
|
||||
#elif defined(BEEPER) && BEEPER > -1
|
||||
SET_OUTPUT(BEEPER);
|
||||
#ifndef LCD_FEEDBACK_FREQUENCY_HZ
|
||||
#define LCD_FEEDBACK_FREQUENCY_HZ 500
|
||||
#endif
|
||||
#ifndef LCD_FEEDBACK_FREQUENCY_DURATION_MS
|
||||
#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 50
|
||||
#endif
|
||||
const unsigned int delay = 1000000 / LCD_FEEDBACK_FREQUENCY_HZ / 2;
|
||||
int i = LCD_FEEDBACK_FREQUENCY_DURATION_MS * LCD_FEEDBACK_FREQUENCY_HZ / 1000;
|
||||
while (i--) {
|
||||
WRITE(BEEPER,HIGH);
|
||||
delayMicroseconds(delay);
|
||||
WRITE(BEEPER,LOW);
|
||||
delayMicroseconds(delay);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
/** Menu action functions **/
|
||||
@ -1330,7 +1355,7 @@ void lcd_update() {
|
||||
blink++; // Variable for fan animation and alive dot
|
||||
u8g.firstPage();
|
||||
do {
|
||||
u8g.setFont(FONT_MENU);
|
||||
lcd_setFont(FONT_MENU);
|
||||
u8g.setPrintPos(125, 0);
|
||||
if (blink % 2) u8g.setColorIndex(1); else u8g.setColorIndex(0); // Set color for the alive dot
|
||||
u8g.drawPixel(127, 63); // draw alive dot
|
||||
|
@ -179,25 +179,20 @@
|
||||
// 2 wire Non-latching LCD SR from:
|
||||
// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/schematics#!shiftregister-connection
|
||||
#elif defined(SR_LCD_2W_NL)
|
||||
|
||||
extern "C" void __cxa_pure_virtual() { while (1); }
|
||||
#include <LCD.h>
|
||||
#include <LiquidCrystal_SR.h>
|
||||
#define LCD_CLASS LiquidCrystal_SR
|
||||
LCD_CLASS lcd(SR_DATA_PIN, SR_CLK_PIN);
|
||||
|
||||
#else
|
||||
// Standard directly connected LCD implementations
|
||||
#ifdef LANGUAGE_RU
|
||||
#include "LiquidCrystalRus.h"
|
||||
#define LCD_CLASS LiquidCrystalRus
|
||||
#else
|
||||
#include <LiquidCrystal.h>
|
||||
#define LCD_CLASS LiquidCrystal
|
||||
#endif
|
||||
#include <LiquidCrystal.h>
|
||||
#define LCD_CLASS LiquidCrystal
|
||||
LCD_CLASS lcd(LCD_PINS_RS, LCD_PINS_ENABLE, LCD_PINS_D4, LCD_PINS_D5,LCD_PINS_D6,LCD_PINS_D7); //RS,Enable,D4,D5,D6,D7
|
||||
#endif
|
||||
|
||||
#include "utf_mapper.h"
|
||||
|
||||
#if defined(LCD_PROGRESS_BAR) && defined(SDSUPPORT)
|
||||
static uint16_t progressBarTick = 0;
|
||||
#if PROGRESS_MSG_EXPIRE > 0
|
||||
@ -207,7 +202,7 @@
|
||||
#endif
|
||||
|
||||
/* Custom characters defined in the first 8 characters of the LCD */
|
||||
#define LCD_STR_BEDTEMP "\x00"
|
||||
#define LCD_STR_BEDTEMP "\x00" // this will have 'unexpected' results when used in a string!
|
||||
#define LCD_STR_DEGREE "\x01"
|
||||
#define LCD_STR_THERMOMETER "\x02"
|
||||
#define LCD_STR_UPLEVEL "\x03"
|
||||
@ -215,7 +210,8 @@
|
||||
#define LCD_STR_FOLDER "\x05"
|
||||
#define LCD_STR_FEEDRATE "\x06"
|
||||
#define LCD_STR_CLOCK "\x07"
|
||||
#define LCD_STR_ARROW_RIGHT "\x7E" /* from the default character set */
|
||||
//#define LCD_STR_ARROW_RIGHT "\x7E" /* from the default character set. Only available on DISPLAY_CHARSET_HD44780_JAPAN - at this place!*/
|
||||
#define LCD_STR_ARROW_RIGHT ">" /* from the default character set */
|
||||
|
||||
static void lcd_set_custom_characters(
|
||||
#if defined(LCD_PROGRESS_BAR) && defined(SDSUPPORT)
|
||||
@ -405,15 +401,30 @@ static void lcd_implementation_clear()
|
||||
{
|
||||
lcd.clear();
|
||||
}
|
||||
|
||||
/* Arduino < 1.0.0 is missing a function to print PROGMEM strings, so we need to implement our own */
|
||||
static void lcd_printPGM(const char* str)
|
||||
{
|
||||
char c;
|
||||
while((c = pgm_read_byte(str++)) != '\0')
|
||||
{
|
||||
lcd.write(c);
|
||||
}
|
||||
char lcd_printPGM(const char* str) {
|
||||
char c;
|
||||
char n = 0;
|
||||
while((c = pgm_read_byte(str++))) {
|
||||
n += charset_mapper(c);
|
||||
}
|
||||
return n;
|
||||
}
|
||||
|
||||
char lcd_print(char* str) {
|
||||
char c, n = 0;;
|
||||
unsigned char i = 0;
|
||||
while((c = str[i++])) {
|
||||
n += charset_mapper(c);
|
||||
}
|
||||
return n;
|
||||
}
|
||||
|
||||
unsigned lcd_print(char c) {
|
||||
return charset_mapper(c);
|
||||
}
|
||||
|
||||
/*
|
||||
Possible status screens:
|
||||
16x2 |0123456789012345|
|
||||
@ -608,7 +619,7 @@ static void lcd_implementation_status_screen()
|
||||
}
|
||||
#endif //FILAMENT_LCD_DISPLAY
|
||||
|
||||
lcd.print(lcd_status_message);
|
||||
lcd_print(lcd_status_message);
|
||||
}
|
||||
|
||||
static void lcd_implementation_drawmenu_generic(bool sel, uint8_t row, const char* pstr, char pre_char, char post_char) {
|
||||
@ -617,27 +628,26 @@ static void lcd_implementation_drawmenu_generic(bool sel, uint8_t row, const cha
|
||||
lcd.setCursor(0, row);
|
||||
lcd.print(sel ? pre_char : ' ');
|
||||
while ((c = pgm_read_byte(pstr)) && n > 0) {
|
||||
lcd.print(c);
|
||||
n -= lcd_print(c);
|
||||
pstr++;
|
||||
if ((pgm_read_byte(pstr) & 0xc0) != 0x80) n--;
|
||||
}
|
||||
while(n--) lcd.print(' ');
|
||||
lcd.print(post_char);
|
||||
lcd.print(' ');
|
||||
}
|
||||
|
||||
static void lcd_implementation_drawmenu_setting_edit_generic(bool sel, uint8_t row, const char* pstr, char pre_char, char* data) {
|
||||
char c;
|
||||
uint8_t n = LCD_WIDTH - 1 - (LCD_WIDTH < 20 ? 1 : 2) - lcd_strlen(data);
|
||||
lcd.setCursor(0, row);
|
||||
lcd.print(sel ? pre_char : ' ');
|
||||
while ((c = pgm_read_byte(pstr)) && n > 0) {
|
||||
lcd.print(c);
|
||||
n -= lcd_print(c);
|
||||
pstr++;
|
||||
if ((pgm_read_byte(pstr) & 0xc0) != 0x80) n--;
|
||||
}
|
||||
lcd.print(':');
|
||||
while (n--) lcd.print(' ');
|
||||
lcd.print(data);
|
||||
lcd_print(data);
|
||||
}
|
||||
static void lcd_implementation_drawmenu_setting_edit_generic_P(bool sel, uint8_t row, const char* pstr, char pre_char, const char* data) {
|
||||
char c;
|
||||
@ -645,14 +655,14 @@ static void lcd_implementation_drawmenu_setting_edit_generic_P(bool sel, uint8_t
|
||||
lcd.setCursor(0, row);
|
||||
lcd.print(sel ? pre_char : ' ');
|
||||
while ((c = pgm_read_byte(pstr)) && n > 0) {
|
||||
lcd.print(c);
|
||||
n -= lcd_print(c);
|
||||
pstr++;
|
||||
if ((pgm_read_byte(pstr) & 0xc0) != 0x80) n--;
|
||||
}
|
||||
lcd.print(':');
|
||||
while (n--) lcd.print(' ');
|
||||
lcd_printPGM(data);
|
||||
}
|
||||
|
||||
#define lcd_implementation_drawmenu_setting_edit_int3(sel, row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(sel, row, pstr, '>', itostr3(*(data)))
|
||||
#define lcd_implementation_drawmenu_setting_edit_float3(sel, row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(sel, row, pstr, '>', ftostr3(*(data)))
|
||||
#define lcd_implementation_drawmenu_setting_edit_float32(sel, row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(sel, row, pstr, '>', ftostr32(*(data)))
|
||||
@ -679,8 +689,9 @@ void lcd_implementation_drawedit(const char* pstr, char* value) {
|
||||
lcd_printPGM(pstr);
|
||||
lcd.print(':');
|
||||
lcd.setCursor(LCD_WIDTH - (LCD_WIDTH < 20 ? 0 : 1) - lcd_strlen(value), 1);
|
||||
lcd.print(value);
|
||||
lcd_print(value);
|
||||
}
|
||||
|
||||
static void lcd_implementation_drawmenu_sd(bool sel, uint8_t row, const char* pstr, const char* filename, char* longFilename, uint8_t concat) {
|
||||
char c;
|
||||
uint8_t n = LCD_WIDTH - concat;
|
||||
@ -691,9 +702,8 @@ static void lcd_implementation_drawmenu_sd(bool sel, uint8_t row, const char* ps
|
||||
longFilename[n] = '\0';
|
||||
}
|
||||
while ((c = *filename) && n > 0) {
|
||||
lcd.print(c);
|
||||
n -= lcd_print(c);
|
||||
filename++;
|
||||
n--;
|
||||
}
|
||||
while (n--) lcd.print(' ');
|
||||
}
|
||||
@ -701,40 +711,16 @@ static void lcd_implementation_drawmenu_sd(bool sel, uint8_t row, const char* ps
|
||||
static void lcd_implementation_drawmenu_sdfile(bool sel, uint8_t row, const char* pstr, const char* filename, char* longFilename) {
|
||||
lcd_implementation_drawmenu_sd(sel, row, pstr, filename, longFilename, 1);
|
||||
}
|
||||
|
||||
static void lcd_implementation_drawmenu_sddirectory(bool sel, uint8_t row, const char* pstr, const char* filename, char* longFilename) {
|
||||
lcd_implementation_drawmenu_sd(sel, row, pstr, filename, longFilename, 2);
|
||||
}
|
||||
|
||||
#define lcd_implementation_drawmenu_back(sel, row, pstr, data) lcd_implementation_drawmenu_generic(sel, row, pstr, LCD_STR_UPLEVEL[0], LCD_STR_UPLEVEL[0])
|
||||
#define lcd_implementation_drawmenu_submenu(sel, row, pstr, data) lcd_implementation_drawmenu_generic(sel, row, pstr, '>', LCD_STR_ARROW_RIGHT[0])
|
||||
#define lcd_implementation_drawmenu_gcode(sel, row, pstr, gcode) lcd_implementation_drawmenu_generic(sel, row, pstr, '>', ' ')
|
||||
#define lcd_implementation_drawmenu_function(sel, row, pstr, data) lcd_implementation_drawmenu_generic(sel, row, pstr, '>', ' ')
|
||||
|
||||
static void lcd_implementation_quick_feedback()
|
||||
{
|
||||
#ifdef LCD_USE_I2C_BUZZER
|
||||
#if defined(LCD_FEEDBACK_FREQUENCY_DURATION_MS) && defined(LCD_FEEDBACK_FREQUENCY_HZ)
|
||||
lcd_buzz(LCD_FEEDBACK_FREQUENCY_DURATION_MS, LCD_FEEDBACK_FREQUENCY_HZ);
|
||||
#else
|
||||
lcd_buzz(1000/6, 100);
|
||||
#endif
|
||||
#elif defined(BEEPER) && BEEPER > -1
|
||||
SET_OUTPUT(BEEPER);
|
||||
#if !defined(LCD_FEEDBACK_FREQUENCY_HZ) || !defined(LCD_FEEDBACK_FREQUENCY_DURATION_MS)
|
||||
const unsigned int delay = 100;
|
||||
uint8_t i = 10;
|
||||
#else
|
||||
const unsigned int delay = 1000000 / LCD_FEEDBACK_FREQUENCY_HZ / 2;
|
||||
int8_t i = LCD_FEEDBACK_FREQUENCY_DURATION_MS * LCD_FEEDBACK_FREQUENCY_HZ / 1000;
|
||||
#endif
|
||||
while (i--) {
|
||||
WRITE(BEEPER,HIGH);
|
||||
delayMicroseconds(delay);
|
||||
WRITE(BEEPER,LOW);
|
||||
delayMicroseconds(delay);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef LCD_HAS_STATUS_INDICATORS
|
||||
static void lcd_implementation_update_indicators()
|
||||
{
|
||||
|
252
Marlin/utf_mapper.h
Normal file
252
Marlin/utf_mapper.h
Normal file
@ -0,0 +1,252 @@
|
||||
#ifndef UTF_MAPPER_H
|
||||
#define UTF_MAPPER_H
|
||||
|
||||
#include "language.h"
|
||||
|
||||
#ifdef DOGLCD
|
||||
#define HARDWARE_CHAR_OUT u8g.print
|
||||
#else
|
||||
#define HARDWARE_CHAR_OUT lcd.write
|
||||
#endif
|
||||
|
||||
#if !(defined( SIMULATE_ROMFONT )) && defined( DOGLCD )
|
||||
#if defined( DISPLAY_CHARSET_ISO10646_1 )
|
||||
#define MAPPER_ONE_TO_ONE
|
||||
#elif defined( DISPLAY_CHARSET_ISO10646_5 )
|
||||
#define MAPPER_ONE_TO_ONE
|
||||
#elif defined( DISPLAY_CHARSET_ISO10646_KANA )
|
||||
#define MAPPER_ONE_TO_ONE
|
||||
#endif
|
||||
#else // SIMULATE_ROMFONT
|
||||
#if defined( DISPLAY_CHARSET_HD44780_JAPAN )
|
||||
#if defined( MAPPER_C2C3 )
|
||||
const PROGMEM uint8_t utf_recode[] =
|
||||
{ // 0 1 2 3 4 5 6 7 8 9 a b c d e f This is fair for symbols
|
||||
0x20,0x3f,0xec,0xed,0x3f,0x5c,0x7c,0x3f,0x22,0x63,0x61,0x7f,0x3f,0x3f,0x52,0xb0, // c2a
|
||||
// ' ' ¢ £ l " c a « R
|
||||
0xdf,0x3f,0x32,0x33,0x27,0xe4,0xf1,0xa5,0x2c,0x31,0xdf,0x7e,0x3f,0x3f,0x3f,0x3f, // c2b but relatively bad for letters.
|
||||
// ° 2 3 ` N p . , 1 ° »
|
||||
0x3f,0x3f,0x3f,0x3f,0xe1,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f, // c38
|
||||
// ä
|
||||
0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0xef,0x78,0x3f,0x3f,0x3f,0x3f,0xf5,0x3f,0x3f,0xe2, // c39 missing characters display as '?'
|
||||
// ö x ü ß
|
||||
0x3f,0x3f,0x3f,0x3f,0xe1,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f, // c3a
|
||||
// ä
|
||||
0x3f,0xee,0x3f,0x3f,0x3f,0x3f,0xef,0xfd,0x3f,0x3f,0x3f,0x3f,0xf5,0x3f,0x3f,0x3f // c3b
|
||||
// n ö ÷ ü
|
||||
};
|
||||
#elif defined( MAPPER_E382E383 )
|
||||
const PROGMEM uint8_t utf_recode[] =
|
||||
{ // 0 1 2 3 4 5 6 7 8 9 a b c d e f
|
||||
0x3d,0xb1,0xb1,0xa8,0xb2,0xa9,0xb3,0xaa,0xb4,0xab,0xb5,0xb6,0xb6,0xb7,0xb7,0xb8, // e382a Please test and correct
|
||||
// = ア ア ィ イ ゥ ウ ェ エ ォ オ ガ ガ キ キ ク
|
||||
0xb8,0xb9,0xb9,0xba,0xba,0xbb,0xbb,0xbc,0xbc,0xbd,0xbd,0xbe,0xbe,0xbf,0xbf,0xc0, // e382b
|
||||
// ク ケ ケ コ コ サ サ シ シ ス ス セ セ ソ ソ タ
|
||||
0xc0,0xc1,0xc1,0xc2,0xc2,0xc2,0xc3,0xc3,0xc4,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca, // e3838
|
||||
// タ チ チ ッ ッ ッ テ テ ト ト ナ ニ ヌ ネ ノ ハ
|
||||
0xca,0xca,0xcb,0xcb,0xcb,0xcc,0xcc,0xcc,0xcd,0xcd,0xcd,0xce,0xce,0xce,0xcf,0xd0, // e3839
|
||||
// ハ ハ ヒ ヒ ヒ フ フ フ ヘ ヘ ヘ ホ ホ ホ マ ミ
|
||||
0xd1,0xd2,0xd3,0xd4,0xd4,0xd5,0xd5,0xae,0xd6,0xd7,0xd8,0xd9,0xda,0xdb,0xdc,0xdc, // e383a
|
||||
// ム メ モ ャ ャ ユ ユ ョ ヨ ラ リ ル レ ロ ワ ワ
|
||||
0xec,0xa7,0xa6,0xdd,0xcc,0x3f,0x3f,0x3f,0x3f,0x3f,0xa6,0xa5,0xb0,0xa4,0xa4,0x3f // e383b
|
||||
// ヰ ヱ ヲ ン フ ? ? ? ? ? ヲ ・ ー ヽ ヽ ?
|
||||
};
|
||||
#elif defined( MAPPER_D0D1 )
|
||||
#error( "Cyrillic on a japanese dsplay makes no sense. There are no matching symbols.");
|
||||
#endif
|
||||
|
||||
#elif defined( DISPLAY_CHARSET_HD44780_WESTERN )
|
||||
#if defined( MAPPER_C2C3 )
|
||||
:
|
||||
const PROGMEM uint8_t utf_recode[] =
|
||||
{ // 0 1 2 3 4 5 6 7 8 9 a b c d e f This is relative complete.
|
||||
0x20,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0x22,0xa9,0xaa,0xab,0x3f,0x3f,0xae,0x3f, // c2a ¡¢£¤¥¦§¨©ª«¬®¯
|
||||
// ' ' ¡ ¢ £ ¤ ¥ ¦ § " © ª « ? ? ® ?
|
||||
0xb0,0xb1,0xb2,0xb3,0x27,0xb5,0xb6,0xb7,0x2c,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf, // c2b °±²³´µ¶·¸¹º»¼½¾¿
|
||||
// ° ± ³ ² ? µ ¶ · , ¹ º » ¼ ½ ¾ ¿
|
||||
0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf, // c38 ÀÁÃÄÅÆÇÈÉÊËÌÍÎÏ
|
||||
// À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï
|
||||
0xd0,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7,0xd8,0xd9,0xda,0xdb,0xdc,0xdd,0xde,0xdf, // c39 ÐÑÓÔÕÖרÙÚÛÜÝÞß
|
||||
// Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß
|
||||
0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xea,0xeb,0xec,0xed,0xee,0xef, // c3a àáãäåæçèéêëìíîï
|
||||
// à á â ã ä å æ ç è é ê ë ì í î ï
|
||||
0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff // c3b ðñóôõö÷øùúûüýþÿ
|
||||
// ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ
|
||||
};
|
||||
#elif defined( MAPPER_D0D1 )
|
||||
#define MAPPER_D0D1_MOD
|
||||
const PROGMEM uint8_t utf_recode[] =
|
||||
{//0 1 2 3 4 5 6 7 8 9 a b c d e f
|
||||
0x41,0x80,0x42,0x92,0x81,0x45,0x82,0x83,0x84,0x85,0x4b,0x86,0x4d,0x48,0x4f,0x87, // d0a
|
||||
// A Б B Г Д E Ж З И Й K Л M H O П
|
||||
0x50,0x43,0x54,0x88,0xd8,0x58,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x62,0x8f,0xac,0xad, // d0b
|
||||
// P C T У Ф X Ч ч Ш Щ Ъ Ы b Э Ю Я
|
||||
0x61,0x36,0x42,0x92,0x81,0x65,0x82,0xb3,0x84,0x85,0x6b,0x86,0x4d,0x48,0x6f,0x87, // d18
|
||||
// a 6 B Г Д e Ж ³ И Й k Л M H o П
|
||||
0x70,0x63,0x54,0x79,0xd8,0x78,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x62,0x8f,0xac,0xad // d19
|
||||
// p c T y Ф x Ч ч Ш Щ Ъ Ы b Э Ю Я
|
||||
};
|
||||
#elif defined( MAPPER_E382E383 )
|
||||
#error( "Katakana on a western display makes no sense. There are no matching symbols." );
|
||||
#endif
|
||||
|
||||
#elif defined( DISPLAY_CHARSET_HD44780_CYRILLIC )
|
||||
#if defined( MAPPER_D0D1 )
|
||||
#define MAPPER_D0D1_MOD
|
||||
// it is a Russian alphabet translation
|
||||
// except 0401 --> 0xa2 = Ё, 0451 --> 0xb5 = ё
|
||||
const PROGMEM uint8_t utf_recode[] =
|
||||
{ 0x41,0xa0,0x42,0xa1,0xe0,0x45,0xa3,0xa4, // unicode U+0400 to U+047f
|
||||
// A Б->Ё B Г Д E Ж З // 0 Ѐ Ё Ђ Ѓ Є Ѕ І Ї
|
||||
0xa5,0xa6,0x4b,0xa7,0x4d,0x48,0x4f,0xa8, // Ј Љ Њ Ћ Ќ Ѝ Ў Џ
|
||||
// И Й K Л M H O П // 1 А Б В Г Д Е Ж З
|
||||
0x50,0x43,0x54,0xa9,0xaa,0x58,0xe1,0xab, // И Й К Л М Н О П
|
||||
// P C T У Ф X Ч ч // 2 Р С Т У Ф Х Г Ч
|
||||
0xac,0xe2,0xad,0xae,0x62,0xaf,0xb0,0xb1, // Ш Щ Ъ Ы Ь Э Ю Я
|
||||
// Ш Щ Ъ Ы b Э Ю Я // 3 а б в г д е ж з
|
||||
0x61,0xb2,0xb3,0xb4,0xe3,0x65,0xb6,0xb7, // и й к л м н о п
|
||||
// a б->ё в г д e ж з // 4 р с т у ф х ц ч
|
||||
0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0x6f,0xbe, // ш щ ъ ы ь э ю я
|
||||
// и й к л м н o п // 5 ѐ ё ђ ѓ є ѕ і ї
|
||||
0x70,0x63,0xbf,0x79,0xe4,0x78,0xe5,0xc0, // ј љ њ ћ ќ ѝ ў џ
|
||||
// p c т y ф x ц ч // 6 Ѡ ѡ Ѣ ѣ Ѥ ѥ Ѧ ѧ
|
||||
0xc1,0xe6,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7 // Ѫ ѩ Ѫ ѫ Ѭ ѭ Ѯ ѯ
|
||||
// ш щ ъ ы ь э ю я // 7 Ѱ ѱ Ѳ ѳ Ѵ ѵ Ѷ ѷ
|
||||
}; // ѻ ѹ Ѻ ѻ Ѽ ѽ Ѿ ѿ
|
||||
#elif defined( MAPPER_C2C3 )
|
||||
#error( "Western languages on a cyrillic display makes no sense. There are no matching symbols." );
|
||||
#elif defined( MAPPER_E382E383 )
|
||||
#error( "Katakana on a cyrillic display makes no sense. There are no matching symbols." );
|
||||
#endif
|
||||
#else
|
||||
#error("Something went wrong in the selection of DISPLAY_CHARSET_HD44780's");
|
||||
#endif // DISPLAY_CHARSET_HD44780_CYRILLIC
|
||||
#endif // SIMULATE_ROMFONT
|
||||
|
||||
#if defined( MAPPER_NON )
|
||||
char charset_mapper(char c){
|
||||
HARDWARE_CHAR_OUT( c );
|
||||
return 1;
|
||||
}
|
||||
#elif defined( MAPPER_C2C3 )
|
||||
uint8_t utf_hi_char; // UTF-8 high part
|
||||
bool seen_c2 = false;
|
||||
char charset_mapper(char c){
|
||||
uint8_t d = c;
|
||||
if ( d >= 0x80 ) { // UTF-8 handling
|
||||
if ( (d >= 0xc0) && (!seen_c2) ) {
|
||||
utf_hi_char = d - 0xc2;
|
||||
seen_c2 = true;
|
||||
return 0;
|
||||
}
|
||||
else if (seen_c2){
|
||||
d &= 0x3f;
|
||||
#ifndef MAPPER_ONE_TO_ONE
|
||||
HARDWARE_CHAR_OUT( (char) pgm_read_byte_near( utf_recode + d + ( utf_hi_char << 6 ) - 0x20 ) );
|
||||
#else
|
||||
HARDWARE_CHAR_OUT( (char) (0x80 + ( utf_hi_char << 6 ) + d) ) ;
|
||||
#endif
|
||||
}
|
||||
else {
|
||||
HARDWARE_CHAR_OUT('?');
|
||||
}
|
||||
}
|
||||
else {
|
||||
HARDWARE_CHAR_OUT((char) c );
|
||||
}
|
||||
seen_c2 = false;
|
||||
return 1;
|
||||
}
|
||||
#elif defined( MAPPER_D0D1_MOD )
|
||||
uint8_t utf_hi_char; // UTF-8 high part
|
||||
bool seen_d5 = false;
|
||||
char charset_mapper(char c){
|
||||
// it is a Russian alphabet translation
|
||||
// except 0401 --> 0xa2 = Ё, 0451 --> 0xb5 = ё
|
||||
uint8_t d = c;
|
||||
if ( d >= 0x80 ) { // UTF-8 handling
|
||||
if ((d >= 0xd0) && (!seen_d5)) {
|
||||
utf_hi_char = d - 0xd0;
|
||||
seen_d5 = true;
|
||||
return 0;
|
||||
} else if (seen_d5) {
|
||||
d &= 0x3f;
|
||||
if ( !utf_hi_char && ( d == 1 )) {
|
||||
HARDWARE_CHAR_OUT((char) 0xa2 ); // Ё
|
||||
} else if ((utf_hi_char == 1) && (d == 0x11)) {
|
||||
HARDWARE_CHAR_OUT((char) 0xb5 ); // ё
|
||||
} else {
|
||||
HARDWARE_CHAR_OUT((char) pgm_read_byte_near( utf_recode + d + ( utf_hi_char << 6 ) - 0x10 ) );
|
||||
}
|
||||
}
|
||||
else {
|
||||
HARDWARE_CHAR_OUT('?');
|
||||
}
|
||||
} else {
|
||||
HARDWARE_CHAR_OUT((char) c );
|
||||
}
|
||||
seen_d5 = false;
|
||||
return 1;
|
||||
}
|
||||
#elif defined( MAPPER_D0D1 )
|
||||
uint8_t utf_hi_char; // UTF-8 high part
|
||||
bool seen_d5 = false;
|
||||
char charset_mapper(char c){
|
||||
uint8_t d = c;
|
||||
if ( d >= 0x80u ) { // UTF-8 handling
|
||||
if ((d >= 0xd0u) && (!seen_d5)) {
|
||||
utf_hi_char = d - 0xd0u;
|
||||
seen_d5 = true;
|
||||
return 0;
|
||||
} else if (seen_d5) {
|
||||
d &= 0x3fu;
|
||||
#ifndef MAPPER_ONE_TO_ONE
|
||||
HARDWARE_CHAR_OUT( (char) pgm_read_byte_near( utf_recode + d + ( utf_hi_char << 6 ) - 0x20 ) );
|
||||
#else
|
||||
HARDWARE_CHAR_OUT( (char) (0xa0u + ( utf_hi_char << 6 ) + d ) ) ;
|
||||
#endif
|
||||
} else {
|
||||
HARDWARE_CHAR_OUT('?');
|
||||
}
|
||||
} else {
|
||||
HARDWARE_CHAR_OUT((char) c );
|
||||
}
|
||||
seen_d5 = false;
|
||||
return 1;
|
||||
}
|
||||
#elif defined( MAPPER_E382E383 )
|
||||
uint8_t utf_hi_char; // UTF-8 high part
|
||||
bool seen_e3 = false;
|
||||
bool seen_82_83 = false;
|
||||
char charset_mapper(char c){
|
||||
uint8_t d = c;
|
||||
if ( d >= 0x80 ) { // UTF-8 handling
|
||||
if ( (d == 0xe3) && (seen_e3 == false)) {
|
||||
seen_e3 = true;
|
||||
return 0; // eat 0xe3
|
||||
} else if ( (d >= 0x82) && (seen_e3 == true) && (seen_82_83 == false)) {
|
||||
utf_hi_char = d - 0x82;
|
||||
seen_82_83 = true;
|
||||
return 0;
|
||||
} else if ((seen_e3 == true) && (seen_82_83 == true)){
|
||||
d &= 0x3f;
|
||||
#ifndef MAPPER_ONE_TO_ONE
|
||||
HARDWARE_CHAR_OUT( (char) pgm_read_byte_near( utf_recode + d + ( utf_hi_char << 6 ) - 0x20 ) );
|
||||
#else
|
||||
HARDWARE_CHAR_OUT( (char) (0x80 + ( utf_hi_char << 6 ) + d ) ) ;
|
||||
#endif
|
||||
} else {
|
||||
HARDWARE_CHAR_OUT((char) '?' );
|
||||
}
|
||||
} else {
|
||||
HARDWARE_CHAR_OUT((char) c );
|
||||
}
|
||||
seen_e3 = false;
|
||||
seen_82_83 = false;
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
#error "You have to define one of the DISPLAY_INPUT_CODE_MAPPERs in your language_xx.h file" // should not occur because (en) will set.
|
||||
#endif // code mappers
|
||||
|
||||
#endif // UTF_MAPPER_H
|
@ -26,57 +26,40 @@ vector_3::vector_3() : x(0), y(0), z(0) { }
|
||||
|
||||
vector_3::vector_3(float x_, float y_, float z_) : x(x_), y(y_), z(z_) { }
|
||||
|
||||
vector_3 vector_3::cross(vector_3 left, vector_3 right)
|
||||
{
|
||||
vector_3 vector_3::cross(vector_3 left, vector_3 right) {
|
||||
return vector_3(left.y * right.z - left.z * right.y,
|
||||
left.z * right.x - left.x * right.z,
|
||||
left.x * right.y - left.y * right.x);
|
||||
}
|
||||
|
||||
vector_3 vector_3::operator+(vector_3 v)
|
||||
{
|
||||
return vector_3((x + v.x), (y + v.y), (z + v.z));
|
||||
}
|
||||
vector_3 vector_3::operator+(vector_3 v) { return vector_3((x + v.x), (y + v.y), (z + v.z)); }
|
||||
vector_3 vector_3::operator-(vector_3 v) { return vector_3((x - v.x), (y - v.y), (z - v.z)); }
|
||||
|
||||
vector_3 vector_3::operator-(vector_3 v)
|
||||
{
|
||||
return vector_3((x - v.x), (y - v.y), (z - v.z));
|
||||
}
|
||||
|
||||
vector_3 vector_3::get_normal()
|
||||
{
|
||||
vector_3 vector_3::get_normal() {
|
||||
vector_3 normalized = vector_3(x, y, z);
|
||||
normalized.normalize();
|
||||
return normalized;
|
||||
}
|
||||
|
||||
float vector_3::get_length()
|
||||
{
|
||||
float length = sqrt((x * x) + (y * y) + (z * z));
|
||||
return length;
|
||||
}
|
||||
|
||||
void vector_3::normalize()
|
||||
{
|
||||
float vector_3::get_length() { return sqrt((x * x) + (y * y) + (z * z)); }
|
||||
|
||||
void vector_3::normalize() {
|
||||
float length = get_length();
|
||||
x /= length;
|
||||
y /= length;
|
||||
z /= length;
|
||||
}
|
||||
|
||||
void vector_3::apply_rotation(matrix_3x3 matrix)
|
||||
{
|
||||
void vector_3::apply_rotation(matrix_3x3 matrix) {
|
||||
float resultX = x * matrix.matrix[3*0+0] + y * matrix.matrix[3*1+0] + z * matrix.matrix[3*2+0];
|
||||
float resultY = x * matrix.matrix[3*0+1] + y * matrix.matrix[3*1+1] + z * matrix.matrix[3*2+1];
|
||||
float resultZ = x * matrix.matrix[3*0+2] + y * matrix.matrix[3*1+2] + z * matrix.matrix[3*2+2];
|
||||
|
||||
x = resultX;
|
||||
y = resultY;
|
||||
z = resultZ;
|
||||
}
|
||||
|
||||
void vector_3::debug(char* title)
|
||||
{
|
||||
void vector_3::debug(const char title[]) {
|
||||
SERIAL_PROTOCOL(title);
|
||||
SERIAL_PROTOCOLPGM(" x: ");
|
||||
SERIAL_PROTOCOL_F(x, 6);
|
||||
@ -87,8 +70,7 @@ void vector_3::debug(char* title)
|
||||
SERIAL_EOL;
|
||||
}
|
||||
|
||||
void apply_rotation_xyz(matrix_3x3 matrix, float &x, float& y, float& z)
|
||||
{
|
||||
void apply_rotation_xyz(matrix_3x3 matrix, float &x, float& y, float& z) {
|
||||
vector_3 vector = vector_3(x, y, z);
|
||||
vector.apply_rotation(matrix);
|
||||
x = vector.x;
|
||||
@ -96,48 +78,41 @@ void apply_rotation_xyz(matrix_3x3 matrix, float &x, float& y, float& z)
|
||||
z = vector.z;
|
||||
}
|
||||
|
||||
matrix_3x3 matrix_3x3::create_from_rows(vector_3 row_0, vector_3 row_1, vector_3 row_2)
|
||||
{
|
||||
//row_0.debug("row_0");
|
||||
//row_1.debug("row_1");
|
||||
//row_2.debug("row_2");
|
||||
matrix_3x3 matrix_3x3::create_from_rows(vector_3 row_0, vector_3 row_1, vector_3 row_2) {
|
||||
//row_0.debug("row_0");
|
||||
//row_1.debug("row_1");
|
||||
//row_2.debug("row_2");
|
||||
matrix_3x3 new_matrix;
|
||||
new_matrix.matrix[0] = row_0.x; new_matrix.matrix[1] = row_0.y; new_matrix.matrix[2] = row_0.z;
|
||||
new_matrix.matrix[3] = row_1.x; new_matrix.matrix[4] = row_1.y; new_matrix.matrix[5] = row_1.z;
|
||||
new_matrix.matrix[6] = row_2.x; new_matrix.matrix[7] = row_2.y; new_matrix.matrix[8] = row_2.z;
|
||||
//new_matrix.debug("new_matrix");
|
||||
|
||||
//new_matrix.debug("new_matrix");
|
||||
return new_matrix;
|
||||
}
|
||||
|
||||
void matrix_3x3::set_to_identity()
|
||||
{
|
||||
void matrix_3x3::set_to_identity() {
|
||||
matrix[0] = 1; matrix[1] = 0; matrix[2] = 0;
|
||||
matrix[3] = 0; matrix[4] = 1; matrix[5] = 0;
|
||||
matrix[6] = 0; matrix[7] = 0; matrix[8] = 1;
|
||||
}
|
||||
|
||||
matrix_3x3 matrix_3x3::create_look_at(vector_3 target)
|
||||
{
|
||||
vector_3 z_row = target.get_normal();
|
||||
vector_3 x_row = vector_3(1, 0, -target.x/target.z).get_normal();
|
||||
vector_3 y_row = vector_3::cross(z_row, x_row).get_normal();
|
||||
matrix_3x3 matrix_3x3::create_look_at(vector_3 target) {
|
||||
vector_3 z_row = target.get_normal();
|
||||
vector_3 x_row = vector_3(1, 0, -target.x/target.z).get_normal();
|
||||
vector_3 y_row = vector_3::cross(z_row, x_row).get_normal();
|
||||
|
||||
// x_row.debug("x_row");
|
||||
// y_row.debug("y_row");
|
||||
// z_row.debug("z_row");
|
||||
// x_row.debug("x_row");
|
||||
// y_row.debug("y_row");
|
||||
// z_row.debug("z_row");
|
||||
|
||||
|
||||
// create the matrix already correctly transposed
|
||||
matrix_3x3 rot = matrix_3x3::create_from_rows(x_row, y_row, z_row);
|
||||
// create the matrix already correctly transposed
|
||||
matrix_3x3 rot = matrix_3x3::create_from_rows(x_row, y_row, z_row);
|
||||
|
||||
// rot.debug("rot");
|
||||
return rot;
|
||||
// rot.debug("rot");
|
||||
return rot;
|
||||
}
|
||||
|
||||
|
||||
matrix_3x3 matrix_3x3::transpose(matrix_3x3 original)
|
||||
{
|
||||
matrix_3x3 matrix_3x3::transpose(matrix_3x3 original) {
|
||||
matrix_3x3 new_matrix;
|
||||
new_matrix.matrix[0] = original.matrix[0]; new_matrix.matrix[1] = original.matrix[3]; new_matrix.matrix[2] = original.matrix[6];
|
||||
new_matrix.matrix[3] = original.matrix[1]; new_matrix.matrix[4] = original.matrix[4]; new_matrix.matrix[5] = original.matrix[7];
|
||||
@ -145,11 +120,12 @@ matrix_3x3 matrix_3x3::transpose(matrix_3x3 original)
|
||||
return new_matrix;
|
||||
}
|
||||
|
||||
void matrix_3x3::debug(char* title) {
|
||||
void matrix_3x3::debug(const char title[]) {
|
||||
SERIAL_PROTOCOLLN(title);
|
||||
int count = 0;
|
||||
for(int i=0; i<3; i++) {
|
||||
for(int j=0; j<3; j++) {
|
||||
if (matrix[count] >= 0.0) SERIAL_PROTOCOLPGM("+");
|
||||
SERIAL_PROTOCOL_F(matrix[count], 6);
|
||||
SERIAL_PROTOCOLPGM(" ");
|
||||
count++;
|
||||
@ -158,5 +134,5 @@ void matrix_3x3::debug(char* title) {
|
||||
}
|
||||
}
|
||||
|
||||
#endif // #ifdef ENABLE_AUTO_BED_LEVELING
|
||||
#endif // ENABLE_AUTO_BED_LEVELING
|
||||
|
||||
|
@ -37,7 +37,7 @@ struct vector_3
|
||||
float get_length();
|
||||
vector_3 get_normal();
|
||||
|
||||
void debug(char* title);
|
||||
void debug(const char title[]);
|
||||
|
||||
void apply_rotation(matrix_3x3 matrix);
|
||||
};
|
||||
@ -52,7 +52,7 @@ struct matrix_3x3
|
||||
|
||||
void set_to_identity();
|
||||
|
||||
void debug(char* title);
|
||||
void debug(const char title[]);
|
||||
};
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user