FirmwareWishList

From RepRap
Revision as of 06:38, 29 April 2010 by Buzz (talk | contribs)
Jump to: navigation, search

This page is a development stub. Please enhance this page by adding information, cad files, nice big images, and well structured data!

Crystal Clear action run.png
FirmwareWishList

Release status: unknown

No image available.png
Description
Things we'd like to add to the Arduino Firmware but haven't found time to do yet
License
unknown
Author
Contributors
Based-on
Categories
Firmware
CAD Models
External Link



See the firmware provide more feedback to the PC that's running it. The only feedback that occurs firmware->PC is the "ok" that acknowledges each GCODE sent, and the T:XXX that advises the current temperature of the extruder hot zone.

We also need the host PC to be advised ( and thus advise the user) when :

  • any of the end-stops are "in error" state ( or "homed", if you prefer that term ). It's really common for new users to struggle with their endstop signals reporting incorrectly or not at all, and for it to cause firmware grief, etc ( eg: entire machine appears broken if an endstop is logically inverted )
  • which GCODE is actively being processed "right now" ( as apposed to the queue'd gcode/s )
  • whether the extruder is in a "refuse to move" state of not ( usually as a result of the temperature being to low). Users struggle when they try to manually turn the extruder on , and it simply "refuses to work" without any feedback. I've seen a lot of smart people bitten by this, because they don't realise what the firmware is doing.
  • for DC extruders ( becomming less of a problem ), they have a "current speed" setting, and it defaults to zero in most firmwares, but doesn't tell the user that. Turning an extruder on which is still set at a zero speed, happens too.

Some people have taken the option of adding a LCD ( on the rapman? ) to get extra info, but we have a nice big PC LCD for that, don't we?

That sort of thing would be great, so long as the "host" has the capability to interpret it and then give the user adequate feedback on what's happening inside their machine.

I was just thinking of a simple solution, like the Temperature sensor currently uses ( where it constantly tells you where it's at, irrespective of your request/s ).

Eg: if we told the "host" software to treat any line/s being sent back to it that start with a "#" character ( or whatever) as meaning "please update the screen with this info", then it could be simple key-value pairs of info that the host understands.

Just like we have T:XX for temperature, we could have:

  1. T:123 (means extruder is at 123 degrees)
  2. E:X ( means endstop X reporting a tirggered state )
  3. C: [some gcode line here] ( means we just started executing this actual gCode now)
  4. S:100 ( extruder is now set to run at speed 100 )
  5. W:ET ( machine is waiting for Extruder Temperature to come within bounds )
  6. W:CC ( machine is waiting in a Cooling Cycle )
  7. W:NG ( machine is waiting for user to send the Next Gcode )

Obviously, there could be a whole bunch of these, so having the option (like you suggested) to explicity "poll" the machine occasionally and have it tell you all of them at once would be especially useful immediately after the host software first connects to a firmware, so they don't disagree on what to tell the user.  :-)



Also, lets have a sensible temperature control system that is more safe. I think it would be wise to check if temperature actually goes up when a current is applied and turn the current off if something is wrong with the measurement and/or heating. A (resettable) fuse would also seem like a wise thing to have there.


I want to make the controller with web-server control, so that it can remotely be controlled.



related pages: Firmware/Alternative Generation2Firmware