area515 / Photonic3D

Control software for resin 3D printers
http://photonic3d.com
GNU General Public License v3.0
132 stars 115 forks source link

Simulated RPi Image, Firmware, & Projector Testing #172

Closed jmkao closed 6 years ago

jmkao commented 8 years ago

Test basic functionality of a fresh install in SemaphoreCI as part of the RPi image building process via:

WesGilster commented 8 years ago

I'd like to add Repetier firmware sim (if possible). This will really harden up the server side.

jmkao commented 8 years ago

Repetier should be the same process for SimAVR. I'll start looking at first integrating this into the Travis based check-in tests.

WesGilster commented 8 years ago

Great. No hurry. I've got all of the tests running now including the vision tests.

jmkao commented 8 years ago

Hmm... while the SimAVR library can simulate the atmega2560, the simduino program that simulates the whole arduino board only works up to a atmega328p, which doesn't have enough memory to load marlin. There seems to be some kind of known issue with no clear solution. I'll have to prod the project and wait for them to make some progress.

WesGilster commented 8 years ago

Darn, that will be helpful.

jmkao commented 7 years ago

Thinking about this again. GRBL will run on an atmega328p and has some interesting real-time machine info features that might feed some useful features like live Z height info. Plus, there are economical grbl shields for RPi that might make this a more natural fit for builds than RAMPS to RPi via USB

WesGilster commented 7 years ago

So what I'm hearing is that you'd like a way to latch return data from gcodes into variables that can be affected by both the templating engine and the scripting engine?

Sounds like an awesome feature. At the moment the return codes are pretty restrictive. They only use return codes(parsed with regex) for the purpose of pausing the printer. Instead I could fold that functionality into a more generic mechanism.

For example, maybe you register regexs with a corresponding JS function. When a response comes back from a gcode that matches that regex, the JS function executes?

So in the example of "Error: Hood was opened" -> JavaScript: { printJob.pause() } So in the example of "Info: Model Height= \d{0, 3}" -> JavaScript: { var modelHeight = gCodeReturn[1] }

What are you thinking?

jmkao commented 7 years ago

Right now, something super simple like a realtime display of the current Z height of the build platform.

WesGilster commented 7 years ago

Ok, simple it is. I thought you wanted something that integrated with the firmware. If you want simple, then the gui already has all of the information it needs to display the current height of the build platform. I checked in the changes and I'll make a dev build.

WesGilster commented 7 years ago

Sorry, forgot to upload the example: image

WesGilster commented 6 years ago

This has been complete for quite some time.