Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enhancing Firmware Autodetection #11

Open
ghost opened this issue Feb 28, 2017 · 10 comments
Open

Enhancing Firmware Autodetection #11

ghost opened this issue Feb 28, 2017 · 10 comments

Comments

@ghost
Copy link

ghost commented Feb 28, 2017

Splitting off from #2 to encourage some more creative thinking without depending on firmware changes

@ghost ghost mentioned this issue Feb 28, 2017
@cprezzi
Copy link
Member

cprezzi commented Feb 28, 2017

Frontends that support multiple firmwares, would like to have a way to identify the firmware before sending commands that cause errors on some of the firmwares.

  • One already existing solution is sending an idetification string when a connection is established. This works well with USB connections, but doesn't work with serial connections via UART.
  • A better solution would be if all firmwares implement the same command (like $I, M115, version, what ever) to query their idetification string. The string doesn't need to have much information, just firmware name and eventually protocoll version (to identify protocol changes). After that, the host should use only valid commands for this firmware.

If someone has a better/different solution, please post it here and let us discuss pros and cons.

@ghost
Copy link
Author

ghost commented Feb 28, 2017

Doesnt solve for TinyG, but what about looking at the subtle formatting difference from the result of "?"
between grbl and Smoothie?

@ghost
Copy link
Author

ghost commented Feb 28, 2017

And from my other chair as electronics designer, would wiring autoreset between ESP and controller, be the real solution? Connecting to the ESP triggers a reset, just like the ftdi does via DTR for Grbl, and similar to the virtual behaviour in smoothieware?

@ghost
Copy link
Author

ghost commented Feb 28, 2017

My thoughts are that it is simple enough to select your firmware in the setup. Autodetect is 'nice' if it has to be continually used, but it only needs to be set once and then never touched again.

There should be a way to define a set of 'rules' adhered to by each of the firmwares. For instance, for GRBL abort = $X, Smoothie abort = $Y, TinyG abort = $Z etc.

The apply the rules appropriate to the selected firmware.

When eventually all the planets align and we have a universally accepted set of rules, then we end up with one set of rules and instantly will have autodetect.

@cprezzi
Copy link
Member

cprezzi commented Mar 1, 2017

We already have a universall set of commands: the lw.comm-server API. The frontend doesn't have to know details about firmware protocoll or specific commands, the server cares about that.

By the way: This issue is not about how we solve our actual problem, it's more about how a future solution could look like.

@cprezzi
Copy link
Member

cprezzi commented Mar 1, 2017

That's just my opinion ;)

@ghost
Copy link
Author

ghost commented Mar 1, 2017 via email

@cprezzi
Copy link
Member

cprezzi commented Mar 1, 2017

@DarklyLabs Don't worry, the problem you had with ESP connect should be solved with 4.0.40. I just swapped the check order to smoothie first for the moment (as your users would probably be the major group using this feature).

@ghost
Copy link
Author

ghost commented Mar 1, 2017

@cprezzi Great. I will test it in the morning. Much appreciated.
(by the way, the double function 'abort' button is genius! Working really well for USB)

@ghost
Copy link
Author

ghost commented Mar 2, 2017

@cprezzi Looks like connecting and resetting alarms for WIFI is working correctly now.
Thank you.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant