UI updating... Some professional help?

  • Hi, not really sure how best to ask this because I wanted to PM dc42 directly, but cant 🙂

    Basically, I'm building my self a corexy at the moment (when i have the free time that is) and Im very likely going with the duet hardware. Some one from railcore mentioned that dc42 is looking for some UI developers...

    I thought I might be able to help. Strictly speaking I'm a graphics artist but my work lately has been UI dev for embedded devices...

    I cant go into it in too much detail as I have an NDA, but I'm currently on a professional project building a complex high quality UI, using the ft811 graphics chip.

    When this project is finished in roughly a month or 2s time, Ill be in the position to work on the UI for the paneldue...

    Normally I wouldnt work for free. However, if Duet3d was to pay me in hardware ill be more than happy to put my time into getting the UI up to a more modern standard and out of Windows 3.1.

    Ive not looked too closely at the hardware behind the paneldue, but I think I noticed a atmega, is that the chip chugging out the graphics? Has there been any consideration to upgrade to use a more dedicated graphics chip? Like the FTDI/Bridgetek ft8* series?

    I hope this post is alright to place here and no one minds, considering Im kinda asking if I could be paid for the work (in hardware)...

    Anyway let me know...

  • administrators

    Thanks for your offer. Improving the user interface of PanelDue is something we'd like to do. There are some constraints:

    • Older PanelDue controller boards have only 128Kb flash and 32kb RAM, so there isn't room to squeeze in much more. Maybe those users would be prepared to buy new controller boards, if the improvement was worthwhile.
    • Even the newer ones have only 256kb flash, so there isn't a lot of room for complex bitmaps unless they are compressed well.
    • The user interface needs to be flexible enough to handle a wide variety of configurations, in particular multiple tools and axes.

    The current interface layout was based on Duet Web Control so as to be familiar to Duet users. It shows a lot of information on each screen so that you don't have to use a deep hierarchy of menus that you can easily get lost in. Personally I hate UIs which have lots of pretty graphics but very little information content per page.

    The processor is a 32-bit ARM Cortex M3 on the older PanelDues, and M4 on the newer ones. I don't think there is any need to use a graphics processor. However the code that the firmware does to handle mirroring and rotation of the display could be eliminated, because the LCD controller hardware can do that. That would speed up drawing.

    The first task would be to design what the new UI would look like. Do you have any ideas?

  • I wouldn't be able to do a full concept before my current projects near finished... (and today my old printer also decided to give up the ghost and maybe some magic smoke which is not fun as I need to print a prototype case for the project, and later print the parts for the new printer the hardware i ordered here is for 😛 )

    But In my mind, I wouldn't be removing any functionality. I dont know how the menu system is laid out, outside of the photos of the front screen.

    But i would be wanting to add some kind of uniform colour pallet, maybe rearrange some of the button locations, while providing the same if not more information while giving slightly more pleasant to user interface.

    It would be more of a spruce up. But If there was anything else in mind you and the other devs wanted to have added, I would also be happy to do what I can to add it.

    I would imagine creating a modular menu system would be useful as well. Built on some kind of common UI stack that is called and then populated depending on what menu is displayed and options needed.

    Before I would do anything I would need to learn the tools youre currently using... Unless adding a graphics chip is viable for a next gen unit... It might also be possible to have some kind of interface, something that sits between your modular board and the display. But I dont know how your system is setup.

    If you wanted to use a graphics chip, the additional hardware would be the chip ft811 (roughly 8 quid a chip and connects direct to the lcd ribbon), flash memory or sdcard for asset storage. (or you could set up something in the firmware that uploads new assets to the flash chip a bit like firmware updates) but apart from maybe a couple of capacitors ,resistors and a crystal nothing else should be needed.

    All the bitmap assets will be stored on this flash and loaded at runtime. This would leave the driving MCUs flash to wholey contain program stuff.

    Im also not suggesting to do a XP like spam of over skinned UI elements... Something more akin to Windows 10, simple flat colour pallet... Its popular these days. It denotes form function and professionalism.

    Like i Just mentioned the flash/sd is used for bitmap assets. But it can also be used to store sounds and video. You could add a small video logo to the startup if you like. But dont worry I wouldnt plan on filling it with loads of overly colourful icons and pictures and stupid looking gif art... Most if not all the bitmaps would be invisible as bitmaps, maybe forming frame elements or Icons for certain buttons... But nothing overly offensive to the eye 🙂

    Oh and this graphics chip communicates with the main mcu via spi and is controlled with openGL (like) commands with a command limit of 2048 commands per frame. I think the graphics memory is also something like 2049kb. (or was it 4? Cant remeber)

    Weve managed to get some amazing results with this little chip... Heck even have a snes mode7 like effect running in one menu 🙂 (not my doing thats coding skills from some one far more intelligent than me)

    Anyway Let me know what you think
    All the best

Log in to reply