Welcome! Log In Create A New Profile


Marlin and OctoPrint sharing the same display

Marlin and OctoPrint sharing the same display
May 24, 2022 01:30PM
I'm developping a "thing" that allows the Marlin and OctoPrint user to share the same display for OctoPrint and Marlin. Unfortunately, the Raspberry Pi has no slave mode (why ??????), and Marlin acts as a master when communicating whith a display (RepRapDiscount Full Graphic Smart Controller, etc.).
As a workaround, I created a shield that is seen as a slave by Marlin, and as a slave by the RasPi.


A STM32 catches Marlin UI frames, converts them into a bitmap, and sends a signal to the Pi. Then, the Pi reads this bitmap and displays it.

The OctoPrint plugin installs a low level "driver" that directly writes to the RasPi VRAM, creating an overlay window showing Marlin UI.
This overlay window is customizable from a OctoPrint plugin (size, colors, transparency).
There's a demo mode that does not require the custom hat (no electronics needed) : just a button between a GPIO pin and GND.

The custom Pi hat is a huge limitation because very few people (if any) will make a PCB and populate it !

I'm now thinking of something else. Marlin uses a custom u8glib library. So I'm thinking of an additionnal u8glib mode that would act as a SPI slave, and give its bitmaps to the RasPi, without the need of any electronics.

But is this doable ? Could Marlin communicate over SPI asynchroneously ? I fear some timing issues !

Is there some Marlin devs on reprap.org ?
Where could I communicate ? (of course not on Marlin Git, it is for issues and FQs, not for development)
Maybe Discord, but I'm unable to speek english fluently : not an option

Edited 1 time(s). Last edit at 05/24/2022 01:32PM by yet-another-average-joe.
Re: Marlin and OctoPrint sharing the same display
June 27, 2022 06:27AM
This display works with marlin firmware run on pi(pandapi) and so it can display and control the gcode file in the octopi.
Sorry, only registered users may post in this forum.

Click here to login