Compare commits
18 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
759e42beac | ||
|
db6707d78e | ||
|
e7731a4b72 | ||
|
0b2a577fe8 | ||
|
e04691b248 | ||
|
fb801fb3ec | ||
|
9b1009a65b | ||
|
3952be65c3 | ||
|
3010e0e14a | ||
|
d656a841b7 | ||
|
d090049594 | ||
|
a52dc3c7e9 | ||
|
f16f964ab3 | ||
|
f78522d3bd | ||
|
6e120164a2 | ||
|
c5b7370b87 | ||
|
1c1b9c343c | ||
|
ac8ec5cf4f |
@@ -40,6 +40,7 @@
|
||||
|
||||
#define KNUTWURST_MEGAS
|
||||
#define KNUTWURST_TMC
|
||||
//#define POWER_OUTAGE_TEST
|
||||
|
||||
//===========================================================================
|
||||
//============================= Getting Started =============================
|
||||
@@ -128,7 +129,19 @@
|
||||
// Enable the Bluetooth serial interface on AT90USB devices
|
||||
//#define BLUETOOTH
|
||||
|
||||
// Choose the name from boards.h that matches your setup
|
||||
|
||||
/**
|
||||
* Select your version of the Trigorilla (RAMPS1.4) board here.
|
||||
*
|
||||
* BOARD_TRIGORILLA_14 = Default Trigorilla
|
||||
* BOARD_TRIGORILLA_14_11 = Newer Trigorilla v1.1 (first seen late 2018)
|
||||
*
|
||||
* The only major difference is a slight change on the servo pin mapping.
|
||||
* This setting only is relevant if you want to use BLtouch or similar
|
||||
* mods to be used via servo pins.
|
||||
* The new version is to be identified by a "TRIGORILLA1.1" lettering
|
||||
* on the upper left of the PCB silkscreen.
|
||||
*/
|
||||
#ifndef MOTHERBOARD
|
||||
#define MOTHERBOARD BOARD_TRIGORILLA_14
|
||||
#endif
|
||||
@@ -1283,7 +1296,7 @@
|
||||
* Normally G28 leaves leveling disabled on completion. Enable
|
||||
* this option to have G28 restore the prior leveling state.
|
||||
*/
|
||||
//#define RESTORE_LEVELING_AFTER_G28
|
||||
#define RESTORE_LEVELING_AFTER_G28
|
||||
|
||||
/**
|
||||
* Enable detailed logging of G28, G29, M48, etc.
|
||||
@@ -1528,7 +1541,7 @@
|
||||
// every couple of seconds when it can't accept commands.
|
||||
//
|
||||
#define HOST_KEEPALIVE_FEATURE // Disable this if your host doesn't like keepalive messages
|
||||
#define DEFAULT_KEEPALIVE_INTERVAL 2 // Number of seconds between "busy" messages. Set with M113.
|
||||
#define DEFAULT_KEEPALIVE_INTERVAL 5 // Number of seconds between "busy" messages. Set with M113.
|
||||
#define BUSY_WHILE_HEATING // Some hosts require "busy" messages even during heating
|
||||
|
||||
//
|
||||
@@ -1819,14 +1832,14 @@
|
||||
|
||||
// Play a (non-earpiercing) startup chime on startup/serial connection
|
||||
// of the Trigorilla board
|
||||
//#define STARTUP_CHIME
|
||||
#define STARTUP_CHIME
|
||||
|
||||
//
|
||||
// ENDSTOP BEEP
|
||||
//
|
||||
// Short 2KHz beep when endstops are hit
|
||||
//
|
||||
//#define ENDSTOP_BEEP
|
||||
#define ENDSTOP_BEEP
|
||||
|
||||
//
|
||||
// The duration and frequency for the UI feedback sound.
|
||||
@@ -2338,22 +2351,8 @@
|
||||
// Allow servo angle to be edited and saved to EEPROM
|
||||
//#define EDITABLE_SERVO_ANGLES
|
||||
|
||||
/**
|
||||
* Select your version of the Trigorilla (RAMPS1.4) board here.
|
||||
*
|
||||
* 0 = Default Trigorilla
|
||||
* 1 = Newer Trigorilla v1.1 (first seen late 2018)
|
||||
*
|
||||
* The only major difference is a slight change on the servo pin mapping.
|
||||
* This setting only is relevant if you want to use BLtouch or similar
|
||||
* mods to be used via servo pins.
|
||||
* The new version is to be identified by a "TRIGORILLA1.1" lettering
|
||||
* on the upper left of the PCB silkscreen.
|
||||
*/
|
||||
#define TRIGORILLA_VERSION 0
|
||||
|
||||
// Enable Anycubic TFT
|
||||
#define ANYCUBIC_TOUCHSCREEN
|
||||
#define ANYCUBIC_FILAMENT_RUNOUT_SENSOR
|
||||
//#define ANYCUBIC_TFT_DEBUG
|
||||
|
||||
//#define KNUTWURST_MEGAS_DEBUG
|
||||
//#define KNUTWURST_TMC_DEBUG
|
||||
|
@@ -33,6 +33,9 @@
|
||||
*/
|
||||
#define CONFIGURATION_ADV_H_VERSION 020005
|
||||
|
||||
#define KNUTWURST_MEGAS_ADV
|
||||
#define KNUTWURST_TMC_ADV
|
||||
|
||||
// @section temperature
|
||||
|
||||
//===========================================================================
|
||||
@@ -1628,7 +1631,7 @@
|
||||
//
|
||||
// G2/G3 Arc Support
|
||||
//
|
||||
#define ARC_SUPPORT // Disable this feature to save ~3226 bytes
|
||||
//#define ARC_SUPPORT // Disable this feature to save ~3226 bytes
|
||||
#if ENABLED(ARC_SUPPORT)
|
||||
#define MM_PER_ARC_SEGMENT 1 // (mm) Length (or minimum length) of each arc segment
|
||||
//#define ARC_SEGMENTS_PER_R 1 // Max segment length, MM_PER = Min
|
||||
@@ -1867,7 +1870,7 @@
|
||||
* Requires NOZZLE_PARK_FEATURE.
|
||||
* This feature is required for the default FILAMENT_RUNOUT_SCRIPT.
|
||||
*/
|
||||
//#define ADVANCED_PAUSE_FEATURE
|
||||
#define ADVANCED_PAUSE_FEATURE
|
||||
#if ENABLED(ADVANCED_PAUSE_FEATURE)
|
||||
#define PAUSE_PARK_RETRACT_FEEDRATE 60 // (mm/s) Initial retract feedrate.
|
||||
#define PAUSE_PARK_RETRACT_LENGTH 4 // (mm) Initial retract.
|
||||
@@ -3142,3 +3145,6 @@
|
||||
|
||||
// Enable Marlin dev mode which adds some special commands
|
||||
//#define MARLIN_DEV_MODE
|
||||
|
||||
//#define KNUTWURST_MEGAS_ADV
|
||||
//#define KNUTWURST_TMC_ADV
|
||||
|
@@ -38,7 +38,7 @@
|
||||
* Defines the version of the Marlin build. Not to be confused with
|
||||
* Marlin's own build number, e.g. 2.0.x.
|
||||
*/
|
||||
#define CUSTOM_BUILD_VERSION "1.0.4"
|
||||
#define CUSTOM_BUILD_VERSION "1.0.5"
|
||||
|
||||
#ifndef STRING_DISTRIBUTION_DATE
|
||||
#define STRING_DISTRIBUTION_DATE "2020-03-31"
|
||||
|
@@ -42,9 +42,9 @@
|
||||
// to which to write the next incoming character and tail is the index of the
|
||||
// location from which to read.
|
||||
#if (RAMEND < 1000)
|
||||
#define SERIAL_BUFFER_SIZE 64
|
||||
#define SERIAL_BUFFER_SIZE 16
|
||||
#else
|
||||
#define SERIAL_BUFFER_SIZE 128
|
||||
#define SERIAL_BUFFER_SIZE 64
|
||||
#endif
|
||||
|
||||
struct ring_buffer
|
||||
|
@@ -38,6 +38,7 @@
|
||||
#include "../module/stepper.h"
|
||||
#include "../module/temperature.h"
|
||||
#include "../sd/cardreader.h"
|
||||
#include "../module/configuration_store.h"
|
||||
|
||||
#ifdef ANYCUBIC_TOUCHSCREEN
|
||||
#include "anycubic_touchscreen.h"
|
||||
@@ -45,9 +46,27 @@
|
||||
|
||||
char _conv[8];
|
||||
|
||||
#if defined(POWER_OUTAGE_TEST)
|
||||
int PowerInt = 6;
|
||||
unsigned char PowerTestFlag = false;
|
||||
int Temp_Buf_Extuder_Temperature = 0;
|
||||
int Temp_Buf_Bed_Temperature = 0;
|
||||
unsigned char ResumingFlag = 0;
|
||||
#endif
|
||||
|
||||
#define MAX_PRINTABLE_FILENAME_LEN 21
|
||||
|
||||
void setup_OutageTestPin()
|
||||
{
|
||||
#if defined(POWER_OUTAGE_TEST)
|
||||
pinMode(OUTAGETEST_PIN, INPUT);
|
||||
pinMode(OUTAGECON_PIN, OUTPUT);
|
||||
WRITE(OUTAGECON_PIN, LOW);
|
||||
#endif
|
||||
}
|
||||
|
||||
char *itostr2(const uint8_t &x)
|
||||
{
|
||||
//sprintf(conv,"%5.1f",x);
|
||||
int xx = x;
|
||||
_conv[0] = (xx / 10) % 10 + '0';
|
||||
_conv[1] = (xx) % 10 + '0';
|
||||
@@ -93,7 +112,6 @@ AnycubicTouchscreenClass::AnycubicTouchscreenClass()
|
||||
void AnycubicTouchscreenClass::Setup()
|
||||
{
|
||||
HardwareSerial.begin(115200);
|
||||
//HARDWARE_SERIAL_START();
|
||||
HARDWARE_SERIAL_PROTOCOLPGM("J17"); // J17 Main board reset
|
||||
HARDWARE_SERIAL_ENTER();
|
||||
delay(10);
|
||||
@@ -123,21 +141,13 @@ void AnycubicTouchscreenClass::Setup()
|
||||
FilamentSensorEnabled = true;
|
||||
|
||||
#ifdef STARTUP_CHIME
|
||||
buzzer.tone(250, 554); // C#5
|
||||
buzzer.tone(250, 740); // F#5
|
||||
buzzer.tone(250, 554); // C#5
|
||||
buzzer.tone(500, 831); // G#5
|
||||
buzzer.tone(100, 554);
|
||||
buzzer.tone(100, 740);
|
||||
buzzer.tone(100, 831);
|
||||
#endif
|
||||
}
|
||||
|
||||
void AnycubicTouchscreenClass::WriteOutageEEPromData()
|
||||
{
|
||||
//int pos = E2END - 256;
|
||||
}
|
||||
|
||||
void AnycubicTouchscreenClass::ReadOutageEEPromData()
|
||||
{
|
||||
//int pos = E2END - 256;
|
||||
setup_OutageTestPin();
|
||||
}
|
||||
|
||||
void AnycubicTouchscreenClass::KillTFT()
|
||||
@@ -174,6 +184,8 @@ void AnycubicTouchscreenClass::StartPrint()
|
||||
SERIAL_ECHOLNPGM("DEBUG: M24 Resume from regular pause");
|
||||
#endif
|
||||
IsParked = false; // remove parked flag
|
||||
wait_for_heatup = false;
|
||||
wait_for_user = false;
|
||||
starttime = millis();
|
||||
card.startFileprint(); // resume regularly
|
||||
TFTstate = ANYCUBIC_TFT_STATE_SDPRINT;
|
||||
@@ -203,6 +215,7 @@ void AnycubicTouchscreenClass::StartPrint()
|
||||
SERIAL_ECHOLNPGM("DEBUG: M24 Resume from Filament Runout");
|
||||
#endif
|
||||
IsParked = false; // clear flags
|
||||
wait_for_user = false;
|
||||
ai3m_pause_state = 0;
|
||||
#ifdef ANYCUBIC_TFT_DEBUG
|
||||
SERIAL_ECHOLNPGM("DEBUG: Filament Pause Flag cleared");
|
||||
@@ -296,15 +309,12 @@ void AnycubicTouchscreenClass::StopPrint()
|
||||
wait_for_heatup = false;
|
||||
card.endFilePrint();
|
||||
card.closefile();
|
||||
//queue.clear();
|
||||
#ifdef ANYCUBIC_TFT_DEBUGANYCUBIC_TFT_STATE_SDSTOP_REQ
|
||||
SERIAL_ECHOLNPGM("DEBUG: Stopped and cleared");
|
||||
#endif
|
||||
print_job_timer.stop();
|
||||
thermalManager.disable_all_heaters();
|
||||
// we are not parked yet, do it in the display state routine
|
||||
IsParked = false;
|
||||
// turn off fan, cancel any heatups and set display state
|
||||
ai3m_pause_state = 0;
|
||||
#ifdef ANYCUBIC_TFT_DEBUG
|
||||
SERIAL_ECHOPAIR(" DEBUG: AI3M Pause State: ", ai3m_pause_state);
|
||||
@@ -318,16 +328,15 @@ void AnycubicTouchscreenClass::StopPrint()
|
||||
|
||||
void AnycubicTouchscreenClass::FilamentChangeResume()
|
||||
{
|
||||
wait_for_user = false; //must be done twice, since we have a bug in marlin
|
||||
wait_for_heatup = false;
|
||||
// call M108 to break out of M600 pause
|
||||
queue.inject_P(PSTR("M108"));
|
||||
#ifdef ANYCUBIC_TFT_DEBUG
|
||||
SERIAL_ECHOLNPGM("DEBUG: M108 Resume called");
|
||||
#endif
|
||||
|
||||
// remove waiting flags
|
||||
wait_for_heatup = false;
|
||||
wait_for_user = false;
|
||||
|
||||
wait_for_heatup = false;
|
||||
// resume with proper progress state
|
||||
card.startFileprint();
|
||||
#ifdef ANYCUBIC_TFT_DEBUG
|
||||
@@ -365,11 +374,9 @@ void AnycubicTouchscreenClass::ReheatNozzle()
|
||||
|
||||
// enable heaters again
|
||||
HOTEND_LOOP()
|
||||
//thermalManager.reset_hotend_idle_timer(e);
|
||||
#ifdef ANYCUBIC_TFT_DEBUG
|
||||
SERIAL_ECHOLNPGM("DEBUG: Clear flags");
|
||||
#endif
|
||||
// lower the pause flag by two to restore initial pause condition
|
||||
if (ai3m_pause_state > 3)
|
||||
{
|
||||
ai3m_pause_state -= 2;
|
||||
@@ -379,7 +386,6 @@ void AnycubicTouchscreenClass::ReheatNozzle()
|
||||
#endif
|
||||
}
|
||||
|
||||
// clear waiting flags
|
||||
wait_for_user = false;
|
||||
wait_for_heatup = false;
|
||||
|
||||
@@ -498,14 +504,14 @@ void AnycubicTouchscreenClass::HandleSpecialMenu()
|
||||
SERIAL_ECHOLNPGM("Special Menu: Z Down 0.01");
|
||||
queue.inject_P(PSTR("G91\nG1 Z-0.01\nG90"));
|
||||
}
|
||||
else if (strcmp(SelectedDirectory, "<filamentchange pause>") == 0)
|
||||
else if (strcmp(SelectedDirectory, "<fil. change pause>") == 0)
|
||||
{
|
||||
SERIAL_ECHOLNPGM("Special Menu: FilamentChange Pause");
|
||||
SERIAL_ECHOLNPGM("Special Menu: Fil. Change Pause");
|
||||
FilamentChangePause();
|
||||
}
|
||||
else if (strcmp(SelectedDirectory, "<filamentchange resume>") == 0)
|
||||
else if (strcmp(SelectedDirectory, "<fil. change resume>") == 0)
|
||||
{
|
||||
SERIAL_ECHOLNPGM("Special Menu: FilamentChange Resume");
|
||||
SERIAL_ECHOLNPGM("Special Menu: Fil. Change Resume");
|
||||
FilamentChangeResume();
|
||||
}
|
||||
else if (strcmp(SelectedDirectory, "<disable fil. sensor>") == 0)
|
||||
@@ -529,7 +535,7 @@ void AnycubicTouchscreenClass::HandleSpecialMenu()
|
||||
}
|
||||
}
|
||||
|
||||
void AnycubicTouchscreenClass::Ls()
|
||||
void AnycubicTouchscreenClass::AnycubicTouchscreen()
|
||||
{
|
||||
if (SpecialMenu)
|
||||
{
|
||||
@@ -540,10 +546,10 @@ void AnycubicTouchscreenClass::Ls()
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM("<Exit>");
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM("<Preheat Ultrabase>");
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM("<Preheat Ultrabase>");
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM("<FilamentChange Pause>");
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM("<FilamentChange Pause>");
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM("<FilamentChange Resume>");
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM("<FilamentChange Resume>");
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM("<Fil. Change Pause>");
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM("<Fil. Change Pause>");
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM("<Fil. Change Resume>");
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM("<Fil. Change Resume>");
|
||||
break;
|
||||
|
||||
case 4: // Page 2
|
||||
@@ -557,7 +563,6 @@ void AnycubicTouchscreenClass::Ls()
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM("<Z Down 0.1>");
|
||||
break;
|
||||
|
||||
|
||||
case 8: // Page 3
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM("<Z Up 0.02>");
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM("<Z Up 0.02>");
|
||||
@@ -569,7 +574,6 @@ void AnycubicTouchscreenClass::Ls()
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM("<Z Down 0.01>");
|
||||
break;
|
||||
|
||||
|
||||
case 12: // Page 4
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM("<PID Tune Hotend>");
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM("<PID Tune Hotend>");
|
||||
@@ -581,7 +585,6 @@ void AnycubicTouchscreenClass::Ls()
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM("<Load FW Defaults>");
|
||||
break;
|
||||
|
||||
|
||||
case 16: // Page 5
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM("<Disable Fil. Sensor>");
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM("<Disable Fil. Sensor>");
|
||||
@@ -591,34 +594,19 @@ void AnycubicTouchscreenClass::Ls()
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM("<Exit>");
|
||||
break;
|
||||
|
||||
|
||||
/*
|
||||
case 12: // Fourth Page
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM("<Z Up 0.1>");
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM("<Z Up 0.1>");
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM("<Z Down 0.1>");
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM("<Z Down 0.1>");
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM("<Z Up 0.02>");
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM("<Z Up 0.02>");
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM("<Z Down 0.02>");
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM("<Z Down 0.02>");
|
||||
break;
|
||||
*/
|
||||
|
||||
default:
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM("<Exit>");
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM("<Exit>");
|
||||
break;
|
||||
}
|
||||
}
|
||||
#ifdef SDSUPPORT
|
||||
else if (card.isMounted())
|
||||
{
|
||||
uint16_t cnt = filenumber;
|
||||
uint16_t count = filenumber;
|
||||
uint16_t max_files;
|
||||
uint16_t dir_files = card.countFilesInWorkDir();
|
||||
|
||||
// What is this shit? What if there are exactely 3 files+folders?
|
||||
// TODO: find something better than this crap.
|
||||
if ((dir_files - filenumber) < 4)
|
||||
{
|
||||
max_files = dir_files;
|
||||
@@ -628,44 +616,49 @@ void AnycubicTouchscreenClass::Ls()
|
||||
max_files = filenumber + 3;
|
||||
}
|
||||
|
||||
for (cnt = filenumber; cnt <= max_files; cnt++)
|
||||
for (count = filenumber; count <= max_files; count++)
|
||||
{
|
||||
if (cnt == 0) // Special Entry
|
||||
if (count == 0) // Special Entry
|
||||
{
|
||||
if (strcmp(card.getWorkDirName(), "/") == 0)
|
||||
{
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM("<Special Menu>");
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM("<Special Menu>");
|
||||
SERIAL_ECHO(cnt);
|
||||
SERIAL_ECHO(count);
|
||||
SERIAL_ECHOLNPGM("<Special_Menu>");
|
||||
}
|
||||
else
|
||||
{
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM("/..");
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM("/..");
|
||||
SERIAL_ECHO(cnt);
|
||||
SERIAL_ECHO(count);
|
||||
SERIAL_ECHOLNPGM("/..");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
card.selectFileByIndex(cnt - 1);
|
||||
|
||||
card.selectFileByIndex(count - 1);
|
||||
|
||||
// Bugfix for non-printable special characters
|
||||
// which are now replaced by underscores.
|
||||
int fileNameLen = strlen(card.longFilename);
|
||||
|
||||
// Cut off too long filenames.
|
||||
// They don't fit on the screen anyways.
|
||||
if(fileNameLen > MAX_PRINTABLE_FILENAME_LEN)
|
||||
fileNameLen = MAX_PRINTABLE_FILENAME_LEN;
|
||||
|
||||
char buffer[fileNameLen];
|
||||
|
||||
for (unsigned char i = 0; i < fileNameLen; i++){
|
||||
for (unsigned char i = 0; i < fileNameLen; i++)
|
||||
{
|
||||
buffer[i] = card.longFilename[i];
|
||||
if (!isPrintable(buffer[i]))
|
||||
if (!isPrintable(buffer[i]))
|
||||
{
|
||||
buffer[i] = '_';
|
||||
}
|
||||
}
|
||||
buffer[fileNameLen] = '\0';
|
||||
|
||||
|
||||
if (card.flag.filenameIsDir)
|
||||
{
|
||||
@@ -673,7 +666,7 @@ void AnycubicTouchscreenClass::Ls()
|
||||
HARDWARE_SERIAL_PROTOCOLLN(card.filename);
|
||||
HARDWARE_SERIAL_PROTOCOLPGM("/");
|
||||
HARDWARE_SERIAL_PROTOCOLLN(buffer);
|
||||
SERIAL_ECHO(cnt);
|
||||
SERIAL_ECHO(count);
|
||||
SERIAL_ECHOPGM("/");
|
||||
SERIAL_ECHOLN(buffer);
|
||||
}
|
||||
@@ -681,7 +674,7 @@ void AnycubicTouchscreenClass::Ls()
|
||||
{
|
||||
HARDWARE_SERIAL_PROTOCOLLN(card.filename);
|
||||
HARDWARE_SERIAL_PROTOCOLLN(buffer);
|
||||
SERIAL_ECHO(cnt);
|
||||
SERIAL_ECHO(count);
|
||||
SERIAL_ECHOLN(buffer);
|
||||
}
|
||||
}
|
||||
@@ -757,8 +750,6 @@ void AnycubicTouchscreenClass::StateHandler()
|
||||
{
|
||||
TFTstate = ANYCUBIC_TFT_STATE_SDPRINT;
|
||||
starttime = millis();
|
||||
|
||||
// --> Send print info to display... most probably print started via gcode
|
||||
}
|
||||
#endif
|
||||
break;
|
||||
@@ -766,7 +757,6 @@ void AnycubicTouchscreenClass::StateHandler()
|
||||
#ifdef SDSUPPORT
|
||||
if (!card.isPrinting())
|
||||
{
|
||||
// It seems that we are not printing anymore... pause or stopped?
|
||||
if (card.isFileOpen())
|
||||
{
|
||||
// File is still open --> paused
|
||||
@@ -807,7 +797,6 @@ void AnycubicTouchscreenClass::StateHandler()
|
||||
#ifdef SDSUPPORT
|
||||
if ((!card.isPrinting()) && (!planner.movesplanned()))
|
||||
{
|
||||
// We have to wait until the sd card printing has been settled
|
||||
if (ai3m_pause_state < 2)
|
||||
{
|
||||
// no flags, this is a regular pause.
|
||||
@@ -874,9 +863,9 @@ void AnycubicTouchscreenClass::StateHandler()
|
||||
|
||||
void AnycubicTouchscreenClass::FilamentRunout()
|
||||
{
|
||||
if(FilamentSensorEnabled == true)
|
||||
if (FilamentSensorEnabled == true)
|
||||
{
|
||||
#if ENABLED(ANYCUBIC_FILAMENT_RUNOUT_SENSOR)
|
||||
#if ENABLED(ANYCUBIC_FILAMENT_RUNOUT_SENSOR)
|
||||
FilamentTestStatus = READ(19) & 0xff;
|
||||
|
||||
if (FilamentTestStatus > FilamentTestLastStatus)
|
||||
@@ -888,9 +877,9 @@ void AnycubicTouchscreenClass::FilamentRunout()
|
||||
// since this is inside a loop, only set delay time once
|
||||
if (FilamentSetMillis)
|
||||
{
|
||||
#ifdef ANYCUBIC_TFT_DEBUG
|
||||
#ifdef ANYCUBIC_TFT_DEBUG
|
||||
SERIAL_ECHOLNPGM("DEBUG: Set filament trigger time");
|
||||
#endif
|
||||
#endif
|
||||
// set the delayed timestamp to 3000ms later
|
||||
fil_delay = fil_ms + 3000UL;
|
||||
// this doesn't need to run until the filament is recovered again
|
||||
@@ -903,26 +892,26 @@ void AnycubicTouchscreenClass::FilamentRunout()
|
||||
{
|
||||
if (!IsParked)
|
||||
{
|
||||
#ifdef ANYCUBIC_TFT_DEBUG
|
||||
#ifdef ANYCUBIC_TFT_DEBUG
|
||||
SERIAL_ECHOLNPGM("DEBUG: 3000ms delay done");
|
||||
#endif
|
||||
#endif
|
||||
if (card.isPrinting())
|
||||
{
|
||||
ai3m_pause_state = 3;
|
||||
; // set runout pause flag
|
||||
#ifdef ANYCUBIC_TFT_DEBUG
|
||||
#ifdef ANYCUBIC_TFT_DEBUG
|
||||
SERIAL_ECHOPAIR(" DEBUG: AI3M Pause State: ", ai3m_pause_state);
|
||||
SERIAL_EOL();
|
||||
#endif
|
||||
#endif
|
||||
PausePrint();
|
||||
}
|
||||
else if (!card.isPrinting())
|
||||
{
|
||||
HARDWARE_SERIAL_PROTOCOLPGM("J15"); //J15 FILAMENT LACK
|
||||
HARDWARE_SERIAL_ENTER();
|
||||
#ifdef ANYCUBIC_TFT_DEBUG
|
||||
#ifdef ANYCUBIC_TFT_DEBUG
|
||||
SERIAL_ECHOLNPGM("TFT Serial Debug: Filament runout... J15");
|
||||
#endif
|
||||
#endif
|
||||
FilamentTestLastStatus = FilamentTestStatus;
|
||||
}
|
||||
}
|
||||
@@ -933,11 +922,11 @@ void AnycubicTouchscreenClass::FilamentRunout()
|
||||
{
|
||||
FilamentSetMillis = true; // set the timestamps on the next loop again
|
||||
FilamentTestLastStatus = FilamentTestStatus;
|
||||
#ifdef ANYCUBIC_TFT_DEBUG
|
||||
#ifdef ANYCUBIC_TFT_DEBUG
|
||||
SERIAL_ECHOLNPGM("TFT Serial Debug: Filament runout recovered");
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1065,7 +1054,7 @@ void AnycubicTouchscreenClass::GetCommandFromTFT()
|
||||
|
||||
break;
|
||||
}
|
||||
case 8: // A8 GET SD LIST
|
||||
case 8: // A8 GET SD LIST
|
||||
#ifdef SDSUPPORT
|
||||
SelectedDirectory[0] = 0;
|
||||
if (!IS_SD_INSERTED())
|
||||
@@ -1080,7 +1069,7 @@ void AnycubicTouchscreenClass::GetCommandFromTFT()
|
||||
|
||||
HARDWARE_SERIAL_PROTOCOLPGM("FN "); // Filelist start
|
||||
HARDWARE_SERIAL_ENTER();
|
||||
Ls();
|
||||
AnycubicTouchscreen();
|
||||
HARDWARE_SERIAL_PROTOCOLPGM("END"); // Filelist stop
|
||||
HARDWARE_SERIAL_ENTER();
|
||||
}
|
||||
@@ -1203,18 +1192,21 @@ void AnycubicTouchscreenClass::GetCommandFromTFT()
|
||||
#endif
|
||||
break;
|
||||
case 15: // A15 RESUMING FROM OUTAGE
|
||||
//if((!planner.movesplanned())&&(!TFTresumingflag))
|
||||
// {
|
||||
// if(card.isMounted())
|
||||
// FlagResumFromOutage=true;
|
||||
// ResumingFlag=1;
|
||||
// card.startFileprint();
|
||||
// starttime=millis();
|
||||
// HARDWARE_SERIAL_SUCC_START;
|
||||
// }
|
||||
//HARDWARE_SERIAL_ENTER();
|
||||
#if defined(POWER_OUTAGE_TEST)
|
||||
if ((!planner.movesplanned()) && (TFTstate != ANYCUBIC_TFT_STATE_SDPAUSE))
|
||||
{
|
||||
if (card.isFileOpen())
|
||||
FlagResumFromOutage = true;
|
||||
|
||||
ResumingFlag = 1;
|
||||
card.startFileprint();
|
||||
starttime = millis();
|
||||
HARDWARE_SERIAL_SUCC_START;
|
||||
}
|
||||
HARDWARE_SERIAL_ENTER();
|
||||
#endif
|
||||
break;
|
||||
case 16: // A16 set hotend temp
|
||||
case 16: // A16 set hotend temp
|
||||
{
|
||||
unsigned int tempvalue;
|
||||
if (CodeSeen('S'))
|
||||
@@ -1230,7 +1222,6 @@ void AnycubicTouchscreenClass::GetCommandFromTFT()
|
||||
thermalManager.setTargetHotend(tempvalue, 0);
|
||||
}
|
||||
}
|
||||
// HARDWARE_SERIAL_ENTER();
|
||||
break;
|
||||
case 17: // A17 set heated bed temp
|
||||
{
|
||||
@@ -1241,7 +1232,6 @@ void AnycubicTouchscreenClass::GetCommandFromTFT()
|
||||
thermalManager.setTargetBed(tempbed);
|
||||
}
|
||||
}
|
||||
// HARDWARE_SERIAL_ENTER();
|
||||
break;
|
||||
case 18: // A18 set fan speed
|
||||
unsigned int temp;
|
||||
@@ -1478,7 +1468,7 @@ void AnycubicTouchscreenClass::GetCommandFromTFT()
|
||||
}
|
||||
TFTbufindw = (TFTbufindw + 1) % TFTBUFSIZE;
|
||||
TFTbuflen += 1;
|
||||
serial3_count = 0; //clear buffer
|
||||
serial3_count = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1547,5 +1537,21 @@ void AnycubicTouchscreenClass::BedHeatingDone()
|
||||
#endif
|
||||
}
|
||||
|
||||
void PowerKill()
|
||||
{
|
||||
#ifdef POWER_OUTAGE_TEST
|
||||
Temp_Buf_Extuder_Temperature = thermalManager.degTargetHotend(0);
|
||||
Temp_Buf_Bed_Temperature = thermalManager.degTargetBed();
|
||||
if (PowerTestFlag == true)
|
||||
{
|
||||
thermalManager.disable_all_heaters();
|
||||
OutageSave();
|
||||
PowerTestFlag = false;
|
||||
thermalManager.setTargetHotend(Temp_Buf_Extuder_Temperature, 0);
|
||||
thermalManager.setTargetBed(Temp_Buf_Bed_Temperature);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
AnycubicTouchscreenClass AnycubicTouchscreen;
|
||||
#endif
|
||||
|
@@ -86,6 +86,7 @@ private:
|
||||
uint16_t HeaterCheckCount = 0;
|
||||
bool IsParked = false;
|
||||
|
||||
#if defined(POWER_OUTAGE_TEST)
|
||||
struct OutageDataStruct
|
||||
{
|
||||
char OutageDataVersion;
|
||||
@@ -95,13 +96,12 @@ private:
|
||||
float last_hotend_temp;
|
||||
long lastSDposition;
|
||||
} OutageData;
|
||||
#endif
|
||||
|
||||
void WriteOutageEEPromData();
|
||||
void ReadOutageEEPromData();
|
||||
|
||||
float CodeValue();
|
||||
bool CodeSeen(char);
|
||||
void Ls();
|
||||
void AnycubicTouchscreen();
|
||||
void StartPrint();
|
||||
void PausePrint();
|
||||
void StopPrint();
|
||||
|
@@ -56,6 +56,8 @@
|
||||
#include "../gcode/gcode.h"
|
||||
#include "../MarlinCore.h"
|
||||
|
||||
#include "../sd/cardreader.h"
|
||||
|
||||
#if EITHER(EEPROM_SETTINGS, SD_FIRMWARE_UPDATE)
|
||||
#include "../HAL/shared/eeprom_api.h"
|
||||
#endif
|
||||
@@ -522,6 +524,9 @@ void MarlinSettings::postprocess() {
|
||||
#define EEPROM_READ_ALWAYS(VAR) do{ persistentStore.read_data(eeprom_index, (uint8_t*)&VAR, sizeof(VAR), &working_crc); }while(0)
|
||||
#define EEPROM_ASSERT(TST,ERR) do{ if (!(TST)) { SERIAL_ERROR_MSG(ERR); eeprom_error = true; } }while(0)
|
||||
|
||||
#define EEPROM_WRITE_VAR(pos, value) persistentStore.write_data(pos, (uint8_t*)&value, sizeof(value))
|
||||
#define EEPROM_READ_VAR(pos, value) persistentStore.read_data(pos, (uint8_t*)&value, sizeof(value))
|
||||
|
||||
#if ENABLED(DEBUG_EEPROM_READWRITE)
|
||||
#define _FIELD_TEST(FIELD) \
|
||||
EEPROM_ASSERT( \
|
||||
@@ -3682,6 +3687,45 @@ void MarlinSettings::reset() {
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
#ifdef POWER_OUTAGE_TEST
|
||||
float last_position[4] = { 0.0,0.0,0.0,0.0 };
|
||||
long last_sd_position[1] = { 0 };
|
||||
|
||||
void OutageSave()
|
||||
{
|
||||
char ver[4] = "000";
|
||||
int j = 20;
|
||||
EEPROM_WRITE_VAR(j,ver);
|
||||
last_sd_position[0] = card.GetLastSDpos();
|
||||
last_position[0] = current_position[E_AXIS];
|
||||
last_position[1] = current_position[Z_AXIS];
|
||||
last_position[2] = current_position[Y_AXIS];
|
||||
last_position[3] = current_position[X_AXIS];
|
||||
|
||||
EEPROM_WRITE_VAR(j,last_sd_position[0]);
|
||||
EEPROM_WRITE_VAR(j,last_position[0]); //E
|
||||
EEPROM_WRITE_VAR(j,last_position[1]); //Z
|
||||
EEPROM_WRITE_VAR(j,last_position[2]); //Y
|
||||
EEPROM_WRITE_VAR(j,last_position[3]); //X
|
||||
}
|
||||
|
||||
|
||||
void OutageRead()
|
||||
{
|
||||
int i = 20;
|
||||
char stored_ver[4];
|
||||
char ver[4] = EEPROM_VERSION;
|
||||
EEPROM_READ_VAR(i,stored_ver);
|
||||
EEPROM_READ_VAR(i,last_sd_position[0]);
|
||||
EEPROM_READ_VAR(i,last_position[0]); //E
|
||||
EEPROM_READ_VAR(i,last_position[1]); //Z
|
||||
EEPROM_READ_VAR(i,last_position[2]); //Y
|
||||
EEPROM_READ_VAR(i,last_position[3]); //X
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#endif // !DISABLE_M503
|
||||
|
||||
#pragma pack(pop)
|
||||
|
@@ -27,6 +27,15 @@
|
||||
#include "../HAL/shared/eeprom_api.h"
|
||||
#endif
|
||||
|
||||
#ifdef POWER_OUTAGE_TEST
|
||||
|
||||
static bool RestartFlag = false;
|
||||
void OutageSave();
|
||||
void OutageRead();
|
||||
extern float last_position[4];
|
||||
extern long last_sd_position[1];
|
||||
#endif
|
||||
|
||||
class MarlinSettings {
|
||||
public:
|
||||
static uint16_t datasize();
|
||||
|
@@ -2071,22 +2071,11 @@ void Temperature::init() {
|
||||
|
||||
case TRRunaway:
|
||||
_temp_error(heater_id, str_t_thermal_runaway, GET_TEXT(MSG_THERMAL_RUNAWAY));
|
||||
BUZZ(2000, 1108);
|
||||
BUZZ(2000, 1661);
|
||||
BUZZ(2000, 1108);
|
||||
BUZZ(2000, 1661);
|
||||
BUZZ(2000, 1108);
|
||||
BUZZ(2000, 1661);
|
||||
BUZZ(2000, 1108);
|
||||
BUZZ(2000, 1661);
|
||||
BUZZ(2000, 1108);
|
||||
BUZZ(2000, 1661);
|
||||
BUZZ(2000, 1108);
|
||||
BUZZ(2000, 1661);
|
||||
BUZZ(2000, 1108);
|
||||
BUZZ(2000, 1661);
|
||||
BUZZ(2000, 1108);
|
||||
BUZZ(2000, 1661);
|
||||
for(uint8_t i = 0; i < 30; i++)
|
||||
{
|
||||
BUZZ(2000, 1108);
|
||||
BUZZ(2000, 1661);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -90,6 +90,11 @@
|
||||
#define FAN2_PIN TG_FAN2_PIN
|
||||
#define ORIG_E0_AUTO_FAN_PIN TG_FAN2_PIN // Used in Anycubic Kossel example config
|
||||
|
||||
#ifdef POWER_OUTAGE_TEST
|
||||
#define OUTAGETEST_PIN 79
|
||||
#define OUTAGECON_PIN 58
|
||||
#endif
|
||||
|
||||
#include "pins_RAMPS.h"
|
||||
|
||||
//
|
||||
|
@@ -34,6 +34,11 @@
|
||||
#include "../gcode/queue.h"
|
||||
#include "../module/configuration_store.h"
|
||||
|
||||
#if defined(POWER_OUTAGE_TEST)
|
||||
extern unsigned char PowerTestFlag;
|
||||
extern char seekdataflag;
|
||||
#endif
|
||||
|
||||
#if ENABLED(EMERGENCY_PARSER)
|
||||
#include "../feature/e_parser.h"
|
||||
#endif
|
||||
|
@@ -153,6 +153,7 @@ public:
|
||||
static inline int16_t get() { sdpos = file.curPosition(); return (int16_t)file.read(); }
|
||||
static inline int16_t read(void* buf, uint16_t nbyte) { return file.isOpen() ? file.read(buf, nbyte) : -1; }
|
||||
static inline int16_t write(void* buf, uint16_t nbyte) { return file.isOpen() ? file.write(buf, nbyte) : -1; }
|
||||
static inline long GetLastSDpos() { return sdpos; };
|
||||
|
||||
static Sd2Card& getSd2Card() { return sd2card; }
|
||||
|
||||
|
20
README.md
20
README.md
@@ -9,6 +9,7 @@ Diese Firmwarekonfiguration aktiviert viele neue erweitere Funktionen der Marlin
|
||||
* Mesh-Bed Kalibrierung
|
||||
* S-Kurven Beschleunigung
|
||||
* "Juction Deviation" statt des klassischen "Jerk"
|
||||
* "Linear Pressure Control v1.5" aktiviert (kann mit M900 konfiguriert werden)
|
||||
* Babystepping während des Druckvorgangs
|
||||
* Bilinear Bed Leveling (BBL)
|
||||
* Manuelles Editieren der Messpunkte
|
||||
@@ -50,27 +51,26 @@ Dein Bauteillüfter läuft jetzt mit voller Drehzahl, was er vorher nicht tat. S
|
||||
|
||||
Nein. Aber sicher auch nicht schlechter.
|
||||
|
||||
|
||||
>Wo sind die Downloads?
|
||||
|
||||
Weiter unten.
|
||||
|
||||
|
||||
>Muss ich bei TMC Treibern die Stecker drehen?
|
||||
|
||||
Nö. Lade dir einfach die korrekte Version herunter.
|
||||
|
||||
>Welche TMC2208 Motortreiber sollte ich kaufen? Lieber die V2 oder die Bigtreetech V3?
|
||||
|
||||
>Welche TMC Motortreiber sollte ich kaufen? Lieber die V2 oder die Bigtreetech V3?
|
||||
Weder noch! Es gibt keine "V2" oder "V3". Die offizielle letzte Version von Trinamic ist v1.2 und die beiden großen primären Hersteller für die echten SilentStepSticks sind FYSETC und WATTERROTT. Lass bloß die Finger von Bigtreetech.
|
||||
|
||||
Weder noch! Es gibt keine "V2" oder "V3". Die offizielle letzte Version von Trinamic ist v1.2 und die beiden großen priämären Hersteller für die echten SilentStepSticks sind FYSTEC und WATTERROTT. Lass bloß die Finger von Bigtreetech.
|
||||
>Ich habe die Stecker bei meinen Motoren schon gedreht, als ich die TMC Treiber eingebaut habe. Muss ich jetzt trotzdem die TMC Version flashen?
|
||||
|
||||
Nein. Benutze einfach die Nicht-TMC Version, da sonst die Motoren wieder in die falsche Richtung laufen.
|
||||
|
||||
>Als ich die Treiber eingebaut habe, qualmte mein Mainboard in der Mitte rechts. Ist das normal?
|
||||
|
||||
Nein. Du hast die Treiber falsch herum eingebaut. Jetzt ist die Z-Diode (733A) verbrannt. Tausche sie aus und alles funktioniert wieder. Deine falsch gesteckten Treiber kannst du aber vermutlich wegschmeißen.
|
||||
|
||||
|
||||
>Muss ich wie bei anderen Firmwares noch die E-Steps einstellen, wenn ich einen Mega S besitze?
|
||||
|
||||
Nein, lade dir einfach die korrekte Version herunter. Trotzdem solltest du die Steps noch kalibrieren.
|
||||
@@ -111,6 +111,7 @@ This firmware configuration activates many new features of the Marlin firmware:
|
||||
* Mesh bed calibration
|
||||
* S-curve acceleration
|
||||
* "Juction Deviation" instead of the classic "Jerk"
|
||||
* "Linear Pressure Control v1.5" enabled (can be configured with M900)
|
||||
* Baby stepping during printing
|
||||
* Bilinear Bed Leveling (BBL)
|
||||
* Manual editing of the measuring points
|
||||
@@ -151,27 +152,26 @@ Your component fan is now running at full speed, which it did no before. Simply
|
||||
|
||||
No. But certainly not worse either.
|
||||
|
||||
|
||||
> Where are the downloads?
|
||||
|
||||
Further down.
|
||||
|
||||
|
||||
> Do I have to turn the plugs for TMC drivers?
|
||||
|
||||
Nope, just download the correct version.
|
||||
|
||||
> Which TMC2208 motor drivers should I buy? The V2 or the Bigtreetech V3?
|
||||
|
||||
> Which TMC motor drivers should I buy? The V2 or the Bigtreetech V3?
|
||||
Neither! There is no "V2" or "V3". The official last version of Trinamic is v1.2 and the two major primary manufacturers for the real SilentStepSticks are FYSETC and WATTERROTT. Just stay away from Bigtreetech.
|
||||
|
||||
Neither! There is no "V2" or "V3". The official last version of Trinamic is v1.2 and the two major primary manufacturers for the real SilentStepSticks are FYSTEC and WATTERROTT. Just stay away from Bigtreetech.
|
||||
> I already turned the plugs on my motors when I installed the TMC drivers. Do I still have to flash the TMC version?
|
||||
|
||||
No. Just use the non-TMC version, otherwise the motors will turn in the wrong direction again.
|
||||
|
||||
> When I installed the drivers, my mainboard gave me the "magic smoke". Is that normal?
|
||||
|
||||
No. You installed the drivers the wrong way round. Now the Zener diode (733A) is burned. Exchange it and everything works again. You can probably throw away your wrongly inserted drivers.
|
||||
|
||||
|
||||
> As with other firmwares, do I still have to set the E-Steps if I have a Mega S?
|
||||
|
||||
No, just download the correct version. Nevertheless, you should still calibrate the e-steps.
|
||||
|
@@ -1718,7 +1718,7 @@
|
||||
//
|
||||
// Short 2KHz beep when endstops are hit
|
||||
//
|
||||
//#define ENDSTOP_BEEP
|
||||
#define ENDSTOP_BEEP
|
||||
|
||||
//
|
||||
// The duration and frequency for the UI feedback sound.
|
||||
|
@@ -1366,7 +1366,7 @@
|
||||
*
|
||||
* Warning: Does not respect endstops!
|
||||
*/
|
||||
//#define BABYSTEPPING
|
||||
#define BABYSTEPPING
|
||||
#if ENABLED(BABYSTEPPING)
|
||||
//#define BABYSTEP_WITHOUT_HOMING
|
||||
//#define BABYSTEP_XY // Also enable X/Y Babystepping. Not supported on DELTA!
|
||||
@@ -1412,7 +1412,7 @@
|
||||
* See http://marlinfw.org/docs/features/lin_advance.html for full instructions.
|
||||
* Mention @Sebastianv650 on GitHub to alert the author of any issues.
|
||||
*/
|
||||
#define LIN_ADVANCE
|
||||
//#define LIN_ADVANCE
|
||||
#if ENABLED(LIN_ADVANCE)
|
||||
#define LIN_ADVANCE_K 0 // Unit: mm compression per 1mm/s extruder speed
|
||||
//#define LA_DEBUG // If enabled, this will generate debug information output over USB.
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 125 KiB After Width: | Height: | Size: 72 KiB |
Binary file not shown.
Before Width: | Height: | Size: 118 KiB After Width: | Height: | Size: 72 KiB |
Binary file not shown.
Before Width: | Height: | Size: 137 KiB After Width: | Height: | Size: 80 KiB |
853
platformio.ini
Executable file
853
platformio.ini
Executable file
@@ -0,0 +1,853 @@
|
||||
#
|
||||
# Marlin Firmware
|
||||
# PlatformIO Configuration File
|
||||
#
|
||||
# For detailed documentation with EXAMPLES:
|
||||
#
|
||||
# http://docs.platformio.org/en/latest/projectconf.html
|
||||
#
|
||||
|
||||
# Automatic targets - enable auto-uploading
|
||||
# targets = upload
|
||||
|
||||
#
|
||||
# By default platformio build will abort after 5 errors.
|
||||
# Remove '-fmax-errors=5' from build_flags below to see all.
|
||||
#
|
||||
|
||||
[platformio]
|
||||
src_dir = Marlin
|
||||
boards_dir = buildroot/share/PlatformIO/boards
|
||||
default_envs = mega2560
|
||||
|
||||
[common]
|
||||
default_src_filter = +<src/*> -<src/config> -<src/HAL> +<src/HAL/shared>
|
||||
extra_scripts = pre:buildroot/share/PlatformIO/scripts/common-cxxflags.py
|
||||
build_flags = -fmax-errors=5 -g -D__MARLIN_FIRMWARE__ -fmerge-all-constants
|
||||
lib_deps =
|
||||
LiquidCrystal
|
||||
TMCStepper@>=0.6.2,<1.0.0
|
||||
Adafruit NeoPixel
|
||||
U8glib-HAL=https://github.com/MarlinFirmware/U8glib-HAL/archive/bugfix.zip
|
||||
Adafruit_MAX31865=https://github.com/adafruit/Adafruit_MAX31865/archive/master.zip
|
||||
LiquidTWI2=https://github.com/lincomatic/LiquidTWI2/archive/master.zip
|
||||
Arduino-L6470=https://github.com/ameyer/Arduino-L6470/archive/0.8.0.zip
|
||||
SailfishLCD=https://github.com/mikeshub/SailfishLCD/archive/master.zip
|
||||
SailfishRGB_LED=https://github.com/mikeshub/SailfishRGB_LED/archive/master.zip
|
||||
SlowSoftI2CMaster=https://github.com/mikeshub/SlowSoftI2CMaster/archive/master.zip
|
||||
|
||||
# Globally defined properties
|
||||
# inherited by all environments
|
||||
[env]
|
||||
framework = arduino
|
||||
build_flags = ${common.build_flags}
|
||||
lib_deps = ${common.lib_deps}
|
||||
monitor_speed = 250000
|
||||
|
||||
#################################
|
||||
# #
|
||||
# Unique Core Architectures #
|
||||
# #
|
||||
# Add a new "env" below if no #
|
||||
# entry has values suitable to #
|
||||
# build for a given board. #
|
||||
# #
|
||||
#################################
|
||||
|
||||
#
|
||||
# ATmega2560
|
||||
#
|
||||
[env:mega2560]
|
||||
platform = atmelavr
|
||||
board = megaatmega2560
|
||||
board_build.f_cpu = 16000000L
|
||||
lib_deps = ${common.lib_deps}
|
||||
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
|
||||
|
||||
#
|
||||
# ATmega1280
|
||||
#
|
||||
[env:mega1280]
|
||||
platform = atmelavr
|
||||
board = megaatmega1280
|
||||
board_build.f_cpu = 16000000L
|
||||
lib_deps = ${common.lib_deps}
|
||||
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
|
||||
|
||||
#
|
||||
# RAMBo
|
||||
#
|
||||
[env:rambo]
|
||||
platform = atmelavr
|
||||
board = reprap_rambo
|
||||
board_build.f_cpu = 16000000L
|
||||
lib_deps = ${common.lib_deps}
|
||||
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
|
||||
|
||||
#
|
||||
# FYSETC F6 V1.3
|
||||
#
|
||||
[env:FYSETC_F6_13]
|
||||
platform = atmelavr
|
||||
board = fysetc_f6_13
|
||||
board_build.f_cpu = 16000000L
|
||||
lib_deps = ${common.lib_deps}
|
||||
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
|
||||
|
||||
#
|
||||
# FYSETC F6 V1.4
|
||||
#
|
||||
[env:FYSETC_F6_14]
|
||||
platform = atmelavr
|
||||
board = fysetc_f6_14
|
||||
board_build.f_cpu = 16000000L
|
||||
lib_deps = ${common.lib_deps}
|
||||
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
|
||||
|
||||
#
|
||||
# Sanguinololu (ATmega644p)
|
||||
#
|
||||
[env:sanguino644p]
|
||||
platform = atmelavr
|
||||
board = sanguino_atmega644p
|
||||
lib_deps = ${common.lib_deps}
|
||||
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
|
||||
|
||||
#
|
||||
# Sanguinololu (ATmega1284p)
|
||||
#
|
||||
[env:sanguino1284p]
|
||||
platform = atmelavr
|
||||
board = sanguino_atmega1284p
|
||||
lib_deps = ${common.lib_deps}
|
||||
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
|
||||
|
||||
#
|
||||
# Melzi and clones (ATmega1284p)
|
||||
#
|
||||
[env:melzi]
|
||||
platform = atmelavr
|
||||
board = sanguino_atmega1284p
|
||||
lib_deps = ${common.lib_deps}
|
||||
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
|
||||
lib_ignore = TMCStepper
|
||||
upload_speed = 57600
|
||||
|
||||
#
|
||||
# Melzi and clones (Optiboot bootloader)
|
||||
#
|
||||
[env:melzi_optiboot]
|
||||
platform = atmelavr
|
||||
board = sanguino_atmega1284p
|
||||
lib_deps = ${common.lib_deps}
|
||||
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
|
||||
lib_ignore = TMCStepper
|
||||
upload_speed = 115200
|
||||
|
||||
#
|
||||
# AT90USB1286 boards using CDC bootloader
|
||||
# - BRAINWAVE
|
||||
# - BRAINWAVE_PRO
|
||||
# - SAV_MKI
|
||||
# - TEENSYLU
|
||||
#
|
||||
[env:at90usb1286_cdc]
|
||||
platform = teensy
|
||||
board = at90usb1286
|
||||
lib_deps = ${common.lib_deps}
|
||||
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
|
||||
lib_ignore = TMCStepper
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
|
||||
|
||||
#
|
||||
# AT90USB1286 boards using DFU bootloader
|
||||
# - PrintrBoard
|
||||
# - PrintrBoard Rev.F
|
||||
# - ? 5DPRINT ?
|
||||
#
|
||||
[env:at90usb1286_dfu]
|
||||
platform = teensy
|
||||
board = at90usb1286
|
||||
lib_deps = ${common.lib_deps}
|
||||
lib_ignore = TMCStepper
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
|
||||
|
||||
#
|
||||
# Due (Atmel SAM3X8E ARM Cortex-M3)
|
||||
#
|
||||
# - RAMPS4DUE
|
||||
# - RADDS
|
||||
#
|
||||
[env:DUE]
|
||||
platform = atmelsam
|
||||
board = due
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/DUE>
|
||||
|
||||
[env:DUE_USB]
|
||||
platform = atmelsam
|
||||
board = dueUSB
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/DUE>
|
||||
|
||||
[env:DUE_debug]
|
||||
# Used when WATCHDOG_RESET_MANUAL is enabled
|
||||
platform = atmelsam
|
||||
board = due
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/DUE>
|
||||
build_flags = ${common.build_flags}
|
||||
-funwind-tables
|
||||
-mpoke-function-name
|
||||
|
||||
#
|
||||
# NXP LPC176x ARM Cortex-M3
|
||||
#
|
||||
[env:LPC1768]
|
||||
platform = https://github.com/p3p/pio-nxplpc-arduino-lpc176x/archive/0.1.2.zip
|
||||
board = nxp_lpc1768
|
||||
build_flags = -DU8G_HAL_LINKS -IMarlin/src/HAL/LPC1768/include -IMarlin/src/HAL/LPC1768/u8g ${common.build_flags}
|
||||
# debug options for backtrace
|
||||
# -funwind-tables
|
||||
# -mpoke-function-name
|
||||
lib_ldf_mode = off
|
||||
lib_compat_mode = strict
|
||||
extra_scripts = Marlin/src/HAL/LPC1768/upload_extra_script.py
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/LPC1768>
|
||||
lib_deps = Servo
|
||||
LiquidCrystal
|
||||
U8glib-HAL=https://github.com/MarlinFirmware/U8glib-HAL/archive/bugfix.zip
|
||||
TMCStepper@>=0.6.1,<1.0.0
|
||||
Adafruit NeoPixel=https://github.com/p3p/Adafruit_NeoPixel/archive/release.zip
|
||||
SailfishLCD=https://github.com/mikeshub/SailfishLCD/archive/master.zip
|
||||
|
||||
[env:LPC1769]
|
||||
platform = https://github.com/p3p/pio-nxplpc-arduino-lpc176x/archive/0.1.2.zip
|
||||
board = nxp_lpc1769
|
||||
build_flags = -DU8G_HAL_LINKS -IMarlin/src/HAL/LPC1768/include -IMarlin/src/HAL/LPC1768/u8g ${common.build_flags}
|
||||
# debug options for backtrace
|
||||
# -funwind-tables
|
||||
# -mpoke-function-name
|
||||
lib_ldf_mode = off
|
||||
lib_compat_mode = strict
|
||||
extra_scripts = Marlin/src/HAL/LPC1768/upload_extra_script.py
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/LPC1768>
|
||||
lib_deps = Servo
|
||||
LiquidCrystal
|
||||
U8glib-HAL=https://github.com/MarlinFirmware/U8glib-HAL/archive/bugfix.zip
|
||||
TMCStepper@>=0.6.1,<1.0.0
|
||||
Adafruit NeoPixel=https://github.com/p3p/Adafruit_NeoPixel/archive/release.zip
|
||||
SailfishLCD=https://github.com/mikeshub/SailfishLCD/archive/master.zip
|
||||
|
||||
#
|
||||
# STM32F103RC
|
||||
#
|
||||
[env:STM32F103RC]
|
||||
platform = ststm32
|
||||
board = genericSTM32F103RC
|
||||
platform_packages = tool-stm32duino
|
||||
build_flags = !python Marlin/src/HAL/STM32F1/build_flags.py
|
||||
${common.build_flags} -std=gnu++14
|
||||
build_unflags = -std=gnu++11
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32F1>
|
||||
lib_deps = ${common.lib_deps}
|
||||
SoftwareSerialM=https://github.com/FYSETC/SoftwareSerialM/archive/master.zip
|
||||
lib_ignore = Adafruit NeoPixel, SPI
|
||||
monitor_speed = 115200
|
||||
|
||||
#
|
||||
# STM32F103RC_fysetc
|
||||
#
|
||||
[env:STM32F103RC_fysetc]
|
||||
platform = ststm32
|
||||
board = genericSTM32F103RC
|
||||
#board_build.core = maple
|
||||
platform_packages = tool-stm32duino
|
||||
build_flags = !python Marlin/src/HAL/STM32F1/build_flags.py
|
||||
${common.build_flags} -std=gnu++14 -DDEBUG_LEVEL=0 -DHAVE_SW_SERIAL
|
||||
build_unflags = -std=gnu++11
|
||||
extra_scripts = buildroot/share/PlatformIO/scripts/STM32F103RC_fysetc.py
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32F1>
|
||||
lib_deps = ${common.lib_deps}
|
||||
SoftwareSerialM=https://github.com/FYSETC/SoftwareSerialM/archive/master.zip
|
||||
lib_ignore = Adafruit NeoPixel, SPI
|
||||
lib_ldf_mode = chain
|
||||
debug_tool = stlink
|
||||
upload_protocol = serial
|
||||
|
||||
#
|
||||
# BigTree SKR Mini V1.1 / SKR mini E3 / SKR E3 DIP (STM32F103RCT6 ARM Cortex-M3)
|
||||
#
|
||||
# STM32F103RC_btt ............. RCT6 with 256K
|
||||
# STM32F103RC_btt_USB ......... RCT6 with 256K (USB mass storage)
|
||||
# STM32F103RC_btt_512K ........ RCT6 with 512K
|
||||
# STM32F103RC_btt_512K_USB .... RCT6 with 512K (USB mass storage)
|
||||
#
|
||||
|
||||
[env:STM32F103RC_btt]
|
||||
platform = ststm32
|
||||
board = genericSTM32F103RC
|
||||
platform_packages = tool-stm32duino
|
||||
build_flags = !python Marlin/src/HAL/STM32F1/build_flags.py
|
||||
${common.build_flags} -DDEBUG_LEVEL=0 -std=gnu++14 -DHAVE_SW_SERIAL -DSS_TIMER=4
|
||||
build_unflags = -std=gnu++11
|
||||
extra_scripts = buildroot/share/PlatformIO/scripts/STM32F103RC_SKR_MINI.py
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32F1>
|
||||
lib_deps = ${common.lib_deps}
|
||||
SoftwareSerialM=https://github.com/FYSETC/SoftwareSerialM/archive/master.zip
|
||||
USBComposite for STM32F1@==0.91
|
||||
lib_ignore = Adafruit NeoPixel, SPI
|
||||
monitor_speed = 115200
|
||||
|
||||
[env:STM32F103RC_btt_USB]
|
||||
platform = ststm32
|
||||
board = genericSTM32F103RC
|
||||
platform_packages = tool-stm32duino
|
||||
build_flags = !python Marlin/src/HAL/STM32F1/build_flags.py
|
||||
${common.build_flags} -DDEBUG_LEVEL=0 -std=gnu++14 -DHAVE_SW_SERIAL -DSS_TIMER=4 -DUSE_USB_COMPOSITE
|
||||
build_unflags = -std=gnu++11
|
||||
extra_scripts = buildroot/share/PlatformIO/scripts/STM32F103RC_SKR_MINI.py
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32F1>
|
||||
lib_deps = ${common.lib_deps}
|
||||
SoftwareSerialM=https://github.com/FYSETC/SoftwareSerialM/archive/master.zip
|
||||
USBComposite for STM32F1@==0.91
|
||||
lib_ignore = Adafruit NeoPixel, SPI
|
||||
monitor_speed = 115200
|
||||
|
||||
[env:STM32F103RC_btt_512K]
|
||||
platform = ststm32
|
||||
board = genericSTM32F103RC
|
||||
board_upload.maximum_size=524288
|
||||
platform_packages = tool-stm32duino
|
||||
build_flags = !python Marlin/src/HAL/STM32F1/build_flags.py
|
||||
${common.build_flags} -DDEBUG_LEVEL=0 -std=gnu++14 -DHAVE_SW_SERIAL -DSS_TIMER=4 -DSTM32_FLASH_SIZE=512
|
||||
build_unflags = -std=gnu++11
|
||||
extra_scripts = buildroot/share/PlatformIO/scripts/STM32F103RC_SKR_MINI.py
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32F1>
|
||||
lib_deps = ${common.lib_deps}
|
||||
SoftwareSerialM=https://github.com/FYSETC/SoftwareSerialM/archive/master.zip
|
||||
USBComposite for STM32F1@==0.91
|
||||
lib_ignore = Adafruit NeoPixel, SPI
|
||||
monitor_speed = 115200
|
||||
|
||||
[env:STM32F103RC_btt_512K_USB]
|
||||
platform = ststm32
|
||||
board = genericSTM32F103RC
|
||||
board_upload.maximum_size=524288
|
||||
platform_packages = tool-stm32duino
|
||||
build_flags = !python Marlin/src/HAL/STM32F1/build_flags.py
|
||||
${common.build_flags} -DDEBUG_LEVEL=0 -std=gnu++14 -DHAVE_SW_SERIAL -DSS_TIMER=4 -DSTM32_FLASH_SIZE=512 -DUSE_USB_COMPOSITE
|
||||
build_unflags = -std=gnu++11
|
||||
extra_scripts = buildroot/share/PlatformIO/scripts/STM32F103RC_SKR_MINI.py
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32F1>
|
||||
lib_deps = ${common.lib_deps}
|
||||
SoftwareSerialM=https://github.com/FYSETC/SoftwareSerialM/archive/master.zip
|
||||
USBComposite for STM32F1@==0.91
|
||||
lib_ignore = Adafruit NeoPixel, SPI
|
||||
monitor_speed = 115200
|
||||
|
||||
#
|
||||
# STM32F103RE
|
||||
#
|
||||
[env:STM32F103RE]
|
||||
platform = ststm32
|
||||
board = genericSTM32F103RE
|
||||
platform_packages = tool-stm32duino
|
||||
build_flags = !python Marlin/src/HAL/STM32F1/build_flags.py
|
||||
${common.build_flags} -std=gnu++14
|
||||
build_unflags = -std=gnu++11
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32F1>
|
||||
lib_deps = ${common.lib_deps}
|
||||
SoftwareSerialM=https://github.com/FYSETC/SoftwareSerialM/archive/master.zip
|
||||
lib_ignore = Adafruit NeoPixel, SPI
|
||||
monitor_speed = 115200
|
||||
|
||||
#
|
||||
# STM32F103RE_btt ............. RET6
|
||||
# STM32F103RE_btt_USB ......... RET6 (USB mass storage)
|
||||
#
|
||||
[env:STM32F103RE_btt]
|
||||
platform = ststm32
|
||||
board = genericSTM32F103RE
|
||||
platform_packages = tool-stm32duino
|
||||
build_flags = !python Marlin/src/HAL/STM32F1/build_flags.py
|
||||
${common.build_flags} -DDEBUG_LEVEL=0 -std=gnu++14 -DHAVE_SW_SERIAL -DSS_TIMER=4
|
||||
build_unflags = -std=gnu++11
|
||||
extra_scripts = buildroot/share/PlatformIO/scripts/STM32F103RE_SKR_E3_DIP.py
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32F1>
|
||||
lib_deps = ${common.lib_deps}
|
||||
SoftwareSerialM=https://github.com/FYSETC/SoftwareSerialM/archive/master.zip
|
||||
lib_ignore = Adafruit NeoPixel, SPI
|
||||
debug_tool = stlink
|
||||
upload_protocol = stlink
|
||||
monitor_speed = 115200
|
||||
|
||||
[env:STM32F103RE_btt_USB]
|
||||
platform = ststm32
|
||||
board = genericSTM32F103RE
|
||||
platform_packages = tool-stm32duino
|
||||
build_flags = !python Marlin/src/HAL/STM32F1/build_flags.py
|
||||
${common.build_flags} -DDEBUG_LEVEL=0 -std=gnu++14 -DHAVE_SW_SERIAL -DSS_TIMER=4 -DUSE_USB_COMPOSITE
|
||||
build_unflags = -std=gnu++11
|
||||
extra_scripts = buildroot/share/PlatformIO/scripts/STM32F103RE_SKR_E3_DIP.py
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32F1>
|
||||
lib_deps = ${common.lib_deps}
|
||||
SoftwareSerialM=https://github.com/FYSETC/SoftwareSerialM/archive/master.zip
|
||||
lib_ignore = Adafruit NeoPixel, SPI
|
||||
debug_tool = stlink
|
||||
upload_protocol = stlink
|
||||
monitor_speed = 115200
|
||||
|
||||
#
|
||||
# STM32F4 with STM32GENERIC
|
||||
#
|
||||
[env:STM32F4]
|
||||
platform = ststm32
|
||||
board = disco_f407vg
|
||||
build_flags = ${common.build_flags} -DUSE_STM32GENERIC -DSTM32GENERIC -DSTM32F4 -DMENU_USB_SERIAL -DMENU_SERIAL=SerialUSB -DHAL_IWDG_MODULE_ENABLED
|
||||
lib_ignore = Adafruit NeoPixel, TMCStepper
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32_F4_F7> -<src/HAL/STM32_F4_F7/STM32F7>
|
||||
|
||||
#
|
||||
# STM32F7 with STM32GENERIC
|
||||
#
|
||||
[env:STM32F7]
|
||||
platform = ststm32
|
||||
board = remram_v1
|
||||
build_flags = ${common.build_flags} -DUSE_STM32GENERIC -DSTM32GENERIC -DSTM32F7 -DMENU_USB_SERIAL -DMENU_SERIAL=SerialUSB -DHAL_IWDG_MODULE_ENABLED
|
||||
lib_ignore = Adafruit NeoPixel, TMCStepper
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32_F4_F7> -<src/HAL/STM32_F4_F7/STM32F4>
|
||||
|
||||
#
|
||||
# ARMED (STM32)
|
||||
#
|
||||
[env:ARMED]
|
||||
platform = ststm32
|
||||
board = armed_v1
|
||||
build_flags = ${common.build_flags}
|
||||
-DUSBCON -DUSBD_VID=0x0483 '-DUSB_MANUFACTURER="Unknown"' '-DUSB_PRODUCT="ARMED_V1"' -DUSBD_USE_CDC
|
||||
-O2 -ffreestanding -fsigned-char -fno-move-loop-invariants -fno-strict-aliasing -std=gnu11 -std=gnu++11
|
||||
-IMarlin/src/HAL/STM32
|
||||
lib_ignore = Adafruit NeoPixel, SoftwareSerial
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32>
|
||||
|
||||
#
|
||||
# Geeetech GTM32 (STM32F103VET6)
|
||||
#
|
||||
[env:STM32F103VE_GTM32]
|
||||
platform = ststm32
|
||||
board = genericSTM32F103VE
|
||||
build_flags = !python Marlin/src/HAL/STM32F1/build_flags.py
|
||||
${common.build_flags} -DDEBUG_LEVEL=DEBUG_NONE -std=gnu++14 -MMD -ffunction-sections -fdata-sections -nostdlib
|
||||
-DBOARD_generic_stm32f103v -DARDUINO_GENERIC_STM32F103V -DARDUINO_ARCH_STM32F1
|
||||
-DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG=1 -DVECT_TAB_ADDR=0x8000000 -DERROR_LED_PORT=GPIOE -DERROR_LED_PIN=6
|
||||
build_unflags = -std=gnu++11
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32F1>
|
||||
lib_ignore = Adafruit NeoPixel, SPI
|
||||
upload_protocol = serial
|
||||
|
||||
#
|
||||
# Longer 3D board in Alfawise U20 (STM32F103VET6)
|
||||
#
|
||||
[env:STM32F103VE_longer]
|
||||
platform = ststm32
|
||||
board = genericSTM32F103VE
|
||||
build_flags = !python Marlin/src/HAL/STM32F1/build_flags.py
|
||||
${common.build_flags} -std=gnu++14 -USERIAL_USB
|
||||
-DSTM32F1xx -DU20 -DTS_V12
|
||||
build_unflags = -std=gnu++11 -DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG=1 -DERROR_LED_PORT=GPIOE -DERROR_LED_PIN=6
|
||||
extra_scripts = buildroot/share/PlatformIO/scripts/STM32F103VE_longer.py
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32F1>
|
||||
lib_ignore = Adafruit NeoPixel, LiquidTWI2, SPI
|
||||
|
||||
#
|
||||
# MKS Robin Mini (STM32F103VET6)
|
||||
#
|
||||
[env:mks_robin_mini]
|
||||
platform = ststm32
|
||||
board = genericSTM32F103VE
|
||||
build_flags = !python Marlin/src/HAL/STM32F1/build_flags.py
|
||||
${common.build_flags} -std=gnu++14
|
||||
build_unflags = -std=gnu++11
|
||||
extra_scripts = buildroot/share/PlatformIO/scripts/mks_robin_mini.py
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32F1>
|
||||
lib_ignore = Adafruit NeoPixel, SPI
|
||||
|
||||
#
|
||||
# MKS Robin Nano (STM32F103VET6)
|
||||
#
|
||||
[env:mks_robin_nano]
|
||||
platform = ststm32
|
||||
board = genericSTM32F103VE
|
||||
platform_packages = tool-stm32duino
|
||||
build_flags = !python Marlin/src/HAL/STM32F1/build_flags.py
|
||||
${common.build_flags} -std=gnu++14 -DHAVE_SW_SERIAL -DSS_TIMER=4
|
||||
build_unflags = -std=gnu++11
|
||||
extra_scripts = buildroot/share/PlatformIO/scripts/mks_robin_nano.py
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32F1>
|
||||
lib_deps = ${common.lib_deps}
|
||||
SoftwareSerialM=https://github.com/FYSETC/SoftwareSerialM/archive/master.zip
|
||||
lib_ignore = Adafruit NeoPixel, SPI
|
||||
|
||||
#
|
||||
# MKS Robin (STM32F103ZET6)
|
||||
#
|
||||
[env:mks_robin]
|
||||
platform = ststm32
|
||||
board = genericSTM32F103ZE
|
||||
build_flags = !python Marlin/src/HAL/STM32F1/build_flags.py
|
||||
${common.build_flags} -std=gnu++14 -DHAVE_SW_SERIAL -DSS_TIMER=4 -DSTM32_XL_DENSITY
|
||||
build_unflags = -std=gnu++11
|
||||
extra_scripts = buildroot/share/PlatformIO/scripts/mks_robin.py
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32F1>
|
||||
lib_deps = ${common.lib_deps}
|
||||
SoftwareSerialM=https://github.com/FYSETC/SoftwareSerialM/archive/master.zip
|
||||
lib_ignore = Adafruit NeoPixel, SPI
|
||||
|
||||
#
|
||||
# MKS Robin Pro (STM32F103ZET6)
|
||||
#
|
||||
[env:mks_robin_pro]
|
||||
platform = ststm32
|
||||
board = genericSTM32F103ZE
|
||||
extra_scripts = buildroot/share/PlatformIO/scripts/mks_robin_pro.py
|
||||
build_flags = !python Marlin/src/HAL/STM32F1/build_flags.py
|
||||
${common.build_flags} -std=gnu++14 -DSTM32_XL_DENSITY
|
||||
build_unflags = -std=gnu++11
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32F1>
|
||||
lib_deps = ${common.lib_deps}
|
||||
lib_ignore = Adafruit NeoPixel, SPI, TMCStepper
|
||||
|
||||
#
|
||||
# MKS Robin Lite/Lite2 (STM32F103RCT6)
|
||||
#
|
||||
[env:mks_robin_lite]
|
||||
platform = ststm32
|
||||
board = genericSTM32F103RC
|
||||
build_flags = !python Marlin/src/HAL/STM32F1/build_flags.py
|
||||
${common.build_flags} -std=gnu++14
|
||||
build_unflags = -std=gnu++11
|
||||
extra_scripts = buildroot/share/PlatformIO/scripts/mks_robin_lite.py
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32F1>
|
||||
lib_ignore = Adafruit NeoPixel, SPI
|
||||
|
||||
#
|
||||
# MKS ROBIN LITE3 (STM32F103RCT6)
|
||||
#
|
||||
[env:mks_robin_lite3]
|
||||
platform = ststm32
|
||||
board = genericSTM32F103RC
|
||||
extra_scripts = buildroot/share/PlatformIO/scripts/mks_robin_lite3.py
|
||||
build_flags = !python Marlin/src/HAL/STM32F1/build_flags.py
|
||||
${common.build_flags} -std=gnu++14
|
||||
build_unflags = -std=gnu++11
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32F1>
|
||||
lib_deps = ${common.lib_deps}
|
||||
lib_ignore = Adafruit NeoPixel, SPI
|
||||
|
||||
#
|
||||
# JGAurora A5S A1 (STM32F103ZET6)
|
||||
#
|
||||
[env:jgaurora_a5s_a1]
|
||||
platform = ststm32
|
||||
board = genericSTM32F103ZE
|
||||
build_flags = !python Marlin/src/HAL/STM32F1/build_flags.py
|
||||
${common.build_flags} -DSTM32F1xx -std=gnu++14 -DSTM32_XL_DENSITY
|
||||
build_unflags = -std=gnu++11
|
||||
extra_scripts = buildroot/share/PlatformIO/scripts/jgaurora_a5s_a1_with_bootloader.py
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32F1>
|
||||
lib_ignore = Adafruit NeoPixel, SPI
|
||||
|
||||
#
|
||||
# Malyan M200 (STM32F103CB)
|
||||
#
|
||||
[env:STM32F103CB_malyan]
|
||||
platform = ststm32
|
||||
board = malyanM200
|
||||
build_flags = !python Marlin/src/HAL/STM32F1/build_flags.py -DMCU_STM32F103CB -D __STM32F1__=1 -std=c++1y -D MOTHERBOARD="BOARD_MALYAN_M200" -DSERIAL_USB -ffunction-sections -fdata-sections -Wl,--gc-sections
|
||||
-DDEBUG_LEVEL=0 -D__MARLIN_FIRMWARE__
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32F1>
|
||||
lib_ignore = Adafruit NeoPixel, LiquidCrystal, LiquidTWI2, TMCStepper, U8glib-HAL, SPI
|
||||
|
||||
#
|
||||
# Chitu boards like Tronxy X5s (STM32F103ZET6)
|
||||
#
|
||||
[env:chitu_f103]
|
||||
platform = ststm32
|
||||
board = genericSTM32F103ZE
|
||||
build_flags = !python Marlin/src/HAL/STM32F1/build_flags.py
|
||||
${common.build_flags} -DSTM32F1xx -std=gnu++14 -DSTM32_XL_DENSITY
|
||||
build_unflags = -std=gnu++11 -DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG= -DERROR_LED_PORT=GPIOE -DERROR_LED_PIN=6
|
||||
extra_scripts = buildroot/share/PlatformIO/scripts/chitu_crypt.py
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32F1>
|
||||
lib_ignore = Adafruit NeoPixel
|
||||
|
||||
#
|
||||
# STM32F401VE
|
||||
# 'STEVAL-3DP001V1' STM32F401VE board - https://www.st.com/en/evaluation-tools/steval-3dp001v1.html
|
||||
#
|
||||
[env:STM32F401VE_STEVAL]
|
||||
platform = ststm32
|
||||
board = STEVAL_STM32F401VE
|
||||
platform_packages = framework-arduinoststm32@>=3.107,<4
|
||||
build_flags = ${common.build_flags}
|
||||
-DTARGET_STM32F4 -DARDUINO_STEVAL -DSTM32F401xE
|
||||
-DUSBCON -DUSBD_USE_CDC -DUSBD_VID=0x0483 -DUSB_PRODUCT=\"STEVAL_F401VE\"
|
||||
-DDISABLE_GENERIC_SERIALUSB
|
||||
-IMarlin/src/HAL/STM32
|
||||
build_unflags = -std=gnu++11
|
||||
extra_scripts = pre:buildroot/share/PlatformIO/scripts/generic_create_variant.py
|
||||
buildroot/share/PlatformIO/scripts/STEVAL__F401XX.py
|
||||
lib_ignore = Adafruit NeoPixel, TMCStepper, SailfishLCD, SailfishRGB_LED, SlowSoftI2CMaster, SoftwareSerial
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32>
|
||||
|
||||
#
|
||||
# FLYF407ZG
|
||||
#
|
||||
[env:FLYF407ZG]
|
||||
platform = ststm32
|
||||
board = FLYF407ZG
|
||||
platform_packages = framework-arduinoststm32@>=3.107,<4
|
||||
build_flags = ${common.build_flags}
|
||||
-DSTM32F4 -DUSBCON -DUSBD_USE_CDC -DUSBD_VID=0x0483 -DUSB_PRODUCT=\"STM32F407ZG\"
|
||||
-DTARGET_STM32F4 -DVECT_TAB_OFFSET=0x8000
|
||||
-IMarlin/src/HAL/STM32
|
||||
build_unflags = -std=gnu++11
|
||||
extra_scripts = pre:buildroot/share/PlatformIO/scripts/generic_create_variant.py
|
||||
lib_ignore = Adafruit NeoPixel, TMCStepper, SailfishLCD, SailfishRGB_LED, SlowSoftI2CMaster, SoftwareSerial
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32>
|
||||
|
||||
|
||||
#
|
||||
# FYSETC S6 (STM32F446VET6 ARM Cortex-M4)
|
||||
#
|
||||
[env:FYSETC_S6]
|
||||
platform = ststm32
|
||||
board = fysetc_s6
|
||||
platform_packages =
|
||||
tool-stm32duino
|
||||
framework-arduinoststm32@>=3.107,<4
|
||||
build_flags = ${common.build_flags}
|
||||
-DTARGET_STM32F4 -std=gnu++14
|
||||
-DVECT_TAB_OFFSET=0x10000
|
||||
-DUSBCON -DUSBD_USE_CDC -DHAL_PCD_MODULE_ENABLED -DUSBD_VID=0x0483 '-DUSB_PRODUCT="FYSETC_S6"'
|
||||
build_unflags = -std=gnu++11
|
||||
extra_scripts = pre:buildroot/share/PlatformIO/scripts/fysetc_STM32S6.py
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32>
|
||||
lib_ignore = Arduino-L6470
|
||||
debug_tool = stlink
|
||||
#upload_protocol = stlink
|
||||
upload_protocol = serial
|
||||
|
||||
#
|
||||
# STM32F407VET6 with RAMPS-like shield
|
||||
# 'Black' STM32F407VET6 board - http://wiki.stm32duino.com/index.php?title=STM32F407
|
||||
# Shield - https://github.com/jmz52/Hardware
|
||||
#
|
||||
[env:STM32F407VE_black]
|
||||
platform = ststm32
|
||||
board = blackSTM32F407VET6
|
||||
platform_packages = framework-arduinoststm32@>=3.107,<4
|
||||
build_flags = ${common.build_flags}
|
||||
-DTARGET_STM32F4 -DARDUINO_BLACK_F407VE
|
||||
-DUSBCON -DUSBD_USE_CDC -DUSBD_VID=0x0483 -DUSB_PRODUCT=\"BLACK_F407VE\"
|
||||
-IMarlin/src/HAL/STM32
|
||||
build_unflags = -std=gnu++11
|
||||
extra_scripts = pre:buildroot/share/PlatformIO/scripts/generic_create_variant.py
|
||||
lib_ignore = Adafruit NeoPixel, TMCStepper, SailfishLCD, SailfishRGB_LED, SlowSoftI2CMaster, SoftwareSerial
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32>
|
||||
|
||||
#
|
||||
# BigTreeTech SKR Pro (STM32F407ZGT6 ARM Cortex-M4)
|
||||
#
|
||||
[env:BIGTREE_SKR_PRO]
|
||||
platform = ststm32
|
||||
board = BigTree_SKR_Pro
|
||||
platform_packages = framework-arduinoststm32@>=3.107,<4
|
||||
build_flags = ${common.build_flags}
|
||||
-DUSBCON -DUSBD_USE_CDC -DUSBD_VID=0x0483 -DUSB_PRODUCT=\"STM32F407ZG\"
|
||||
-DTARGET_STM32F4 -DSTM32F407_5ZX -DVECT_TAB_OFFSET=0x8000
|
||||
-IMarlin/src/HAL/STM32
|
||||
build_unflags = -std=gnu++11
|
||||
extra_scripts = pre:buildroot/share/PlatformIO/scripts/generic_create_variant.py
|
||||
lib_ignore = SoftwareSerial, SoftwareSerialM
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32>
|
||||
#upload_protocol = stlink
|
||||
#upload_command = "$PROJECT_PACKAGES_DIR/tool-stm32duino/stlink/ST-LINK_CLI.exe" -c SWD -P "$BUILD_DIR/firmware.bin" 0x8008000 -Rst -Run
|
||||
debug_tool = stlink
|
||||
debug_init_break =
|
||||
|
||||
#
|
||||
# Bigtreetech GTR V1.0 (STM32F407IGT6 ARM Cortex-M4)
|
||||
#
|
||||
[env:BIGTREE_GTR_V1_0]
|
||||
platform = ststm32@>=5.7.0
|
||||
framework = arduino
|
||||
platform_packages = framework-arduinoststm32@>=3.107,<4
|
||||
board = BigTree_SKR_Pro
|
||||
extra_scripts = pre:buildroot/share/PlatformIO/scripts/generic_create_variant.py
|
||||
build_flags = ${common.build_flags}
|
||||
-DUSBCON -DUSBD_USE_CDC -DUSBD_VID=0x0483 -DUSB_PRODUCT=\"STM32F407IG\"
|
||||
-DTARGET_STM32F4 -DSTM32F407IX -DVECT_TAB_OFFSET=0x8000
|
||||
-IMarlin/src/HAL/STM32
|
||||
lib_deps =
|
||||
U8glib-HAL=https://github.com/MarlinFirmware/U8glib-HAL/archive/bugfix.zip
|
||||
LiquidCrystal
|
||||
TMCStepper@>=0.5.2,<1.0.0
|
||||
Adafruit NeoPixel
|
||||
LiquidTWI2=https://github.com/lincomatic/LiquidTWI2/archive/master.zip
|
||||
Arduino-L6470=https://github.com/ameyer/Arduino-L6470/archive/0.7.0.zip
|
||||
lib_ignore = SoftwareSerial, SoftwareSerialM
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32>
|
||||
monitor_speed = 250000
|
||||
|
||||
#
|
||||
# BigTreeTech BTT002 (STM32F407VET6 ARM Cortex-M4)
|
||||
#
|
||||
[env:BIGTREE_BTT002]
|
||||
platform = ststm32@5.6.0
|
||||
board = BigTree_Btt002
|
||||
platform_packages = framework-arduinoststm32@>=3.107,<4
|
||||
build_flags = ${common.build_flags}
|
||||
-DUSBCON -DUSBD_USE_CDC -DUSBD_VID=0x0483 -DUSB_PRODUCT=\"STM32F407VE\"
|
||||
-DTARGET_STM32F4 -DSTM32F407_5VX -DVECT_TAB_OFFSET=0x8000
|
||||
-DHAVE_HWSERIAL2
|
||||
-DHAVE_HWSERIAL3
|
||||
-DPIN_SERIAL2_RX=PD_6
|
||||
-DPIN_SERIAL2_TX=PD_5
|
||||
build_unflags = -std=gnu++11
|
||||
extra_scripts = pre:buildroot/share/PlatformIO/scripts/generic_create_variant.py
|
||||
lib_ignore = Adafruit NeoPixel, SailfishLCD, SailfishRGB_LED, SlowSoftI2CMaster
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32>
|
||||
|
||||
#
|
||||
# Teensy 3.1 / 3.2 (ARM Cortex-M4)
|
||||
#
|
||||
[env:teensy31]
|
||||
platform = teensy
|
||||
board = teensy31
|
||||
lib_deps = ${common.lib_deps}
|
||||
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
|
||||
lib_ignore = Adafruit NeoPixel
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/TEENSY31_32>
|
||||
|
||||
#
|
||||
# Teensy 3.5 / 3.6 (ARM Cortex-M4)
|
||||
#
|
||||
[env:teensy35]
|
||||
platform = teensy
|
||||
board = teensy35
|
||||
lib_deps = ${common.lib_deps}
|
||||
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
|
||||
lib_ignore = Adafruit NeoPixel
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/TEENSY35_36>
|
||||
|
||||
#
|
||||
# Espressif ESP32
|
||||
#
|
||||
[env:esp32]
|
||||
platform = espressif32@1.11.2
|
||||
board = esp32dev
|
||||
build_flags = ${common.build_flags} -DCORE_DEBUG_LEVEL=0
|
||||
lib_deps = ${common.lib_deps}
|
||||
AsyncTCP=https://github.com/me-no-dev/AsyncTCP/archive/master.zip
|
||||
ESPAsyncWebServer=https://github.com/me-no-dev/ESPAsyncWebServer/archive/master.zip
|
||||
ESP3DLib=https://github.com/luc-github/ESP3DLib.git
|
||||
arduinoWebSockets=https://github.com/Links2004/arduinoWebSockets.git
|
||||
ESP32SSDP=https://github.com/luc-github/ESP32SSDP.git
|
||||
lib_ignore = LiquidCrystal, LiquidTWI2, SailfishLCD, SailfishRGB_LED, ESPAsyncTCP
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/ESP32>
|
||||
upload_speed = 115200
|
||||
#upload_port = marlinesp.local
|
||||
#board_build.flash_mode = qio
|
||||
|
||||
#
|
||||
# Native
|
||||
# No supported Arduino libraries, base Marlin only
|
||||
#
|
||||
[env:linux_native]
|
||||
platform = native
|
||||
framework =
|
||||
build_flags = -D__PLAT_LINUX__ -std=gnu++17 -ggdb -g -lrt -lpthread -D__MARLIN_FIRMWARE__ -Wno-expansion-to-defined
|
||||
src_build_flags = -Wall -IMarlin/src/HAL/LINUX/include
|
||||
build_unflags = -Wall
|
||||
lib_ldf_mode = off
|
||||
lib_deps =
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/LINUX>
|
||||
|
||||
#
|
||||
# Adafruit Grand Central M4 (Atmel SAMD51P20A ARM Cortex-M4)
|
||||
#
|
||||
[env:SAMD51_grandcentral_m4]
|
||||
platform = atmelsam
|
||||
board = adafruit_grandcentral_m4
|
||||
build_flags = ${common.build_flags} -std=gnu++17 -Wno-register
|
||||
build_unflags = -std=gnu++11
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/SAMD51>
|
||||
lib_deps = ${common.lib_deps}
|
||||
SoftwareSerialM=https://github.com/FYSETC/SoftwareSerialM/archive/master.zip
|
||||
Adafruit_SPIFlash=https://github.com/adafruit/Adafruit_SPIFlash/archive/master.zip
|
||||
debug_tool = jlink
|
||||
|
||||
#
|
||||
# RUMBA32
|
||||
#
|
||||
[env:rumba32_f446ve]
|
||||
platform = ststm32
|
||||
board = rumba32_f446ve
|
||||
build_flags = ${common.build_flags}
|
||||
-DSTM32F4xx
|
||||
-DARDUINO_RUMBA32_F446VE
|
||||
-DARDUINO_ARCH_STM32
|
||||
"-DBOARD_NAME=\"RUMBA32_F446VE\""
|
||||
-DSTM32F446xx
|
||||
-DUSBCON
|
||||
-DUSBD_VID=0x0483
|
||||
"-DUSB_MANUFACTURER=\"Unknown\""
|
||||
"-DUSB_PRODUCT=\"RUMBA32_F446VE\""
|
||||
-DHAL_PCD_MODULE_ENABLED
|
||||
-DUSBD_USE_CDC
|
||||
-DDISABLE_GENERIC_SERIALUSB
|
||||
-DHAL_UART_MODULE_ENABLED
|
||||
-Os
|
||||
lib_ignore = Adafruit NeoPixel
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32>
|
||||
monitor_speed = 500000
|
||||
upload_protocol = dfu
|
||||
|
||||
#
|
||||
# MKS RUMBA32 (adds TMC2208/2209 UART interface and AUX-1)
|
||||
#
|
||||
[env:rumba32_mks]
|
||||
platform = ststm32
|
||||
board = rumba32_f446ve
|
||||
build_flags = ${common.build_flags}
|
||||
-DSTM32F4xx -DARDUINO_RUMBA32_F446VE -DARDUINO_ARCH_STM32 "-DBOARD_NAME=\"RUMBA32_F446VE\""
|
||||
-DSTM32F446xx -DUSBCON -DUSBD_VID=0x8000
|
||||
"-DUSB_MANUFACTURER=\"Unknown\""
|
||||
"-DUSB_PRODUCT=\"RUMBA32_F446VE\""
|
||||
-DHAL_PCD_MODULE_ENABLED
|
||||
-DUSBD_USE_CDC
|
||||
-DDISABLE_GENERIC_SERIALUSB
|
||||
-DHAL_UART_MODULE_ENABLED
|
||||
-Os
|
||||
lib_ignore = Adafruit NeoPixel
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32> +<src/HAL/STM32_F4_F7> -<src/HAL/STM32_F4_F7/STM32F7>
|
||||
upload_protocol = dfu
|
||||
|
||||
#
|
||||
# Just print the dependency tree
|
||||
#
|
||||
[env:include_tree]
|
||||
platform = atmelavr
|
||||
board = megaatmega2560
|
||||
build_flags = -c -H -std=gnu++11 -Wall -Os -D__MARLIN_FIRMWARE__
|
||||
lib_deps = ${common.lib_deps}
|
||||
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
|
||||
src_filter = +<src/Marlin.cpp>
|
Reference in New Issue
Block a user