techninja / cncserver

A RESTful API server for driving serial based CNC devices
133 stars 39 forks source link

Add support for hanging-V plotter geometry #91

Open alexiscz opened 7 years ago

alexiscz commented 7 years ago

Hello guys,

Do you have any idea if EiBotBoard with this CNC server can support vertical plotter (like this one http://www.gocupi.com/). Both Axidraw and watercolorbot movements are based on two axes (X and Y), I have checked the EBB (EiBotBoard) Command Set webpage and I have seen that the we are supposed to use the commands XM or SM (which makes sense ;)) I find this repository helpful and user friendly 👍 but I am pretty sure that won't be able to use EiBotBoard and this CNC server for my project without flashing the board to make it work in my case. Let me know if you have suggestions 🙈

Thx

EmbeddedMan commented 7 years ago

The EBB can run a plotter like that no problem. Instead of re-programming the EBB to take the commands being sent from that project's Pi software, you may want to just modify the Pi software a little to use the existing EBB commands (SM/XM/LM, etc.)

*Brian

On Thu, Jul 13, 2017 at 10:30 AM, Alexis notifications@github.com wrote:

Hello guys,

Do you have any idea if EiBotBoard with this CNC server can support vertical plotter (like this one http://www.gocupi.com/). Both Axidraw and watercolorbot movements are based on two axes (X and Y), I have checked the EBB (EiBotBoard) Command Set webpage and I have seen that the we are supposed to use the commands XM or SM (which makes sense ;)) I find this repository helpful and user friendly 👍 but I am pretty sure that won't be able to use EiBotBoard and this CNC server for my project without flashing the board to make it work in my case. Let me know if you have suggestions 🙈

Thx

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/techninja/cncserver/issues/91, or mute the thread https://github.com/notifications/unsubscribe-auth/AAbeCHodoqSNgBO9fYwK2Vzo24K-B68Vks5sNjgJgaJpZM4OXKU7 .

alexiscz commented 7 years ago

Hey @EmbeddedMan really fast :)

I had this idea but i came to the following problem (maybe i am wrong) : From my understanding the plotter i want to make doesn't use the xy positions as watercolorbot will do. In my case both motor will have to move if i want to change the X position (same for Y position). So I will to create a new origin and then translate each coordinate to a new one. I have started to search for a mathematic solutions ;) then I have thought that it will be easier to code and to debug to change the way the board control the motor. But again maybe i am wrong.

Alex

EmbeddedMan commented 7 years ago

Alex,

If you're familiar with embedded development, you may be right - re-working the EBB code may be easier than trying to figure out a bunch of math on the Pi side.

That said, the EBB uses relative moves, not absolute. So each SM command just tells how far (in steps) to move each motor, and how long the move should take. It has no idea what the overall coordinate system or global coordinates are.

*Brian

On Thu, Jul 13, 2017 at 10:46 AM, Alexis notifications@github.com wrote:

Hey @EmbeddedMan https://github.com/embeddedman really fast :)

I had this idea but i came to the following problem (maybe i am wrong) : From my understanding the plotter i want to make doesn't use the xy positions as watercolorbot will do. In my case both motor will have to move if i want to change the X position (same for Y position). So I will to create a new origin and then translate each coordinate to a new one. I have started to search for a mathematic solutions ;) then I have thought that it will be easier to code and to debug to change the way the board control the motor. But again maybe i am wrong.

Alex

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/techninja/cncserver/issues/91#issuecomment-315118607, or mute the thread https://github.com/notifications/unsubscribe-auth/AAbeCIOCNDaC6TE3O92M4Op_GCIrvj8Jks5sNjvFgaJpZM4OXKU7 .

alexiscz commented 7 years ago

Ahah please find my skills bellow : Embedded dev : 💩 Software dev : 👍 👍 Thank your for your help I will dig deeper the software's way. I was really opened to receive suggestions for my project.

A

oskay commented 7 years ago

There's really not much to this. There's a simple transformation to convert your desired XY points into extended length of the two strings: https://www.marginallyclever.com/2012/02/drawbot-overview/

Math like this is vastly easier to do on your desktop computer (or laptop or pi or whatever) than on the embedded device.

Then, send relative movement commands to the EBB using the regular SM command.

alexiscz commented 7 years ago

Hello @oskay thank your feedbacks this what I am currently trying to do. I am working on two sides : CNCserver : I have made my own custom ini for my plotter (I will be glad to share it with you as soon it will be done) Robopaint : I am tweaking some functions from Robopaint to convert my points.

I will keep you updated of the result.

Thanks mates!

oskay commented 7 years ago

Referencing related discussion ( https://github.com/evil-mad/robopaint/issues/293 ), I'm updating the title of this issue.

alexiscz commented 7 years ago

Ok guys, it was really easy to add (a dirty) support for V Plotter with the getPosChangeData function. Now I am currently dealing with straight lines aberrations. As soon as I will find the perfect solution for aberration I will send you an update. There's few tweaks that can be made in the configs to improve (a bit) the aberrations and also in the plotter hardware itself. I will share a link to the hardware as well.

capture d ecran 2017-08-06 a 22 34 20
alexdmejias commented 6 years ago

@alexiscz can you update me on your progress/project? I'm super interested in building the same thing