PrintEye; simple information panel for Duet boards.
-
@EasyTarget said in PrintEye; simple information panel for Duet boards.:
(*) Note to self: Stop. Finish other stuff first.
Aaaaaaaaaaaaaaaaaaamen!!
-
@EasyTarget I saw from your signature that you had a plan for PrintEye for when M408 is deprecated and removed?
-
@T3P3Tony said in PrintEye; simple information panel for Duet boards.:
@EasyTarget I saw from your signature that you had a plan for PrintEye for when M408 is deprecated and removed?
I do indeed; but was avoiding necro-posting here until I had something to show..
TL;DR
The original PrintEYE code probably could be modified for M409 use; but it would be fiddly; directly targeting the keys needed and avoiding fetching full keysets. It's quite do-able but I want to move on.
- The ATmega328 is the limiting factor; it's really low on RAM and once you have displays etc also running the JSON decoding became a 'mare, eventually I had to cobble together a 'inline' json decoder from various libs I found neglected elsewhere. Plus I was crippled in choices of fonts due to ROM space, and had to forget using a framebuffer (ram) and directly draw the screen.
- It was good fun and satisfying to do, but not again...
After I finished the original I started on 'PrintESP' with a similar plan, but a WemosD1 mini in the same case. And the code ported to take advantage of all the extra resources.
- Did you know that 99% of D1 mini clones cripple the UART with a pulldown resistor? I didnt.. That, cranky SoftSerial implementations and covid stopped progress.
What did happen during Lockdown was that I learned Python.. eventually coming up with 'SBCeye' (unoriginal naming is my superpower):
https://github.com/easytarget/SBCEyeTo cut to the chase; I've been working on 'PrintPy', smaller and snazzier, micropython powered with 2 cores and a framebuffer! But still 2x OLED's and one button.
https://github.com/easytarget/PrintPy2040If curious take a look at the
Python/Tools
folder, the script there currently runs well, is data-driven and flexible, and prints a once-per-interval status line from the OM. It's very in-development so ymmv. -
@EasyTarget You may want to consider an ESP32 over the RP2040. I adore the RP2040 and use it whenever I can but I often find that for projects which involve a lot of JSON, the memory limit becomes an issue. The ESP32 has the advantage that it can use external memory, whilst still being a modern dual-core microcontroller.
-
@yngndrw said in PrintEye; simple information panel for Duet boards.:
You may want to consider an ESP32 over the RP2040
The design uses a XIAO (seedstudio) form-factor. Go for it.
I have a ESP32-C3 (risc-v) Xiao that I could use.. Or I could get either of the S3 Xiao boards. But they all lack an onboard NeoPixel (and cost more..), so I'd need to add one, or do without.
Actually the Xiao C3 board is going to run a LORA transceiver + temperature sensor at my sailclub.; 5uA deep sleep, USB-C and onboard charging circuit for 5eur! Fantastic bit of kit. Also risc-v which pleases me; I have a VisionFive2 running LaserWeb on my CNC.
There is a pattern here which I'm seeing a lot; Somebody mentions using ESP32 and shortly thereafter someone arrives saying 'but why not use Pico!', and vice-versa.
PrintPy can use both... It's a concept, not set in stone.
edited for tone.
-
@EasyTarget I'm just advising that memory might become an issue for the JSON parsing, that's all. I did say I adore the RP2040, it's my go-to when memory isn't an issue - They all have their place. I'll keep to myself next time, sorry to bother you.
-
@yngndrw You are right, I was a bit snarkyt there; you make a good point and as I have yet to begin porting from CPython to microPython, your words might haunt me when I do
I apologies for the last comment; we've recently had some similar stuff with fanboys/spambots on makerforums and I was translating that here. Mea Culpa.
-
@EasyTarget No worries, I'm sorry my message came across badly - It was probably not the best judgement for my first post on here in years to be a "have you considered X hardware" post. The issue only came to mind because I'd recently used an RP2040 (Specifically the W5500-EVB-Pico, a fantastic board if you need ethernet in a project) on a commercial project and hit the memory limit a number of times. At the end of the day the "right" thing to use is whatever you're comfortable with - It's all personal preference as long as you're aware of the limits and trade-offs.
-
@yngndrw said in PrintEye; simple information panel for Duet boards.:
I'm just advising that memory might become an issue for the JSON parsing, that's all
You might like to look at the PanelDueFirmware code on github. It uses a Json parser that uses minimal RAM.
-
@dc42 said in PrintEye; simple information panel for Duet boards.:
@yngndrw said in PrintEye; simple information panel for Duet boards.:
I'm just advising that memory might become an issue for the JSON parsing, that's all
You might like to look at the PanelDueFirmware code on github. It uses a Json parser that uses minimal RAM.
Ohh I didn't notice that library, I'll have to give JSMN a try in my own projects! Thanks.