Intercept the type of firmware automatically
Since every firmware during the boot sends strings on the serial line it would not be possible to automatically intercept what is, without declaring it in the configuration of the printer?
No. Marlin has hundreds of forks with different or identical strings, do not provide everything. Other firmwares even provide less information. We currently query firmware for known answers on configurations. These are marked with green/red dot in configuration and get preset by config wizard. But that is all we know to get reliable. There might be some more possible responses in between, but it not possible for us to know them all. There is no general list of possible answers so it is only try and error with firmwares we have here for testing.
edited December 2018
Ok, but there's another problem with Repetier Server and "MarlinKimbra" (MK4duo), the "M73" command:
echo:Unknown command: "M73 P6 R79 Q6 S79"
MK4duo is an evolution of Marlin 2, and for the eeprom management and more I've to declare in the Server that I've a "Marlin" firmware, there's no other way.
But in that case the server sends a lot of M73 commands that MK4duo doesn't interpret, because it instead manages those in standard "Repetier Host" for the LCD progress bar and other things.
So if you possibile it would be better to insert "MK4duo" as firmware in the selection, and send these commands to the firmware in that case in "Repetier Host" standard, or just remove this M73 command for "MK4duo" firmware.
Please, Marco, MK4duo is not an evolution of Marlin2, the opposite.
MK4duo has implemented the M530 M531 and M532 commands for many years and repetier host recognizes MK4duo and sends these commands to the firmware perfectly. Repetier Server should update the Firmware list and add MK4duo to treat it as a repetier host.
Server filters unknown commands after first use if the unknown command message is known. Looks like MarlinKimbra uses a different string. You can add try adding
<response type="unknownCommand" string="true">^[Ee]cho:Unknown command: "([MG]\d+)</response>
in marlin.xml. That should detect the M73 as unknown command after first usage and not send it any more.
I do not really want 100 different firmware files to handle small differences. With all the forks I would get mad maintaining them. But I will include this rule as well in next release so after a first unknown command it should be the last one.
M73 is for Prusa Firmware or copies of that which use M73 for progress.
M530/M531 should be detected and used as well if the cap
gets send by firmware.