<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel>
        <title>[solved] Ultipanel with 1602</title>
        <description> EDIT: It just started to work after two days of trying.

I have been playing with a 1602 lcd display and rotary encoder using the ultipanel configuration in Marlin but have run into some trouble. I can not get anything to scroll on the screen. I can click the encoder and it goes from the main menu showing the temperature to one that shows up-arrows and the word watch on the first line and prepare and a right-arrow on the second line but the menu will not scroll when I turn the encoder.

The encoder and lcd are wired the same as Panelmax by Tommyc except I am using Ramps 1.2 with modified pins.h to allow ultipanel

QuoteHere are the relevent parts of my config and pins.h
//LCD and SD support
//#define ULTRA_LCD  //general lcd support, also 16x2
//#define SDSUPPORT // Enable SD Card Support in Hardware Console

#define ULTIPANEL
#ifdef ULTIPANEL
#define NEWPANEL  //enable this if you have a click-encoder panel
  #define SDSUPPORT
  #define ULTRA_LCD
  #define LCD_WIDTH 16
  #define LCD_HEIGHT 2
  
// Preheat Constants
  #define PLA_PREHEAT_HOTEND_TEMP 180 
  #define PLA_PREHEAT_HPB_TEMP 70
  #define PLA_PREHEAT_FAN_SPEED 255		// Insert Value between 0 and 255

  #define ABS_PREHEAT_HOTEND_TEMP 240
  #define ABS_PREHEAT_HPB_TEMP 100
  #define ABS_PREHEAT_FAN_SPEED 255		// Insert Value between 0 and 255

#else //no panel but just lcd 
  #ifdef ULTRA_LCD
    #define LCD_WIDTH 16
    #define LCD_HEIGHT 2    
  #endif
#endif






#else // RAMPS_V_1_1 or RAMPS_V_1_2 as default

#define X_STEP_PIN         26
#define X_DIR_PIN          28
#define X_ENABLE_PIN       24
#define X_MIN_PIN           -1 //3
#define X_MAX_PIN          -1    //2

#define Y_STEP_PIN         38
#define Y_DIR_PIN          40
#define Y_ENABLE_PIN       36
#define Y_MIN_PIN          16
#define Y_MAX_PIN          -1    //17

#define Z_STEP_PIN         44
#define Z_DIR_PIN          46
#define Z_ENABLE_PIN       42
#define Z_MIN_PIN          18
#define Z_MAX_PIN          -1    //19

#define E0_STEP_PIN         32
#define E0_DIR_PIN          34
#define E0_ENABLE_PIN       30

#define SDPOWER            48
#define SDSS               53
#define LED_PIN            13
#define PS_ON_PIN          -1
#define KILL_PIN           -1

#ifdef RAMPS_V_1_0 // RAMPS_V_1_0
  #define HEATER_0_PIN     12    // RAMPS 1.0
  #define HEATER_BED_PIN   -1    // RAMPS 1.0
  #define FAN_PIN          11    // RAMPS 1.0
#else // RAMPS_V_1_1 or RAMPS_V_1_2
  #define HEATER_0_PIN     10    // RAMPS 1.1
  #define HEATER_BED_PIN    8    // RAMPS 1.1
  #define FAN_PIN           9    // RAMPS 1.1
  
  #define LIGHT_PIN	    2    // x-max
  #define BACKLIGHT_PIN	    3    // y-max
  
#endif
#define HEATER_1_PIN        -1
#define HEATER_2_PIN        -1
#define TEMP_0_PIN          2    // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!!
#define TEMP_1_PIN          -1   
#define TEMP_2_PIN          -1   
#define TEMP_BED_PIN        -1    // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!!
#endif

// SPI for Max6675 Thermocouple 

#ifndef SDSUPPORT
// these pins are defined in the SD library if building with SD support  
  #define MAX_SCK_PIN          52
  #define MAX_MISO_PIN         50
  #define MAX_MOSI_PIN         51
  #define MAX6675_SS       53
//#else
  //#define MAX6675_SS       49
#endif

#ifdef ULTRA_LCD

  #ifdef NEWPANEL
  //arduino pin which triggers an piezzo beeper
    #define BEEPER 41			// Beeper on AUX-4

    #define LCD_PINS_RS 33 //changed
    #define LCD_PINS_ENABLE 31 //changed
    #define LCD_PINS_D4 23
    #define LCD_PINS_D5 25 
    #define LCD_PINS_D6 27
    #define LCD_PINS_D7 29
    
    //buttons are directly attached using AUX-2
    #define BTN_EN1 37
    #define BTN_EN2 35
    #define BTN_ENC 47  //the click //changed
    
    #define BLEN_C 2
    #define BLEN_B 1
    #define BLEN_A 0
    
    #define SDCARDDETECT 49		// Ramps does not use this port
    
      //encoder rotation values
    #define encrot0 0
    #define encrot1 2
    #define encrot2 3
    #define encrot3 1
#endif
#endif //ULTRA_LCD


#endif</description>
        <link>https://reprap.org/forum/read.php?1,129450,129450#msg-129450</link>
        <lastBuildDate>Mon, 11 May 2026 13:46:12 -0400</lastBuildDate>
        <generator>Phorum 5.2.23</generator>
        <item>
            <guid>https://reprap.org/forum/read.php?1,129450,129471#msg-129471</guid>
            <title>Re: Ultipanel with 1602</title>
            <link>https://reprap.org/forum/read.php?1,129450,129471#msg-129471</link>
            <description><![CDATA[ I am using RAMPS 1.2 and have it wired to the pins that are default in Marlins pins.h . Tommyc moved them so you can connect it to the servo ports on RAMPS 1.3/1.4 making it easier to wire. So that should not be the issue.]]></description>
            <dc:creator>Sublime</dc:creator>
            <category>General</category>
            <pubDate>Thu, 19 Apr 2012 22:56:15 -0400</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?1,129450,129470#msg-129470</guid>
            <title>Re: Ultipanel with 1602</title>
            <link>https://reprap.org/forum/read.php?1,129450,129470#msg-129470</link>
            <description><![CDATA[ Sublime,<br />
<br />
I may not be seeing it clearly but if you followed tommy's wiring diagram, Shouldnt BTN_EN1 and BTN_EN2 be 5 and 6?]]></description>
            <dc:creator>royco</dc:creator>
            <category>General</category>
            <pubDate>Thu, 19 Apr 2012 22:48:17 -0400</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?1,129450,129450#msg-129450</guid>
            <title>[solved] Ultipanel with 1602</title>
            <link>https://reprap.org/forum/read.php?1,129450,129450#msg-129450</link>
            <description><![CDATA[ EDIT: It just started to work after two days of trying.<br />
<br />
I have been playing with a 1602 lcd display and rotary encoder using the ultipanel configuration in Marlin but have run into some trouble. I can not get anything to scroll on the screen. I can click the encoder and it goes from the main menu showing the temperature to one that shows up-arrows and the word watch on the first line and prepare and a right-arrow on the second line but the menu will not scroll when I turn the encoder.<br />
<br />
The encoder and lcd are wired the same as <a href="http://tommyc-reprap.blogspot.ca/2012/03/panelmax-tutorial.html" target="_blank"  rel="nofollow">Panelmax by Tommyc</a> except I am using Ramps 1.2 with modified pins.h to allow ultipanel<br />
<br />
<blockquote class="bbcode"><div><small>Quote<br /></small><strong>Here are the relevent parts of my config and pins.h</strong><br />
//LCD and SD support<br />
//#define ULTRA_LCD  //general lcd support, also 16x2<br />
//#define SDSUPPORT // Enable SD Card Support in Hardware Console<br />
<br />
#define ULTIPANEL<br />
#ifdef ULTIPANEL<br />
#define NEWPANEL  //enable this if you have a click-encoder panel<br />
  #define SDSUPPORT<br />
  #define ULTRA_LCD<br />
  #define LCD_WIDTH 16<br />
  #define LCD_HEIGHT 2<br />
  <br />
// Preheat Constants<br />
  #define PLA_PREHEAT_HOTEND_TEMP 180 <br />
  #define PLA_PREHEAT_HPB_TEMP 70<br />
  #define PLA_PREHEAT_FAN_SPEED 255		// Insert Value between 0 and 255<br />
<br />
  #define ABS_PREHEAT_HOTEND_TEMP 240<br />
  #define ABS_PREHEAT_HPB_TEMP 100<br />
  #define ABS_PREHEAT_FAN_SPEED 255		// Insert Value between 0 and 255<br />
<br />
#else //no panel but just lcd <br />
  #ifdef ULTRA_LCD<br />
    #define LCD_WIDTH 16<br />
    #define LCD_HEIGHT 2    <br />
  #endif<br />
#endif<br />
<br />
<br />
<br />
<br />
<br />
<br />
#else // RAMPS_V_1_1 or RAMPS_V_1_2 as default<br />
<br />
#define X_STEP_PIN         26<br />
#define X_DIR_PIN          28<br />
#define X_ENABLE_PIN       24<br />
#define X_MIN_PIN           -1 //3<br />
#define X_MAX_PIN          -1    //2<br />
<br />
#define Y_STEP_PIN         38<br />
#define Y_DIR_PIN          40<br />
#define Y_ENABLE_PIN       36<br />
#define Y_MIN_PIN          16<br />
#define Y_MAX_PIN          -1    //17<br />
<br />
#define Z_STEP_PIN         44<br />
#define Z_DIR_PIN          46<br />
#define Z_ENABLE_PIN       42<br />
#define Z_MIN_PIN          18<br />
#define Z_MAX_PIN          -1    //19<br />
<br />
#define E0_STEP_PIN         32<br />
#define E0_DIR_PIN          34<br />
#define E0_ENABLE_PIN       30<br />
<br />
#define SDPOWER            48<br />
#define SDSS               53<br />
#define LED_PIN            13<br />
#define PS_ON_PIN          -1<br />
#define KILL_PIN           -1<br />
<br />
#ifdef RAMPS_V_1_0 // RAMPS_V_1_0<br />
  #define HEATER_0_PIN     12    // RAMPS 1.0<br />
  #define HEATER_BED_PIN   -1    // RAMPS 1.0<br />
  #define FAN_PIN          11    // RAMPS 1.0<br />
#else // RAMPS_V_1_1 or RAMPS_V_1_2<br />
  #define HEATER_0_PIN     10    // RAMPS 1.1<br />
  #define HEATER_BED_PIN    8    // RAMPS 1.1<br />
  #define FAN_PIN           9    // RAMPS 1.1<br />
  <br />
  #define LIGHT_PIN	    2    // x-max<br />
  #define BACKLIGHT_PIN	    3    // y-max<br />
  <br />
#endif<br />
#define HEATER_1_PIN        -1<br />
#define HEATER_2_PIN        -1<br />
#define TEMP_0_PIN          2    // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!!<br />
#define TEMP_1_PIN          -1   <br />
#define TEMP_2_PIN          -1   <br />
#define TEMP_BED_PIN        -1    // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!!<br />
#endif<br />
<br />
// SPI for Max6675 Thermocouple <br />
<br />
#ifndef SDSUPPORT<br />
// these pins are defined in the SD library if building with SD support  <br />
  #define MAX_SCK_PIN          52<br />
  #define MAX_MISO_PIN         50<br />
  #define MAX_MOSI_PIN         51<br />
  #define MAX6675_SS       53<br />
//#else<br />
  //#define MAX6675_SS       49<br />
#endif<br />
<br />
#ifdef ULTRA_LCD<br />
<br />
  #ifdef NEWPANEL<br />
  //arduino pin which triggers an piezzo beeper<br />
    #define BEEPER 41			// Beeper on AUX-4<br />
<br />
    #define LCD_PINS_RS 33 //changed<br />
    #define LCD_PINS_ENABLE 31 //changed<br />
    #define LCD_PINS_D4 23<br />
    #define LCD_PINS_D5 25 <br />
    #define LCD_PINS_D6 27<br />
    #define LCD_PINS_D7 29<br />
    <br />
    //buttons are directly attached using AUX-2<br />
    #define BTN_EN1 37<br />
    #define BTN_EN2 35<br />
    #define BTN_ENC 47  //the click //changed<br />
    <br />
    #define BLEN_C 2<br />
    #define BLEN_B 1<br />
    #define BLEN_A 0<br />
    <br />
    #define SDCARDDETECT 49		// Ramps does not use this port<br />
    <br />
      //encoder rotation values<br />
    #define encrot0 0<br />
    #define encrot1 2<br />
    #define encrot2 3<br />
    #define encrot3 1<br />
#endif<br />
#endif //ULTRA_LCD<br />
<br />
<br />
#endif</div></blockquote>]]></description>
            <dc:creator>Sublime</dc:creator>
            <category>General</category>
            <pubDate>Thu, 19 Apr 2012 17:50:12 -0400</pubDate>
        </item>
    </channel>
</rss>
