Merge branch 'bugfix-2.0.x' of https://github.com/MarlinFirmware/Marlin into bugfix-2.0.x
This commit is contained in:
commit
520585c5ed
@ -927,6 +927,9 @@
|
||||
|
||||
// Before deploy/stow pause for user confirmation
|
||||
//#define PAUSE_BEFORE_DEPLOY_STOW
|
||||
#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
|
||||
//#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Enable one or more of the following if probing seems unreliable.
|
||||
|
@ -905,6 +905,17 @@
|
||||
// Add an optimized binary file transfer mode, initiated with 'M28 B1'
|
||||
//#define BINARY_FILE_TRANSFER
|
||||
|
||||
// LPC-based boards have on-board SD Card options. Override here or defaults apply.
|
||||
#ifdef TARGET_LPC1768
|
||||
//#define LPC_SD_LCD // Use the SD drive in the external LCD controller.
|
||||
//#define LPC_SD_ONBOARD // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
|
||||
//#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
|
||||
//#define USB_SD_DISABLED // Disable SD Card access over USB (for security).
|
||||
#if ENABLED(LPC_SD_ONBOARD)
|
||||
//#define USB_SD_ONBOARD // Provide the onboard SD card to the host as a USB mass storage device.
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // SDSUPPORT
|
||||
|
||||
/**
|
||||
|
@ -21,213 +21,132 @@
|
||||
*/
|
||||
#ifdef ARDUINO_ARCH_ESP32
|
||||
|
||||
#include "../../inc/MarlinConfig.h"
|
||||
#include "../../inc/MarlinConfigPre.h"
|
||||
|
||||
#if ENABLED(WIFISUPPORT)
|
||||
|
||||
#include "WebSocketSerial.h"
|
||||
|
||||
extern WebSocketSerial webSocketSerial;
|
||||
|
||||
#include "wifi.h"
|
||||
#include <AsyncTCP.h>
|
||||
#include <ESPAsyncWebServer.h>
|
||||
|
||||
struct ring_buffer_r {
|
||||
unsigned char buffer[RX_BUFFER_SIZE];
|
||||
volatile ring_buffer_pos_t head, tail;
|
||||
};
|
||||
WebSocketSerial webSocketSerial;
|
||||
AsyncWebSocket ws("/ws"); // TODO Move inside the class.
|
||||
|
||||
struct ring_buffer_t {
|
||||
unsigned char buffer[256];
|
||||
volatile uint8_t head, tail;
|
||||
};
|
||||
// RingBuffer impl
|
||||
|
||||
ring_buffer_r rx_buffer = { { 0 }, 0, 0 };
|
||||
ring_buffer_t tx_buffer = { { 0 }, 0, 0 };
|
||||
#define NEXT_INDEX(I, SIZE) ((I + 1) & (ring_buffer_pos_t)(SIZE - 1))
|
||||
|
||||
static bool _written;
|
||||
RingBuffer::RingBuffer(ring_buffer_pos_t size)
|
||||
: data(new uint8_t[size]),
|
||||
read_index(0),
|
||||
write_index(0),
|
||||
size(size)
|
||||
{}
|
||||
|
||||
#if ENABLED(EMERGENCY_PARSER)
|
||||
static EmergencyParser::State emergency_state; // = EP_RESET
|
||||
#endif
|
||||
RingBuffer::~RingBuffer() { delete[] data; }
|
||||
|
||||
AsyncWebSocket ws("/ws"); // access at ws://[esp ip]/ws
|
||||
ring_buffer_pos_t RingBuffer::write(const uint8_t c) {
|
||||
const ring_buffer_pos_t n = NEXT_INDEX(write_index, size);
|
||||
|
||||
FORCE_INLINE int next_rx_index(const int i) { return (ring_buffer_pos_t)(i + 1) & (ring_buffer_pos_t)(RX_BUFFER_SIZE - 1); }
|
||||
FORCE_INLINE int next_tx_index(const int i) { return (ring_buffer_pos_t)(i + 1) & (ring_buffer_pos_t)(TX_BUFFER_SIZE - 1); }
|
||||
|
||||
static void addToBuffer(uint8_t * const data, const size_t len) {
|
||||
for (size_t i = 0; i < len; i++) {
|
||||
ring_buffer_pos_t h = rx_buffer.head;
|
||||
const ring_buffer_pos_t t = rx_buffer.tail, n = next_rx_index(h);
|
||||
|
||||
if (n != t) { rx_buffer.buffer[h] = data[i]; h = n; }
|
||||
|
||||
// TODO: buffer is full, handle?
|
||||
|
||||
rx_buffer.head = h;
|
||||
if (n != read_index) {
|
||||
this->data[write_index] = c;
|
||||
write_index = n;
|
||||
return 1;
|
||||
}
|
||||
|
||||
// TODO: buffer is full, handle?
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Handle WebSocket event
|
||||
static void onEvent(AsyncWebSocket * server, AsyncWebSocketClient * client, AwsEventType type, void * arg, uint8_t *data, size_t len) {
|
||||
switch (type) {
|
||||
case WS_EVT_CONNECT: client->ping(); break; // client connected
|
||||
case WS_EVT_DISCONNECT: // client disconnected
|
||||
case WS_EVT_ERROR: // error was received from the other end
|
||||
case WS_EVT_PONG: break; // pong message was received (in response to a ping request maybe)
|
||||
case WS_EVT_DATA: { // data packet
|
||||
AwsFrameInfo * info = (AwsFrameInfo*)arg;
|
||||
if (info->opcode == WS_TEXT || info->message_opcode == WS_TEXT)
|
||||
addToBuffer(data, len);
|
||||
}
|
||||
ring_buffer_pos_t RingBuffer::write(const uint8_t *buffer, ring_buffer_pos_t size) {
|
||||
ring_buffer_pos_t written = 0;
|
||||
for (ring_buffer_pos_t i = 0; i < size; i++) {
|
||||
written += write(buffer[i]);
|
||||
}
|
||||
return written;
|
||||
}
|
||||
|
||||
// Public Methods
|
||||
int RingBuffer::available(void) {
|
||||
return (size - read_index + write_index) & (size - 1);
|
||||
}
|
||||
|
||||
int RingBuffer::peek(void) {
|
||||
return available() ? data[read_index] : -1;
|
||||
}
|
||||
|
||||
int RingBuffer::read(void) {
|
||||
if (available()) {
|
||||
const int ret = data[read_index];
|
||||
read_index = NEXT_INDEX(read_index, size);
|
||||
return ret;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
ring_buffer_pos_t RingBuffer::read(uint8_t *buffer) {
|
||||
ring_buffer_pos_t len = available();
|
||||
|
||||
for(ring_buffer_pos_t i = 0; read_index != write_index; i++) {
|
||||
buffer[i] = data[read_index];
|
||||
read_index = NEXT_INDEX(read_index, size);
|
||||
}
|
||||
|
||||
return len;
|
||||
}
|
||||
|
||||
void RingBuffer::flush(void) { read_index = write_index; }
|
||||
|
||||
// WebSocketSerial impl
|
||||
WebSocketSerial::WebSocketSerial()
|
||||
: rx_buffer(RingBuffer(RX_BUFFER_SIZE)),
|
||||
tx_buffer(RingBuffer(TX_BUFFER_SIZE))
|
||||
{}
|
||||
|
||||
void WebSocketSerial::begin(const long baud_setting) {
|
||||
ws.onEvent(onEvent);
|
||||
server.addHandler(&ws); // attach AsyncWebSocket
|
||||
ws.onEvent([this](AsyncWebSocket *server, AsyncWebSocketClient *client, AwsEventType type, void *arg, uint8_t *data, size_t len) {
|
||||
switch (type) {
|
||||
case WS_EVT_CONNECT: client->ping(); break; // client connected
|
||||
case WS_EVT_DISCONNECT: // client disconnected
|
||||
case WS_EVT_ERROR: // error was received from the other end
|
||||
case WS_EVT_PONG: break; // pong message was received (in response to a ping request maybe)
|
||||
case WS_EVT_DATA: { // data packet
|
||||
AwsFrameInfo * info = (AwsFrameInfo*)arg;
|
||||
if (info->opcode == WS_TEXT || info->message_opcode == WS_TEXT)
|
||||
this->rx_buffer.write(data, len);
|
||||
}
|
||||
}
|
||||
});
|
||||
server.addHandler(&ws);
|
||||
}
|
||||
|
||||
void WebSocketSerial::end() { }
|
||||
int WebSocketSerial::peek(void) { return rx_buffer.peek(); }
|
||||
int WebSocketSerial::read(void) { return rx_buffer.read(); }
|
||||
int WebSocketSerial::available(void) { return rx_buffer.available(); }
|
||||
void WebSocketSerial::flush(void) { rx_buffer.flush(); }
|
||||
|
||||
int WebSocketSerial::peek(void) {
|
||||
const int v = rx_buffer.head == rx_buffer.tail ? -1 : rx_buffer.buffer[rx_buffer.tail];
|
||||
return v;
|
||||
}
|
||||
size_t WebSocketSerial::write(const uint8_t c) {
|
||||
size_t ret = tx_buffer.write(c);
|
||||
|
||||
int WebSocketSerial::read(void) {
|
||||
const ring_buffer_pos_t h = rx_buffer.head, t = rx_buffer.tail;
|
||||
if (h == t) return -1; // Nothing to read? Return now
|
||||
|
||||
const int v = rx_buffer.buffer[t];
|
||||
|
||||
rx_buffer.tail = (ring_buffer_pos_t)(t + 1) & (RX_BUFFER_SIZE - 1); // Advance tail
|
||||
|
||||
return v;
|
||||
}
|
||||
|
||||
bool WebSocketSerial::available(void) {
|
||||
const ring_buffer_pos_t h = rx_buffer.head, t = rx_buffer.tail;
|
||||
return (ring_buffer_pos_t)(RX_BUFFER_SIZE + h - t) & (RX_BUFFER_SIZE - 1);
|
||||
}
|
||||
|
||||
void WebSocketSerial::flush(void) {
|
||||
ws.textAll("flush");
|
||||
rx_buffer.tail = rx_buffer.head;
|
||||
}
|
||||
|
||||
#if TX_BUFFER_SIZE
|
||||
|
||||
void WebSocketSerial::write(const uint8_t c) {
|
||||
_written = true;
|
||||
|
||||
const uint8_t i = (tx_buffer.head + 1) & (TX_BUFFER_SIZE - 1);
|
||||
|
||||
// Store new char. head is always safe to move
|
||||
tx_buffer.buffer[tx_buffer.head] = c;
|
||||
tx_buffer.head = i;
|
||||
|
||||
if (c == '\n') {
|
||||
ws.textAll(tx_buffer.buffer, tx_buffer.head);
|
||||
tx_buffer.head = 0;
|
||||
}
|
||||
if (ret && c == '\n') {
|
||||
uint8_t tmp[TX_BUFFER_SIZE];
|
||||
ring_buffer_pos_t size = tx_buffer.read(tmp);
|
||||
ws.textAll(tmp, size);
|
||||
}
|
||||
|
||||
void WebSocketSerial::flushTx(void) {
|
||||
ws.textAll("flushTx");
|
||||
if (!_written) return;
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
//void WebSocketSerial::write(const uint8_t c) { _written = true; }
|
||||
//void WebSocketSerial::flushTx(void) { if (!_written) return; }
|
||||
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Imports from print.h
|
||||
*/
|
||||
|
||||
void WebSocketSerial::print(char c, int base) { print((long)c, base); }
|
||||
void WebSocketSerial::print(unsigned char b, int base) { print((unsigned long)b, base); }
|
||||
void WebSocketSerial::print(int n, int base) { print((long)n, base); }
|
||||
void WebSocketSerial::print(unsigned int n, int base) { print((unsigned long)n, base); }
|
||||
void WebSocketSerial::print(long n, int base) {
|
||||
if (base == 0)
|
||||
write(n);
|
||||
else if (base == 10) {
|
||||
if (n < 0) { print('-'); n = -n; }
|
||||
printNumber(n, 10);
|
||||
}
|
||||
else
|
||||
printNumber(n, base);
|
||||
return ret;
|
||||
}
|
||||
|
||||
void WebSocketSerial::print(unsigned long n, int base) {
|
||||
if (base == 0) write(n); else printNumber(n, base);
|
||||
size_t WebSocketSerial::write(const uint8_t* buffer, size_t size) {
|
||||
size_t written = 0;
|
||||
for(size_t i = 0; i < size; i++) {
|
||||
written += write(buffer[i]);
|
||||
}
|
||||
return written;
|
||||
}
|
||||
|
||||
void WebSocketSerial::print(double n, int digits) { printFloat(n, digits); }
|
||||
|
||||
void WebSocketSerial::println(void) { print('\r'); print('\n'); }
|
||||
void WebSocketSerial::println(const String& s) { print(s); println(); }
|
||||
void WebSocketSerial::println(const char c[]) { print(c); println(); }
|
||||
void WebSocketSerial::println(char c, int base) { print(c, base); println(); }
|
||||
void WebSocketSerial::println(unsigned char b, int base) { print(b, base); println(); }
|
||||
void WebSocketSerial::println(int n, int base) { print(n, base); println(); }
|
||||
void WebSocketSerial::println(unsigned int n, int base) { print(n, base); println(); }
|
||||
void WebSocketSerial::println(long n, int base) { print(n, base); println(); }
|
||||
void WebSocketSerial::println(unsigned long n, int base) { print(n, base); println(); }
|
||||
void WebSocketSerial::println(double n, int digits) { print(n, digits); println(); }
|
||||
|
||||
// Private Methods
|
||||
|
||||
void WebSocketSerial::printNumber(unsigned long n, uint8_t base) {
|
||||
if (n) {
|
||||
unsigned char buf[8 * sizeof(long)]; // Enough space for base 2
|
||||
int8_t i = 0;
|
||||
while (n) {
|
||||
buf[i++] = n % base;
|
||||
n /= base;
|
||||
}
|
||||
while (i--)
|
||||
print((char)(buf[i] + (buf[i] < 10 ? '0' : 'A' - 10)));
|
||||
}
|
||||
else
|
||||
print('0');
|
||||
}
|
||||
|
||||
void WebSocketSerial::printFloat(double number, uint8_t digits) {
|
||||
// Handle negative numbers
|
||||
if (number < 0.0) { print('-'); number = -number; }
|
||||
|
||||
// Round correctly so that print(1.999, 2) prints as "2.00"
|
||||
// Use a lookup table for performance
|
||||
constexpr double rounds[] = { 0.5, 0.05, 0.005, 0.0005, 0.00005, 0.000005, 0.0000005, 0.00000005 };
|
||||
number += rounds[digits];
|
||||
|
||||
//number += pow(10, -(digits + 1)); // slower single-line equivalent
|
||||
|
||||
// Extract the integer part of the number and print it
|
||||
unsigned long int_part = (unsigned long)number;
|
||||
print(int_part);
|
||||
|
||||
// Print the decimal point, but only if there are digits beyond
|
||||
double remainder = number - (double)int_part;
|
||||
if (digits) {
|
||||
print('.');
|
||||
// Extract digits from the remainder one at a time
|
||||
while (digits--) {
|
||||
remainder *= 10.0;
|
||||
const int toPrint = int(remainder);
|
||||
print(toPrint);
|
||||
remainder -= toPrint;
|
||||
}
|
||||
}
|
||||
void WebSocketSerial::flushTX(void) {
|
||||
// No need to do anything as there's no benefit to sending partial lines over the websocket connection.
|
||||
}
|
||||
|
||||
#endif // WIFISUPPORT
|
||||
|
@ -23,12 +23,7 @@
|
||||
|
||||
#include "../../inc/MarlinConfig.h"
|
||||
|
||||
#include <WString.h>
|
||||
|
||||
#define DEC 10
|
||||
#define HEX 16
|
||||
#define OCT 8
|
||||
#define BIN 2
|
||||
#include "Stream.h"
|
||||
|
||||
#ifndef RX_BUFFER_SIZE
|
||||
#define RX_BUFFER_SIZE 128
|
||||
@ -40,60 +35,50 @@
|
||||
#error "TX_BUFFER_SIZE is required for the WebSocket."
|
||||
#endif
|
||||
|
||||
#if RX_BUFFER_SIZE > 256
|
||||
typedef uint16_t ring_buffer_pos_t;
|
||||
#else
|
||||
typedef uint8_t ring_buffer_pos_t;
|
||||
#endif
|
||||
typedef uint16_t ring_buffer_pos_t;
|
||||
|
||||
class RingBuffer {
|
||||
uint8_t *data;
|
||||
ring_buffer_pos_t size, read_index, write_index;
|
||||
|
||||
class WebSocketSerial {
|
||||
public:
|
||||
WebSocketSerial() {};
|
||||
static void begin(const long);
|
||||
static void end();
|
||||
static int peek(void);
|
||||
static int read(void);
|
||||
static void flush(void);
|
||||
static void flushTx(void);
|
||||
static bool available(void);
|
||||
static void write(const uint8_t c);
|
||||
RingBuffer(ring_buffer_pos_t size);
|
||||
~RingBuffer();
|
||||
|
||||
int available(void);
|
||||
int peek(void);
|
||||
int read(void);
|
||||
ring_buffer_pos_t read(uint8_t *buffer);
|
||||
void flush(void);
|
||||
ring_buffer_pos_t write(const uint8_t c);
|
||||
ring_buffer_pos_t write(const uint8_t* buffer, ring_buffer_pos_t size);
|
||||
};
|
||||
|
||||
class WebSocketSerial: public Stream {
|
||||
RingBuffer rx_buffer;
|
||||
RingBuffer tx_buffer;
|
||||
|
||||
public:
|
||||
WebSocketSerial();
|
||||
void begin(const long);
|
||||
void end();
|
||||
int available(void);
|
||||
int peek(void);
|
||||
int read(void);
|
||||
void flush(void);
|
||||
void flushTX(void);
|
||||
size_t write(const uint8_t c);
|
||||
size_t write(const uint8_t* buffer, size_t size);
|
||||
|
||||
operator bool() { return true; }
|
||||
|
||||
#if ENABLED(SERIAL_STATS_DROPPED_RX)
|
||||
FORCE_INLINE static uint32_t dropped() { return 0; }
|
||||
FORCE_INLINE uint32_t dropped() { return 0; }
|
||||
#endif
|
||||
|
||||
#if ENABLED(SERIAL_STATS_MAX_RX_QUEUED)
|
||||
FORCE_INLINE static int rxMaxEnqueued() { return 0; }
|
||||
FORCE_INLINE int rxMaxEnqueued() { return 0; }
|
||||
#endif
|
||||
|
||||
FORCE_INLINE static void write(const char* str) { while (*str) write(*str++); }
|
||||
FORCE_INLINE static void write(const uint8_t* buffer, size_t size) { while (size--) write(*buffer++); }
|
||||
FORCE_INLINE static void print(const String& s) { for (int i = 0; i < (int)s.length(); i++) write(s[i]); }
|
||||
FORCE_INLINE static void print(const char* str) { write(str); }
|
||||
|
||||
static void print(char, int = 0);
|
||||
static void print(unsigned char, int = 0);
|
||||
static void print(int, int = DEC);
|
||||
static void print(unsigned int, int = DEC);
|
||||
static void print(long, int = DEC);
|
||||
static void print(unsigned long, int = DEC);
|
||||
static void print(double, int = 2);
|
||||
|
||||
static void println(const String& s);
|
||||
static void println(const char[]);
|
||||
static void println(char, int = 0);
|
||||
static void println(unsigned char, int = 0);
|
||||
static void println(int, int = DEC);
|
||||
static void println(unsigned int, int = DEC);
|
||||
static void println(long, int = DEC);
|
||||
static void println(unsigned long, int = DEC);
|
||||
static void println(double, int = 2);
|
||||
static void println(void);
|
||||
operator bool() { return true; }
|
||||
|
||||
private:
|
||||
static void printNumber(unsigned long, const uint8_t);
|
||||
static void printFloat(double, uint8_t);
|
||||
};
|
||||
|
||||
extern WebSocketSerial webSocketSerial;
|
||||
|
@ -303,9 +303,9 @@ int i2s_init() {
|
||||
xTaskCreate(stepperTask, "StepperTask", 10000, NULL, 1, NULL);
|
||||
|
||||
// Route the i2s pins to the appropriate GPIO
|
||||
gpio_matrix_out_check(22, I2S0O_DATA_OUT23_IDX, 0, 0);
|
||||
gpio_matrix_out_check(25, I2S0O_WS_OUT_IDX, 0, 0);
|
||||
gpio_matrix_out_check(26, I2S0O_BCK_OUT_IDX, 0, 0);
|
||||
gpio_matrix_out_check(I2S_DATA, I2S0O_DATA_OUT23_IDX, 0, 0);
|
||||
gpio_matrix_out_check(I2S_BCK, I2S0O_BCK_OUT_IDX, 0, 0);
|
||||
gpio_matrix_out_check(I2S_WS, I2S0O_WS_OUT_IDX, 0, 0);
|
||||
|
||||
// Start the I2S peripheral
|
||||
return i2s_start(I2S_NUM_0);
|
||||
|
@ -29,3 +29,9 @@ int i2s_init();
|
||||
void i2s_write(uint8_t pin, uint8_t val);
|
||||
|
||||
void i2s_push_sample();
|
||||
|
||||
// pin definitions
|
||||
|
||||
#define I2S_WS 25
|
||||
#define I2S_BCK 26
|
||||
#define I2S_DATA 27
|
||||
|
@ -1,3 +1,24 @@
|
||||
/**
|
||||
* Marlin 3D Printer Firmware
|
||||
* Copyright (C) 2019 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
*
|
||||
* Based on Sprinter and grbl.
|
||||
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
#ifdef TARGET_LPC1768
|
||||
|
||||
#include <usb/usb.h>
|
||||
|
@ -137,8 +137,11 @@ uint8_t u8g_com_HAL_LPC1768_ssd_hw_i2c_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_v
|
||||
|
||||
case U8G_COM_MSG_WRITE_BYTE:
|
||||
//u8g->pin_list[U8G_PI_SET_A0] = 1;
|
||||
//if (u8g_com_arduino_ssd_start_sequence(u8g) == 0)
|
||||
// return u8g_i2c_stop(), 0;
|
||||
if (u8g_com_ssd_I2C_start_sequence(u8g) == 0) {
|
||||
u8g_i2c_stop();
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (u8g_i2c_send_byte(arg_val) == 0) {
|
||||
u8g_i2c_stop();
|
||||
return 0;
|
||||
@ -186,9 +189,6 @@ uint8_t u8g_com_HAL_LPC1768_ssd_hw_i2c_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_v
|
||||
case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */
|
||||
u8g->pin_list[U8G_PI_A0_STATE] = arg_val;
|
||||
u8g->pin_list[U8G_PI_SET_A0] = 1; /* force a0 to set again */
|
||||
|
||||
u8g_i2c_start(0); // send slave address and write bit
|
||||
u8g_i2c_send_byte(arg_val ? 0x40 : 0x80); // Write to ? Graphics DRAM mode : Command mode
|
||||
break;
|
||||
|
||||
} // switch
|
||||
|
@ -65,10 +65,76 @@
|
||||
#undef SPI_SPEED
|
||||
#define SPI_SPEED 2 // About 2 MHz
|
||||
|
||||
#include <algorithm>
|
||||
#include <LPC17xx.h>
|
||||
#include <gpio.h>
|
||||
|
||||
#include <Arduino.h>
|
||||
|
||||
uint8_t swSpiTransfer_mode_0(uint8_t b, const uint8_t spi_speed, const pin_t sck_pin, const pin_t miso_pin, const pin_t mosi_pin ) {
|
||||
|
||||
for (uint8_t i = 0; i < 8; i++) {
|
||||
if (spi_speed == 0) {
|
||||
gpio_set(mosi_pin, !!(b & 0x80));
|
||||
gpio_set(sck_pin, HIGH);
|
||||
b <<= 1;
|
||||
if (miso_pin >= 0 && gpio_get(miso_pin)) b |= 1;
|
||||
gpio_set(sck_pin, LOW);
|
||||
}
|
||||
else {
|
||||
const uint8_t state = (b & 0x80) ? HIGH : LOW;
|
||||
for (uint8_t j = 0; j < spi_speed; j++)
|
||||
gpio_set(mosi_pin, state);
|
||||
|
||||
for (uint8_t j = 0; j < spi_speed + (miso_pin >= 0 ? 0 : 1); j++)
|
||||
gpio_set(sck_pin, HIGH);
|
||||
|
||||
b <<= 1;
|
||||
if (miso_pin >= 0 && gpio_get(miso_pin)) b |= 1;
|
||||
|
||||
for (uint8_t j = 0; j < spi_speed; j++)
|
||||
gpio_set(sck_pin, LOW);
|
||||
}
|
||||
}
|
||||
|
||||
return b;
|
||||
}
|
||||
|
||||
uint8_t swSpiTransfer_mode_3(uint8_t b, const uint8_t spi_speed, const pin_t sck_pin, const pin_t miso_pin, const pin_t mosi_pin ) {
|
||||
|
||||
for (uint8_t i = 0; i < 8; i++) {
|
||||
const uint8_t state = (b & 0x80) ? HIGH : LOW;
|
||||
if (spi_speed == 0) {
|
||||
gpio_set(sck_pin, LOW);
|
||||
gpio_set(mosi_pin, state);
|
||||
gpio_set(mosi_pin, state); // need some setup time
|
||||
gpio_set(sck_pin, HIGH);
|
||||
}
|
||||
else {
|
||||
for (uint8_t j = 0; j < spi_speed + (miso_pin >= 0 ? 0 : 1); j++)
|
||||
gpio_set(sck_pin, LOW);
|
||||
|
||||
for (uint8_t j = 0; j < spi_speed; j++)
|
||||
gpio_set(mosi_pin, state);
|
||||
|
||||
for (uint8_t j = 0; j < spi_speed; j++)
|
||||
gpio_set(sck_pin, HIGH);
|
||||
}
|
||||
b <<= 1;
|
||||
if (miso_pin >= 0 && gpio_get(miso_pin)) b |= 1;
|
||||
}
|
||||
|
||||
return b;
|
||||
}
|
||||
|
||||
static uint8_t SPI_speed = 0;
|
||||
|
||||
static void u8g_sw_spi_HAL_LPC1768_shift_out(uint8_t dataPin, uint8_t clockPin, uint8_t val) {
|
||||
swSpiTransfer(val, SPI_speed, clockPin, -1, dataPin);
|
||||
#if ENABLED(FYSETC_MINI_12864)
|
||||
swSpiTransfer_mode_3(val, SPI_speed, clockPin, -1, dataPin);
|
||||
#else
|
||||
swSpiTransfer_mode_0(val, SPI_speed, clockPin, -1, dataPin);
|
||||
#endif
|
||||
}
|
||||
|
||||
uint8_t u8g_com_HAL_LPC1768_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) {
|
||||
|
@ -194,6 +194,7 @@
|
||||
#define BOARD_BIQU_B300_V1_0 1760 // BIQU B300_V1.0 (Power outputs: Hotend0, Fan, Bed, SPI Driver)
|
||||
#define BOARD_BIGTREE_SKR_V1_3 1761 // BIGTREE SKR_V1.3 (Power outputs: Hotend0, Hotend1, Fan, Bed)
|
||||
#define BOARD_AZTEEG_X5_MINI 1762 // Azteeg X5 Mini (Power outputs: Hotend0, Bed, Fan)
|
||||
#define BOARD_MKS_SGEN 1763 // MKS-SGen (Power outputs: Hotend0, Hotend1, Bed, Fan)
|
||||
|
||||
//
|
||||
// SAM3X8E ARM Cortex M3
|
||||
|
@ -19,7 +19,6 @@
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
//
|
||||
// Serial aliases for debugging.
|
||||
|
@ -264,15 +264,15 @@ void safe_delay(millis_t ms) {
|
||||
return conv;
|
||||
}
|
||||
|
||||
// Convert unsigned float to string with 1234.56 format omitting trailing zeros
|
||||
char* ftostr62rj(const float &f) {
|
||||
const long i = ((f < 0 ? -f : f) * 1000 + 5) / 10;
|
||||
conv[0] = RJDIGIT(i, 100000);
|
||||
// Convert unsigned float to string with 1234.5 format omitting trailing zeros
|
||||
char* ftostr51rj(const float &f) {
|
||||
const long i = ((f < 0 ? -f : f) * 100 + 5) / 10;
|
||||
conv[0] = ' ';
|
||||
conv[1] = RJDIGIT(i, 10000);
|
||||
conv[2] = RJDIGIT(i, 1000);
|
||||
conv[3] = DIGIMOD(i, 100);
|
||||
conv[4] = '.';
|
||||
conv[5] = DIGIMOD(i, 10);
|
||||
conv[3] = RJDIGIT(i, 100);
|
||||
conv[4] = DIGIMOD(i, 10);
|
||||
conv[5] = '.';
|
||||
conv[6] = DIGIMOD(i, 1);
|
||||
return conv;
|
||||
}
|
||||
|
@ -106,8 +106,8 @@ inline void serial_delay(const millis_t ms) {
|
||||
// Convert signed float to string with +123.45 format
|
||||
char* ftostr52sign(const float &x);
|
||||
|
||||
// Convert unsigned float to string with 1234.56 format omitting trailing zeros
|
||||
char* ftostr62rj(const float &x);
|
||||
// Convert unsigned float to string with 1234.5 format omitting trailing zeros
|
||||
char* ftostr51rj(const float &x);
|
||||
|
||||
// Convert float to rj string with 123 or -12 format
|
||||
FORCE_INLINE char* ftostr3(const float &x) { return i16tostr3(int16_t(x + (x < 0 ? -0.5f : 0.5f))); }
|
||||
|
@ -151,6 +151,12 @@ void PrintJobRecovery::save(const bool force/*=false*/, const bool save_queue/*=
|
||||
|
||||
// Machine state
|
||||
COPY(info.current_position, current_position);
|
||||
#if HAS_HOME_OFFSET
|
||||
COPY(info.home_offset, home_offset);
|
||||
#endif
|
||||
#if HAS_POSITION_SHIFT
|
||||
COPY(info.position_shift, position_shift);
|
||||
#endif
|
||||
info.feedrate = uint16_t(feedrate_mm_s * 60.0f);
|
||||
|
||||
#if HOTENDS > 1
|
||||
@ -187,7 +193,7 @@ void PrintJobRecovery::save(const bool force/*=false*/, const bool save_queue/*=
|
||||
info.retract_hop = fwretract.current_hop;
|
||||
#endif
|
||||
|
||||
//relative mode
|
||||
// Relative mode
|
||||
info.relative_mode = relative_mode;
|
||||
info.relative_modes_e = gcode.axis_relative_modes[E_AXIS];
|
||||
|
||||
@ -239,20 +245,30 @@ void PrintJobRecovery::resume() {
|
||||
gcode.process_subcommands_now_P(PSTR("M420 S0 Z0"));
|
||||
#endif
|
||||
|
||||
// Set Z to 0, raise Z by 2mm, and Home (XY only for Cartesian) with no raise
|
||||
// (Only do simulated homing in Marlin Dev Mode.)
|
||||
gcode.process_subcommands_now_P(PSTR("G92.0 Z0\nG1 Z" STRINGIFY(RECOVERY_ZRAISE) "\nG28 R0"
|
||||
#if ENABLED(MARLIN_DEV_MODE)
|
||||
" S"
|
||||
#elif !IS_KINEMATIC
|
||||
" X Y"
|
||||
// Reset E, raise Z, home XY...
|
||||
gcode.process_subcommands_now_P(PSTR("G92.9 E0"
|
||||
#if Z_HOME_DIR > 0
|
||||
// If Z homing goes to max, reset E and home all
|
||||
"\nG28R0"
|
||||
#if ENABLED(MARLIN_DEV_MODE)
|
||||
"S"
|
||||
#endif
|
||||
#else
|
||||
// Set Z to 0, raise Z by RECOVERY_ZRAISE, and Home (XY only for Cartesian)
|
||||
// with no raise. (Only do simulated homing in Marlin Dev Mode.)
|
||||
"Z0\nG1Z" STRINGIFY(RECOVERY_ZRAISE) "\nG28R0"
|
||||
#if ENABLED(MARLIN_DEV_MODE)
|
||||
"S"
|
||||
#elif !IS_KINEMATIC
|
||||
"XY"
|
||||
#endif
|
||||
#endif
|
||||
));
|
||||
|
||||
// Pretend that all axes are homed
|
||||
axis_homed = axis_known_position = xyz_bits;
|
||||
|
||||
char cmd[40], str_1[16], str_2[16];
|
||||
char cmd[50], str_1[16], str_2[16];
|
||||
|
||||
// Select the previously active tool (with no_move)
|
||||
#if EXTRUDERS > 1
|
||||
@ -315,16 +331,16 @@ void PrintJobRecovery::resume() {
|
||||
memcpy(&mixer.gradient, &info.gradient, sizeof(info.gradient));
|
||||
#endif
|
||||
|
||||
// Restore Z (plus raise) and E positions with G92.0
|
||||
dtostrf(info.current_position[Z_AXIS] + RECOVERY_ZRAISE, 1, 3, str_1);
|
||||
dtostrf(info.current_position[E_AXIS]
|
||||
#if ENABLED(SAVE_EACH_CMD_MODE)
|
||||
- 5 // Extra extrusion on restart
|
||||
#endif
|
||||
, 1, 3, str_2
|
||||
);
|
||||
sprintf_P(cmd, PSTR("G92.0 Z%s E%s"), str_1, str_2);
|
||||
gcode.process_subcommands_now(cmd);
|
||||
// Extrude and retract to clean the nozzle
|
||||
#if POWER_LOSS_PURGE_LEN
|
||||
//sprintf_P(cmd, PSTR("G1 E%d F200"), POWER_LOSS_PURGE_LEN);
|
||||
//gcode.process_subcommands_now(cmd);
|
||||
gcode.process_subcommands_now_P(PSTR("G1 E" STRINGIFY(POWER_LOSS_PURGE_LEN) " F200"));
|
||||
#endif
|
||||
#if POWER_LOSS_RETRACT_LEN
|
||||
sprintf_P(cmd, PSTR("G1 E%d F3000"), POWER_LOSS_PURGE_LEN - POWER_LOSS_RETRACT_LEN);
|
||||
gcode.process_subcommands_now(cmd);
|
||||
#endif
|
||||
|
||||
// Move back to the saved XY
|
||||
dtostrf(info.current_position[X_AXIS], 1, 3, str_1);
|
||||
@ -337,13 +353,37 @@ void PrintJobRecovery::resume() {
|
||||
sprintf_P(cmd, PSTR("G1 Z%s F200"), str_1);
|
||||
gcode.process_subcommands_now(cmd);
|
||||
|
||||
// Un-retract
|
||||
#if POWER_LOSS_PURGE_LEN
|
||||
//sprintf_P(cmd, PSTR("G1 E%d F3000"), POWER_LOSS_PURGE_LEN);
|
||||
//gcode.process_subcommands_now(cmd);
|
||||
gcode.process_subcommands_now_P(PSTR("G1 E" STRINGIFY(POWER_LOSS_PURGE_LEN) " F3000"));
|
||||
#endif
|
||||
|
||||
// Restore the feedrate
|
||||
sprintf_P(cmd, PSTR("G1 F%d"), info.feedrate);
|
||||
gcode.process_subcommands_now(cmd);
|
||||
|
||||
//relative mode
|
||||
if (info.relative_mode) relative_mode = true;
|
||||
if (info.relative_modes_e) gcode.axis_relative_modes[E_AXIS] = true;
|
||||
// Restore E position with G92.9
|
||||
dtostrf(info.current_position[E_AXIS], 1, 3, str_1);
|
||||
sprintf_P(cmd, PSTR("G92.9 E%s"), str_1);
|
||||
gcode.process_subcommands_now(cmd);
|
||||
|
||||
// Relative mode
|
||||
relative_mode = info.relative_mode;
|
||||
gcode.axis_relative_modes[E_AXIS] = info.relative_modes_e;
|
||||
|
||||
#if HAS_HOME_OFFSET || HAS_POSITION_SHIFT
|
||||
LOOP_XYZ(i) {
|
||||
#if HAS_HOME_OFFSET
|
||||
home_offset[i] = info.home_offset[i];
|
||||
#endif
|
||||
#if HAS_POSITION_SHIFT
|
||||
position_shift[i] = info.position_shift[i];
|
||||
#endif
|
||||
update_workspace_offset((AxisEnum)i);
|
||||
}
|
||||
#endif
|
||||
|
||||
// Process commands from the old pending queue
|
||||
uint8_t c = info.commands_in_queue, r = info.cmd_queue_index_r;
|
||||
@ -372,6 +412,25 @@ void PrintJobRecovery::resume() {
|
||||
DEBUG_ECHO(info.current_position[i]);
|
||||
}
|
||||
DEBUG_EOL();
|
||||
|
||||
#if HAS_HOME_OFFSET
|
||||
DEBUG_ECHOPGM("home_offset: ");
|
||||
LOOP_XYZ(i) {
|
||||
if (i) DEBUG_CHAR(',');
|
||||
DEBUG_ECHO(info.home_offset[i]);
|
||||
}
|
||||
DEBUG_EOL();
|
||||
#endif
|
||||
|
||||
#if HAS_POSITION_SHIFT
|
||||
DEBUG_ECHOPGM("position_shift: ");
|
||||
LOOP_XYZ(i) {
|
||||
if (i) DEBUG_CHAR(',');
|
||||
DEBUG_ECHO(info.position_shift[i]);
|
||||
}
|
||||
DEBUG_EOL();
|
||||
#endif
|
||||
|
||||
DEBUG_ECHOLNPAIR("feedrate: ", info.feedrate);
|
||||
|
||||
#if HOTENDS > 1
|
||||
|
@ -35,6 +35,8 @@
|
||||
#define SAVE_INFO_INTERVAL_MS 0
|
||||
//#define SAVE_EACH_CMD_MODE
|
||||
//#define DEBUG_POWER_LOSS_RECOVERY
|
||||
#define POWER_LOSS_PURGE_LEN 20
|
||||
#define POWER_LOSS_RETRACT_LEN 10
|
||||
|
||||
typedef struct {
|
||||
uint8_t valid_head;
|
||||
@ -42,6 +44,13 @@ typedef struct {
|
||||
// Machine state
|
||||
float current_position[NUM_AXIS];
|
||||
|
||||
#if HAS_HOME_OFFSET
|
||||
float home_offset[XYZ];
|
||||
#endif
|
||||
#if HAS_POSITION_SHIFT
|
||||
float position_shift[XYZ];
|
||||
#endif
|
||||
|
||||
uint16_t feedrate;
|
||||
|
||||
#if HOTENDS > 1
|
||||
|
@ -74,7 +74,9 @@ inline void delay_for_power_down() { safe_delay(SPINDLE_LASER_POWERDOWN_DELAY);
|
||||
|
||||
inline void set_spindle_laser_ocr(const uint8_t ocr) {
|
||||
WRITE(SPINDLE_LASER_ENA_PIN, SPINDLE_LASER_ENABLE_INVERT); // turn spindle on (active low)
|
||||
analogWrite(SPINDLE_LASER_PWM_PIN, (SPINDLE_LASER_PWM_INVERT) ? 255 - ocr : ocr);
|
||||
#if ENABLED(SPINDLE_LASER_PWM)
|
||||
analogWrite(SPINDLE_LASER_PWM_PIN, (SPINDLE_LASER_PWM_INVERT) ? 255 - ocr : ocr);
|
||||
#endif
|
||||
}
|
||||
|
||||
#if ENABLED(SPINDLE_LASER_PWM)
|
||||
|
@ -33,9 +33,23 @@
|
||||
*/
|
||||
void GcodeSuite::G92() {
|
||||
|
||||
#if ENABLED(CNC_COORDINATE_SYSTEMS)
|
||||
switch (parser.subcode) {
|
||||
case 1:
|
||||
bool didE = false;
|
||||
#if IS_SCARA || !HAS_POSITION_SHIFT
|
||||
bool didXYZ = false;
|
||||
#else
|
||||
constexpr bool didXYZ = false;
|
||||
#endif
|
||||
|
||||
#if USE_GCODE_SUBCODES
|
||||
const uint8_t subcode_G92 = parser.subcode;
|
||||
#else
|
||||
constexpr uint8_t subcode_G92 = 0;
|
||||
#endif
|
||||
|
||||
switch (subcode_G92) {
|
||||
default: break;
|
||||
#if ENABLED(CNC_COORDINATE_SYSTEMS)
|
||||
case 1: {
|
||||
// Zero the G92 values and restore current position
|
||||
#if !IS_SCARA
|
||||
LOOP_XYZ(i) {
|
||||
@ -46,44 +60,46 @@ void GcodeSuite::G92() {
|
||||
}
|
||||
}
|
||||
#endif // Not SCARA
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if ENABLED(CNC_COORDINATE_SYSTEMS)
|
||||
#define IS_G92_0 (parser.subcode == 0)
|
||||
#else
|
||||
#define IS_G92_0 true
|
||||
#endif
|
||||
|
||||
bool didE = false;
|
||||
#if IS_SCARA || !HAS_POSITION_SHIFT
|
||||
bool didXYZ = false;
|
||||
#else
|
||||
constexpr bool didXYZ = false;
|
||||
#endif
|
||||
|
||||
if (IS_G92_0) LOOP_XYZE(i) {
|
||||
if (parser.seenval(axis_codes[i])) {
|
||||
const float l = parser.value_axis_units((AxisEnum)i),
|
||||
v = i == E_AXIS ? l : LOGICAL_TO_NATIVE(l, i),
|
||||
d = v - current_position[i];
|
||||
if (!NEAR_ZERO(d)) {
|
||||
#if IS_SCARA || !HAS_POSITION_SHIFT
|
||||
if (i == E_AXIS) didE = true; else didXYZ = true;
|
||||
current_position[i] = v; // Without workspaces revert to Marlin 1.0 behavior
|
||||
#elif HAS_POSITION_SHIFT
|
||||
if (i == E_AXIS) {
|
||||
didE = true;
|
||||
current_position[E_AXIS] = v; // When using coordinate spaces, only E is set directly
|
||||
} return;
|
||||
#endif
|
||||
#if ENABLED(POWER_LOSS_RECOVERY)
|
||||
case 9: {
|
||||
LOOP_XYZE(i) {
|
||||
if (parser.seenval(axis_codes[i])) {
|
||||
current_position[i] = parser.value_axis_units((AxisEnum)i);
|
||||
#if IS_SCARA || !HAS_POSITION_SHIFT
|
||||
if (i == E_AXIS) didE = true; else didXYZ = true;
|
||||
#elif HAS_POSITION_SHIFT
|
||||
if (i == E_AXIS) didE = true;
|
||||
#endif
|
||||
}
|
||||
else {
|
||||
position_shift[i] += d; // Other axes simply offset the coordinate space
|
||||
update_workspace_offset((AxisEnum)i);
|
||||
}
|
||||
} break;
|
||||
#endif
|
||||
case 0: {
|
||||
LOOP_XYZE(i) {
|
||||
if (parser.seenval(axis_codes[i])) {
|
||||
const float l = parser.value_axis_units((AxisEnum)i),
|
||||
v = i == E_AXIS ? l : LOGICAL_TO_NATIVE(l, i),
|
||||
d = v - current_position[i];
|
||||
if (!NEAR_ZERO(d)) {
|
||||
#if IS_SCARA || !HAS_POSITION_SHIFT
|
||||
if (i == E_AXIS) didE = true; else didXYZ = true;
|
||||
current_position[i] = v; // Without workspaces revert to Marlin 1.0 behavior
|
||||
#elif HAS_POSITION_SHIFT
|
||||
if (i == E_AXIS) {
|
||||
didE = true;
|
||||
current_position[E_AXIS] = v; // When using coordinate spaces, only E is set directly
|
||||
}
|
||||
else {
|
||||
position_shift[i] += d; // Other axes simply offset the coordinate space
|
||||
update_workspace_offset((AxisEnum)i);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
} break;
|
||||
}
|
||||
|
||||
#if ENABLED(CNC_COORDINATE_SYSTEMS)
|
||||
|
@ -526,8 +526,9 @@ void gcode_line_error(PGM_P const err, const int8_t port) {
|
||||
|
||||
#endif // BINARY_FILE_TRANSFER
|
||||
|
||||
FORCE_INLINE bool is_M29(const char * const cmd) {
|
||||
return cmd[0] == 'M' && cmd[1] == '2' && cmd[2] == '9' && !WITHIN(cmd[3], '0', '9');
|
||||
FORCE_INLINE bool is_M29(const char * const cmd) { // matches "M29" & "M29 ", but not "M290", etc
|
||||
const char * const m29 = strstr_P(cmd, PSTR("M29"));
|
||||
return m29 && !NUMERIC(m29[3]);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -31,9 +31,6 @@
|
||||
* M23: Open a file
|
||||
*/
|
||||
void GcodeSuite::M23() {
|
||||
#if ENABLED(POWER_LOSS_RECOVERY)
|
||||
card.removeJobRecoveryFile();
|
||||
#endif
|
||||
// Simplify3D includes the size, so zero out all spaces (#7227)
|
||||
for (char *fn = parser.string_arg; *fn; ++fn) if (*fn == ' ') *fn = '\0';
|
||||
card.openFile(parser.string_arg, true);
|
||||
|
@ -143,6 +143,8 @@
|
||||
|
||||
#define DOGLCD
|
||||
#define ULTIPANEL
|
||||
#define LCD_CONTRAST_MIN 0
|
||||
#define LCD_CONTRAST_MAX 255
|
||||
#define DEFAULT_LCD_CONTRAST 255
|
||||
#define LED_COLORS_REDUCE_GREEN
|
||||
|
||||
|
@ -517,7 +517,7 @@ FORCE_INLINE void _draw_axis_value(const AxisEnum axis, const char *value, const
|
||||
else {
|
||||
#if DISABLED(HOME_AFTER_DEACTIVATE, DISABLE_REDUCED_ACCURACY_WARNING)
|
||||
if (!TEST(axis_known_position, axis))
|
||||
lcd_put_u8str_P(axis == Z_AXIS ? PSTR(" ") : PSTR(" "));
|
||||
lcd_put_u8str_P(axis == Z_AXIS ? PSTR(" ") : PSTR(" "));
|
||||
else
|
||||
#endif
|
||||
lcd_put_u8str(value);
|
||||
|
@ -245,7 +245,7 @@ FORCE_INLINE void _draw_axis_value(const AxisEnum axis, const char *value, const
|
||||
else {
|
||||
#if DISABLED(HOME_AFTER_DEACTIVATE, DISABLE_REDUCED_ACCURACY_WARNING)
|
||||
if (!TEST(axis_known_position, axis))
|
||||
lcd_put_u8str_P(axis == Z_AXIS ? PSTR(" ") : PSTR(" "));
|
||||
lcd_put_u8str_P(axis == Z_AXIS ? PSTR(" ") : PSTR(" "));
|
||||
else
|
||||
#endif
|
||||
lcd_put_u8str(value);
|
||||
|
@ -112,7 +112,11 @@
|
||||
//#define U8G_CLASS U8GLIB_MINI12864
|
||||
//#define U8G_PARAM DOGLCD_CS, DOGLCD_A0 // 8 stripes
|
||||
#define U8G_CLASS U8GLIB_MINI12864_2X
|
||||
#define U8G_PARAM DOGLCD_CS, DOGLCD_A0 // 4 stripes
|
||||
#if EITHER(FYSETC_MINI_12864, TARGET_LPC1768)
|
||||
#define U8G_PARAM DOGLCD_SCK, DOGLCD_MOSI, DOGLCD_CS, DOGLCD_A0 // 4 stripes SW-SPI
|
||||
#else
|
||||
#define U8G_PARAM DOGLCD_CS, DOGLCD_A0 // 4 stripes HW-SPI
|
||||
#endif
|
||||
#elif ENABLED(U8GLIB_SH1106_EINSTART)
|
||||
// Connected via motherboard header
|
||||
#define U8G_CLASS U8GLIB_SH1106_128X64
|
||||
|
@ -35,15 +35,20 @@
|
||||
*/
|
||||
|
||||
#define DISPLAY_CHARSET_ISO10646_CZ
|
||||
#define THIS_LANGUAGES_SPECIAL_SYMBOLS _UxGT("áÁčČďĎéÉěĚíÍňŇóÓřŘšŠťŤúÚůŮýÝžŽ³")
|
||||
#define CHARSIZE 2
|
||||
|
||||
#define WELCOME_MSG MACHINE_NAME _UxGT(" připraven.")
|
||||
#define MSG_YES _UxGT("ANO")
|
||||
#define MSG_NO _UxGT("NE")
|
||||
#define MSG_BACK _UxGT("Zpět")
|
||||
#define MSG_SD_INSERTED _UxGT("Karta vložena")
|
||||
#define MSG_SD_REMOVED _UxGT("Karta vyjmuta")
|
||||
#define MSG_LCD_ENDSTOPS _UxGT("Endstopy") // max 8 znaku
|
||||
#define MSG_LCD_SOFT_ENDSTOPS _UxGT("Soft Endstopy")
|
||||
#define MSG_MAIN _UxGT("Hlavní nabídka")
|
||||
#define MSG_ADVANCED_SETTINGS _UxGT("Další nastavení")
|
||||
#define MSG_CONFIGURATION _UxGT("Konfigurace")
|
||||
#define MSG_AUTOSTART _UxGT("Autostart")
|
||||
#define MSG_DISABLE_STEPPERS _UxGT("Uvolnit motory")
|
||||
#define MSG_DEBUG_MENU _UxGT("Nabídka ladění")
|
||||
@ -56,6 +61,7 @@
|
||||
#define MSG_AUTO_HOME_X _UxGT("Domů osa X")
|
||||
#define MSG_AUTO_HOME_Y _UxGT("Domů osa Y")
|
||||
#define MSG_AUTO_HOME_Z _UxGT("Domů osa Z")
|
||||
#define MSG_AUTO_Z_ALIGN _UxGT("Auto srovnání Z")
|
||||
#define MSG_LEVEL_BED_HOMING _UxGT("Měření podložky")
|
||||
#define MSG_LEVEL_BED_WAITING _UxGT("Kliknutím spusťte")
|
||||
#define MSG_LEVEL_BED_NEXT_POINT _UxGT("Další bod")
|
||||
@ -76,7 +82,13 @@
|
||||
#define MSG_PREHEAT_2_END MSG_PREHEAT_2 _UxGT(" hotend")
|
||||
#define MSG_PREHEAT_2_BEDONLY MSG_PREHEAT_2 _UxGT(" podlož")
|
||||
#define MSG_PREHEAT_2_SETTINGS MSG_PREHEAT_2 _UxGT(" nast")
|
||||
#define MSG_PREHEAT_CUSTOM _UxGT("Zahřát vlastní")
|
||||
#define MSG_COOLDOWN _UxGT("Zchladit")
|
||||
#define MSG_LASER_MENU _UxGT("Ovládání laseru")
|
||||
#define MSG_LASER_OFF _UxGT("Vypnout laser")
|
||||
#define MSG_LASER_ON _UxGT("Zapnout laser")
|
||||
#define MSG_LASER_POWER _UxGT("Výkon laseru")
|
||||
#define MSG_SPINDLE_REVERSE _UxGT("Vřeteno opačně")
|
||||
#define MSG_SWITCH_PS_ON _UxGT("Zapnout napájení")
|
||||
#define MSG_SWITCH_PS_OFF _UxGT("Vypnout napájení")
|
||||
#define MSG_EXTRUDE _UxGT("Vytlačit (extr.)")
|
||||
@ -88,10 +100,23 @@
|
||||
#define MSG_NEXT_CORNER _UxGT("Další roh")
|
||||
#define MSG_EDITING_STOPPED _UxGT("Konec úprav sítě")
|
||||
|
||||
#define MSG_MESH_X _UxGT("Index X")
|
||||
#define MSG_MESH_Y _UxGT("Index Y")
|
||||
#define MSG_MESH_EDIT_Z _UxGT("Hodnota Z")
|
||||
#define MSG_USER_MENU _UxGT("Vlastní příkazy")
|
||||
#define MSG_UBL_DOING_G29 _UxGT("Provádím G29")
|
||||
#define MSG_UBL_UNHOMED _UxGT("Přejeďte domů")
|
||||
#define MSG_UBL_TOOLS _UxGT("UBL nástroje")
|
||||
#define MSG_UBL_LEVEL_BED _UxGT("Unified Bed Leveling")
|
||||
#define MSG_IDEX_MENU _UxGT("Režim IDEX")
|
||||
#define MSG_OFFSETS_MENU _UxGT("Ofsety nástrojů")
|
||||
#define MSG_IDEX_MODE_AUTOPARK _UxGT("Auto-Park")
|
||||
#define MSG_IDEX_MODE_DUPLICATE _UxGT("Duplikace")
|
||||
#define MSG_IDEX_MODE_MIRRORED_COPY _UxGT("Zrcadlení")
|
||||
#define MSG_IDEX_MODE_FULL_CTRL _UxGT("Plná kontrola")
|
||||
#define MSG_X_OFFSET _UxGT("2. tryska X")
|
||||
#define MSG_Y_OFFSET _UxGT("2. tryska Y")
|
||||
#define MSG_Z_OFFSET _UxGT("2. tryska Z")
|
||||
#define MSG_UBL_MANUAL_MESH _UxGT("Manuální síť bodů")
|
||||
#define MSG_UBL_BC_INSERT _UxGT("Vložte kartu, změřte")
|
||||
#define MSG_UBL_BC_INSERT2 _UxGT("Změřte")
|
||||
@ -169,7 +194,6 @@
|
||||
#define MSG_INTENSITY_B _UxGT("Modrá intenzita")
|
||||
#define MSG_INTENSITY_W _UxGT("Bílá intenzita")
|
||||
#define MSG_LED_BRIGHTNESS _UxGT("Jas")
|
||||
#define MSG_USER_MENU _UxGT("Vlastní příkazy")
|
||||
|
||||
#define MSG_MOVING _UxGT("Posouvání...")
|
||||
#define MSG_FREE_XY _UxGT("Uvolnit XY")
|
||||
@ -177,6 +201,7 @@
|
||||
#define MSG_MOVE_Y _UxGT("Posunout Y")
|
||||
#define MSG_MOVE_Z _UxGT("Posunout Z")
|
||||
#define MSG_MOVE_E _UxGT("Extrudér")
|
||||
#define MSG_HOTEND_TOO_COLD _UxGT("Hotend je studený")
|
||||
#define MSG_MOVE_01MM _UxGT("Posunout o 0,1mm")
|
||||
#define MSG_MOVE_1MM _UxGT("Posunout o 1mm")
|
||||
#define MSG_MOVE_10MM _UxGT("Posunout o 10mm")
|
||||
@ -184,6 +209,7 @@
|
||||
#define MSG_BED_Z _UxGT("Výška podl.")
|
||||
#define MSG_NOZZLE _UxGT("Tryska")
|
||||
#define MSG_BED _UxGT("Podložka")
|
||||
#define MSG_CHAMBER _UxGT("Komora")
|
||||
#define MSG_FAN_SPEED _UxGT("Rychlost vent.")
|
||||
#define MSG_EXTRA_FAN_SPEED _UxGT("Rychlost ex. vent.")
|
||||
#define MSG_FLOW _UxGT("Průtok")
|
||||
@ -250,10 +276,15 @@
|
||||
#define MSG_LOAD_EEPROM _UxGT("Načíst nastavení")
|
||||
#define MSG_RESTORE_FAILSAFE _UxGT("Obnovit výchozí")
|
||||
#define MSG_INIT_EEPROM _UxGT("Inic. EEPROM")
|
||||
#define MSG_SD_UPDATE _UxGT("Aktualizace z SD")
|
||||
#define MSG_RESET_PRINTER _UxGT("Reset tiskárny")
|
||||
#define MSG_REFRESH _UxGT("Obnovit")
|
||||
#define MSG_WATCH _UxGT("Info obrazovka")
|
||||
#define MSG_PREPARE _UxGT("Připrava tisku")
|
||||
#define MSG_TUNE _UxGT("Doladění tisku")
|
||||
#define MSG_START_PRINT _UxGT("Spustit tisk")
|
||||
#define MSG_BUTTON_PRINT _UxGT("Tisk")
|
||||
#define MSG_BUTTON_CANCEL _UxGT("Zrušit")
|
||||
#define MSG_PAUSE_PRINT _UxGT("Pozastavit tisk")
|
||||
#define MSG_RESUME_PRINT _UxGT("Obnovit tisk")
|
||||
#define MSG_STOP_PRINT _UxGT("Zastavit tisk")
|
||||
@ -277,6 +308,12 @@
|
||||
#define MSG_CONTROL_RETRACT_RECOVERF _UxGT("UnRet V")
|
||||
#define MSG_CONTROL_RETRACT_RECOVER_SWAPF _UxGT("S UnRet V")
|
||||
#define MSG_AUTORETRACT _UxGT("AutoRetr.")
|
||||
#define MSG_FILAMENT_SWAP_LENGTH _UxGT("Délka retrakce")
|
||||
#define MSG_TOOL_CHANGE _UxGT("Výměna nástroje")
|
||||
#define MSG_TOOL_CHANGE_ZLIFT _UxGT("Zdvih Z")
|
||||
#define MSG_SINGLENOZZLE_PRIME_SPD _UxGT("Rychlost primár.")
|
||||
#define MSG_SINGLENOZZLE_RETRACT_SPD _UxGT("Rychlost retrak.")
|
||||
#define MSG_NOZZLE_STANDBY _UxGT("Tryska standby")
|
||||
#define MSG_FILAMENTCHANGE _UxGT("Vyměnit filament")
|
||||
#define MSG_FILAMENTLOAD _UxGT("Zavést filament")
|
||||
#define MSG_FILAMENTUNLOAD _UxGT("Vysunout filament")
|
||||
@ -287,16 +324,22 @@
|
||||
#define MSG_ZPROBE_OUT _UxGT("Sonda Z mimo podl")
|
||||
#define MSG_SKEW_FACTOR _UxGT("Faktor zkosení")
|
||||
#define MSG_BLTOUCH _UxGT("BLTouch")
|
||||
#define MSG_BLTOUCH_SELFTEST _UxGT("BLTouch Self-Test")
|
||||
#define MSG_BLTOUCH_RESET _UxGT("BLTouch Reset")
|
||||
#define MSG_BLTOUCH_DEPLOY _UxGT("BLTouch Vysunout")
|
||||
#define MSG_BLTOUCH_STOW _UxGT("BLTouch Zasunout")
|
||||
#define MSG_BLTOUCH_SELFTEST _UxGT("BLTouch self-test")
|
||||
#define MSG_BLTOUCH_RESET _UxGT("BLTouch reset")
|
||||
#define MSG_BLTOUCH_DEPLOY _UxGT("BLTouch vysunout")
|
||||
#define MSG_BLTOUCH_SW_MODE _UxGT("SW výsun BLTouch")
|
||||
#define MSG_BLTOUCH_5V_MODE _UxGT("BLTouch 5V režim")
|
||||
#define MSG_BLTOUCH_OD_MODE _UxGT("BLTouch OD režim")
|
||||
#define MSG_BLTOUCH_STOW _UxGT("BLTouch zasunout")
|
||||
#define MSG_MANUAL_DEPLOY _UxGT("Vysunout Z-sondu")
|
||||
#define MSG_MANUAL_STOW _UxGT("Zasunout Z-sondu")
|
||||
#define MSG_HOME _UxGT("Domů") // Used as MSG_HOME " " MSG_X MSG_Y MSG_Z " " MSG_FIRST
|
||||
#define MSG_FIRST _UxGT("první")
|
||||
#define MSG_ZPROBE_ZOFFSET _UxGT("Z ofset")
|
||||
#define MSG_BABYSTEP_X _UxGT("Babystep X")
|
||||
#define MSG_BABYSTEP_Y _UxGT("Babystep Y")
|
||||
#define MSG_BABYSTEP_Z _UxGT("Babystep Z")
|
||||
#define MSG_BABYSTEP_TOTAL _UxGT("Celkem")
|
||||
#define MSG_ENDSTOP_ABORT _UxGT("Endstop abort")
|
||||
#define MSG_HEATING_FAILED_LCD _UxGT("Chyba zahřívání")
|
||||
#define MSG_HEATING_FAILED_LCD_BED _UxGT("Chyba zahř.podl.")
|
||||
@ -307,6 +350,8 @@
|
||||
#define MSG_ERR_MINTEMP _UxGT("NÍZKA TEPLOTA")
|
||||
#define MSG_ERR_MAXTEMP_BED _UxGT("VYS. TEPL. PODL.")
|
||||
#define MSG_ERR_MINTEMP_BED _UxGT("NÍZ. TEPL. PODL.")
|
||||
#define MSG_ERR_MAXTEMP_CHAMBER _UxGT("Err: MAXTEMP KOMORA")
|
||||
#define MSG_ERR_MINTEMP_CHAMBER _UxGT("Err: MINTEMP KOMORA")
|
||||
#define MSG_ERR_Z_HOMING MSG_HOME _UxGT(" ") MSG_X MSG_Y _UxGT(" ") MSG_FIRST
|
||||
#define MSG_HALTED _UxGT("TISK. ZASTAVENA")
|
||||
#define MSG_PLEASE_RESET _UxGT("Proveďte reset")
|
||||
@ -380,18 +425,82 @@
|
||||
#define MSG_FILAMENT_CHANGE_OPTION_PURGE _UxGT("Vytlačit víc")
|
||||
#define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Obnovit tisk")
|
||||
#define MSG_FILAMENT_CHANGE_NOZZLE _UxGT(" Tryska: ")
|
||||
#define MSG_RUNOUT_SENSOR _UxGT("Senzor filamentu")
|
||||
#define MSG_ERR_HOMING_FAILED _UxGT("Parkování selhalo")
|
||||
#define MSG_ERR_PROBING_FAILED _UxGT("Kalibrace selhala")
|
||||
#define MSG_M600_TOO_COLD _UxGT("M600: Moc studený")
|
||||
|
||||
#define MSG_MMU2_FILAMENT_CHANGE_HEADER _UxGT("VÝMĚNA FILAMENTU")
|
||||
#define MSG_MMU2_CHOOSE_FILAMENT_HEADER _UxGT("VYBERTE FILAMENT")
|
||||
#define MSG_MMU2_MENU _UxGT("MMU")
|
||||
#define MSG_MMU2_WRONG_FIRMWARE _UxGT("Aktual. MMU firmware!")
|
||||
#define MSG_MMU2_NOT_RESPONDING _UxGT("MMU potř. pozornost.")
|
||||
#define MSG_MMU2_RESUME _UxGT("Obnovit tisk")
|
||||
#define MSG_MMU2_RESUMING _UxGT("Obnovování...")
|
||||
#define MSG_MMU2_LOAD_FILAMENT _UxGT("Zavést filament")
|
||||
#define MSG_MMU2_LOAD_ALL _UxGT("Zavést všechny")
|
||||
#define MSG_MMU2_LOAD_TO_NOZZLE _UxGT("Zavést do trysky")
|
||||
#define MSG_MMU2_EJECT_FILAMENT _UxGT("Vysunout filament")
|
||||
#define MSG_MMU2_EJECT_FILAMENT0 _UxGT("Vysun. filament 1")
|
||||
#define MSG_MMU2_EJECT_FILAMENT1 _UxGT("Vysun. filament 2")
|
||||
#define MSG_MMU2_EJECT_FILAMENT2 _UxGT("Vysun. filament 3")
|
||||
#define MSG_MMU2_EJECT_FILAMENT3 _UxGT("Vysun. filament 4")
|
||||
#define MSG_MMU2_EJECT_FILAMENT4 _UxGT("Vysun. filament 5")
|
||||
#define MSG_MMU2_UNLOAD_FILAMENT _UxGT("Vytáhnout filament")
|
||||
#define MSG_MMU2_LOADING_FILAMENT _UxGT("Zavádění fil. %i...")
|
||||
#define MSG_MMU2_EJECTING_FILAMENT _UxGT("Vytahování fil. ...")
|
||||
#define MSG_MMU2_UNLOADING_FILAMENT _UxGT("Vysouvání fil....")
|
||||
#define MSG_MMU2_ALL _UxGT("Všechny")
|
||||
#define MSG_MMU2_FILAMENT0 _UxGT("Filament 1")
|
||||
#define MSG_MMU2_FILAMENT1 _UxGT("Filament 2")
|
||||
#define MSG_MMU2_FILAMENT2 _UxGT("Filament 3")
|
||||
#define MSG_MMU2_FILAMENT3 _UxGT("Filament 4")
|
||||
#define MSG_MMU2_FILAMENT4 _UxGT("Filament 5")
|
||||
#define MSG_MMU2_RESET _UxGT("Resetovat MMU")
|
||||
#define MSG_MMU2_RESETTING _UxGT("Resetování MMU...")
|
||||
#define MSG_MMU2_EJECT_RECOVER _UxGT("Vytáhněte, klikněte")
|
||||
|
||||
#define MSG_MIX _UxGT("Mix")
|
||||
#define MSG_MIX_COMPONENT _UxGT("Komponenta")
|
||||
#define MSG_MIXER _UxGT("Mixér")
|
||||
#define MSG_GRADIENT _UxGT("Přechod")
|
||||
#define MSG_FULL_GRADIENT _UxGT("Celý přechod")
|
||||
#define MSG_TOGGLE_MIX _UxGT("Přepnout mix")
|
||||
#define MSG_CYCLE_MIX _UxGT("Střídat mix")
|
||||
#define MSG_GRADIENT_MIX _UxGT("Přechod mix")
|
||||
#define MSG_REVERSE_GRADIENT _UxGT("Opačný přechod")
|
||||
#if LCD_WIDTH >= 20
|
||||
#define MSG_ACTIVE_VTOOL _UxGT("Aktivní V-nástroj")
|
||||
#define MSG_START_VTOOL _UxGT("Spustit V-nástroj")
|
||||
#define MSG_END_VTOOL _UxGT("Ukončit V-nástroj")
|
||||
#define MSG_GRADIENT_ALIAS _UxGT("Alias V-nástroje")
|
||||
#define MSG_RESET_VTOOLS _UxGT("Resetovat V-nástroj")
|
||||
#define MSG_COMMIT_VTOOL _UxGT("Uložit V-nástroj mix")
|
||||
#define MSG_VTOOLS_RESET _UxGT("V-nástroj resetovat")
|
||||
#else
|
||||
#define MSG_ACTIVE_VTOOL _UxGT("Aktivní V-nástr.")
|
||||
#define MSG_START_VTOOL _UxGT("Spustit V-nástr.")
|
||||
#define MSG_END_VTOOL _UxGT("Ukončit V-nástr.")
|
||||
#define MSG_GRADIENT_ALIAS _UxGT("Alias V-nástr.")
|
||||
#define MSG_RESET_VTOOLS _UxGT("Reset. V-nástr.")
|
||||
#define MSG_COMMIT_VTOOL _UxGT("Uložit V-nás. mix")
|
||||
#define MSG_VTOOLS_RESET _UxGT("V-nástr. reset.")
|
||||
#endif
|
||||
#define MSG_START_Z _UxGT("Počáteční Z")
|
||||
#define MSG_END_Z _UxGT(" Koncové Z")
|
||||
#define MSG_BRICKOUT _UxGT("Brickout")
|
||||
#define MSG_INVADERS _UxGT("Invaders")
|
||||
#define MSG_SNAKE _UxGT("Sn4k3")
|
||||
#define MSG_MAZE _UxGT("Bludiště")
|
||||
|
||||
#if LCD_HEIGHT >= 4
|
||||
// Up to 3 lines allowed
|
||||
#define MSG_ADVANCED_PAUSE_WAITING_1 _UxGT("Stikněte tlačítko")
|
||||
#define MSG_ADVANCED_PAUSE_WAITING_2 _UxGT("pro obnovení tisku")
|
||||
#define MSG_PAUSE_PRINT_INIT_1 _UxGT("Parkování...")
|
||||
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Čekejte prosím")
|
||||
#define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("na zahájení")
|
||||
#define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("výměny filamentu")
|
||||
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Čekejte prosím")
|
||||
#define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("na vysunuti")
|
||||
#define MSG_FILAMENT_CHANGE_UNLOAD_3 _UxGT("filamentu")
|
||||
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Vložte filament")
|
||||
#define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("a stiskněte")
|
||||
#define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("tlačítko...")
|
||||
@ -399,21 +508,46 @@
|
||||
#define MSG_FILAMENT_CHANGE_HEAT_2 _UxGT("nahřátí trysky")
|
||||
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Čekejte prosím")
|
||||
#define MSG_FILAMENT_CHANGE_HEATING_2 _UxGT("na nahřátí tr.")
|
||||
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Čekejte prosím")
|
||||
#define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("na vysunuti")
|
||||
#define MSG_FILAMENT_CHANGE_UNLOAD_3 _UxGT("filamentu")
|
||||
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Čekejte prosím")
|
||||
#define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("na zavedení")
|
||||
#define MSG_FILAMENT_CHANGE_LOAD_3 _UxGT("filamentu")
|
||||
#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Vyčkejte na")
|
||||
#define MSG_FILAMENT_CHANGE_PURGE_2 _UxGT("vytlačení")
|
||||
#define MSG_FILAMENT_CHANGE_CONT_PURGE_1 _UxGT("Klikněte pro")
|
||||
#define MSG_FILAMENT_CHANGE_CONT_PURGE_2 _UxGT("ukončení")
|
||||
#define MSG_FILAMENT_CHANGE_CONT_PURGE_3 _UxGT("vytlačování")
|
||||
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Čekejte prosím")
|
||||
#define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("na pokračování")
|
||||
#define MSG_FILAMENT_CHANGE_RESUME_3 _UxGT("tisku")
|
||||
#else // LCD_HEIGHT < 4
|
||||
// Up to 2 lines allowed
|
||||
#define MSG_ADVANCED_PAUSE_WAITING_1 _UxGT("Stikněte tlač.")
|
||||
#define MSG_ADVANCED_PAUSE_WAITING_2 _UxGT("pro obnovení")
|
||||
#define MSG_PAUSE_PRINT_INIT_1 _UxGT("Parkování...")
|
||||
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Čekejte...")
|
||||
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Vysouvání...")
|
||||
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Vložte, klikněte")
|
||||
#define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Klikněte pro")
|
||||
#define MSG_FILAMENT_CHANGE_HEAT_2 _UxGT("nahřátí")
|
||||
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Nahřívání...")
|
||||
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Vysouvání...")
|
||||
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Zavádění...")
|
||||
#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Vytlačování...")
|
||||
#define MSG_FILAMENT_CHANGE_CONT_PURGE_1 _UxGT("Klikněte pro")
|
||||
#define MSG_FILAMENT_CHANGE_CONT_PURGE_2 _UxGT("ukončení")
|
||||
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Pokračování...")
|
||||
#endif // LCD_HEIGHT < 4
|
||||
|
||||
#define MSG_TMC_DRIVERS _UxGT("TMC budiče")
|
||||
#define MSG_TMC_CURRENT _UxGT("Proud budičů")
|
||||
#define MSG_TMC_HYBRID_THRS _UxGT("Hybridní práh")
|
||||
#define MSG_TMC_HOMING_THRS _UxGT("Domů bez senzorů")
|
||||
#define MSG_TMC_STEPPING_MODE _UxGT("Režim kroků")
|
||||
#define MSG_TMC_STEALTH_ENABLED _UxGT("StealthChop povolen")
|
||||
#define MSG_SERVICE_RESET _UxGT("Reset")
|
||||
#define MSG_SERVICE_IN _UxGT(" za:")
|
||||
#define MSG_BACKLASH _UxGT("Vůle")
|
||||
#define MSG_BACKLASH_CORRECTION _UxGT("Korekce")
|
||||
#define MSG_BACKLASH_SMOOTHING _UxGT("Vyhlazení")
|
@ -1362,6 +1362,9 @@
|
||||
#ifndef MSG_ADVANCED_PAUSE_WAITING_1
|
||||
#define MSG_ADVANCED_PAUSE_WAITING_1 _UxGT("Click to continue")
|
||||
#endif
|
||||
#ifndef MSG_PAUSE_PRINT_INIT_1
|
||||
#define MSG_PAUSE_PRINT_INIT_1 _UxGT("Parking...")
|
||||
#endif
|
||||
#ifndef MSG_FILAMENT_CHANGE_INIT_1
|
||||
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Please wait...")
|
||||
#endif
|
||||
|
@ -40,6 +40,8 @@
|
||||
#define THIS_LANGUAGES_SPECIAL_SYMBOLS _UxGT("äÄáÁčČďĎéÉíÍĺĹľĽňŇóÓôÔŕŔšŠťŤúÚýÝžŽ³")
|
||||
|
||||
#define WELCOME_MSG MACHINE_NAME _UxGT(" pripravená.")
|
||||
#define MSG_YES _UxGT("ÁNO")
|
||||
#define MSG_NO _UxGT("NIE")
|
||||
#define MSG_BACK _UxGT("Naspäť")
|
||||
#define MSG_SD_INSERTED _UxGT("Karta vložená")
|
||||
#define MSG_SD_REMOVED _UxGT("Karta vybraná")
|
||||
@ -104,6 +106,7 @@
|
||||
#define MSG_UBL_TOOLS _UxGT("Nástroje UBL")
|
||||
#define MSG_UBL_LEVEL_BED _UxGT("UBL rovnanie")
|
||||
#define MSG_IDEX_MENU _UxGT("IDEX režim")
|
||||
#define MSG_OFFSETS_MENU _UxGT("Offset nástrojov")
|
||||
#define MSG_IDEX_MODE_AUTOPARK _UxGT("Auto-parkovanie")
|
||||
#define MSG_IDEX_MODE_DUPLICATE _UxGT("Duplikácia")
|
||||
#define MSG_IDEX_MODE_MIRRORED_COPY _UxGT("Zrkadlená kópia")
|
||||
@ -276,6 +279,9 @@
|
||||
#define MSG_WATCH _UxGT("Info. obrazovka")
|
||||
#define MSG_PREPARE _UxGT("Príprava tlače")
|
||||
#define MSG_TUNE _UxGT("Doladenie tlače")
|
||||
#define MSG_START_PRINT _UxGT("Spustiť tlač")
|
||||
#define MSG_BUTTON_PRINT _UxGT("Tlačiť")
|
||||
#define MSG_BUTTON_CANCEL _UxGT("Zrušiť")
|
||||
#define MSG_PAUSE_PRINT _UxGT("Pozastaviť tlač")
|
||||
#define MSG_RESUME_PRINT _UxGT("Obnoviť tlač")
|
||||
#define MSG_STOP_PRINT _UxGT("Zastaviť tlač")
|
||||
@ -330,6 +336,7 @@
|
||||
#define MSG_BABYSTEP_X _UxGT("Babystep X")
|
||||
#define MSG_BABYSTEP_Y _UxGT("Babystep Y")
|
||||
#define MSG_BABYSTEP_Z _UxGT("Babystep Z")
|
||||
#define MSG_BABYSTEP_TOTAL _UxGT("Celkom")
|
||||
#define MSG_ENDSTOP_ABORT _UxGT("Zastavenie Endstop")
|
||||
#define MSG_HEATING_FAILED_LCD _UxGT("Chyba ohrevu")
|
||||
#define MSG_HEATING_FAILED_LCD_BED _UxGT("Chyba ohrevu podl.")
|
||||
@ -461,6 +468,10 @@
|
||||
#define MSG_VTOOLS_RESET _UxGT("V-tools resetované")
|
||||
#define MSG_START_Z _UxGT("Počiat.Z")
|
||||
#define MSG_END_Z _UxGT("Konečn.Z")
|
||||
#define MSG_BRICKOUT _UxGT("Brickout")
|
||||
#define MSG_INVADERS _UxGT("Nájazdníci")
|
||||
#define MSG_SNAKE _UxGT("Had")
|
||||
#define MSG_MAZE _UxGT("Bludisko")
|
||||
|
||||
//
|
||||
// Filament Change screens show up to 3 lines on a 4-line display
|
||||
@ -515,3 +526,6 @@
|
||||
|
||||
#define MSG_SERVICE_RESET _UxGT("Vynulovať")
|
||||
#define MSG_SERVICE_IN _UxGT(" za:")
|
||||
#define MSG_BACKLASH _UxGT("Kompenz. vôle")
|
||||
#define MSG_BACKLASH_CORRECTION _UxGT("Korekcia")
|
||||
#define MSG_BACKLASH_SMOOTHING _UxGT("Vyhladzovanie")
|
||||
|
@ -167,9 +167,9 @@ DEFINE_MENU_EDIT_ITEM(float3); // 123 right-justified
|
||||
DEFINE_MENU_EDIT_ITEM(float52); // 123.45
|
||||
DEFINE_MENU_EDIT_ITEM(float43); // 1.234
|
||||
DEFINE_MENU_EDIT_ITEM(float5); // 12345 right-justified
|
||||
DEFINE_MENU_EDIT_ITEM(float51); // +1234.5
|
||||
DEFINE_MENU_EDIT_ITEM(float51); // 1234.5 right-justified
|
||||
DEFINE_MENU_EDIT_ITEM(float51sign); // +1234.5
|
||||
DEFINE_MENU_EDIT_ITEM(float52sign); // +123.45
|
||||
DEFINE_MENU_EDIT_ITEM(float62); // 1234.56 right-justified
|
||||
DEFINE_MENU_EDIT_ITEM(long5); // 12345 right-justified
|
||||
|
||||
void MenuItem_bool::action_edit(PGM_P pstr, bool *ptr, screenFunc_t callback) {
|
||||
|
@ -24,6 +24,8 @@
|
||||
#include "../ultralcd.h"
|
||||
#include "../../inc/MarlinConfig.h"
|
||||
|
||||
#include "limits.h"
|
||||
|
||||
extern int8_t encoderLine, encoderTopLine, screen_items;
|
||||
extern bool screen_changed;
|
||||
|
||||
@ -54,9 +56,9 @@ DECLARE_MENU_EDIT_TYPE(float, float3, ftostr3, 1 ); // 123
|
||||
DECLARE_MENU_EDIT_TYPE(float, float52, ftostr52, 100 ); // 123.45
|
||||
DECLARE_MENU_EDIT_TYPE(float, float43, ftostr43sign, 1000 ); // 1.234
|
||||
DECLARE_MENU_EDIT_TYPE(float, float5, ftostr5rj, 0.01f ); // 12345 right-justified
|
||||
DECLARE_MENU_EDIT_TYPE(float, float51, ftostr51sign, 10 ); // +1234.5
|
||||
DECLARE_MENU_EDIT_TYPE(float, float51, ftostr51rj, 10 ); // 1234.5 right-justified
|
||||
DECLARE_MENU_EDIT_TYPE(float, float51sign, ftostr51sign, 10 ); // +1234.5
|
||||
DECLARE_MENU_EDIT_TYPE(float, float52sign, ftostr52sign, 100 ); // +123.45
|
||||
DECLARE_MENU_EDIT_TYPE(float, float62, ftostr62rj, 100 ); // 1234.56 right-justified
|
||||
DECLARE_MENU_EDIT_TYPE(uint32_t, long5, ftostr5rj, 0.01f ); // 12345 right-justified
|
||||
|
||||
////////////////////////////////////////////
|
||||
@ -119,9 +121,9 @@ DEFINE_DRAW_MENU_ITEM_SETTING_EDIT(float3); // 123 right-justif
|
||||
DEFINE_DRAW_MENU_ITEM_SETTING_EDIT(float52); // 123.45
|
||||
DEFINE_DRAW_MENU_ITEM_SETTING_EDIT(float43); // 1.234
|
||||
DEFINE_DRAW_MENU_ITEM_SETTING_EDIT(float5); // 12345 right-justified
|
||||
DEFINE_DRAW_MENU_ITEM_SETTING_EDIT(float51); // +1234.5
|
||||
DEFINE_DRAW_MENU_ITEM_SETTING_EDIT(float51); // 1234.5 right-justified
|
||||
DEFINE_DRAW_MENU_ITEM_SETTING_EDIT(float51sign); // +1234.5
|
||||
DEFINE_DRAW_MENU_ITEM_SETTING_EDIT(float52sign); // +123.45
|
||||
DEFINE_DRAW_MENU_ITEM_SETTING_EDIT(float62); // 1234.56 right-justified
|
||||
DEFINE_DRAW_MENU_ITEM_SETTING_EDIT(long5); // 12345 right-justified
|
||||
|
||||
#define draw_menu_item_edit_bool(sel, row, pstr, pstr2, data, ...) DRAW_BOOL_SETTING(sel, row, pstr, data)
|
||||
@ -179,8 +181,10 @@ class TMenuItem : MenuItemBase {
|
||||
static char* to_string(const int16_t value) { return NAME::strfunc(unscale(value)); }
|
||||
public:
|
||||
static void action_edit(PGM_P const pstr, type_t * const ptr, const type_t minValue, const type_t maxValue, const screenFunc_t callback=NULL, const bool live=false) {
|
||||
const int16_t minv = scale(minValue);
|
||||
init(pstr, ptr, minv, int16_t(scale(maxValue)) - minv, int16_t(scale(*ptr)) - minv, edit, callback, live);
|
||||
// Make sure minv and maxv fit within int16_t
|
||||
const int16_t minv = MAX(scale(minValue), INT16_MIN),
|
||||
maxv = MIN(scale(maxValue), INT16_MAX);
|
||||
init(pstr, ptr, minv, maxv - minv, scale(*ptr) - minv, edit, callback, live);
|
||||
}
|
||||
static void edit() { MenuItemBase::edit(to_string, load); }
|
||||
};
|
||||
@ -199,8 +203,8 @@ DECLARE_MENU_EDIT_ITEM(float52);
|
||||
DECLARE_MENU_EDIT_ITEM(float43);
|
||||
DECLARE_MENU_EDIT_ITEM(float5);
|
||||
DECLARE_MENU_EDIT_ITEM(float51);
|
||||
DECLARE_MENU_EDIT_ITEM(float51sign);
|
||||
DECLARE_MENU_EDIT_ITEM(float52sign);
|
||||
DECLARE_MENU_EDIT_ITEM(float62);
|
||||
DECLARE_MENU_EDIT_ITEM(long5);
|
||||
|
||||
class MenuItem_bool {
|
||||
|
@ -571,14 +571,14 @@ void menu_backlash();
|
||||
START_MENU();
|
||||
MENU_BACK(MSG_ADVANCED_SETTINGS);
|
||||
|
||||
#define EDIT_QSTEPS(Q) MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_##Q##STEPS, &planner.settings.axis_steps_per_mm[_AXIS(Q)], 5, 9999, _planner_refresh_positioning)
|
||||
#define EDIT_QSTEPS(Q) MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float51, MSG_##Q##STEPS, &planner.settings.axis_steps_per_mm[_AXIS(Q)], 5, 9999, _planner_refresh_positioning)
|
||||
EDIT_QSTEPS(A);
|
||||
EDIT_QSTEPS(B);
|
||||
EDIT_QSTEPS(C);
|
||||
|
||||
#if ENABLED(DISTINCT_E_FACTORS)
|
||||
#define EDIT_ESTEPS(N,E) MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_E##N##STEPS, &planner.settings.axis_steps_per_mm[E_AXIS_N(E)], 5, 9999, _planner_refresh_e##E##_positioning)
|
||||
MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_ESTEPS, &planner.settings.axis_steps_per_mm[E_AXIS_N(active_extruder)], 5, 9999, _planner_refresh_positioning);
|
||||
#define EDIT_ESTEPS(N,E) MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float51, MSG_E##N##STEPS, &planner.settings.axis_steps_per_mm[E_AXIS_N(E)], 5, 9999, _planner_refresh_e##E##_positioning)
|
||||
MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float51, MSG_ESTEPS, &planner.settings.axis_steps_per_mm[E_AXIS_N(active_extruder)], 5, 9999, _planner_refresh_positioning);
|
||||
EDIT_ESTEPS(1,0);
|
||||
EDIT_ESTEPS(2,1);
|
||||
#if E_STEPPERS > 2
|
||||
@ -594,7 +594,7 @@ void menu_backlash();
|
||||
#endif // E_STEPPERS > 3
|
||||
#endif // E_STEPPERS > 2
|
||||
#elif E_STEPPERS
|
||||
MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_ESTEPS, &planner.settings.axis_steps_per_mm[E_AXIS], 5, 9999, _planner_refresh_positioning);
|
||||
MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float51, MSG_ESTEPS, &planner.settings.axis_steps_per_mm[E_AXIS], 5, 9999, _planner_refresh_positioning);
|
||||
#endif
|
||||
|
||||
END_MENU();
|
||||
|
@ -310,24 +310,35 @@ inline void do_probe_raise(const float z_raise) {
|
||||
|
||||
FORCE_INLINE void probe_specific_action(const bool deploy) {
|
||||
#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
|
||||
do {
|
||||
#if ENABLED(PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED)
|
||||
if (deploy == (READ(Z_MIN_PROBE_PIN) == Z_MIN_PROBE_ENDSTOP_INVERTING)) break;
|
||||
#endif
|
||||
|
||||
BUZZ(100, 659);
|
||||
BUZZ(100, 698);
|
||||
BUZZ(100, 659);
|
||||
BUZZ(100, 698);
|
||||
|
||||
PGM_P const ds_str = deploy ? PSTR(MSG_MANUAL_DEPLOY) : PSTR(MSG_MANUAL_STOW);
|
||||
ui.return_to_status(); // To display the new status message
|
||||
ui.set_status_P(ds_str, 99);
|
||||
serialprintPGM(ds_str);
|
||||
SERIAL_EOL();
|
||||
PGM_P const ds_str = deploy ? PSTR(MSG_MANUAL_DEPLOY) : PSTR(MSG_MANUAL_STOW);
|
||||
ui.return_to_status(); // To display the new status message
|
||||
ui.set_status_P(ds_str, 99);
|
||||
serialprintPGM(ds_str);
|
||||
SERIAL_EOL();
|
||||
|
||||
KEEPALIVE_STATE(PAUSED_FOR_USER);
|
||||
wait_for_user = true;
|
||||
#if ENABLED(HOST_PROMPT_SUPPORT)
|
||||
host_prompt_do(PROMPT_USER_CONTINUE, PSTR("Stow Probe"), PSTR("Continue"));
|
||||
#endif
|
||||
while (wait_for_user) idle();
|
||||
ui.reset_status();
|
||||
KEEPALIVE_STATE(IN_HANDLER);
|
||||
KEEPALIVE_STATE(PAUSED_FOR_USER);
|
||||
wait_for_user = true;
|
||||
#if ENABLED(HOST_PROMPT_SUPPORT)
|
||||
host_prompt_do(PROMPT_USER_CONTINUE, PSTR("Stow Probe"), PSTR("Continue"));
|
||||
#endif
|
||||
while (wait_for_user) idle();
|
||||
ui.reset_status();
|
||||
KEEPALIVE_STATE(IN_HANDLER);
|
||||
} while(
|
||||
#if ENABLED(PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED)
|
||||
true
|
||||
#else
|
||||
false
|
||||
#endif
|
||||
);
|
||||
|
||||
#endif // PAUSE_BEFORE_DEPLOY_STOW
|
||||
|
||||
|
@ -316,6 +316,8 @@
|
||||
#include "pins_RAMPS_RE_ARM.h" // LPC1768 env:LPC1768
|
||||
#elif MB(MKS_SBASE)
|
||||
#include "pins_MKS_SBASE.h" // LPC1768 env:LPC1768
|
||||
#elif MB(MKS_SGEN)
|
||||
#include "pins_MKS_SGEN.h" // LPC1769 env:LPC1769
|
||||
#elif MB(AZSMZ_MINI)
|
||||
#include "pins_AZSMZ_MINI.h" // LPC1768 env:LPC1768
|
||||
#elif MB(AZTEEG_X5_GT)
|
||||
|
@ -185,13 +185,9 @@
|
||||
//
|
||||
// SD Support
|
||||
//
|
||||
//#define USB_SD_DISABLED // Disable host access to SD card as mass storage device through USB
|
||||
//#define USB_SD_ONBOARD // Enable host access to SD card as mass storage device through USB
|
||||
|
||||
//#define LPC_SD_LCD // Marlin uses the SD drive attached to the LCD
|
||||
#define LPC_SD_ONBOARD // Marlin uses the SD drive on the control board. There is no SD detect pin
|
||||
// for the onboard card. Init card from LCD menu or send M21 whenever printer
|
||||
// is powered on to enable SD access.
|
||||
#if !ANY(LPC_SD_LCD, LPC_SD_ONBOARD, LPC_SD_CUSTOM_CABLE)
|
||||
#define LPC_SD_ONBOARD
|
||||
#endif
|
||||
|
||||
#if ENABLED(LPC_SD_LCD)
|
||||
|
||||
|
@ -208,15 +208,24 @@
|
||||
#define LCD_PINS_D7 P1_23
|
||||
#endif
|
||||
|
||||
#if ENABLED(MKS_MINI_12864)
|
||||
#define DOGLCD_CS P1_21
|
||||
#define DOGLCD_A0 P1_22
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#endif // ULTRA_LCD
|
||||
|
||||
//#define USB_SD_DISABLED
|
||||
#define USB_SD_ONBOARD // Provide the onboard SD card to the host as a USB mass storage device
|
||||
//
|
||||
// SD Support
|
||||
//
|
||||
|
||||
#define LPC_SD_LCD // Marlin uses the SD drive attached to the LCD
|
||||
//#define LPC_SD_ONBOARD // Marlin uses the SD drive on the control board
|
||||
#if !ANY(LPC_SD_LCD, LPC_SD_ONBOARD, LPC_SD_CUSTOM_CABLE)
|
||||
#undef USB_SD_DISABLED
|
||||
#define USB_SD_ONBOARD
|
||||
#define LPC_SD_LCD
|
||||
#endif
|
||||
|
||||
#if ENABLED(LPC_SD_LCD)
|
||||
|
||||
|
@ -105,18 +105,29 @@
|
||||
#define LCD_PINS_RS P0_16
|
||||
#define LCD_PINS_ENABLE P0_18
|
||||
#define LCD_PINS_D4 P0_15
|
||||
|
||||
#if ENABLED(MKS_MINI_12864)
|
||||
#define DOGLCD_CS P2_06
|
||||
#define DOGLCD_A0 P0_16
|
||||
#endif
|
||||
#endif
|
||||
|
||||
//
|
||||
// SD Support
|
||||
//
|
||||
//#define USB_SD_DISABLED // Disable host access to SD card as mass storage device through USB
|
||||
#define USB_SD_ONBOARD // Enable host access to SD card as mass storage device through USB
|
||||
|
||||
//#define LPC_SD_LCD // Marlin uses the SD drive attached to the LCD
|
||||
#define LPC_SD_ONBOARD // Marlin uses the SD drive on the control board. There is no SD detect pin
|
||||
// for the onboard card. Init card from LCD menu or send M21 whenever printer
|
||||
// is powered on to enable SD access.
|
||||
// MKS_MINI_12864 strongly prefers the SD card on the display and
|
||||
// requires jumpers on the SKR V1.1 board as documented here:
|
||||
// https://www.facebook.com/groups/505736576548648/permalink/630639874058317/
|
||||
#if !ANY(LPC_SD_LCD, LPC_SD_ONBOARD, LPC_SD_CUSTOM_CABLE)
|
||||
#if ENABLED(MKS_MINI_12864)
|
||||
#define LPC_SD_LCD
|
||||
#undef USB_SD_DISABLED
|
||||
#define USB_SD_ONBOARD
|
||||
#else
|
||||
#define USB_SD_ONBOARD
|
||||
#define LPC_SD_ONBOARD
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if ENABLED(LPC_SD_LCD)
|
||||
|
||||
|
@ -143,7 +143,7 @@
|
||||
#define LED_PIN 13
|
||||
#endif
|
||||
|
||||
#define SPINDLE_LASER_PWM_PIN 7 // MUST BE HARDWARE PWM
|
||||
#define SPINDLE_LASER_PWM_PIN -1 // MUST BE HARDWARE PWM
|
||||
#define SPINDLE_LASER_ENA_PIN 4 // Pin should have a pullup!
|
||||
|
||||
// Use the RAMPS 1.4 Analog input 5 on the AUX2 connector
|
||||
|
@ -28,8 +28,12 @@
|
||||
#error "Oops! Make sure you have the LPC1768 environment selected in your IDE."
|
||||
#endif
|
||||
|
||||
#define BOARD_NAME "MKS SBASE"
|
||||
#define BOARD_WEBSITE_URL "https://github.com/makerbase-mks/MKS-SBASE"
|
||||
#ifndef BOARD_NAME
|
||||
#define BOARD_NAME "MKS SBASE"
|
||||
#endif
|
||||
#ifndef BOARD_WEBSITE_URL
|
||||
#define BOARD_WEBSITE_URL "https://github.com/makerbase-mks/MKS-SBASE"
|
||||
#endif
|
||||
|
||||
#define LED_PIN P1_18 // Used as a status indicator
|
||||
#define LED2_PIN P1_19
|
||||
@ -154,23 +158,11 @@
|
||||
#define ENET_TXD0 P1_00 // J12-11
|
||||
#define ENET_TXD1 P1_01 // J12-12
|
||||
|
||||
/**
|
||||
* The SBase can share the on-board SD card with a PC via USB the following
|
||||
* definitions control this feature:
|
||||
*/
|
||||
//#define USB_SD_DISABLED
|
||||
#define USB_SD_ONBOARD // Provide the onboard SD card to the host as a USB mass storage device
|
||||
|
||||
/**
|
||||
* There are a number of configurations available for the SBase SD card reader.
|
||||
* - A custom cable can be used to allow access to the LCD based SD card.
|
||||
* - A standard cable can be used for access to the LCD SD card (but no SD detect).
|
||||
* - The onboard SD card can be used and optionally shared with a PC via USB.
|
||||
*/
|
||||
|
||||
//#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD
|
||||
//#define LPC_SD_LCD // Marlin uses the SD drive attached to the LCD
|
||||
#define LPC_SD_ONBOARD // Marlin uses the SD drive attached to the control board
|
||||
#if !ANY(LPC_SD_LCD, LPC_SD_ONBOARD, LPC_SD_CUSTOM_CABLE)
|
||||
#undef USB_SD_DISABLED
|
||||
#define USB_SD_ONBOARD
|
||||
#define LPC_SD_ONBOARD
|
||||
#endif
|
||||
|
||||
#if ENABLED(LPC_SD_CUSTOM_CABLE)
|
||||
|
||||
@ -249,6 +241,41 @@
|
||||
#define DOGLCD_SCK SCK_PIN
|
||||
#define DOGLCD_MOSI MOSI_PIN
|
||||
#endif
|
||||
|
||||
#if ENABLED(FYSETC_MINI_12864)
|
||||
/**
|
||||
* The Fysetc display can NOT use the SCK and MOSI pins on EXP2, so a
|
||||
* special cable is needed to go between EXP2 on the FYSETC and the
|
||||
* controller board's EXP2 and J8. It also means that a software SPI
|
||||
* is needed to drive those pins.
|
||||
*
|
||||
* The Fysetc requires mode 3 SPI interface.
|
||||
*
|
||||
* Pins 6, 7 & 8 on EXP2 are no connects. That means a second special
|
||||
* cable will be needed if the RGB LEDs are to be active.
|
||||
*/
|
||||
#define DOGLCD_CS LCD_PINS_ENABLE // EXP1.3 (LCD_EN on Fysetc schematic)
|
||||
#define DOGLCD_A0 LCD_PINS_RS // EXP1.4 (LCD_A0 on Fysetc schematic)
|
||||
#define DOGLCD_SCK P2_11 // J8-5 (SCK on Fysetc schematic)
|
||||
#define DOGLCD_MOSI P4_28 // J8-6 (MOSI on Fysetc schematic)
|
||||
|
||||
#define RGB_LED
|
||||
//#define RGBW_LED
|
||||
#if EITHER(RGB_LED, RGBW_LED)
|
||||
#define RGB_LED_R_PIN P2_12 // J8-4 (LCD_D6 on Fysetc schematic)
|
||||
#define RGB_LED_G_PIN P1_23 // J8-3 (LCD_D5 on Fysetc schematic)
|
||||
#define RGB_LED_B_PIN P1_22 // J8-2 (LCD_D7 on Fysetc schematic)
|
||||
//#define RGB_LED_W_PIN -1
|
||||
#endif
|
||||
|
||||
#elif ENABLED(MINIPANEL)
|
||||
// GLCD features
|
||||
// Uncomment screen orientation
|
||||
//#define LCD_SCREEN_ROT_90
|
||||
//#define LCD_SCREEN_ROT_180
|
||||
//#define LCD_SCREEN_ROT_270
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
/**
|
||||
@ -281,7 +308,7 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if HAS_DRIVER(TMC2208)
|
||||
#if MB(MKS_SBASE) && HAS_DRIVER(TMC2208)
|
||||
// The shortage of pins becomes apparent.
|
||||
// Worst case you may have to give up the LCD
|
||||
// RX pins need to be interrupt capable
|
||||
|
60
Marlin/src/pins/pins_MKS_SGEN.h
Normal file
60
Marlin/src/pins/pins_MKS_SGEN.h
Normal file
@ -0,0 +1,60 @@
|
||||
/**
|
||||
* Marlin 3D Printer Firmware
|
||||
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
* Copyright (C) 2017 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
*
|
||||
* Based on Sprinter and grbl.
|
||||
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* MKS SGen pin assignments
|
||||
*/
|
||||
|
||||
#ifndef LPC1769
|
||||
#error "Oops! Make sure you have the LPC1769 environment selected in your IDE."
|
||||
#endif
|
||||
|
||||
#define BOARD_NAME "MKS SGEN"
|
||||
#define BOARD_WEBSITE_URL "https://github.com/makerbase-mks/MKS-SGEN"
|
||||
|
||||
#include "pins_MKS_SBASE.h"
|
||||
|
||||
#undef E1_STEP_PIN
|
||||
#undef E1_DIR_PIN
|
||||
#undef E1_ENABLE_PIN
|
||||
|
||||
//#undef BTN_EN1
|
||||
//#undef BTN_EN2
|
||||
//#define BTN_EN1 P1_23 // EXP2.5
|
||||
//#define BTN_EN2 P1_22 // EXP2.3
|
||||
|
||||
#if HAS_DRIVER(TMC2208)
|
||||
// The shortage of pins becomes apparent.
|
||||
// In the worst case you may have to give up the LCD.
|
||||
// RX pins must be interrupt-capable.
|
||||
#define X_SERIAL_TX_PIN P4_29 // J8-2
|
||||
#define X_SERIAL_RX_PIN P4_29 // J8-2
|
||||
|
||||
#define Y_SERIAL_TX_PIN P2_08 // J8-3
|
||||
#define Y_SERIAL_RX_PIN P2_08 // J8-3
|
||||
|
||||
#define Z_SERIAL_TX_PIN P2_11 // J8-4
|
||||
#define Z_SERIAL_RX_PIN P2_11 // J8-4
|
||||
#define E0_SERIAL_TX_PIN P2_13 // J8-5
|
||||
#define E0_SERIAL_RX_PIN P2_13 // J8-5
|
||||
#endif
|
@ -156,7 +156,10 @@
|
||||
#define LCD_PINS_D7 29
|
||||
#endif
|
||||
|
||||
#if ENABLED(MINIPANEL)
|
||||
#if ENABLED(FYSETC_MINI_12864)
|
||||
#define DOGLCD_CS LCD_PINS_ENABLE
|
||||
#define DOGLCD_A0 LCD_PINS_RS
|
||||
#elif ENABLED(MINIPANEL)
|
||||
#define DOGLCD_CS 25
|
||||
#define DOGLCD_A0 27
|
||||
#endif
|
||||
|
@ -269,11 +269,21 @@
|
||||
|
||||
#elif ENABLED(ULTRA_LCD)
|
||||
|
||||
#define BEEPER_PIN P1_30 // (37) not 5V tolerant
|
||||
//#define SCK_PIN P0_15 // (52) system defined J3-9 & AUX-3
|
||||
//#define MISO_PIN P0_17 // (50) system defined J3-10 & AUX-3
|
||||
//#define MOSI_PIN P0_18 // (51) system defined J3-10 & AUX-3
|
||||
//#define SS_PIN P1_23 // (53) system defined J3-5 & AUX-3 (Sometimes called SDSS)
|
||||
|
||||
#if ENABLED(FYSETC_MINI_12864)
|
||||
#define BEEPER_PIN P1_01
|
||||
#define BTN_ENC P1_04
|
||||
#else
|
||||
#define BEEPER_PIN P1_30 // (37) not 5V tolerant
|
||||
#define BTN_ENC P2_11 // (35) J3-3 & AUX-4
|
||||
#endif
|
||||
|
||||
#define BTN_EN1 P3_26 // (31) J3-2 & AUX-4
|
||||
#define BTN_EN2 P3_25 // (33) J3-4 & AUX-4
|
||||
#define BTN_ENC P2_11 // (35) J3-3 & AUX-4
|
||||
|
||||
#define SD_DETECT_PIN P1_31 // (49) J3-1 & AUX-3 (NOT 5V tolerant)
|
||||
#define KILL_PIN P1_22 // (41) J5-4 & AUX-4
|
||||
@ -296,13 +306,6 @@
|
||||
#if ANY(VIKI2, miniVIKI)
|
||||
// #define LCD_SCREEN_ROT_180
|
||||
|
||||
#define BTN_EN1 P3_26 // (31) J3-2 & AUX-4
|
||||
#define BTN_EN2 P3_25 // (33) J3-4 & AUX-4
|
||||
#define BTN_ENC P2_11 // (35) J3-3 & AUX-4
|
||||
|
||||
#define SD_DETECT_PIN P1_31 // (49) J3-1 & AUX-3 (NOT 5V tolerant)
|
||||
#define KILL_PIN P1_22 // (41) J5-4 & AUX-4
|
||||
|
||||
#define DOGLCD_CS P0_16 // (16)
|
||||
#define DOGLCD_A0 P2_06 // (59) J3-8 & AUX-2
|
||||
#define DOGLCD_SCK SCK_PIN
|
||||
@ -311,8 +314,17 @@
|
||||
#define STAT_LED_BLUE_PIN P0_26 //(63) may change if cable changes
|
||||
#define STAT_LED_RED_PIN P1_21 // ( 6) may change if cable changes
|
||||
#else
|
||||
#define DOGLCD_CS P0_26 // (63) J5-3 & AUX-2
|
||||
#define DOGLCD_A0 P2_06 // (59) J3-8 & AUX-2
|
||||
|
||||
#if ENABLED(FYSETC_MINI_12864)
|
||||
#define DOGLCD_SCK P0_15
|
||||
#define DOGLCD_MOSI P0_18
|
||||
#define DOGLCD_CS P1_09 // use Ethernet connector for EXP1 cable signals
|
||||
#define DOGLCD_A0 P1_14
|
||||
#else
|
||||
#define DOGLCD_CS P0_26 // (63) J5-3 & AUX-2
|
||||
#define DOGLCD_A0 P2_06 // (59) J3-8 & AUX-2
|
||||
#endif
|
||||
|
||||
#define LCD_BACKLIGHT_PIN P0_16 //(16) J3-7 & AUX-4 - only used on DOGLCD controllers
|
||||
#define LCD_PINS_ENABLE P0_18 // (51) (MOSI) J3-10 & AUX-3
|
||||
#define LCD_PINS_D4 P0_15 // (52) (SCK) J3-9 & AUX-3
|
||||
@ -323,11 +335,6 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
//#define MISO_PIN P0_17 // (50) system defined J3-10 & AUX-3
|
||||
//#define MOSI_PIN P0_18 // (51) system defined J3-10 & AUX-3
|
||||
//#define SCK_PIN P0_15 // (52) system defined J3-9 & AUX-3
|
||||
//#define SS_PIN P1_23 // (53) system defined J3-5 & AUX-3 (Sometimes called SDSS)
|
||||
|
||||
#if ENABLED(MINIPANEL)
|
||||
// GLCD features
|
||||
// Uncomment screen orientation
|
||||
@ -354,18 +361,21 @@
|
||||
#define ENET_TXD0 P1_00 // (78) J12-11
|
||||
#define ENET_TXD1 P1_01 // (79) J12-12
|
||||
|
||||
//#define USB_SD_DISABLED
|
||||
#define USB_SD_ONBOARD // Provide the onboard SD card to the host as a USB mass storage device
|
||||
|
||||
//#define LPC_SD_LCD // Marlin uses the SD drive attached to the LCD
|
||||
#define LPC_SD_ONBOARD // Marlin uses the SD drive on the control board
|
||||
//
|
||||
// SD Support
|
||||
//
|
||||
#if !ANY(LPC_SD_LCD, LPC_SD_ONBOARD, LPC_SD_CUSTOM_CABLE)
|
||||
#undef USB_SD_DISABLED
|
||||
#define USB_SD_ONBOARD
|
||||
#define LPC_SD_ONBOARD
|
||||
#endif
|
||||
|
||||
#if ENABLED(LPC_SD_LCD)
|
||||
|
||||
#define SCK_PIN P0_15
|
||||
#define MISO_PIN P0_17
|
||||
#define MOSI_PIN P0_18
|
||||
#define SS_PIN P1_23 // Chip select for SD card used by Marlin
|
||||
#define SCK_PIN P0_15 // (52) system defined J3-9 & AUX-3
|
||||
#define MISO_PIN P0_17 // (50) system defined J3-10 & AUX-3
|
||||
#define MOSI_PIN P0_18 // (51) system defined J3-10 & AUX-3
|
||||
#define SS_PIN P1_23 // (53) system defined J3-5 & AUX-3 (Sometimes called SDSS) - CS used by Marlin
|
||||
#define ONBOARD_SD_CS P0_06 // Chip select for "System" SD card
|
||||
|
||||
#elif ENABLED(LPC_SD_ONBOARD)
|
||||
|
@ -1030,6 +1030,7 @@ void CardReader::printingHasFinished() {
|
||||
// be zeroed and written instead of deleted.
|
||||
void CardReader::removeJobRecoveryFile() {
|
||||
if (jobRecoverFileExists()) {
|
||||
recovery.init();
|
||||
removeFile(job_recovery_file_name);
|
||||
#if ENABLED(DEBUG_POWER_LOSS_RECOVERY)
|
||||
SERIAL_ECHOPGM("Power-loss file delete");
|
||||
|
@ -927,6 +927,9 @@
|
||||
|
||||
// Before deploy/stow pause for user confirmation
|
||||
//#define PAUSE_BEFORE_DEPLOY_STOW
|
||||
#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
|
||||
//#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Enable one or more of the following if probing seems unreliable.
|
||||
|
@ -907,6 +907,17 @@
|
||||
// Add an optimized binary file transfer mode, initiated with 'M28 B1'
|
||||
//#define BINARY_FILE_TRANSFER
|
||||
|
||||
// LPC-based boards have on-board SD Card options. Override here or defaults apply.
|
||||
#ifdef TARGET_LPC1768
|
||||
//#define LPC_SD_LCD // Use the SD drive in the external LCD controller.
|
||||
//#define LPC_SD_ONBOARD // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
|
||||
//#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
|
||||
//#define USB_SD_DISABLED // Disable SD Card access over USB (for security).
|
||||
#if ENABLED(LPC_SD_ONBOARD)
|
||||
//#define USB_SD_ONBOARD // Provide the onboard SD card to the host as a USB mass storage device.
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // SDSUPPORT
|
||||
|
||||
/**
|
||||
|
@ -933,6 +933,9 @@
|
||||
|
||||
// Before deploy/stow pause for user confirmation
|
||||
//#define PAUSE_BEFORE_DEPLOY_STOW
|
||||
#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
|
||||
//#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Enable one or more of the following if probing seems unreliable.
|
||||
|
@ -907,6 +907,17 @@
|
||||
// Add an optimized binary file transfer mode, initiated with 'M28 B1'
|
||||
//#define BINARY_FILE_TRANSFER
|
||||
|
||||
// LPC-based boards have on-board SD Card options. Override here or defaults apply.
|
||||
#ifdef TARGET_LPC1768
|
||||
//#define LPC_SD_LCD // Use the SD drive in the external LCD controller.
|
||||
//#define LPC_SD_ONBOARD // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
|
||||
//#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
|
||||
//#define USB_SD_DISABLED // Disable SD Card access over USB (for security).
|
||||
#if ENABLED(LPC_SD_ONBOARD)
|
||||
//#define USB_SD_ONBOARD // Provide the onboard SD card to the host as a USB mass storage device.
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // SDSUPPORT
|
||||
|
||||
/**
|
||||
|
@ -947,6 +947,9 @@
|
||||
|
||||
// Before deploy/stow pause for user confirmation
|
||||
//#define PAUSE_BEFORE_DEPLOY_STOW
|
||||
#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
|
||||
//#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Enable one or more of the following if probing seems unreliable.
|
||||
|
@ -907,6 +907,17 @@
|
||||
// Add an optimized binary file transfer mode, initiated with 'M28 B1'
|
||||
//#define BINARY_FILE_TRANSFER
|
||||
|
||||
// LPC-based boards have on-board SD Card options. Override here or defaults apply.
|
||||
#ifdef TARGET_LPC1768
|
||||
//#define LPC_SD_LCD // Use the SD drive in the external LCD controller.
|
||||
//#define LPC_SD_ONBOARD // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
|
||||
//#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
|
||||
//#define USB_SD_DISABLED // Disable SD Card access over USB (for security).
|
||||
#if ENABLED(LPC_SD_ONBOARD)
|
||||
//#define USB_SD_ONBOARD // Provide the onboard SD card to the host as a USB mass storage device.
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // SDSUPPORT
|
||||
|
||||
/**
|
||||
|
@ -927,6 +927,9 @@
|
||||
|
||||
// Before deploy/stow pause for user confirmation
|
||||
//#define PAUSE_BEFORE_DEPLOY_STOW
|
||||
#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
|
||||
//#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Enable one or more of the following if probing seems unreliable.
|
||||
|
@ -938,6 +938,9 @@
|
||||
|
||||
// Before deploy/stow pause for user confirmation
|
||||
//#define PAUSE_BEFORE_DEPLOY_STOW
|
||||
#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
|
||||
//#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Enable one or more of the following if probing seems unreliable.
|
||||
|
@ -907,6 +907,17 @@
|
||||
// Add an optimized binary file transfer mode, initiated with 'M28 B1'
|
||||
//#define BINARY_FILE_TRANSFER
|
||||
|
||||
// LPC-based boards have on-board SD Card options. Override here or defaults apply.
|
||||
#ifdef TARGET_LPC1768
|
||||
//#define LPC_SD_LCD // Use the SD drive in the external LCD controller.
|
||||
//#define LPC_SD_ONBOARD // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
|
||||
//#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
|
||||
//#define USB_SD_DISABLED // Disable SD Card access over USB (for security).
|
||||
#if ENABLED(LPC_SD_ONBOARD)
|
||||
//#define USB_SD_ONBOARD // Provide the onboard SD card to the host as a USB mass storage device.
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // SDSUPPORT
|
||||
|
||||
/**
|
||||
|
@ -927,6 +927,9 @@
|
||||
|
||||
// Before deploy/stow pause for user confirmation
|
||||
//#define PAUSE_BEFORE_DEPLOY_STOW
|
||||
#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
|
||||
//#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Enable one or more of the following if probing seems unreliable.
|
||||
|
@ -907,6 +907,17 @@
|
||||
// Add an optimized binary file transfer mode, initiated with 'M28 B1'
|
||||
//#define BINARY_FILE_TRANSFER
|
||||
|
||||
// LPC-based boards have on-board SD Card options. Override here or defaults apply.
|
||||
#ifdef TARGET_LPC1768
|
||||
//#define LPC_SD_LCD // Use the SD drive in the external LCD controller.
|
||||
//#define LPC_SD_ONBOARD // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
|
||||
//#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
|
||||
//#define USB_SD_DISABLED // Disable SD Card access over USB (for security).
|
||||
#if ENABLED(LPC_SD_ONBOARD)
|
||||
//#define USB_SD_ONBOARD // Provide the onboard SD card to the host as a USB mass storage device.
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // SDSUPPORT
|
||||
|
||||
/**
|
||||
|
@ -927,6 +927,9 @@
|
||||
|
||||
// Before deploy/stow pause for user confirmation
|
||||
//#define PAUSE_BEFORE_DEPLOY_STOW
|
||||
#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
|
||||
//#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Enable one or more of the following if probing seems unreliable.
|
||||
|
@ -907,6 +907,17 @@
|
||||
// Add an optimized binary file transfer mode, initiated with 'M28 B1'
|
||||
//#define BINARY_FILE_TRANSFER
|
||||
|
||||
// LPC-based boards have on-board SD Card options. Override here or defaults apply.
|
||||
#ifdef TARGET_LPC1768
|
||||
//#define LPC_SD_LCD // Use the SD drive in the external LCD controller.
|
||||
//#define LPC_SD_ONBOARD // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
|
||||
//#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
|
||||
//#define USB_SD_DISABLED // Disable SD Card access over USB (for security).
|
||||
#if ENABLED(LPC_SD_ONBOARD)
|
||||
//#define USB_SD_ONBOARD // Provide the onboard SD card to the host as a USB mass storage device.
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // SDSUPPORT
|
||||
|
||||
/**
|
||||
|
@ -1003,6 +1003,9 @@
|
||||
|
||||
// Before deploy/stow pause for user confirmation
|
||||
//#define PAUSE_BEFORE_DEPLOY_STOW
|
||||
#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
|
||||
//#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Enable one or more of the following if probing seems unreliable.
|
||||
|
@ -907,6 +907,17 @@
|
||||
// Add an optimized binary file transfer mode, initiated with 'M28 B1'
|
||||
//#define BINARY_FILE_TRANSFER
|
||||
|
||||
// LPC-based boards have on-board SD Card options. Override here or defaults apply.
|
||||
#ifdef TARGET_LPC1768
|
||||
//#define LPC_SD_LCD // Use the SD drive in the external LCD controller.
|
||||
//#define LPC_SD_ONBOARD // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
|
||||
//#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
|
||||
//#define USB_SD_DISABLED // Disable SD Card access over USB (for security).
|
||||
#if ENABLED(LPC_SD_ONBOARD)
|
||||
//#define USB_SD_ONBOARD // Provide the onboard SD card to the host as a USB mass storage device.
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // SDSUPPORT
|
||||
|
||||
/**
|
||||
|
@ -940,6 +940,9 @@
|
||||
|
||||
// Before deploy/stow pause for user confirmation
|
||||
//#define PAUSE_BEFORE_DEPLOY_STOW
|
||||
#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
|
||||
//#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Enable one or more of the following if probing seems unreliable.
|
||||
|
@ -907,6 +907,17 @@
|
||||
// Add an optimized binary file transfer mode, initiated with 'M28 B1'
|
||||
//#define BINARY_FILE_TRANSFER
|
||||
|
||||
// LPC-based boards have on-board SD Card options. Override here or defaults apply.
|
||||
#ifdef TARGET_LPC1768
|
||||
//#define LPC_SD_LCD // Use the SD drive in the external LCD controller.
|
||||
//#define LPC_SD_ONBOARD // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
|
||||
//#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
|
||||
//#define USB_SD_DISABLED // Disable SD Card access over USB (for security).
|
||||
#if ENABLED(LPC_SD_ONBOARD)
|
||||
//#define USB_SD_ONBOARD // Provide the onboard SD card to the host as a USB mass storage device.
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // SDSUPPORT
|
||||
|
||||
/**
|
||||
|
@ -937,6 +937,9 @@
|
||||
|
||||
// Before deploy/stow pause for user confirmation
|
||||
//#define PAUSE_BEFORE_DEPLOY_STOW
|
||||
#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
|
||||
//#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Enable one or more of the following if probing seems unreliable.
|
||||
|
@ -907,6 +907,17 @@
|
||||
// Add an optimized binary file transfer mode, initiated with 'M28 B1'
|
||||
//#define BINARY_FILE_TRANSFER
|
||||
|
||||
// LPC-based boards have on-board SD Card options. Override here or defaults apply.
|
||||
#ifdef TARGET_LPC1768
|
||||
//#define LPC_SD_LCD // Use the SD drive in the external LCD controller.
|
||||
//#define LPC_SD_ONBOARD // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
|
||||
//#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
|
||||
//#define USB_SD_DISABLED // Disable SD Card access over USB (for security).
|
||||
#if ENABLED(LPC_SD_ONBOARD)
|
||||
//#define USB_SD_ONBOARD // Provide the onboard SD card to the host as a USB mass storage device.
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // SDSUPPORT
|
||||
|
||||
/**
|
||||
|
@ -928,6 +928,9 @@
|
||||
|
||||
// Before deploy/stow pause for user confirmation
|
||||
//#define PAUSE_BEFORE_DEPLOY_STOW
|
||||
#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
|
||||
//#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Enable one or more of the following if probing seems unreliable.
|
||||
|
@ -911,6 +911,17 @@
|
||||
// Add an optimized binary file transfer mode, initiated with 'M28 B1'
|
||||
//#define BINARY_FILE_TRANSFER
|
||||
|
||||
// LPC-based boards have on-board SD Card options. Override here or defaults apply.
|
||||
#ifdef TARGET_LPC1768
|
||||
//#define LPC_SD_LCD // Use the SD drive in the external LCD controller.
|
||||
//#define LPC_SD_ONBOARD // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
|
||||
//#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
|
||||
//#define USB_SD_DISABLED // Disable SD Card access over USB (for security).
|
||||
#if ENABLED(LPC_SD_ONBOARD)
|
||||
//#define USB_SD_ONBOARD // Provide the onboard SD card to the host as a USB mass storage device.
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // SDSUPPORT
|
||||
|
||||
/**
|
||||
|
@ -927,6 +927,9 @@
|
||||
|
||||
// Before deploy/stow pause for user confirmation
|
||||
//#define PAUSE_BEFORE_DEPLOY_STOW
|
||||
#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
|
||||
//#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Enable one or more of the following if probing seems unreliable.
|
||||
|
@ -927,6 +927,9 @@
|
||||
|
||||
// Before deploy/stow pause for user confirmation
|
||||
//#define PAUSE_BEFORE_DEPLOY_STOW
|
||||
#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
|
||||
//#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Enable one or more of the following if probing seems unreliable.
|
||||
|
@ -907,6 +907,17 @@
|
||||
// Add an optimized binary file transfer mode, initiated with 'M28 B1'
|
||||
//#define BINARY_FILE_TRANSFER
|
||||
|
||||
// LPC-based boards have on-board SD Card options. Override here or defaults apply.
|
||||
#ifdef TARGET_LPC1768
|
||||
//#define LPC_SD_LCD // Use the SD drive in the external LCD controller.
|
||||
//#define LPC_SD_ONBOARD // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
|
||||
//#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
|
||||
//#define USB_SD_DISABLED // Disable SD Card access over USB (for security).
|
||||
#if ENABLED(LPC_SD_ONBOARD)
|
||||
//#define USB_SD_ONBOARD // Provide the onboard SD card to the host as a USB mass storage device.
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // SDSUPPORT
|
||||
|
||||
/**
|
||||
|
@ -927,6 +927,9 @@
|
||||
|
||||
// Before deploy/stow pause for user confirmation
|
||||
//#define PAUSE_BEFORE_DEPLOY_STOW
|
||||
#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
|
||||
//#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Enable one or more of the following if probing seems unreliable.
|
||||
|
@ -907,6 +907,17 @@
|
||||
// Add an optimized binary file transfer mode, initiated with 'M28 B1'
|
||||
//#define BINARY_FILE_TRANSFER
|
||||
|
||||
// LPC-based boards have on-board SD Card options. Override here or defaults apply.
|
||||
#ifdef TARGET_LPC1768
|
||||
//#define LPC_SD_LCD // Use the SD drive in the external LCD controller.
|
||||
//#define LPC_SD_ONBOARD // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
|
||||
//#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
|
||||
//#define USB_SD_DISABLED // Disable SD Card access over USB (for security).
|
||||
#if ENABLED(LPC_SD_ONBOARD)
|
||||
//#define USB_SD_ONBOARD // Provide the onboard SD card to the host as a USB mass storage device.
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // SDSUPPORT
|
||||
|
||||
/**
|
||||
|
@ -915,6 +915,9 @@
|
||||
|
||||
// Before deploy/stow pause for user confirmation
|
||||
//#define PAUSE_BEFORE_DEPLOY_STOW
|
||||
#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
|
||||
//#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Enable one or more of the following if probing seems unreliable.
|
||||
|
@ -904,6 +904,17 @@
|
||||
// Add an optimized binary file transfer mode, initiated with 'M28 B1'
|
||||
//#define BINARY_FILE_TRANSFER
|
||||
|
||||
// LPC-based boards have on-board SD Card options. Override here or defaults apply.
|
||||
#ifdef TARGET_LPC1768
|
||||
//#define LPC_SD_LCD // Use the SD drive in the external LCD controller.
|
||||
//#define LPC_SD_ONBOARD // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
|
||||
//#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
|
||||
//#define USB_SD_DISABLED // Disable SD Card access over USB (for security).
|
||||
#if ENABLED(LPC_SD_ONBOARD)
|
||||
//#define USB_SD_ONBOARD // Provide the onboard SD card to the host as a USB mass storage device.
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // SDSUPPORT
|
||||
|
||||
/**
|
||||
|
@ -928,6 +928,9 @@
|
||||
|
||||
// Before deploy/stow pause for user confirmation
|
||||
//#define PAUSE_BEFORE_DEPLOY_STOW
|
||||
#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
|
||||
//#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Enable one or more of the following if probing seems unreliable.
|
||||
|
@ -912,6 +912,17 @@
|
||||
// Add an optimized binary file transfer mode, initiated with 'M28 B1'
|
||||
//#define BINARY_FILE_TRANSFER
|
||||
|
||||
// LPC-based boards have on-board SD Card options. Override here or defaults apply.
|
||||
#ifdef TARGET_LPC1768
|
||||
//#define LPC_SD_LCD // Use the SD drive in the external LCD controller.
|
||||
//#define LPC_SD_ONBOARD // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
|
||||
//#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
|
||||
//#define USB_SD_DISABLED // Disable SD Card access over USB (for security).
|
||||
#if ENABLED(LPC_SD_ONBOARD)
|
||||
//#define USB_SD_ONBOARD // Provide the onboard SD card to the host as a USB mass storage device.
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // SDSUPPORT
|
||||
|
||||
/**
|
||||
|
@ -915,6 +915,9 @@
|
||||
|
||||
// Before deploy/stow pause for user confirmation
|
||||
//#define PAUSE_BEFORE_DEPLOY_STOW
|
||||
#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
|
||||
//#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Enable one or more of the following if probing seems unreliable.
|
||||
|
@ -904,6 +904,17 @@
|
||||
// Add an optimized binary file transfer mode, initiated with 'M28 B1'
|
||||
//#define BINARY_FILE_TRANSFER
|
||||
|
||||
// LPC-based boards have on-board SD Card options. Override here or defaults apply.
|
||||
#ifdef TARGET_LPC1768
|
||||
//#define LPC_SD_LCD // Use the SD drive in the external LCD controller.
|
||||
//#define LPC_SD_ONBOARD // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
|
||||
//#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
|
||||
//#define USB_SD_DISABLED // Disable SD Card access over USB (for security).
|
||||
#if ENABLED(LPC_SD_ONBOARD)
|
||||
//#define USB_SD_ONBOARD // Provide the onboard SD card to the host as a USB mass storage device.
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // SDSUPPORT
|
||||
|
||||
/**
|
||||
|
@ -926,6 +926,9 @@
|
||||
|
||||
// Before deploy/stow pause for user confirmation
|
||||
//#define PAUSE_BEFORE_DEPLOY_STOW
|
||||
#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
|
||||
//#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Enable one or more of the following if probing seems unreliable.
|
||||
|
@ -907,6 +907,17 @@
|
||||
// Add an optimized binary file transfer mode, initiated with 'M28 B1'
|
||||
//#define BINARY_FILE_TRANSFER
|
||||
|
||||
// LPC-based boards have on-board SD Card options. Override here or defaults apply.
|
||||
#ifdef TARGET_LPC1768
|
||||
//#define LPC_SD_LCD // Use the SD drive in the external LCD controller.
|
||||
//#define LPC_SD_ONBOARD // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
|
||||
//#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
|
||||
//#define USB_SD_DISABLED // Disable SD Card access over USB (for security).
|
||||
#if ENABLED(LPC_SD_ONBOARD)
|
||||
//#define USB_SD_ONBOARD // Provide the onboard SD card to the host as a USB mass storage device.
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // SDSUPPORT
|
||||
|
||||
/**
|
||||
|
@ -937,6 +937,9 @@
|
||||
|
||||
// Before deploy/stow pause for user confirmation
|
||||
//#define PAUSE_BEFORE_DEPLOY_STOW
|
||||
#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
|
||||
//#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Enable one or more of the following if probing seems unreliable.
|
||||
|
@ -907,6 +907,17 @@
|
||||
// Add an optimized binary file transfer mode, initiated with 'M28 B1'
|
||||
//#define BINARY_FILE_TRANSFER
|
||||
|
||||
// LPC-based boards have on-board SD Card options. Override here or defaults apply.
|
||||
#ifdef TARGET_LPC1768
|
||||
//#define LPC_SD_LCD // Use the SD drive in the external LCD controller.
|
||||
//#define LPC_SD_ONBOARD // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
|
||||
//#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
|
||||
//#define USB_SD_DISABLED // Disable SD Card access over USB (for security).
|
||||
#if ENABLED(LPC_SD_ONBOARD)
|
||||
//#define USB_SD_ONBOARD // Provide the onboard SD card to the host as a USB mass storage device.
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // SDSUPPORT
|
||||
|
||||
/**
|
||||
|
@ -927,6 +927,9 @@
|
||||
|
||||
// Before deploy/stow pause for user confirmation
|
||||
//#define PAUSE_BEFORE_DEPLOY_STOW
|
||||
#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
|
||||
//#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Enable one or more of the following if probing seems unreliable.
|
||||
|
@ -907,6 +907,17 @@
|
||||
// Add an optimized binary file transfer mode, initiated with 'M28 B1'
|
||||
//#define BINARY_FILE_TRANSFER
|
||||
|
||||
// LPC-based boards have on-board SD Card options. Override here or defaults apply.
|
||||
#ifdef TARGET_LPC1768
|
||||
//#define LPC_SD_LCD // Use the SD drive in the external LCD controller.
|
||||
//#define LPC_SD_ONBOARD // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
|
||||
//#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
|
||||
//#define USB_SD_DISABLED // Disable SD Card access over USB (for security).
|
||||
#if ENABLED(LPC_SD_ONBOARD)
|
||||
//#define USB_SD_ONBOARD // Provide the onboard SD card to the host as a USB mass storage device.
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // SDSUPPORT
|
||||
|
||||
/**
|
||||
|
@ -928,6 +928,9 @@
|
||||
|
||||
// Before deploy/stow pause for user confirmation
|
||||
//#define PAUSE_BEFORE_DEPLOY_STOW
|
||||
#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
|
||||
//#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Enable one or more of the following if probing seems unreliable.
|
||||
|
@ -907,6 +907,17 @@
|
||||
// Add an optimized binary file transfer mode, initiated with 'M28 B1'
|
||||
//#define BINARY_FILE_TRANSFER
|
||||
|
||||
// LPC-based boards have on-board SD Card options. Override here or defaults apply.
|
||||
#ifdef TARGET_LPC1768
|
||||
//#define LPC_SD_LCD // Use the SD drive in the external LCD controller.
|
||||
//#define LPC_SD_ONBOARD // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
|
||||
//#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
|
||||
//#define USB_SD_DISABLED // Disable SD Card access over USB (for security).
|
||||
#if ENABLED(LPC_SD_ONBOARD)
|
||||
//#define USB_SD_ONBOARD // Provide the onboard SD card to the host as a USB mass storage device.
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // SDSUPPORT
|
||||
|
||||
/**
|
||||
|
@ -946,6 +946,9 @@
|
||||
|
||||
// Before deploy/stow pause for user confirmation
|
||||
//#define PAUSE_BEFORE_DEPLOY_STOW
|
||||
#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
|
||||
//#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Enable one or more of the following if probing seems unreliable.
|
||||
|
@ -907,6 +907,17 @@
|
||||
// Add an optimized binary file transfer mode, initiated with 'M28 B1'
|
||||
//#define BINARY_FILE_TRANSFER
|
||||
|
||||
// LPC-based boards have on-board SD Card options. Override here or defaults apply.
|
||||
#ifdef TARGET_LPC1768
|
||||
//#define LPC_SD_LCD // Use the SD drive in the external LCD controller.
|
||||
//#define LPC_SD_ONBOARD // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
|
||||
//#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
|
||||
//#define USB_SD_DISABLED // Disable SD Card access over USB (for security).
|
||||
#if ENABLED(LPC_SD_ONBOARD)
|
||||
//#define USB_SD_ONBOARD // Provide the onboard SD card to the host as a USB mass storage device.
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // SDSUPPORT
|
||||
|
||||
/**
|
||||
|
@ -937,6 +937,9 @@
|
||||
|
||||
// Before deploy/stow pause for user confirmation
|
||||
//#define PAUSE_BEFORE_DEPLOY_STOW
|
||||
#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
|
||||
//#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Enable one or more of the following if probing seems unreliable.
|
||||
|
@ -907,6 +907,17 @@
|
||||
// Add an optimized binary file transfer mode, initiated with 'M28 B1'
|
||||
//#define BINARY_FILE_TRANSFER
|
||||
|
||||
// LPC-based boards have on-board SD Card options. Override here or defaults apply.
|
||||
#ifdef TARGET_LPC1768
|
||||
//#define LPC_SD_LCD // Use the SD drive in the external LCD controller.
|
||||
//#define LPC_SD_ONBOARD // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
|
||||
//#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
|
||||
//#define USB_SD_DISABLED // Disable SD Card access over USB (for security).
|
||||
#if ENABLED(LPC_SD_ONBOARD)
|
||||
//#define USB_SD_ONBOARD // Provide the onboard SD card to the host as a USB mass storage device.
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // SDSUPPORT
|
||||
|
||||
/**
|
||||
|
@ -931,6 +931,9 @@
|
||||
|
||||
// Before deploy/stow pause for user confirmation
|
||||
//#define PAUSE_BEFORE_DEPLOY_STOW
|
||||
#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
|
||||
//#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Enable one or more of the following if probing seems unreliable.
|
||||
|
@ -904,6 +904,17 @@
|
||||
// Add an optimized binary file transfer mode, initiated with 'M28 B1'
|
||||
//#define BINARY_FILE_TRANSFER
|
||||
|
||||
// LPC-based boards have on-board SD Card options. Override here or defaults apply.
|
||||
#ifdef TARGET_LPC1768
|
||||
//#define LPC_SD_LCD // Use the SD drive in the external LCD controller.
|
||||
//#define LPC_SD_ONBOARD // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
|
||||
//#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
|
||||
//#define USB_SD_DISABLED // Disable SD Card access over USB (for security).
|
||||
#if ENABLED(LPC_SD_ONBOARD)
|
||||
//#define USB_SD_ONBOARD // Provide the onboard SD card to the host as a USB mass storage device.
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // SDSUPPORT
|
||||
|
||||
/**
|
||||
|
@ -931,6 +931,9 @@
|
||||
|
||||
// Before deploy/stow pause for user confirmation
|
||||
//#define PAUSE_BEFORE_DEPLOY_STOW
|
||||
#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
|
||||
//#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Enable one or more of the following if probing seems unreliable.
|
||||
|
@ -904,6 +904,17 @@
|
||||
// Add an optimized binary file transfer mode, initiated with 'M28 B1'
|
||||
//#define BINARY_FILE_TRANSFER
|
||||
|
||||
// LPC-based boards have on-board SD Card options. Override here or defaults apply.
|
||||
#ifdef TARGET_LPC1768
|
||||
//#define LPC_SD_LCD // Use the SD drive in the external LCD controller.
|
||||
//#define LPC_SD_ONBOARD // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
|
||||
//#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
|
||||
//#define USB_SD_DISABLED // Disable SD Card access over USB (for security).
|
||||
#if ENABLED(LPC_SD_ONBOARD)
|
||||
//#define USB_SD_ONBOARD // Provide the onboard SD card to the host as a USB mass storage device.
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // SDSUPPORT
|
||||
|
||||
/**
|
||||
|
@ -937,6 +937,9 @@
|
||||
|
||||
// Before deploy/stow pause for user confirmation
|
||||
//#define PAUSE_BEFORE_DEPLOY_STOW
|
||||
#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
|
||||
//#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Enable one or more of the following if probing seems unreliable.
|
||||
|
@ -907,6 +907,17 @@
|
||||
// Add an optimized binary file transfer mode, initiated with 'M28 B1'
|
||||
//#define BINARY_FILE_TRANSFER
|
||||
|
||||
// LPC-based boards have on-board SD Card options. Override here or defaults apply.
|
||||
#ifdef TARGET_LPC1768
|
||||
//#define LPC_SD_LCD // Use the SD drive in the external LCD controller.
|
||||
//#define LPC_SD_ONBOARD // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
|
||||
//#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
|
||||
//#define USB_SD_DISABLED // Disable SD Card access over USB (for security).
|
||||
#if ENABLED(LPC_SD_ONBOARD)
|
||||
//#define USB_SD_ONBOARD // Provide the onboard SD card to the host as a USB mass storage device.
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // SDSUPPORT
|
||||
|
||||
/**
|
||||
|
@ -937,6 +937,9 @@
|
||||
|
||||
// Before deploy/stow pause for user confirmation
|
||||
//#define PAUSE_BEFORE_DEPLOY_STOW
|
||||
#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
|
||||
//#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Enable one or more of the following if probing seems unreliable.
|
||||
|
@ -907,6 +907,17 @@
|
||||
// Add an optimized binary file transfer mode, initiated with 'M28 B1'
|
||||
//#define BINARY_FILE_TRANSFER
|
||||
|
||||
// LPC-based boards have on-board SD Card options. Override here or defaults apply.
|
||||
#ifdef TARGET_LPC1768
|
||||
//#define LPC_SD_LCD // Use the SD drive in the external LCD controller.
|
||||
//#define LPC_SD_ONBOARD // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
|
||||
//#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
|
||||
//#define USB_SD_DISABLED // Disable SD Card access over USB (for security).
|
||||
#if ENABLED(LPC_SD_ONBOARD)
|
||||
//#define USB_SD_ONBOARD // Provide the onboard SD card to the host as a USB mass storage device.
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // SDSUPPORT
|
||||
|
||||
/**
|
||||
|
@ -909,6 +909,9 @@
|
||||
|
||||
// Before deploy/stow pause for user confirmation
|
||||
//#define PAUSE_BEFORE_DEPLOY_STOW
|
||||
#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
|
||||
//#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Enable one or more of the following if probing seems unreliable.
|
||||
|
@ -907,6 +907,17 @@
|
||||
// Add an optimized binary file transfer mode, initiated with 'M28 B1'
|
||||
//#define BINARY_FILE_TRANSFER
|
||||
|
||||
// LPC-based boards have on-board SD Card options. Override here or defaults apply.
|
||||
#ifdef TARGET_LPC1768
|
||||
//#define LPC_SD_LCD // Use the SD drive in the external LCD controller.
|
||||
//#define LPC_SD_ONBOARD // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
|
||||
//#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
|
||||
//#define USB_SD_DISABLED // Disable SD Card access over USB (for security).
|
||||
#if ENABLED(LPC_SD_ONBOARD)
|
||||
//#define USB_SD_ONBOARD // Provide the onboard SD card to the host as a USB mass storage device.
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // SDSUPPORT
|
||||
|
||||
/**
|
||||
|
@ -909,6 +909,9 @@
|
||||
|
||||
// Before deploy/stow pause for user confirmation
|
||||
//#define PAUSE_BEFORE_DEPLOY_STOW
|
||||
#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
|
||||
//#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Enable one or more of the following if probing seems unreliable.
|
||||
|
@ -919,6 +919,9 @@
|
||||
|
||||
// Before deploy/stow pause for user confirmation
|
||||
//#define PAUSE_BEFORE_DEPLOY_STOW
|
||||
#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
|
||||
//#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Enable one or more of the following if probing seems unreliable.
|
||||
|
@ -903,6 +903,17 @@
|
||||
// Add an optimized binary file transfer mode, initiated with 'M28 B1'
|
||||
//#define BINARY_FILE_TRANSFER
|
||||
|
||||
// LPC-based boards have on-board SD Card options. Override here or defaults apply.
|
||||
#ifdef TARGET_LPC1768
|
||||
//#define LPC_SD_LCD // Use the SD drive in the external LCD controller.
|
||||
//#define LPC_SD_ONBOARD // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
|
||||
//#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
|
||||
//#define USB_SD_DISABLED // Disable SD Card access over USB (for security).
|
||||
#if ENABLED(LPC_SD_ONBOARD)
|
||||
//#define USB_SD_ONBOARD // Provide the onboard SD card to the host as a USB mass storage device.
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // SDSUPPORT
|
||||
|
||||
/**
|
||||
|
@ -933,6 +933,9 @@
|
||||
|
||||
// Before deploy/stow pause for user confirmation
|
||||
//#define PAUSE_BEFORE_DEPLOY_STOW
|
||||
#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
|
||||
//#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Enable one or more of the following if probing seems unreliable.
|
||||
|
@ -907,6 +907,17 @@
|
||||
// Add an optimized binary file transfer mode, initiated with 'M28 B1'
|
||||
//#define BINARY_FILE_TRANSFER
|
||||
|
||||
// LPC-based boards have on-board SD Card options. Override here or defaults apply.
|
||||
#ifdef TARGET_LPC1768
|
||||
//#define LPC_SD_LCD // Use the SD drive in the external LCD controller.
|
||||
//#define LPC_SD_ONBOARD // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
|
||||
//#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
|
||||
//#define USB_SD_DISABLED // Disable SD Card access over USB (for security).
|
||||
#if ENABLED(LPC_SD_ONBOARD)
|
||||
//#define USB_SD_ONBOARD // Provide the onboard SD card to the host as a USB mass storage device.
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // SDSUPPORT
|
||||
|
||||
/**
|
||||
|
@ -1008,6 +1008,9 @@
|
||||
|
||||
// Before deploy/stow pause for user confirmation
|
||||
//#define PAUSE_BEFORE_DEPLOY_STOW
|
||||
#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
|
||||
//#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Enable one or more of the following if probing seems unreliable.
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user