Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions Marlin/Configuration.h
Original file line number Diff line number Diff line change
Expand Up @@ -3042,6 +3042,18 @@
//
//#define FF_INTERFACEBOARD

//
// MightyBoard LCD and Interface
//
//#define MIGHTYBOARD_LCD
#if ENABLED(MIGHTYBOARD_LCD)
//#define MIGHTYBOARD_DEBUG // Lightweight debug output for buttons and encoder
//#define MIGHTYBOARD_DISABLE_ENC_PULLUP // Enable if the encoder button is unreliable
//#define MIGHTYBOARD_BUTTON_PULLUPS // Enable if other buttons are unreliable
//#define MIGHTYBOARD_BACK_STATUS_BUTTONS // Use LEFT/RIGHT buttons for Back / Home.
// Otherwise they act like encoder down / up.
#endif

//
// TFT GLCD Panel with Marlin UI
// Panel connected to main board by SPI or I2C interface.
Expand Down
2 changes: 1 addition & 1 deletion Marlin/src/HAL/AVR/pinsDebug.h
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@

#define NUMBER_PINS_TOTAL NUM_DIGITAL_PINS

#if MB(BQ_ZUM_MEGA_3D, MIGHTYBOARD_REVE, MINIRAMBO, SCOOVO_X9H, TRIGORILLA_14)
#if MB(BQ_ZUM_MEGA_3D, MIGHTYBOARD_REVE, MINIRAMBO, SCOOVO_X9H, TRIGORILLA_14, MIGHTYBOARD_REVG)
#define AVR_ATmega2560_FAMILY_PLUS_70 1
#endif

Expand Down
2 changes: 1 addition & 1 deletion Marlin/src/HAL/AVR/pinsDebug_plus_70.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
* Structures for 2560 family boards that use more than 70 pins
*/

#if MB(BQ_ZUM_MEGA_3D, MINIRAMBO, SCOOVO_X9H, TRIGORILLA_14)
#if MB(BQ_ZUM_MEGA_3D, MINIRAMBO, SCOOVO_X9H, TRIGORILLA_14, MIGHTYBOARD_REVG)
#undef NUM_DIGITAL_PINS
#define NUM_DIGITAL_PINS 85
#elif MB(MIGHTYBOARD_REVE)
Expand Down
1 change: 1 addition & 0 deletions Marlin/src/core/boards.h
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,7 @@
#define BOARD_MALYAN_M180 1333 // Malyan M180 Mainboard Version 2 (no display function, direct G-code only)
#define BOARD_PROTONEER_CNC_SHIELD_V3 1334 // Mega controller & Protoneer CNC Shield V3.00
#define BOARD_WEEDO_62A 1335 // WEEDO 62A board (TINA2, Monoprice Cadet, etc.)
#define BOARD_MIGHTYBOARD_REVG 1336 // Makerbot Mightyboard Revision G and H

//
// ATmega1281, ATmega2561
Expand Down
25 changes: 17 additions & 8 deletions Marlin/src/feature/leds/pca9632.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,11 @@
#define LED_ON 0x01
#define LED_PWM 0x02

#define PCA9632_ADDRESS 0b01100000
#ifndef PCA9632_ADDRESS
#define PCA9632_ADDRESS 0b01100000
#warning "Using default PCA9632_ADDRESS for I2C (0b01100000)."
#endif
//static_assert(false, "Using PCA9632 I2C address=" STRINGIFY(PCA9632_ADDRESS));

byte PCA_init = 0;

Expand All @@ -98,16 +102,16 @@ static void PCA9632_WriteAllRegisters(const byte addr, const byte regadd, const
#if DISABLED(PCA9632_NO_AUTO_INC)
uint8_t data[4];
data[0] = PCA9632_AUTO_IND | regadd;
data[1 + (PCA9632_RED >> 1)] = vr;
data[1 + (PCA9632_RED >> 1)] = TERN(PCA9632_SWAP_RB, vb, vr);
data[1 + (PCA9632_GRN >> 1)] = vg;
data[1 + (PCA9632_BLU >> 1)] = vb;
data[1 + (PCA9632_BLU >> 1)] = TERN(PCA9632_SWAP_RB, vr, vb);
Wire.beginTransmission(I2C_ADDRESS(addr));
Wire.write(data, sizeof(data));
Wire.endTransmission();
#else
PCA9632_WriteRegister(addr, regadd + (PCA9632_RED >> 1), vr);
PCA9632_WriteRegister(addr, regadd + (PCA9632_RED >> 1), TERN(PCA9632_SWAP_RB, vb, vr));
PCA9632_WriteRegister(addr, regadd + (PCA9632_GRN >> 1), vg);
PCA9632_WriteRegister(addr, regadd + (PCA9632_BLU >> 1), vb);
PCA9632_WriteRegister(addr, regadd + (PCA9632_BLU >> 1), TERN(PCA9632_SWAP_RB, vb, vr));
#if ENABLED(PCA9632_RGBW)
PCA9632_WriteRegister(addr, regadd + (PCA9632_WHT >> 1), vw);
#endif
Expand All @@ -132,15 +136,20 @@ void PCA9632_set_led_color(const LED1Color_t &color) {
PCA9632_WriteRegister(PCA9632_ADDRESS,PCA9632_MODE2, PCA9632_MODE2_VALUE);
}

const byte LEDOUT = (color.r ? LED_PWM << PCA9632_RED : 0)
const byte LEDOUT = (TERN(PCA9632_SWAP_RB, color.b, color.r) ? LED_PWM << PCA9632_RED : 0)
| (color.g ? LED_PWM << PCA9632_GRN : 0)
| (color.b ? LED_PWM << PCA9632_BLU : 0)
| (TERN(PCA9632_SWAP_RB, color.r, color.b) ? LED_PWM << PCA9632_BLU : 0)
| (TERN0(PCA9632_RGBW, color.w ? LED_PWM << PCA9632_WHT : 0));

PCA9632_WriteAllRegisters(PCA9632_ADDRESS,PCA9632_PWM0, color.r, color.g, color.b
PCA9632_WriteAllRegisters(
PCA9632_ADDRESS, PCA9632_PWM0,
TERN(PCA9632_SWAP_RB, color.b, color.r),
color.g,
TERN(PCA9632_SWAP_RB, color.r, color.b)
OPTARG(PCA9632_RGBW, color.w)
);
PCA9632_WriteRegister(PCA9632_ADDRESS,PCA9632_LEDOUT, LEDOUT);

}

#if ENABLED(PCA9632_BUZZER)
Expand Down
7 changes: 7 additions & 0 deletions Marlin/src/inc/Conditionals-2-LCD.h
Original file line number Diff line number Diff line change
Expand Up @@ -307,6 +307,12 @@
#define IS_RRD_SC 1
#define U8GLIB_SSD1309

#elif ENABLED(MIGHTYBOARD_LCD)

#define IS_ULTIPANEL 1
#define LCD_WIDTH 20
#define LCD_HEIGHT 4

#endif

// ST7920-based graphical displays
Expand Down Expand Up @@ -922,6 +928,7 @@
+ ENABLED(CARTESIO_UI) \
+ ENABLED(ELB_FULL_GRAPHIC_CONTROLLER) \
+ ENABLED(FF_INTERFACEBOARD) \
+ ENABLED(MIGHTYBOARD_LCD) \
+ ENABLED(FYSETC_242_OLED_12864) \
+ ENABLED(G3D_PANEL) \
+ ENABLED(LCD_FOR_MELZI) \
Expand Down
5 changes: 5 additions & 0 deletions Marlin/src/lcd/HD44780/marlinui_HD44780.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,11 @@
#endif
);

#elif ENABLED(MIGHTYBOARD_LCD)

// 3-wire shift-register LCD for Mightyboard
LCD_CLASS lcd;

#elif ENABLED(SR_LCD_3W_NL)

// NewLiquidCrystal was not working
Expand Down
9 changes: 9 additions & 0 deletions Marlin/src/lcd/HD44780/marlinui_HD44780.h
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,15 @@
#include <LiquidCrystal_SR.h>
#define LCD_CLASS LiquidCrystal_SR

#elif ENABLED(MIGHTYBOARD_LCD)

// 3-wire shift-register LCD for Mightyboard
// Optimized in-tree implementation
// Pin mapping: SR_STROBE_PIN, SR_DATA_PIN, SR_CLK_PIN

#include "mighty/mighty_lcd_serial.h"
#define LCD_CLASS MightyboardLCDSerial

#elif ENABLED(SR_LCD_3W_NL)

// NewLiquidCrystal didn't work, so this uses
Expand Down
Loading
Loading