Jump to content

Custom firmware - Demo


Render

Recommended Posts

Posted (edited) · Custom firmware - Demo

I'm working on a custom firmware for Ultimaker 2 and so far I have focused on the UI of the main menu. I have restructured the original menu options into something that I personally find more intuitive. Unlike the original, it is structured according to the different parts of the machine, as well as all submenus are based on a single main menu (a dock with icons), it reduces the number of keystrokes required for most options.

For the development of the start menu I have tried to keep the minimalism of the original interface and the feeling of deceleration (easing) on the scroll.

You can see a demo running on the Marlin Simulator here:

 

The video gives the feeling of lack of smoothness in the movements, but because of the capture. I'm using a Windows virtual machine on OSX which in turn makes a Marlin simulation, as in Rick & Morty, a simulation inside a simulation... ;)

Running on the printer looks really great.

I have only implemented some extra functionality for now, and I'm working on the preheat menu, but the list of changes and updates that I have in mind is quite extensive.

I want to know your opinion on the overall appearance and structure of menu options. And of course, in a later time I will open the source.

Edited by Guest
  • Like 8
Link to post
Share on other sites

Posted · Custom firmware - Demo

Looks nice! Regarding functionality I assume you know the @tinkergnome firmware, loved and used by many people here... main thing for me is an overview of main settings in the printing screen and direct ability to change settings....

  • Link to post
    Share on other sites

    Posted · Custom firmware - Demo

    Ultiarjan, yes I know the tinkergnome firmware and I plan to add many of its options as well as print info / tune options. I wanted to start with the UI to arrange the structure and the main appearance, but I've already worked in a custom firmware for my Prusa i3 Steel with this kind of features. In fact, some of the options we are talking about are already present in reprap Marlin firmwares. My intention is to create a hybrid that keeps the simplicity of UM2 and the advanced options of reprap versions / tinkergnome firmware.

    On the other hand, part of my effort also goes to allow an easy implementation of UM2 Marlin updates without re-coding and digging too much so I need to adopt the way Daid works and his nomenclature pattern.

    I appreciate your feedback and I'm open to any suggestion.

    Thanks guys!

  • Link to post
    Share on other sites

    Posted · Custom firmware - Demo

    What I am sometimes missing now, is status info during printing, such as: nozzle temp, bed temp, fan %, speed (actual mm/s, and in flow %), flow %, layer nr. of total layers. This comes in handy when playing around with settings, so that I don't have to open all submenus to find out.

    Would it be possible to add this, if it would fit on the screen? Probably some parts need to be alternating.

    For example (I limited each line to 20 characters, like it is now. I don't know if you can put more text per line?):

    --------------------

    file_being_printed

    time to go 9999 min

    nozzle 222° bed 100°

    fan 100% flow 100%

    layer xxxxxx/yyyyyy

    material flow 100%

    material PLA

    --------------------

    (Anything I forgot, or that other people would find useful?)

    Also during warming up and cooling down, more status info would be nice, such as both nozzle and bed temp.

    For the buildplate, a function to manually move the plate up and down step by step, by turning the wheel, would also be nice. This when not printing. (I don't know if it would be a good idea while printing, maybe too risky?)

    • Like 1
    Link to post
    Share on other sites

    Posted · Custom firmware - Demo

    For the buildplate, a function to manually move the plate up and down step by step, by turning the wheel, would also be nice. This when not printing. (I don't know if it would be a good idea while printing, maybe too risky?)

     

    'while printing' is where the fun starts :)

    ...and very useful to tune the distance between nozzle and buildplate while it prints the skirt/brim.

     

    • Like 1
    Link to post
    Share on other sites

    Posted · Custom firmware - Demo

    I have only implemented some extra functionality for now, and I'm working on the preheat menu, but the list of changes and updates that I have in mind is quite extensive.

     

    well, you want to make it public later - ask yourself how much time you can invest, and how many years you are able to maintain it...

    ...and after that: have fun making it!

     

    I want to know your opinion on the overall appearance and structure of menu options. And of course, in a later time I will open the source.

     

    If you're interested in my opinion...

    I like the icons, but i would prefer a main menu, where i can see all possible option without scrolling.

    The structure of menu options is always a matter of personal taste, and how the printer is used.

    E.g.: If someone prints only via USB, he don't needs the 'Print' menu, but instead more control options during printing.

    If someone don't uses Cura or UltiGcode, he never uses 'Material Settings'...

    If someone often changes nozzles, he would prefer a simpler way to adjust the distance to the buildplate...

    ...and so on...

    I would recommend: just use a structure that fits your own needs (or find a way to make it configurable at runtime...)

    • Like 1
    Link to post
    Share on other sites

    Posted · Custom firmware - Demo

    I've been out of town a few days and I could not write until today. I'm on vacation this month and will not be able to work in the firmware.

    geert_2, I don't think that all the information you mentioned fit on one screen at once, at least not with this font size, but basically these are all things that I intended to draw on the print screen. In my other printer firmware (also with a 128x64 display) I have less data on the screen and fill almost whole, but on the other hand, use margins, spaces, icons and boxes to make a more aesthetic design. Of course some parts can alternate, or to use a different font for certain data. Anyway, I need to work on it and to make test to know what can I do.

    As tinkergnome told you, babystepping is what you are looking for. Since this is already coded in Marlin, it can be adapted to UM2. The thing is, as tinkergnome also mentioned wisely: the time. The priorities in my to-do list, the fact that every feature I can add to the firmware takes a lot of research, code digging... and then, start doing the job. But yes, this is something I know I'm going to need and something I would like to add.

    Tinkergnome, you nailed the point. My main concern about going open source is how long can I maintain the project, I mean a project with version control. Maybe I will only publish the files periodically and I won't use git.

    I already have designed the menu without scroll, with two rows of 5 icons + bottom text and also another design with 2x4 + bottom text + extruder and buildplate temperature info. This was my first version (and also the design of my current P3Steel firmware). I like it but, the truth is that I really liked the scroll easing and the minimalism of Daid's design when I saw it, It's basically the opposite of what I was used to: lot of information and functionality over aesthetics. I guess it was one of the priorities of Ultimaker when they designed their whole machine, something like "what Apple would do if they make a printer", but fortunately open source ;)

    This machine is beautiful as no other, It works well enough to not have to be so aware of more technical aspects that are crucial in many reprap printers. So, after I tried my old menu system here (5x2 icons) I felt like that was not the thing I was looking for, I want to keep that sense of minimalism not filling the whole screen and to try to be closer to Ultimaker style, but also adding many of the things that I use to need... and graphics, I love displays with graphics :D

    On the other hand, what would be the point of doing a geek style firmware if you are already done an awesome one? This is something I wanted to talk with you, I'm not going to create another expert version of Ultimaker 2 firmware, my intention is to focus on a intermediate level interaction. I already have a machine that meets my geeky needs! This one has to be beautiful and elegant or my girlfriend is going to throw me out of home!

    But also, if I'm working on something that I like to have, why not share and ask the people what they think. If there's anyone looking for something like me, I will be proud to share my work.

    You know exactly what involves making the menu editable at runtime, handling the types and the callbacks is a pain in the ass. Letting some kind of configuration/reordering is a possibility that I have in mind, even to allow selecting between Scroll / 2 rows and stuff like that, but trying to convert the system to structs or arrays to get a fully customizable menu is hell!

    Thanks for your feedback, of course I'm interested in your opinion ;)

    • Like 2
    Link to post
    Share on other sites

    Posted · Custom firmware - Demo

    Your UI is absolutely beautiful ! I really like how you move through the icons, and it seems more intuitive.

  • Link to post
    Share on other sites

    Posted · Custom firmware - Demo

    So, here I am... This is the current state of my creature:

     

    ;)

    • Like 2
    Link to post
    Share on other sites

    Posted · Custom firmware - Demo

    So, here I am... This is the current state of my creature:

     

    ;)

     

    Now that's what I call fantastic UI !

  • Link to post
    Share on other sites

    Posted · Custom firmware - Demo

    Awesome. This is really nice, simple, easy to understand, just brilliant. Do a deal with Ultimaker because this UI should definitely be adapted by them.

  • Link to post
    Share on other sites

    Posted · Custom firmware - Demo

    I agree it looks very nice..... but I think tinkergnome's version is way better in information density.... I just love all I want to see in 1 max 2 screens.

  • Link to post
    Share on other sites

    Posted (edited) · Custom firmware - Demo

    That looks amazing! I love the icons in the top, really nice to have that information while you're working on other settings.

    I'm assuming this was just a simulation, but if it wasn't you should probably take a look at the PID  values of your bed, that temperature oscillates way too much :p

    Edited by Guest
    grammar
  • Link to post
    Share on other sites

    Posted (edited) · Custom firmware - Demo

    And the simulator must have a 100W heater for the hotend... ;)

    @ultiarjan: I agree with you if one has an advanced user in mind who controls the parameters through the print. However, I think the OP had in mind to make the paths shorter. And this design is much less language based.

    Edited by Guest
  • Link to post
    Share on other sites

    Posted · Custom firmware - Demo

    And the simulator must have a 100W heater for the hotend... ;)

     

    Yeah! I've attached a rocket engine to the printer to make things faster :D

    Yes, everything is related to the simulator, Daid already talked about this weird behavior, nothing to care about.

    And yes, I agree with both statements: info density is not a priority but I try to make the paths shorter (and related hierarchically).

    I'm focusing on aesthetics and intuitiveness, but the thing is, this way brings faster access to some parts of the firmware than going throw the current menu structure, it's not about a beauty but useless screen. On the other hand, the print info screen is where info density becomes crucial (or not, depending on the user needs), I haven't worked on it yet, It's a pending task.

    I'm also turning an idea since I started this project, something that I already discussed with tinkergnome: the possibility of allowing the user to configure the menu options.

    The concept is very clear to me, I would create another icon in the main menu, a quick-launch submenu where the user selects icons as shortcuts to any other node. Then it should be possible to choose to start at main menu or quick-launch menu, both also accesible from the other one. The problem is the way it has to be coded, this is a modular approach, the one I'm used to work with OOP, but currently the menu system is very hardcoded and I should rewrite a lot.

    For now I'm still working on the main UI, the ToDo list is huge!

    Thanks for your feedback ;)

    • Like 2
    Link to post
    Share on other sites

    Posted (edited) · Custom firmware - Demo

    I love this firmware!!!

    Could you please add the extruder motor step setting on menu?  I am using a third-party extruder set,  gear ratio is 1:3, It need to set the extruder moto step to 3x for ultimaker 2,They provide a custom firmware to do it.  but it is in chinese and I don't know the version, so please add this function, thank you very much.

    WechatIMG7.jpg

    Edited by Guest
  • Link to post
    Share on other sites

    Posted · Custom firmware - Demo

    If you look for tinkergnome's firmware you can easily do that ;)

  • Link to post
    Share on other sites

    Link to post
    Share on other sites

    Posted · Custom firmware - Demo

    Thank you guys! you are so nice! @DidierKlein @gr5

  • Link to post
    Share on other sites

    Posted · Custom firmware - Demo

    Another demo. Print menu already implemented.

    Most of my time is going to refactor and optimize code, otherwise the flash allocation size exceeded 128K, and this has forced me to study and solve other problems. It's being a looooong way.

    BTW changing motor steps/mm is already implemented, it was one of the first things I did ;)

    • Like 8
    Link to post
    Share on other sites

    Posted · Custom firmware - Demo

    Another demo. Print menu already implemented.

     

    Most of my time is going to refactor and optimize code, otherwise the flash allocation size exceeded 128K, and this has forced me to study and solve other problems. It's being a looooong way.

    BTW changing motor steps/mm is already implemented, it was one of the first things I did ;)

     

    Awesome work man, I'm impressed!

  • Link to post
    Share on other sites

    Posted · Custom firmware - Demo

    Awesome! I really like the balance between aesthetics and functionality.

    Have you published your work on github somewhere?

  • 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 Cura 5.7 stable released
        Cura 5.7 is here and it brings a handy new workflow improvement when using Thingiverse and Cura together, as well as additional capabilities for Method series printers, and a powerful way of sharing print settings using new printer-agnostic project files! Read on to find out about all of these improvements and more. 
         
          • Like
        • 18 replies
      • S-Line Firmware 8.3.0 was released Nov. 20th on the "Latest" firmware branch.
        (Sorry, was out of office when this released)

        This update is for...
        All UltiMaker S series  
        New features
         
        Temperature status. During print preparation, the temperatures of the print cores and build plate will be shown on the display. This gives a better indication of the progress and remaining wait time. Save log files in paused state. It is now possible to save the printer's log files to USB if the currently active print job is paused. Previously, the Dump logs to USB option was only enabled if the printer was in idle state. Confirm print removal via Digital Factory. If the printer is connected to the Digital Factory, it is now possible to confirm the removal of a previous print job via the Digital Factory interface. This is useful in situations where the build plate is clear, but the operator forgot to select Confirm removal on the printer’s display. Visit this page for more information about this feature.
        • 0 replies
    ×
    ×
    • Create New...