Merge pull request #640 from fmalpartida/SAV-MkI
Added support for BT on AT90USB devices, corrected LCD bug, added new board and LCD
This commit is contained in:
commit
59b96e323e
9 changed files with 155 additions and 18 deletions
|
@ -23,9 +23,13 @@
|
||||||
// Serial port 0 is still used by the Arduino bootloader regardless of this setting.
|
// Serial port 0 is still used by the Arduino bootloader regardless of this setting.
|
||||||
#define SERIAL_PORT 0
|
#define SERIAL_PORT 0
|
||||||
|
|
||||||
|
// This determines the communication speed of the printer
|
||||||
// This determines the communication speed of the printer
|
// This determines the communication speed of the printer
|
||||||
#define BAUDRATE 250000
|
#define BAUDRATE 250000
|
||||||
//#define BAUDRATE 115200
|
|
||||||
|
// This enables the serial port associated to the Bluetooth interface
|
||||||
|
//#define BTENABLED // Enable BT interface on AT90USB devices
|
||||||
|
|
||||||
|
|
||||||
//// The following define selects which electronics board you have. Please choose the one that matches your setup
|
//// The following define selects which electronics board you have. Please choose the one that matches your setup
|
||||||
// 10 = Gen7 custom (Alfons3 Version) "https://github.com/Alfons3/Generation_7_Electronics"
|
// 10 = Gen7 custom (Alfons3 Version) "https://github.com/Alfons3/Generation_7_Electronics"
|
||||||
|
@ -54,6 +58,7 @@
|
||||||
// 80 = Rumba
|
// 80 = Rumba
|
||||||
// 81 = Printrboard (AT90USB1286)
|
// 81 = Printrboard (AT90USB1286)
|
||||||
// 82 = Brainwave (AT90USB646)
|
// 82 = Brainwave (AT90USB646)
|
||||||
|
// 83 = SAV Mk-I (AT90USB1286)
|
||||||
// 9 = Gen3+
|
// 9 = Gen3+
|
||||||
// 70 = Megatronics
|
// 70 = Megatronics
|
||||||
// 701= Megatronics v2.0
|
// 701= Megatronics v2.0
|
||||||
|
@ -64,7 +69,7 @@
|
||||||
// 21 = Elefu Ra Board (v3)
|
// 21 = Elefu Ra Board (v3)
|
||||||
|
|
||||||
#ifndef MOTHERBOARD
|
#ifndef MOTHERBOARD
|
||||||
#define MOTHERBOARD 7
|
//#define MOTHERBOARD 7
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Define this to set a custom name for your generic Mendel,
|
// Define this to set a custom name for your generic Mendel,
|
||||||
|
@ -514,6 +519,17 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
|
||||||
#define ULTIPANEL
|
#define ULTIPANEL
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// Shift register panels
|
||||||
|
// ---------------------
|
||||||
|
// 2 wire Non-latching LCD SR from:
|
||||||
|
// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/schematics#!shiftregister-connection
|
||||||
|
//#define SR_LCD
|
||||||
|
#ifdef SR_LCD
|
||||||
|
#define SR_LCD_2W_NL // Non latching 2 wire shiftregister
|
||||||
|
//#define NEWPANEL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifdef ULTIPANEL
|
#ifdef ULTIPANEL
|
||||||
// #define NEWPANEL //enable this if you have a click-encoder panel
|
// #define NEWPANEL //enable this if you have a click-encoder panel
|
||||||
#define SDSUPPORT
|
#define SDSUPPORT
|
||||||
|
|
|
@ -34,6 +34,10 @@
|
||||||
# define analogInputToDigitalPin(p) ((p) + A0)
|
# define analogInputToDigitalPin(p) ((p) + A0)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef AT90USB
|
||||||
|
#include "HardwareSerial.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "MarlinSerial.h"
|
#include "MarlinSerial.h"
|
||||||
|
|
||||||
#ifndef cbi
|
#ifndef cbi
|
||||||
|
@ -46,9 +50,11 @@
|
||||||
#include "WString.h"
|
#include "WString.h"
|
||||||
|
|
||||||
#ifdef AT90USB
|
#ifdef AT90USB
|
||||||
#define MYSERIAL Serial
|
#ifdef BTENABLED
|
||||||
#else
|
#define MYSERIAL bt
|
||||||
#define MYSERIAL MSerial
|
#else
|
||||||
|
#define MYSERIAL Serial
|
||||||
|
#endif // BTENABLED
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define SERIAL_PROTOCOL(x) (MYSERIAL.print(x))
|
#define SERIAL_PROTOCOL(x) (MYSERIAL.print(x))
|
||||||
|
|
|
@ -320,3 +320,9 @@ MarlinSerial MSerial;
|
||||||
|
|
||||||
#endif // whole file
|
#endif // whole file
|
||||||
#endif // !AT90USB
|
#endif // !AT90USB
|
||||||
|
|
||||||
|
// For AT90USB targets use the UART for BT interfacing
|
||||||
|
#if defined(AT90USB) && defined (BTENABLED)
|
||||||
|
HardwareSerial bt;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -181,4 +181,9 @@ class MarlinSerial //: public Stream
|
||||||
extern MarlinSerial MSerial;
|
extern MarlinSerial MSerial;
|
||||||
#endif // !AT90USB
|
#endif // !AT90USB
|
||||||
|
|
||||||
|
// Use the UART for BT in AT90USB configurations
|
||||||
|
#if defined(AT90USB) && defined (BTENABLED)
|
||||||
|
extern HardwareSerial bt;
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -222,10 +222,10 @@ uint8_t const SDA_PIN = 1; // D1
|
||||||
uint8_t const SCL_PIN = 0; // D0
|
uint8_t const SCL_PIN = 0; // D0
|
||||||
|
|
||||||
// SPI port
|
// SPI port
|
||||||
uint8_t const SS_PIN = 20; // B0
|
uint8_t const SS_PIN = 20; // B0
|
||||||
uint8_t const MOSI_PIN = 22; // B2
|
uint8_t const MOSI_PIN = 22; // B2
|
||||||
uint8_t const MISO_PIN = 23; // B3
|
uint8_t const MISO_PIN = 23; // B3
|
||||||
uint8_t const SCK_PIN = 21; // B1
|
uint8_t const SCK_PIN = 21; // B1
|
||||||
|
|
||||||
static const pin_map_t digitalPinMap[] = {
|
static const pin_map_t digitalPinMap[] = {
|
||||||
{&DDRD, &PIND, &PORTD, 0}, // D0 0
|
{&DDRD, &PIND, &PORTD, 0}, // D0 0
|
||||||
|
|
|
@ -1549,6 +1549,92 @@
|
||||||
|
|
||||||
#endif // MOTHERBOARD == 82 (Brainwave)
|
#endif // MOTHERBOARD == 82 (Brainwave)
|
||||||
|
|
||||||
|
//
|
||||||
|
// SAV Mk-I
|
||||||
|
// -----------------------------------------------------------------------------------
|
||||||
|
/****************************************************************************************
|
||||||
|
* SAV MkI pin assignments (AT90USB1286)
|
||||||
|
* Requires the Teensyduino software with Teensy++ 2.0 selected in Arduino IDE!
|
||||||
|
http://www.pjrc.com/teensy/teensyduino.html
|
||||||
|
RepRap Clone Wars project board.
|
||||||
|
****************************************************************************************/
|
||||||
|
#if MOTHERBOARD == 83 // SAV Mk-I
|
||||||
|
#define KNOWN_BOARD 1
|
||||||
|
#define AT90USB 1286 // Disable MarlinSerial etc.
|
||||||
|
|
||||||
|
#ifndef __AVR_AT90USB1286__
|
||||||
|
#error Oops! Make sure you have 'Teensy++ 2.0' selected from the 'Tools -> Boards' menu.
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define LARGE_FLASH true
|
||||||
|
|
||||||
|
|
||||||
|
#define X_STEP_PIN 0
|
||||||
|
#define X_DIR_PIN 1
|
||||||
|
#define X_ENABLE_PIN 39
|
||||||
|
|
||||||
|
#define Y_STEP_PIN 2
|
||||||
|
#define Y_DIR_PIN 3
|
||||||
|
#define Y_ENABLE_PIN 38
|
||||||
|
|
||||||
|
#define Z_STEP_PIN 4
|
||||||
|
#define Z_DIR_PIN 5
|
||||||
|
#define Z_ENABLE_PIN 23
|
||||||
|
|
||||||
|
#define E0_STEP_PIN 6
|
||||||
|
#define E0_DIR_PIN 7
|
||||||
|
#define E0_ENABLE_PIN 19
|
||||||
|
|
||||||
|
#define HEATER_0_PIN 21 // Extruder
|
||||||
|
#define HEATER_1_PIN -1
|
||||||
|
#define HEATER_2_PIN -1
|
||||||
|
#define HEATER_BED_PIN 20 // Bed
|
||||||
|
#define FAN_PIN 16 // Fan -- from Teensyduino environment.
|
||||||
|
// For the fan and Teensyduino uses a different pin mapping.
|
||||||
|
|
||||||
|
#define X_STOP_PIN 13
|
||||||
|
#define Y_STOP_PIN 14
|
||||||
|
#define Z_STOP_PIN 15
|
||||||
|
#define TEMP_0_PIN 7 // Extruder / Analog pin numbering
|
||||||
|
#define TEMP_BED_PIN 6 // Bed / Analog pin numbering
|
||||||
|
|
||||||
|
#define TEMP_1_PIN -1
|
||||||
|
#define TEMP_2_PIN -1
|
||||||
|
|
||||||
|
#define SDPOWER -1
|
||||||
|
#define SDSS 20 // PB0 - 8 in marlin env.
|
||||||
|
#define LED_PIN -1
|
||||||
|
#define PS_ON_PIN -1
|
||||||
|
#define KILL_PIN -1
|
||||||
|
#define ALARM_PIN -1
|
||||||
|
#define SDCARDDETECT -1
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef SDSUPPORT
|
||||||
|
// these pins are defined in the SD library if building with SD support
|
||||||
|
#define SCK_PIN 9
|
||||||
|
#define MISO_PIN 11
|
||||||
|
#define MOSI_PIN 10
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define BEEPER -1
|
||||||
|
#define LCD_PINS_RS -1
|
||||||
|
#define LCD_PINS_ENABLE -1
|
||||||
|
#define LCD_PINS_D4 -1
|
||||||
|
#define LCD_PINS_D5 -1
|
||||||
|
#define LCD_PINS_D6 -1
|
||||||
|
#define LCD_PINS_D7 -1
|
||||||
|
#define BTN_EN1 -1
|
||||||
|
#define BTN_EN2 -1
|
||||||
|
#define BTN_ENC -1
|
||||||
|
|
||||||
|
// For LCD SHIFT register LCD
|
||||||
|
#define SR_DATA_PIN 0
|
||||||
|
#define SR_CLK_PIN 1
|
||||||
|
|
||||||
|
#endif // MOTHERBOARD == 83
|
||||||
|
|
||||||
|
|
||||||
/****************************************************************************************
|
/****************************************************************************************
|
||||||
* Gen3+ pin assignment
|
* Gen3+ pin assignment
|
||||||
*
|
*
|
||||||
|
|
|
@ -19,7 +19,10 @@ int absPreheatHotendTemp;
|
||||||
int absPreheatHPBTemp;
|
int absPreheatHPBTemp;
|
||||||
int absPreheatFanSpeed;
|
int absPreheatFanSpeed;
|
||||||
|
|
||||||
|
#ifdef ULTIPANEL
|
||||||
static float manual_feedrate[] = MANUAL_FEEDRATE;
|
static float manual_feedrate[] = MANUAL_FEEDRATE;
|
||||||
|
#endif // ULTIPANEL
|
||||||
|
|
||||||
/* !Configuration settings */
|
/* !Configuration settings */
|
||||||
|
|
||||||
//Function pointer to menu functions.
|
//Function pointer to menu functions.
|
||||||
|
@ -992,14 +995,20 @@ void lcd_init()
|
||||||
WRITE(SHIFT_LD,HIGH);
|
WRITE(SHIFT_LD,HIGH);
|
||||||
#endif
|
#endif
|
||||||
#else
|
#else
|
||||||
pinMode(SHIFT_CLK,OUTPUT);
|
#ifdef SR_LCD_2W_NL
|
||||||
pinMode(SHIFT_LD,OUTPUT);
|
pinMode (SR_DATA_PIN, OUTPUT);
|
||||||
pinMode(SHIFT_EN,OUTPUT);
|
pinMode (SR_CLK_PIN, OUTPUT);
|
||||||
pinMode(SHIFT_OUT,INPUT);
|
#else
|
||||||
WRITE(SHIFT_OUT,HIGH);
|
pinMode(SHIFT_CLK,OUTPUT);
|
||||||
WRITE(SHIFT_LD,HIGH);
|
pinMode(SHIFT_LD,OUTPUT);
|
||||||
WRITE(SHIFT_EN,LOW);
|
pinMode(SHIFT_EN,OUTPUT);
|
||||||
|
pinMode(SHIFT_OUT,INPUT);
|
||||||
|
WRITE(SHIFT_OUT,HIGH);
|
||||||
|
WRITE(SHIFT_LD,HIGH);
|
||||||
|
WRITE(SHIFT_EN,LOW);
|
||||||
|
#endif // SR_LCD_2W_NL
|
||||||
#endif//!NEWPANEL
|
#endif//!NEWPANEL
|
||||||
|
|
||||||
#if (SDCARDDETECT > 0)
|
#if (SDCARDDETECT > 0)
|
||||||
WRITE(SDCARDDETECT, HIGH);
|
WRITE(SDCARDDETECT, HIGH);
|
||||||
lcd_oldcardstatus = IS_SD_INSERTED;
|
lcd_oldcardstatus = IS_SD_INSERTED;
|
||||||
|
|
|
@ -179,6 +179,15 @@ extern volatile uint16_t buttons; //an extended version of the last checked but
|
||||||
#define LCD_CLASS LiquidCrystal_I2C
|
#define LCD_CLASS LiquidCrystal_I2C
|
||||||
LCD_CLASS lcd(LCD_I2C_ADDRESS, LCD_WIDTH, LCD_HEIGHT);
|
LCD_CLASS lcd(LCD_I2C_ADDRESS, LCD_WIDTH, LCD_HEIGHT);
|
||||||
|
|
||||||
|
// 2 wire Non-latching LCD SR from:
|
||||||
|
// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/schematics#!shiftregister-connection
|
||||||
|
#elif defined(SR_LCD_2W_NL)
|
||||||
|
|
||||||
|
#include <LCD.h>
|
||||||
|
#include <LiquidCrystal_SR.h>
|
||||||
|
#define LCD_CLASS LiquidCrystal_SR
|
||||||
|
LCD_CLASS lcd(SR_DATA_PIN, SR_CLK_PIN);
|
||||||
|
|
||||||
#else
|
#else
|
||||||
// Standard directly connected LCD implementations
|
// Standard directly connected LCD implementations
|
||||||
#if LANGUAGE_CHOICE == 6
|
#if LANGUAGE_CHOICE == 6
|
||||||
|
|
Reference in a new issue