Jump to content
Ultimaker Community of 3D Printing Experts

Full Graphic Smart Controller (ebay) + Ultimaker board fix


Recommended Posts

Posted · Full Graphic Smart Controller (ebay) + Ultimaker board fix
@Amedee, is there any way to reverse the action of the knob? On my unit, turning the knob clockwise decreases feed rate and advances down in menus, which seems the opposite of what the graphical display did.

 

Weird... Mine is working 'as expected' -- I have 2 UMOs, one with the Ulti, one with this one and they operate the same.

I'll check how/where to change that in the firmware

 

So far feeling a little less than impressed overall. The graphical main view is nice, but in the menus, the slow update speed kills the advantage of having more lines. I can see why UM didn't hop on switching the Ulticontroller to a graphical version.

 

I don't see a difference in performance between the 2 devices...

They main reason for me for choosing this one was the price, a fraction of the cost of the Ulti. The main screen is nice, but other than that both devices are doing the same and operate the same.

  • Link to post
    Share on other sites
    • Replies 86
    • Created
    • Last Reply

    Top Posters In This Topic

    Posted · Full Graphic Smart Controller (ebay) + Ultimaker board fix

    @Amedee, is there any way to reverse the action of the knob?

     

     

    To come back on this...

    I believe your board has an encoder with different specs... There is no 'tunable' in the firmware to reverse the action, you have to compile a new firmware...

     

    Encoder handling is defined in dogm_lcd_implementation.h

     

    
    

    #define BLEN_A 0

    #define BLEN_B 1

    #define BLEN_C 2

    #define EN_A (1<<BLEN_A)

    #define EN_B (1<<BLEN_B)

    #define EN_C (1<<BLEN_C)

    #define encrot0 0

    #define encrot1 2

    #define encrot2 3

    #define encrot3 1

    And I think the correct sequence for your encoder should be

     

    
    

    #define encrot0 3

    #define encrot1 1

    #define encrot2 0

    #define encrot3 2

    But probably the easiest is to swap the pin assignment in pin.h:

     

    
    

    #define BTN_EN1 40

    #define BTN_EN2 42

    change to

     

    
    

    #define BTN_EN1 42

    #define BTN_EN2 40

     

  • Link to post
    Share on other sites
    Posted · Full Graphic Smart Controller (ebay) + Ultimaker board fix

    I would go with swapping pin assignment, though I might just take a look at swapping the physical connections.

    Maybe just scratching open the traces on the board and bodging it to the correct way. (on the graphical display board, of course. Not the UM board.)

     

  • Link to post
    Share on other sites
    Posted · Full Graphic Smart Controller (ebay) + Ultimaker board fix

    I bought a SD card, so I should be testing shortly, as soon as I fix my clogged hotend. Since I was not sure whether SD or SDHC makes any difference I dug up a normal SD card. Those are becoming a bit rare. Does anyone know whether that makes a difference?

    Since I slightly damaged the cables I also bought material to make them myself, so now I can put the nubs on the right side. I didn't really mind the filed down nubs, as they fit quite snugly, but I do want the cables themselves undamaged.

     

  • Link to post
    Share on other sites
    Posted · Full Graphic Smart Controller (ebay) + Ultimaker board fix

    I forgot to update this, but I finally got a chance to test the firmware. It all seems to work like it should. Very nice indeed!

     

  • Link to post
    Share on other sites
    Posted · Full Graphic Smart Controller (ebay) + Ultimaker board fix

    BTW, to make it simpler and to avoid building for all 'architectures' each time, you can cook you own firmware https://bultimaker.bulles.eu/...

     

  • Link to post
    Share on other sites
    Posted · Full Graphic Smart Controller (ebay) + Ultimaker board fix

    BTW, to make it simpler and to avoid building for all 'architectures' each time, you can cook you own firmware here...

     

    Excellent! Will that bake in the fancy Utimaker logo? It still makes me happy whenever I see that.

     

  • Link to post
    Share on other sites
    Posted · Full Graphic Smart Controller (ebay) + Ultimaker board fix

    Absolutely, the Ultimaker robot is part of the package ;)

     

  • Link to post
    Share on other sites
    Posted · Full Graphic Smart Controller (ebay) + Ultimaker board fix

    Hey amedee,

    I'm back to using this controller after burring out my ulticontroller. The reason I stopped using it was the encoder being reversed, got annoying. I'm going to attempt to sort it with the firmware fix you posted above. I'm not sure how to update the firmware though, is it by using the controller iteself, or through the ultimaker board? Another option for the firmware builder perhaps....reverse encoder if you select graphic controller?

    Thanks for any help

  • Link to post
    Share on other sites
    Posted · Full Graphic Smart Controller (ebay) + Ultimaker board fix

    The updates are always done via USB on the Ultimaker board...

    For the builder, it would be an easy thing to do, but I first need to spend time in testing my suggested fix...

    • Like 1
    Link to post
    Share on other sites
    Posted · Full Graphic Smart Controller (ebay) + Ultimaker board fix

    OK i'll keep an eye on the builder! If you do get a chance to look into it let me know.

    Ta

  • Link to post
    Share on other sites
    Posted · Full Graphic Smart Controller (ebay) + Ultimaker board fix

    @macua85 I eventually spent some time to look at the encoder thing...

    • Like 1
    Link to post
    Share on other sites
    Posted · Full Graphic Smart Controller (ebay) + Ultimaker board fix

    Hey amedee, thats awesome! I see you've added it to the builder....you're the best! Thanks so much for this!

  • Link to post
    Share on other sites
    Posted · Full Graphic Smart Controller (ebay) + Ultimaker board fix

    Hi guys, trying to install my full graphic controller.

    I'm using the UMO official HBK marlin build, with a few tweaks. I already recommented the Ulticontroller definition and uncommented the one for full graphic controller.

    I have installed this into the Arduino libraries: https://bintray.com/olikraus/u8glib/Arduino/1.18.1/view

    I also installed the Arduino Liquid Crystal library.

    When I try to compile, I get this error. Any ideas?

     

    ultralcd.cpp: In function 'void lcd_control_version_menu()':ultralcd.cpp:961: error: 'lcd_implementation_draw_line' was not declared in this scope        lcd_implementation_draw_line(0, PSTR(MSG_VERSION));                                                         ^'lcd_implementation_draw_line' was not declared in this scope

     

  • Link to post
    Share on other sites
    Posted · Full Graphic Smart Controller (ebay) + Ultimaker board fix

    You need to implement draw_line() in dogm_lcd_implementation.h.

    Call was defined by the Ultimaker folks and that's why it is not in the dogm_lcd from Marlin.

    (You can check my firmware branch for more details)

  • Link to post
    Share on other sites
    Posted (edited) · Full Graphic Smart Controller (ebay) + Ultimaker board fix

    You need to implement draw_line() in  dogm_lcd_implementation.h.

    Call was defined by the Ultimaker folks and that's why it is not in the dogm_lcd from Marlin.

    (You can check my firmware branch for more details)

     

    Thanks Amadee! I downloaded your branch and compared the dogm_lcd_implementation.h files to find the needed code.

    Edited by Guest
  • Link to post
    Share on other sites
    Posted · Full Graphic Smart Controller (ebay) + Ultimaker board fix

    Sweet, up and running!

    @amedee, would you mind pointing me to the section of code in your firmware branch to get the robot logo? Maybe the new forum took it out from post #5.

    I like the mapping of one knob click, per menu item, but the value changing isn't so great. Is there a section of the firmware that governs the steps / unit?

    Thanks!

  • Link to post
    Share on other sites
    Posted · Full Graphic Smart Controller (ebay) + Ultimaker board fix

    The other thing I noticed is that while most menus are very responsive, the SD card menu is quite laggy. Does anyone else have that issue?

  • Link to post
    Share on other sites
    Posted (edited) · Full Graphic Smart Controller (ebay) + Ultimaker board fix

    @amedee, would you mind pointing me to the section of code in your firmware branch to get the robot logo? Maybe the new forum took it out from post #5.

     

    What about browsing the commit log? :p

    This changelog

     

    I like the mapping of one knob click, per menu item, but the value changing isn't so great. Is there a section of the firmware that governs the steps / unit?

     

    ENCODER_PULSES_PER_STEP in the config file. By default one encoder pulse  generates one unit step in the values.

    Difficult to find a good compromise there, if you increase it, you will have to turn a lot to make big changes...

    Also, ENCODER_STEPS_PER_MENU_ITEM relies on that one, so if you change the first, it will affect the menu browsing as well, so you need to tune both.

    Personally I wouldn't go there...

    Edited by Guest
    • Like 1
    Link to post
    Share on other sites
    Posted · Full Graphic Smart Controller (ebay) + Ultimaker board fix

     

    @amedee, would you mind pointing me to the section of code in your firmware branch to get the robot logo? Maybe the new forum took it out from post #5.

     

    What about browsing the commit log? :p

    This changelog

     

    I like the mapping of one knob click, per menu item, but the value changing isn't so great. Is there a section of the firmware that governs the steps / unit?

     

    ENCODER_PULSES_PER_STEP in the config file. By default one encoder pulse  generates one unit step in the values.

    Difficult to find a good compromise there, if you increase it, you will have to turn a lot to make big changes...

    Also, ENCODER_STEPS_PER_MENU_ITEM relies on that one, so if you change the first, it will affect the menu browsing as well, so you need to tune both.

    Personally I wouldn't go there...

     

    Ah yes, that makes perfect sense now! I'm a github noob. :)

    Both those lines are commented out in my config. It seems simple enough on the surface: tune pulses / step to give the behavior desired on value setting, then use steps / item to to get menus working again. I'm guessing the reality isn't that simple. Are these variables hardcoded elsewhere when not defined here?

    Does anyone know how many knob encoder pulses are generated per detent position? Maybe it even varies depending on controller mfg.

  • Link to post
    Share on other sites
    Posted · Full Graphic Smart Controller (ebay) + Ultimaker board fix

    Are these variables hardcoded elsewhere when not defined here?

     

    Yes, it's 1 / 5 respectively when not defined (same as what it is in the commented lines)

     

    Does anyone know how many knob encoder pulses are generated per detent position? Maybe it even varies depending on controller mfg.

     

    Probably. But having an UtliController on one machine and this one on the other, I don't feel much difference.

    • Like 1
    Link to post
    Share on other sites
    Posted · Full Graphic Smart Controller (ebay) + Ultimaker board fix

    The only other references to those variables I could find are these. It looks like if not otherwise defined pulses / step is 1 and steps / item 5.

    People seem to be having good luck with pulses/step @ 2 and steps/item @ 4.

    I'm guessing that these need to be integers. Kind of tough in that case to get exactly what you are after. Seems like you can end up with say every 4th knob click not causing a menu change.

    ultralcd.cpp:

     

    #if !defined(LCD_I2C_VIKI) #ifndef ENCODER_STEPS_PER_MENU_ITEM   #define ENCODER_STEPS_PER_MENU_ITEM 5 #endif #ifndef ENCODER_PULSES_PER_STEP   #define ENCODER_PULSES_PER_STEP 1 #endif#else #ifndef ENCODER_STEPS_PER_MENU_ITEM   #define ENCODER_STEPS_PER_MENU_ITEM 2 // VIKI LCD rotary encoder uses a different number of steps per rotation #endif #ifndef ENCODER_PULSES_PER_STEP   #define ENCODER_PULSES_PER_STEP 1 #endif#endif

     

    Also found this guy. I had wondered why I had to turn the knob so far (even with the UC) before getting a feedrate override:

    ultralcd.cpp:

    #define ENCODER_FEEDRATE_DEADZONE 10

  • Link to post
    Share on other sites
    Posted (edited) · Full Graphic Smart Controller (ebay) + Ultimaker board fix

    I can confirm that:

    configuration.h

     

    #define ENCODER_PULSES_PER_STEP 4 #define ENCODER_STEPS_PER_MENU_ITEM 1 

     

    ultralcd.cpp:

     

    #define ENCODER_FEEDRATE_DEADZONE 1

     

    Work very well.

    Edited by Guest
  • Link to post
    Share on other sites

    Create an account or sign in to comment

    You need to be a member in order to leave a comment

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now

    • Our picks

      • Ultimaker Transformation Summit

        On April 20 - April 23 we will host the Ultimaker Transformation Summit. Come talk to us via Live chat and get inspired by any of our relevant presentations!
        • 7 replies
      • New here? Register your Ultimaker for free 3D printer onboarding course
        Hi,
         
        Often getting started is the most difficult part of any process. A good start sets you up for success and saves you time and energy that could be spent elsewhere. That is why we have a onboarding course ready for
        Ultimaker S5 Pro Bundle, Ultimaker S5, Ultimaker S3 Ultimaker 2+ Connect.   
        They're ready for you on the Ultimaker Academy platform. All you need to do to gain access is to register your product to gain free access. 
        Ready? Register your product here in just 60 seconds.
          • Like
        • 0 replies
    ×
    ×
    • Create New...