Skip to content

Commit

Permalink
Initial SAV MkI (RepRap CloneWars board) integration.
Browse files Browse the repository at this point in the history
Included support for BT dongle on AT90USB boards.
Added LCD Shift Register LCD control
Included support for RepRap Clone Wars project board (SAV MKI).
  • Loading branch information
fmalpartida committed Oct 30, 2013
1 parent 47854ff commit b5a964f
Show file tree
Hide file tree
Showing 11 changed files with 162 additions and 15 deletions.
File renamed without changes.
File renamed without changes.
26 changes: 24 additions & 2 deletions Marlin/Configuration.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,21 @@
// This allows the connection of wireless adapters (for instance) to non-default port pins.
// Serial port 0 is still used by the Arduino bootloader regardless of this setting.
#define SERIAL_PORT 0
//#define SERIAL_PORT 1 // Define serial port 1 for bluetooth configuration in AT90USB configurations

// This determines the communication speed of the printer
// This determines the communication speed of the printer
#define BAUDRATE 250000
//#define BAUDRATE 115200

// This enables the serial port associated to the Bluetooth interface
//#define BTENABLED // Enable BT interface


// SERIAL_PORT selects which serial port should be used for communication with the host.
// This allows the connection of wireless adapters (for instance) to non-default port pins.
// Serial port 0 is still used by the Arduino bootloader regardless of this setting.
#define SERIAL_PORT 0


//// 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"
Expand Down Expand Up @@ -54,6 +65,7 @@
// 80 = Rumba
// 81 = Printrboard (AT90USB1286)
// 82 = Brainwave (AT90USB646)
// 83 = SAV Mk-I (AT90USB1286)
// 9 = Gen3+
// 70 = Megatronics
// 701= Megatronics v2.0
Expand All @@ -64,7 +76,8 @@
// 21 = Elefu Ra Board (v3)

#ifndef MOTHERBOARD
#define MOTHERBOARD 7
//[FMC]#define MOTHERBOARD 7
#define MOTHERBOARD 83
#endif

// Define this to set a custom name for your generic Mendel,
Expand Down Expand Up @@ -507,6 +520,15 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
#define ULTIPANEL
#endif

// Shift register panels
// ---------------------
//#define SR_LCD
#ifdef SR_LCD
#define SR_LCD_2W_NL // Non latching 2 wire shiftregister
//#define NEWPANEL
#endif


#ifdef ULTIPANEL
// #define NEWPANEL //enable this if you have a click-encoder panel
#define SDSUPPORT
Expand Down
2 changes: 1 addition & 1 deletion Marlin/Configuration_adv.h
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@

#ifdef Z_DUAL_STEPPER_DRIVERS && Y_DUAL_STEPPER_DRIVERS
#error "You cannot have dual drivers for both Y and Z"
#endif
#endif

// Enable this for dual x-carriage printers.
// A dual x-carriage design has the advantage that the inactive extruder can be parked which
Expand Down
13 changes: 13 additions & 0 deletions Marlin/Marlin.h
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,10 @@
# define analogInputToDigitalPin(p) ((p) + A0)
#endif

#ifdef AT90USB
#include "HardwareSerial.h"
#endif

#include "MarlinSerial.h"

#ifndef cbi
Expand All @@ -45,6 +49,15 @@

#include "WString.h"

#ifdef AT90USB
#ifdef BTENABLED
extern HardwareSerial bt;
#define MYSERIAL bt
#else
#define MYSERIAL Serial
#endif // BTENABLED
#endif

#ifdef AT90USB
#define MYSERIAL Serial
#else
Expand Down
6 changes: 6 additions & 0 deletions Marlin/MarlinSerial.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -320,3 +320,9 @@ MarlinSerial MSerial;

#endif // whole file
#endif // !AT90USB

// For AT90USB targets use the UART for BT interfacing
#if defined(AT90USB) && defined (BTENABLED)
HardwareSerial bt;
#endif

5 changes: 5 additions & 0 deletions Marlin/MarlinSerial.h
Original file line number Diff line number Diff line change
Expand Up @@ -181,4 +181,9 @@ class MarlinSerial //: public Stream
extern MarlinSerial MSerial;
#endif // !AT90USB

// Use the UART for BT in AT90USB configurations
#if defined(AT90USB) && defined (BTENABLED)
extern HardwareSerial bt;
#endif

#endif
8 changes: 4 additions & 4 deletions Marlin/Sd2PinMap.h
Original file line number Diff line number Diff line change
Expand Up @@ -222,10 +222,10 @@ uint8_t const SDA_PIN = 1; // D1
uint8_t const SCL_PIN = 0; // D0

// SPI port
uint8_t const SS_PIN = 20; // B0
uint8_t const MOSI_PIN = 22; // B2
uint8_t const MISO_PIN = 23; // B3
uint8_t const SCK_PIN = 21; // B1
uint8_t const SS_PIN = 20; // B0
uint8_t const MOSI_PIN = 22; // B2
uint8_t const MISO_PIN = 23; // B3
uint8_t const SCK_PIN = 21; // B1

static const pin_map_t digitalPinMap[] = {
{&DDRD, &PIND, &PORTD, 0}, // D0 0
Expand Down
86 changes: 86 additions & 0 deletions Marlin/pins.h
Original file line number Diff line number Diff line change
Expand Up @@ -1541,6 +1541,92 @@

#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
*
Expand Down
20 changes: 13 additions & 7 deletions Marlin/ultralcd.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -992,14 +992,20 @@ void lcd_init()
WRITE(SHIFT_LD,HIGH);
#endif
#else
pinMode(SHIFT_CLK,OUTPUT);
pinMode(SHIFT_LD,OUTPUT);
pinMode(SHIFT_EN,OUTPUT);
pinMode(SHIFT_OUT,INPUT);
WRITE(SHIFT_OUT,HIGH);
WRITE(SHIFT_LD,HIGH);
WRITE(SHIFT_EN,LOW);
#ifdef SR_LCD_2W_NL
pinMode (SR_DATA_PIN, OUTPUT);
pinMode (SR_CLK_PIN, OUTPUT);
#else
pinMode(SHIFT_CLK,OUTPUT);
pinMode(SHIFT_LD,OUTPUT);
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

#if (SDCARDDETECT > 0)
WRITE(SDCARDDETECT, HIGH);
lcd_oldcardstatus = IS_SD_INSERTED;
Expand Down
11 changes: 10 additions & 1 deletion Marlin/ultralcd_implementation_hitachi_HD44780.h
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,16 @@ extern volatile uint16_t buttons; //an extended version of the last checked but
#include <LiquidCrystal_I2C.h>
#define LCD_CLASS LiquidCrystal_I2C
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
// Standard directly connected LCD implementations
#if LANGUAGE_CHOICE == 6
Expand Down

0 comments on commit b5a964f

Please sign in to comment.