Touchscreen UI for PID!?

You can’t run any of those programs on the tft processor. Those all run in a Linux operating system (or at least an operating system, they also work in windows). The tft runs a single program, and never does anything like an OS.

But the TFT can do a lot, because it doesn’t have to worry about occasionally checking for updates or downloading your email in the background. It can work very quickly and be a slick interface, because it only does the smallest amount of work.

Microcontrollers work completely differently than a raspberry pi (except the new raspberry nano microcontroller).

BTW, sandify is almost completely client side, so hosting the server side on the pi, costs almost nothing. Anything that can run octoprint can host sandify. Octoprint warns not to use a pi zero for octoprint, and I can vouch that it is slow on that computer.

1 Like

Yea the chip in the btt tft is basically just an amped up arduino with a faster processor and larger memory registers

Ahh, got it. Thank you guys for the explanations. I didn’t know there were such differences between the processor types. And again, looking forward to the end result here!

2 Likes

Me too!

success! i couldn’t get either of the methods i posted about working, so I started back at square one. I downloaded the RaspiOS Buster img from the Waveshare wiki with the display drivers already installed. I used the method outlined here to get chromium to start in kiosk mode - full screen no menu bars. Build times on a zero are excruciating, and I didn’t smarten up and backup a working img until this last time.
There are a few kinks to work out, it doesn’t have a splash image (yet) and chromium lags after booting – the GUI starts, the desktop loads entirely, and then a good 20-30 seconds later chromium decides to show up after all :stuck_out_tongue: I found this page to try and get a splash screen while booting; and now that i’ve got a working - restorable - disk image I can start to focus on other aspects. i’m currently researching the actual UI, I know it should:

  • Display RPM (Analog tachometer needle and digital readout)
  • A way to toggle between Manual control and Automatic
  • An interface for tuning new materials or selecting them from a community-driven(?) database of known materials
  • Maybe some preset buttons(like on car stereos) that change the set point(or jump to a certain RPM?)
    Any suggestions? Feature requests? I’ve been trying to find other PID controllers for router speed to get ideas, but they are all pretty basic.

Also maybe real-time diagnostics displayed visually, like a line graph tracking RPM over time, and record the amount of time the router is on, kinda like an odometer.

May I also suggest displaying commanded vs actual RPM. This could provide feedback on situations where PID tuning would be beneficial.

2 Likes

At long last! I’ve got a working proof of concept to start from for the interface. It wasn’t exactly easy getting some of the parts to go together in a manner that was satisfactory for my discerning tastes. It really has been awhile since I have worked in this realm and it took a minute to get my sea legs back :stuck_out_tongue: What I have now is a Reactjs-based front-end communicating via Socket.io to a Nodejs-based back-end that’s listening to the arduino through the serial port. Getting it to work wasn’t hard, I had a very basic example working on day 1, I just wanted more bells and whistles so I added React, and now the code is much tidier to boot! I threw what I had up on github if anyone else had wanted to do something similar: Repo

Not gonna lie, while working on this, I fell hard down the react/web dev rabbit hole. As so many of my projects do, this one got a bump downward in priority. I’m glad to say I have shifted my sights back onto the box of wires and parts I will soon call a CNC. Once that is up and running, I have a react-based interface I’m working on for the PID that is almost definitely overkill, but is most definitely awesome.

3 Likes