Git Product home page Git Product logo

Comments (31)

Highlander01 avatar Highlander01 commented on May 24, 2024

I did some adjustments on the code I copied into Arduino. I added number 2 to end of serial procedures and most of them work. This gets me around the Arduino library I can not figure out. Only challenge I have now is the "SIGNAL(SIG_USART_RECV)" interupt does not seem to work in Arduino. I have either adjusted something or it is conflicting with an interupt procedure that may be occuring in the hidden Arduino library some where. I will be tinker with it some more and will give an update.

from grbl.

Highlander01 avatar Highlander01 commented on May 24, 2024

The following disables serial features from Arduino in Arduino so that Grbl serial works.
(Still have an interupt challenge though. I am going to try a bare min serial program to try and figure this out)

// Define HardwareSerial_h to suppress loading of the Arduino standard Serial class
#define HardwareSerial_h

from grbl.

Highlander01 avatar Highlander01 commented on May 24, 2024

I did bare min program and figured out why I was not able to get interrupt "SIGNAL(SIG_USART_RECV)" working on Arduino Mega. I had to add a 0 to it. "SIGNAL(SIG_USART0_RECV)" works!

from grbl.

Highlander01 avatar Highlander01 commented on May 24, 2024

Update!!!! First steps to success. I have used Grbl to do my first moves on my x axis. I have successfully moved it left and right.

In Arduino: I found a problem with hand typing in commands. It does not send carriage return characters " r/n/ " which trigger gcode lines to be run. So I have temporarily made " * " entry at the end of a line of gcode trigger running.

Now that I have the basics running I am looking at creating a gui. What are you currently using?

I am starting to learn python, tcl/tk, and opengl so that I can take the Linux EMC2 Axis GUI interface and modify it to send serial lines of code.

from grbl.

Highlander01 avatar Highlander01 commented on May 24, 2024

Update On Progress

I have gone thru a few Python tutorials and I am piecing together a simple USB Axis version of my own that can send data to Simen grbl / Arduino board. Still have a lot to learn though.

Using python I have figured out how to:

  • do serial usb reads of data that is coming from an Arduino board. Writes should not be to diffcult to figure out.
  • do OpenGL 3D graphic program where I can draw and rotate things
  • do text editor where I can open edit and save files.

I think I now have the basic components figured out. Next I need to put the parts together and do some text string processing on files.

(I am not using much from the emc axis code yet. It is pretty big and I had a hard time finding my way around last time I looked at it. Maybe later.)

from grbl.

simen avatar simen commented on May 24, 2024

I'm sorry I haven't responded before. Need to get github to mail me updates on issues. Didn't notice until now.

Personally I use the ruby-scripts in the ./scripts-folder of this repository. console uses socat to provide an interactive shell to grbl. stream is a small ruby-program to stream a gcode-file to Grbl. It works quite well, and I have successfully completed a number of milling job using this basic setup – yet a proper desktop client would of course be much, much better.

from grbl.

buddhafragt avatar buddhafragt commented on May 24, 2024

Hello Highlander,
did you get grbl running on a Arduino Mega?
I have no success with the serial communication...

from grbl.

simen avatar simen commented on May 24, 2024

I have ported a different variant of Grbl to mega and c++. See
https://github.com/simen/twister. It is not a gantry CNC driver so you can't
use it as-is (it uses a scara arm and is adapted for 3D deposition
printing), but handles the serial comms and everything using the C++ libs
distributed with Arduino and works well.

Sorry for the late response. We suddenly found our dream home and bought it.
Grbl-development is on hiatus until june.

On Tue, Mar 22, 2011 at 12:39 AM, buddhafragt <
[email protected]>wrote:

Hello Highlander,
did you get grbl running on a Arduino Mega?
I have no success with the serial communication...

Reply to this email directly or view it on GitHub:
https://github.com/simen/grbl/issues/2#comment_900863

from grbl.

buddhafragt avatar buddhafragt commented on May 24, 2024

Hello Simen,
Thanks for your response,
I make some modifications to run the code in the Arduino DIE, but at least I
take a compiler error message I dont understand:

/Applications/Arduino.app/Contents/Resources/Java/libraries/inc/stepper.c:
In function 'st_init':
/Applications/Arduino.app/Contents/Resources/Java/libraries/inc/stepper.c:22
8: error: 'TCCR2A' undeclared (first use in this function)
/Applications/Arduino.app/Contents/Resources/Java/libraries/inc/stepper.c:22
8: error: (Each undeclared identifier is reported only once
/Applications/Arduino.app/Contents/Resources/Java/libraries/inc/stepper.c:22
8: error: for each function it appears in.)
/Applications/Arduino.app/Contents/Resources/Java/libraries/inc/stepper.c:22
9: error: 'TCCR2B' undeclared (first use in this function)
/Applications/Arduino.app/Contents/Resources/Java/libraries/inc/stepper.c:22
9: error: 'CS21' undeclared (first use in this function)
/Applications/Arduino.app/Contents/Resources/Java/libraries/inc/stepper.c:23
0: error: 'TIMSK2' undeclared (first use in this function)
/Applications/Arduino.app/Contents/Resources/Java/libraries/inc/stepper.c:23
0: error: 'TOIE2' undeclared (first use in this function)

The stepper.c is not declared in the code.... ??

Regards
Michael

Am 08.04.2011 20:51 Uhr schrieb "simen" unter
[email protected]:

I have ported a different variant of Grbl to mega and c++. See
https://github.com/simen/twister. It is not a gantry CNC driver so you can't
use it as-is (it uses a scara arm and is adapted for 3D deposition
printing), but handles the serial comms and everything using the C++ libs
distributed with Arduino and works well.

Sorry for the late response. We suddenly found our dream home and bought it.
Grbl-development is on hiatus until june.

On Tue, Mar 22, 2011 at 12:39 AM, buddhafragt <
[email protected]>wrote:

Hello Highlander,
did you get grbl running on a Arduino Mega?
I have no success with the serial communication...

Reply to this email directly or view it on GitHub:
https://github.com/simen/grbl/issues/2#comment_900863

from grbl.

buddhafragt avatar buddhafragt commented on May 24, 2024

I forgotten to say I try TWISTER....
sure it is not the right place here asking questions about twister...

from grbl.

Highlander01 avatar Highlander01 commented on May 24, 2024

Hello,

Sorry for the late reply. I did not directly get grbl running on mine. It has been a while... but what I did was to modify it some/minor changes/plus some preferences added in and I made a version that was slightly different. I hate to stray from the base but I did.

Date: Mon, 21 Mar 2011 16:39:41 -0700
From: [email protected]
To: [email protected]
Subject: Re: [GitHub] Porting code to Arduino [simen/grbl GH-2]

Hello Highlander,
did you get grbl running on a Arduino Mega?
I have no success with the serial communication...

Reply to this email directly or view it on GitHub:
https://github.com/simen/grbl/issues/2#comment_900863

from grbl.

Highlander01 avatar Highlander01 commented on May 24, 2024

copy of my modified version of grbl on an Arduino Mega with some additional changes is at: https://github.com/Highlander01/Highlander01HMI
It is mostly the same as grbl but it is different. It may also be a couple versions behind Simens grbl. I have not done any additions lately.

Date: Mon, 21 Mar 2011 16:39:41 -0700
From: [email protected]
To: [email protected]
Subject: Re: [GitHub] Porting code to Arduino [simen/grbl GH-2]

Hello Highlander,
did you get grbl running on a Arduino Mega?
I have no success with the serial communication...

Reply to this email directly or view it on GitHub:
https://github.com/simen/grbl/issues/2#comment_900863

from grbl.

buddhafragt avatar buddhafragt commented on May 24, 2024

Hello Highlander,

Thank you for sharing your modifications!
I try it today!

Best regards
Michael

Am 28.04.2011 5:25 Uhr schrieb "Highlander01" unter
[email protected]:

copy of my modified version of grbl on an Arduino Mega with some additional
changes is at: https://github.com/Highlander01/Highlander01HMI
It is mostly the same as grbl but it is different. It may also be a couple
versions behind Simens grbl. I have not done any additions lately.

Date: Mon, 21 Mar 2011 16:39:41 -0700
From: [email protected]
To: [email protected]
Subject: Re: [GitHub] Porting code to Arduino [simen/grbl GH-2]

Hello Highlander,
did you get grbl running on a Arduino Mega?
I have no success with the serial communication...

Reply to this email directly or view it on GitHub:
https://github.com/simen/grbl/issues/2#comment_900863

from grbl.

buddhafragt avatar buddhafragt commented on May 24, 2024

Hello Simen!

I try out Twister I have downloaded from github.

Bit I take a error message from the compiler:

serial_protocol.cc: In function 'void sp_process()':
serial_protocol.cc:84: error: 'char_counter' was not declared in this scope
serial_protocol.cc:86: error: 'printByte' was not declared in this scope
serial_protocol.cc:87: error: 'printString' was not declared in this scope

It seems there is a library missing, right?

Btw. I use AVR Studio 4.1

Best regards

Michael Zigan

from grbl.

simen avatar simen commented on May 24, 2024

Sorry, Twister is build with AVR-GCC, a whole different tool-chain. I use
the one that is supplied within the Arduino application bundle.

On Sun, Oct 21, 2012 at 12:41 PM, Michael [email protected] wrote:

Hello Simen!

I try out Twister I have downloaded from github.

Bit I take a error message from the compiler:

serial_protocol.cc: In function 'void sp_process()':
serial_protocol.cc:84: error: 'char_counter' was not declared in this scope
serial_protocol.cc:86: error: 'printByte' was not declared in this scope
serial_protocol.cc:87: error: 'printString' was not declared in this scope

It seems there is a library missing, right?

Btw. I use AVR Studio 4.1

Best regards

Michael Zigan


Reply to this email directly or view it on GitHubhttps://github.com//issues/2#issuecomment-9641477.

from grbl.

csdexter avatar csdexter commented on May 24, 2024

simen> AVR Studio uses WinAVR which is, in fact, avr-gcc compiled for Windows :-) Also, the error reported is most probably a typo in said file: it should probably read line_counter instead of char_counter. The other two errors are caused by incomplete refactoring for Arduino: usage of print*() instead of Serial.print().

from grbl.

simen avatar simen commented on May 24, 2024

I guess you are right, @csdexter. This project is not really meant for public comsumption (you'd probably need to know a lot about the configuration of motors to get any immediate use out of it), and as it turns out I hadn't pushed the very latest changes. I just did, and it compiles just fine now. I'm really sorry @buddhafragt!

from grbl.

simen avatar simen commented on May 24, 2024

Just so we are clear on this @buddhafragt: Twister is not a port of Grbl to the Mega. It is a fork from an early version of Grbl meant to drive two stepper motors that have been joined at the hips in a scara arm configuration as a ultra-cheap XY-table replacement. I have sucessfully used it to build a part using an early makerbot print head, but it is very, very experimental!

from grbl.

buddhafragt avatar buddhafragt commented on May 24, 2024

I try to compile it in AVR Studio and Arduino 0.23 too, but exactly the same compiler error.
The solution @csdexter offer dont solve the problem...
I think the prolem is 'char_counter' 'printByte' and 'printString' is really anywhere declared, so I thought simply a library is missing.
@simen, what kind og IDE/compiler you used for GRBL?
AVR Studio works for me, but I try to port it to the Arduino IDE with some modifications, it compiles, but the compiled program have some unexpected errors (EEPROM writing).

from grbl.

buddhafragt avatar buddhafragt commented on May 24, 2024

@simen,
I know Twister is not ready to use, but I try to add a c++ library to grbl with a lot of trouble and no success.
So I thought I can learn from your twister coding how to make it!

from grbl.

simen avatar simen commented on May 24, 2024

@buddhafragt Did you see my comment about the missing patch? Try pulling the newest version and recompile!

from grbl.

buddhafragt avatar buddhafragt commented on May 24, 2024

thank you, compiling :-) with Arduino IDE!

from grbl.

buddhafragt avatar buddhafragt commented on May 24, 2024

I see grbl is compiling "out of the box" with Arduino IDE and Arduino MEGA, how comes?
Is grbl now compatible with the Mega?? I dont test the program in real right now.
Taken only a warnig:
/Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/bin/../lib/gcc/avr/4.3.2/../../../../avr/bin/ld: Warning: size of symbol `rx_buffer' changed from 128 in serial.c.o to 132 in core.a(HardwareSerial.cpp.o)

Is the buffer size critical?

And funny, with the UNO I take a compiler error:
core.a(HardwareSerial.cpp.o): In function __vector_18': /Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino/HardwareSerial.cpp:81: multiple definition of__vector_18'
serial.c.o:serial.c:157: first defined here

from grbl.

csdexter avatar csdexter commented on May 24, 2024

Like I said previously, grbl does not use Arduino. Since Arduino uses some AVR resources unknown to the user (Timer0 comes to mind now) and defines some functionality which grbl already has (UART), compilation within Arduino IDE and/or linking are expected to fail -- and even if they do not, the resulting binary should be unusable.

I am unaware if the Arduino developers actually implemented a detection algorithm for source code that does not use the Arduino API (i.e. the empty .ino use case, like for Teacup) so that all Arduino parts are automatically disabled and the resulting binary is correct.

from grbl.

simen avatar simen commented on May 24, 2024

If the Twister or Grbl compiles under the Arduino IDE, I did not know that! I think it includes libraries that we are not using. It's supposed to be built using the makefile in the project.

from grbl.

Protoneer avatar Protoneer commented on May 24, 2024

Hi there, I have created an Arduino Library of GRBL. It basically just encapsulates the current setup but makes it compatible/up-loadable with the Arduino IDE.

My idea with this port, is to leverage the Arduino's hardware range and make GRBL work on a larger range of boards.

At the moment the Library has two examples. One for the UNO and one for the Duemilanove. The are configured the same at the moment but have different names defined that can be used to change the config settings per board.

https://github.com/Protoneer/GRBL-Arduino-Library

from grbl.

chamnit avatar chamnit commented on May 24, 2024

@Protoneer : Great work! What did you need to do to get the IDE working as a library? Any drastic changes or minor ones? I think this would be a great infusion into the main repo, as a simpler way to upload the firmware.

from grbl.

Protoneer avatar Protoneer commented on May 24, 2024

Like all hard thinks in life. It's only hard till you crack it and then its easy looking back. :)

The pull requests I made over the last few days were most of the changes.

The thing that took the longest to solve was the linking issues I kept getting. It might sound silly now but who knew that the file names needed to be renamed CPP to work in the ARDUINO IDE?!?!?!? 👎

from grbl.

csdexter avatar csdexter commented on May 24, 2024

@Protoneer it says in the documentation: Arduino IDE only deals with C++ with a few quirks such as the absence of prototypes in the sketch (because the IDE injects them automatically). Libraries must be comprised of .cpp and .h files with one .h/.cpp file pair named exactly like the folder (and exactly like the library).

That folder may contain two special folders and one special file: "examples", "utility" and "keywords.txt". The second may contain any combination of .cpp and .c files, whose type will be obeyed when compiling (i.e. avr-g++ for .cpp and avr-gcc for .c).

I'll stop here, no need to spam the thread with quotes from the Arduino documentation ;-)

from grbl.

Protoneer avatar Protoneer commented on May 24, 2024

Hahaha... RTFM comes to mind. :)

Well the dots have been connected so lets make more cool stuff...

from grbl.

csdexter avatar csdexter commented on May 24, 2024

And, of course, if compiling a file with C++ and intending to link to it from C code, you need the good old extern "C" { thing.

from grbl.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.