serial monitor arduino mega

ik ben nieuw in de wereld van Arduino. Het project dat ik tot een goed eind wil brengen is een diycnc bouwen en aansturen met een Arduino mega 2560 in combinatie met Ramps 1.4 en stappen drivers DVR8825 en als firmware GRBL.

Alles gemonteerd en via een USB kabel aangesloten aan mijn macbook pro.

De firmware Grbl library geupload naar de Arduino.

Normaal moet ik als ik de serial monitor open de Grbl prompt Grbl 0.9i ['$' for help] zien.
Maar alles blijft leeg, net of ik geen connectie heb met mijn Arduino.

Wie zou me hiermee kunnen helpen want kom er voorlopig niet uit.

Alvast bedankt;
Hans

misschien dom antwoord als je met zulke projecten bezig bent, maar staat de snelheid juist ingesteld ?

de snelheid staat ingesteld op 115200

GRBL code

#include <config.h>
#include <coolant_control.h>
#include <cpu_map.h>
#include <defaults.h>
#include <eeprom.h>
#include <gcode.h>
#include <grbl.h>
#include <limits.h>
#include <motion_control.h>
#include <nuts_bolts.h>
#include <planner.h>
#include <print.h>
#include <probe.h>
#include <protocol.h>
#include <report.h>
#include <serial.h>
#include <settings.h>
#include <spindle_control.h>
#include <stepper.h>
#include <system.h>

ik denk dat deze code geupload is, want kan dit niet controleren.

de seriele monitor blijft leeg

Als dit alles is, dan gebeurt er helemaal niets....

Welke code moet er dan gebruikt worden

heb nu de GRBL v 0_9 geupload via een hexloader de RX EN TX leds waren flink aan het knipperen, maar zie nog steeds niets in de seriele monitor.

Wanneer ik bcnc open en connecteer met arduino knippert de RX led en krijg ik de melding dat ik verbinding heb met grbl.

En toen?

Hoi Hans, welkom.

Als dit je eerste project is, dan lijkt het me een hééél klein beetje te ambitieus ::slight_smile: .
Maar we weten natuurlijk niet hoe ver jouw kennis al is met programmeren, en zaken zoals hardware en overige elektronica.

Wanneer je iets gaat maken, daarbij vastloopt en hulp nodig hebt, dan moet je bij het vragen om die hulp heel duidelijk zijn.
Dat geldt overigens voor alles waar je mee te maken gaat krijgen in de Arduino wereld.
Iets zimpels als een tiepvaudje word genadeloos afgestraft wanneer je code aan het schrijven bent.

Vaak (maar lang niet altijd) betekent dat dat deze code niet eens kan worden geüpload, omdat de IDE je al met allerlei foutmeldingen gaat bestoken, om vervolgens te weigeren dit naar je Arduino te sturen.

Je kunt bij het stellen van de vraag niet volstaan met het roepen van een term zoals GRBL, om vervolgens er van uit te gaan dat iedereen weet wat je precies hebt.
Dus zet er een linkje naar jouw bron bij.

Als je code laat zien, laat dan geen dingen weg die jou niet interessant lijken, maar laat alles zien.
En zet dat ook tussen [code] [/code] tags, zodat je het de helper een stuk gemakkelijker maakt om die code foutloos te kunnen lezen en eventueel kopieren naar de IDE om m te testen.

Eigenlijk is het ook het beste als je eens het welkom onderwerp (klik !) leest, en je daar voorstelt.
Daar kun je kwijt wat jou drijft en wat je allemaal al onder de knie hebt.
Das altijd handig om te weten.

Dit is inderdaad mijn eerste Arduino project en mijn kennis van programmeren is nul. Wel heb ik kennis van hardware en elektriciteit en een beetje van electronica.

Had wel veel filmpjes gekeken op You Tube en zodoende zijn we er aan begonnen.

De cnc die ik wil maken is een mpcnc. De meeste onderdelen kunnen geprint worden met een 3D printer en die heb ik al zodoende. Alles van onderdelen ligt klaar om te monteren en deze week alle electronica binnen gekregen.

Begonnen met de Arduino Mega 2560 te installeren in combinatie met GRBL firmware (GitHub - grbl/grbl: An open source, embedded, high performance g-code-parser and CNC milling controller written in optimized C that will run on a straight Arduino).

De firmware geupload via de GRBL library, krijg geen foutmeldingen dus ga ik er vanuit dat alles correct verlopen is en normaal zou ik dan als ik de seriële monitor van Arduino open het volgende moeten te zien krijgen: Grbl 0.9i ['$' for help] maar hier blijft alles leeg.

De code die ik op mijn Arduino scherm zie nadat ik alles geupload heb is:

#include <config.h>
#include <coolant_control.h>
#include <cpu_map.h>
#include <defaults.h>
#include <eeprom.h>
#include <gcode.h>
#include <grbl.h>
#include <limits.h>
#include <motion_control.h>
#include <nuts_bolts.h>
#include <planner.h>
#include <print.h>
#include <probe.h>
#include <protocol.h>
#include <report.h>
#include <serial.h>
#include <settings.h>
#include <spindle_control.h>
#include <stepper.h>
#include <system.h>

Daarna geprobeerd te uploaded via een Hexloader, dit is ook allemaal goed verlopen zonder foutmeldingen.

Maar zie nog steeds niets via de seriële monitor.

Wat doe ik verkeerd en wie kan me helpen.

Alvast bedankt.

MPCNC.pdf (20.5 KB)

Jouw sketch bevat alleen maar include files; als 't goed is, genereert 'n include file helemaal geen code; d.w.z. 'n include file bevat slechts macrodefinities, functie prototypes en declaraties. Het zijn de .cpp files waar al 't 'kwaad' geschiedt.

vriendelijke groet,

Jos

Jos bedankt voor het antwoord, is het dan de bedoeling dat elke .cpp files in arduino geladen moeten worden.

mvg

Hans

Nee, dat volstaat ook niet.

Je moet libraries installeren.
Als je dat gedaan hebt, moet je ze in je sketch includen.
Dat heb je schijnbaar allemaal al gedaan, want schijnbaar krijg je geen foutmeldingen.
Daarna moet je iets gaan doen met die libraries; je moet een programma (voortaan 'code') gaan schrijven.
Die code moet er dan voor zorgen dat de library gebruikt gaat worden, en die code moet je dan ook zo maken dat er op mysterieuze wijze seriële data word gegenereerd, afgaande op jouw verhaal.

Wat je tot nog toe gedaan hebt, is bijna vergelijkbaar met het installeren van de hardware van een video kaart voor je pc, en vervolgens de windows driver cd in de drive geplaatst, en nu met ingeschakelde pc zit te wachten tot er iets gebeurt, terwijl windows helemaal nog niet geïnstalleerd is.

De GRBL lib gebruikt geen aparte sketch om op te starten. In main.c staat de code. Heb je het wel geinstalleerd zoals hier staat beschreven:

ik wil dit wel op een macbook installeren.
Heb ook een testcode voor mijn stappenmotors en die werkt perfect.

Testcode stappenmotors:

#define X_STEP_PIN         54
#define X_DIR_PIN          55
#define X_ENABLE_PIN       38
#define X_MIN_PIN           3
#define X_MAX_PIN           2

#define Y_STEP_PIN         60
#define Y_DIR_PIN          61
#define Y_ENABLE_PIN       56
#define Y_MIN_PIN          14
#define Y_MAX_PIN          15

#define Z_STEP_PIN         46
#define Z_DIR_PIN          48
#define Z_ENABLE_PIN       62
#define Z_MIN_PIN          18
#define Z_MAX_PIN          19

#define E_STEP_PIN         26
#define E_DIR_PIN          28
#define E_ENABLE_PIN       24

#define Q_STEP_PIN         36
#define Q_DIR_PIN          34
#define Q_ENABLE_PIN       30

#define SDPOWER            -1
#define SDSS               53
#define LED_PIN            13

#define FAN_PIN            9

#define PS_ON_PIN          12
#define KILL_PIN           -1

#define HEATER_0_PIN       10
#define HEATER_1_PIN       8
#define TEMP_0_PIN          13   // ANALOG NUMBERING
#define TEMP_1_PIN          14   // ANALOG NUMBERING

void setup() {
  pinMode(FAN_PIN , OUTPUT);
  pinMode(HEATER_0_PIN , OUTPUT);
  pinMode(HEATER_1_PIN , OUTPUT);
  pinMode(LED_PIN  , OUTPUT);
  
  pinMode(X_STEP_PIN  , OUTPUT);
  pinMode(X_DIR_PIN    , OUTPUT);
  pinMode(X_ENABLE_PIN    , OUTPUT);
  
  pinMode(Y_STEP_PIN  , OUTPUT);
  pinMode(Y_DIR_PIN    , OUTPUT);
  pinMode(Y_ENABLE_PIN    , OUTPUT);
  
  pinMode(Z_STEP_PIN  , OUTPUT);
  pinMode(Z_DIR_PIN    , OUTPUT);
  pinMode(Z_ENABLE_PIN    , OUTPUT);
  
  pinMode(E_STEP_PIN  , OUTPUT);
  pinMode(E_DIR_PIN    , OUTPUT);
  pinMode(E_ENABLE_PIN    , OUTPUT);
  
  pinMode(Q_STEP_PIN  , OUTPUT);
  pinMode(Q_DIR_PIN    , OUTPUT);
  pinMode(Q_ENABLE_PIN    , OUTPUT);
  
   digitalWrite(X_ENABLE_PIN    , LOW);
    digitalWrite(Y_ENABLE_PIN    , LOW);
    digitalWrite(Z_ENABLE_PIN    , LOW);
    digitalWrite(E_ENABLE_PIN    , LOW);
    digitalWrite(Q_ENABLE_PIN    , LOW);
}





void loop () {
  
  if (millis() %1000 <500) 
    digitalWrite(LED_PIN, HIGH);
  else
   digitalWrite(LED_PIN, LOW);
  
  if (millis() %1000 <300) {
    digitalWrite(HEATER_0_PIN, HIGH);
    digitalWrite(HEATER_1_PIN, LOW);
    digitalWrite(FAN_PIN, LOW);
  } else if (millis() %1000 <600) {
    digitalWrite(HEATER_0_PIN, LOW);
    digitalWrite(HEATER_1_PIN, HIGH);
    digitalWrite(FAN_PIN, LOW);
  } else  {
    digitalWrite(HEATER_0_PIN, LOW);
    digitalWrite(HEATER_1_PIN, LOW);
    digitalWrite(FAN_PIN, HIGH);
  }
  
  if (millis() %10000 <5000) {
    digitalWrite(X_DIR_PIN    , HIGH);
    digitalWrite(Y_DIR_PIN    , HIGH);
    digitalWrite(Z_DIR_PIN    , HIGH);
    digitalWrite(E_DIR_PIN    , HIGH);
    digitalWrite(Q_DIR_PIN    , HIGH);
  }
  else {
    digitalWrite(X_DIR_PIN    , LOW);
    digitalWrite(Y_DIR_PIN    , LOW);
    digitalWrite(Z_DIR_PIN    , LOW);
    digitalWrite(E_DIR_PIN    , LOW);
    digitalWrite(Q_DIR_PIN    , LOW);
  }
  
  
    digitalWrite(X_STEP_PIN    , HIGH);
    digitalWrite(Y_STEP_PIN    , HIGH);
    digitalWrite(Z_STEP_PIN    , HIGH);
    digitalWrite(E_STEP_PIN    , HIGH);
    digitalWrite(Q_STEP_PIN    , HIGH); 
  delay(1);
    
    digitalWrite(X_STEP_PIN    , LOW);
    digitalWrite(Y_STEP_PIN    , LOW);
    digitalWrite(Z_STEP_PIN    , LOW);
    digitalWrite(E_STEP_PIN    , LOW);
    digitalWrite(Q_STEP_PIN    , LOW); 
  
}

Dus ga ik er vanuit dat alles goed geïnstalleerd is.

En als ik het goed begrijp Nico moet er niks van extra code geschreven worden als de GRBL lib direct opstart.
Of heb ik het verkeerd en wat kan ik hieraan doen.

Kijk nou eens even naar de verschillen in de code die je eerst postte, en die die je daarnet gepost hebt.
Dan moet je toch wel iets opvallen.

Heb je dit al eens bekeken? grbl/cpu_map_atmega2560.h at master · grbl/grbl · GitHub
En is dit in overeenstemming met de pin aansluitingen die jij toepast?

En dit:

Nico ik heb de volgende codes aangepast maar het werkt nog altijd niet, kan je me misschien helpen met de juiste codes, of wat er nog moet aangepast worden:

defaults.h:

/*
defaults.h - defaults settings configuration file
Part of Grbl

Copyright (c) 2012-2014 Sungeun K. Jeon

Grbl is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

Grbl is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with Grbl. If not, see http://www.gnu.org/licenses/.
*/

/* The defaults.h file serves as a central default settings file for different machine
types, from DIY CNC mills to CNC conversions of off-the-shelf machines. The settings
here are supplied by users, so your results may vary. However, this should give you
a good starting point as you get to know your machine and tweak the settings for your
our nefarious needs. */

#ifndef defaults_h
#define defaults_h

#ifdef DEFAULTS_GENERIC
// Grbl generic default settings. Should work across different machines.
#define DEFAULT_X_STEPS_PER_MM 250.0
#define DEFAULT_Y_STEPS_PER_MM 250.0
#define DEFAULT_Z_STEPS_PER_MM 250.0
#define DEFAULT_X_MAX_RATE 500.0 // mm/min
#define DEFAULT_Y_MAX_RATE 500.0 // mm/min
#define DEFAULT_Z_MAX_RATE 500.0 // mm/min
#define DEFAULT_X_ACCELERATION (10.06060) // 106060 mm/min^2 = 10 mm/sec^2
#define DEFAULT_Y_ACCELERATION (10.06060) // 106060 mm/min^2 = 10 mm/sec^2
#define DEFAULT_Z_ACCELERATION (10.06060) // 106060 mm/min^2 = 10 mm/sec^2
#define DEFAULT_X_MAX_TRAVEL 200.0 // mm
#define DEFAULT_Y_MAX_TRAVEL 200.0 // mm
#define DEFAULT_Z_MAX_TRAVEL 200.0 // mm
#define DEFAULT_STEP_PULSE_MICROSECONDS 10
#define DEFAULT_STEPPING_INVERT_MASK 0
#define DEFAULT_DIRECTION_INVERT_MASK ((1<<Y_DIRECTION_BIT)|(1<<Z_DIRECTION_BIT))
#define DEFAULT_STEPPER_IDLE_LOCK_TIME 25 // msec (0-254, 255 keeps steppers enabled)
#define DEFAULT_JUNCTION_DEVIATION 0.02 // mm
#define DEFAULT_ARC_TOLERANCE 0.002 // mm
#define DEFAULT_DECIMAL_PLACES 3
#define DEFAULT_REPORT_INCHES 0 // false
#define DEFAULT_AUTO_START 1 // true
#define DEFAULT_INVERT_ST_ENABLE 0 // false
#define DEFAULT_INVERT_LIMIT_PINS 0 // false
#define DEFAULT_SOFT_LIMIT_ENABLE 0 // false
#define DEFAULT_HARD_LIMIT_ENABLE 0 // false
#define DEFAULT_HOMING_ENABLE 0 // false
#define DEFAULT_HOMING_DIR_MASK 0 // move positive dir
#define DEFAULT_HOMING_FEED_RATE 25.0 // mm/min
#define DEFAULT_HOMING_SEEK_RATE 500.0 // mm/min
#define DEFAULT_HOMING_DEBOUNCE_DELAY 250 // msec (0-65k)
#define DEFAULT_HOMING_PULLOFF 1.0 // mm
#endif

Ik kriig bij het uploaden de volgende foutmelding:

Arduino: 1.6.9 (Mac OS X), Board:"Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"

In file included from /Users/hansdhollander/Documents/Arduino/sketch_jul26b/sketch_jul26b.ino:4:0:
/Users/hansdhollander/Documents/Arduino/libraries/Grbl9fMega2560/defaults.h:27:0: error: unterminated #ifndef
#ifndef defaults_h
^
In file included from /Users/hansdhollander/Documents/Arduino/libraries/Grbl9fMega2560/system.h:39:0,
from /Users/hansdhollander/Documents/Arduino/libraries/Grbl9fMega2560/gcode.h:25,
from /Users/hansdhollander/Documents/Arduino/sketch_jul26b/sketch_jul26b.ino:6:
/Users/hansdhollander/Documents/Arduino/libraries/Grbl9fMega2560/defaults.h:27:0: error: unterminated #ifndef
#ifndef defaults_h
^
exit status 1
Fout bij het compileren van board Arduino/Genuino Mega or Mega 2560

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

heb ook de cpu_map aangepast naar de volgende code:

cpu_map:

/*
cpu_map.h - CPU and pin mapping configuration file
Part of Grbl

Copyright (c) 2013-2014 Sungeun K. Jeon

Grbl is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

Grbl is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with Grbl. If not, see http://www.gnu.org/licenses/.
*/

/* The cpu_map.h file serves as a central pin mapping settings file for different processor
types, i.e. AVR 328p or AVR Mega 2560. Grbl officially supports the Arduino Uno, but the
other supplied pin mappings are supplied by users, so your results may vary. */

// NOTE: This is still a work in progress. We are still centralizing the configurations to
// this file, so your success may vary for other CPUs.

#ifndef cpu_map_h
#define cpu_map_h

//----------------------------------------------------------------------------------------

#ifdef CPU_MAP_ATMEGA2560 // (Arduino Mega 2560) Working @EliteEng

// Serial port pins
#define SERIAL_RX USART0_RX_vect
#define SERIAL_UDRE USART0_UDRE_vect

// Increase Buffers to make use of extra SRAM
//#define RX_BUFFER_SIZE 256
//#define TX_BUFFER_SIZE 128
//#define BLOCK_BUFFER_SIZE 36
//#define LINE_BUFFER_SIZE 100

// Define step pulse output pins. NOTE: All step bit pins must be on the same port.
#define STEP_DDR DDRA
#define STEP_PORT PORTA
#define STEP_PIN PINA
#define X_STEP_BIT 24 // MEGA2560 Digital Pin 24
#define Y_STEP_BIT 25 // MEGA2560 Digital Pin 25
#define Z_STEP_BIT 25 // MEGA2560 Digital Pin 26
#define STEP_MASK ((1<<X_STEP_BIT)|(1<<Y_STEP_BIT)|(1<<Z_STEP_BIT)) // All step bits

// Define step direction output pins. NOTE: All direction pins must be on the same port.
#define DIRECTION_DDR DDRA
#define DIRECTION_PORT PORTA
#define DIRECTION_PIN PINA
#define X_DIRECTION_BIT 27 // MEGA2560 Digital Pin 27
#define Y_DIRECTION_BIT 28 // MEGA2560 Digital Pin 28
#define Z_DIRECTION_BIT 29 // MEGA2560 Digital Pin 29
#define DIRECTION_MASK ((1<<X_DIRECTION_BIT)|(1<<Y_DIRECTION_BIT)|(1<<Z_DIRECTION_BIT)) // All direction bits

// Define stepper driver enable/disable output pin.
#define STEPPERS_DISABLE_DDR DDRB
#define STEPPERS_DISABLE_PORT PORTB
#define STEPPERS_DISABLE_BIT 13 // MEGA2560 Digital Pin 13
#define STEPPERS_DISABLE_MASK (1<<STEPPERS_DISABLE_BIT)

// NOTE: All limit bit pins must be on the same port
#define LIMIT_DDR DDRB
#define LIMIT_PORT PORTB
#define LIMIT_PIN PINB
#define X_LIMIT_BIT 10 // MEGA2560 Digital Pin 10
#define Y_LIMIT_BIT 11 // MEGA2560 Digital Pin 11
#define Z_LIMIT_BIT 12 // MEGA2560 Digital Pin 12
#define LIMIT_INT PCIE0 // Pin change interrupt enable pin
#define LIMIT_INT_vect PCINT0_vect
#define LIMIT_PCMSK PCMSK0 // Pin change interrupt register
#define LIMIT_MASK ((1<<X_LIMIT_BIT)|(1<<Y_LIMIT_BIT)|(1<<Z_LIMIT_BIT)) // All limit bits

// Define spindle enable and spindle direction output pins.
#define SPINDLE_ENABLE_DDR DDRH
#define SPINDLE_ENABLE_PORT PORTH
#define SPINDLE_ENABLE_BIT 6 // MEGA2560 Digital Pin 6
#define SPINDLE_DIRECTION_DDR DDRE
#define SPINDLE_DIRECTION_PORT PORTE
#define SPINDLE_DIRECTION_BIT 5 // MEGA2560 Digital Pin 5

// Define flood and mist coolant enable output pins.
// NOTE: Uno analog pins 4 and 5 are reserved for an i2c interface, and may be installed at
// a later date if flash and memory space allows.
#define COOLANT_FLOOD_DDR DDRH
#define COOLANT_FLOOD_PORT PORTH
#define COOLANT_FLOOD_BIT 8 // MEGA2560 Digital Pin 8
#ifdef ENABLE_M7 // Mist coolant disabled by default. See config.h to enable/disable.
#define COOLANT_MIST_DDR DDRH
#define COOLANT_MIST_PORT PORTH
#define COOLANT_MIST_BIT 9 // MEGA2560 Digital Pin 9
#endif

// Define user-control pinouts (cycle start, reset, feed hold) input pins.
// NOTE: All pinouts pins must be on the same port and not on a port with other input pins (limits).
#define PINOUT_DDR DDRK
#define PINOUT_PIN PINK
#define PINOUT_PORT PORTK
#define PIN_RESET 8 // MEGA2560 Analog Pin 8
#define PIN_FEED_HOLD 9 // MEGA2560 Analog Pin 9
#define PIN_CYCLE_START 10 // MEGA2560 Analog Pin 10
#define PINOUT_INT PCIE2 // Pin change interrupt enable pin
#define PINOUT_INT_vect PCINT2_vect
#define PINOUT_PCMSK PCMSK2 // Pin change interrupt register
#define PINOUT_MASK ((1<<PIN_RESET)|(1<<PIN_FEED_HOLD)|(1<<PIN_CYCLE_START))

// Define probe switch input pin.
#define PROBE_DDR DDRK
#define PROBE_PIN PINK
#define PROBE_PORT PORTK
#define PROBE_BIT 11 // MEGA2560 Analog Pin 11
#define PROBE_MASK (1<<PROBE_BIT)

// Start of PWM & Stepper Enabled Spindle
#ifdef VARIABLE_SPINDLE
// Advanced Configuration Below You should not need to touch these variables
// Set Timer up to use TIMER2B which is attached to Digital Pin 9
#define TCCRA_REGISTER TCCR2A
#define TCCRB_REGISTER TCCR2B
#define OCR_REGISTER OCR2B

#define COMB_BIT COM2B1
#define WAVE0_REGISTER WGM20
#define WAVE1_REGISTER WGM21
#define WAVE2_REGISTER WGM22
#define WAVE3_REGISTER WGM23

#define SPINDLE_PWM_DDR DDRH
#define SPINDLE_PWM_PORT PORTH
#define SPINDLE_PWM_BIT 9 // MEGA2560 Digital Pin 9
#endif // End of VARIABLE_SPINDLE

#endif

//----------------------------------------------------------------------------------------

/*
#ifdef CPU_MAP_CUSTOM_PROC
// For a custom pin map or different processor, copy and paste one of the default cpu map
// settings above and modify it to your needs. Then, make sure the defined name is also
// changed in the config.h file.
#endif
*/

#endif

Hans1:
Nico ik heb de volgende codes aangepast maar het werkt nog altijd niet, kan je me misschien helpen met de juiste codes, of wat er nog moet aangepast worden:

defaults.h:

/*
defaults.h - defaults settings configuration file
Part of Grbl

Copyright (c) 2012-2014 Sungeun K. Jeon

Grbl is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

Grbl is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with Grbl. If not, see http://www.gnu.org/licenses/.
*/

/* The defaults.h file serves as a central default settings file for different machine
types, from DIY CNC mills to CNC conversions of off-the-shelf machines. The settings
here are supplied by users, so your results may vary. However, this should give you
a good starting point as you get to know your machine and tweak the settings for your
our nefarious needs. */

#ifndef defaults_h
#define defaults_h

#ifdef DEFAULTS_GENERIC
// Grbl generic default settings. Should work across different machines.
#define DEFAULT_X_STEPS_PER_MM 250.0
#define DEFAULT_Y_STEPS_PER_MM 250.0
#define DEFAULT_Z_STEPS_PER_MM 250.0
#define DEFAULT_X_MAX_RATE 500.0 // mm/min
#define DEFAULT_Y_MAX_RATE 500.0 // mm/min
#define DEFAULT_Z_MAX_RATE 500.0 // mm/min
#define DEFAULT_X_ACCELERATION (10.06060) // 106060 mm/min^2 = 10 mm/sec^2
#define DEFAULT_Y_ACCELERATION (10.06060) // 106060 mm/min^2 = 10 mm/sec^2
#define DEFAULT_Z_ACCELERATION (10.06060) // 106060 mm/min^2 = 10 mm/sec^2
#define DEFAULT_X_MAX_TRAVEL 200.0 // mm
#define DEFAULT_Y_MAX_TRAVEL 200.0 // mm
#define DEFAULT_Z_MAX_TRAVEL 200.0 // mm
#define DEFAULT_STEP_PULSE_MICROSECONDS 10
#define DEFAULT_STEPPING_INVERT_MASK 0
#define DEFAULT_DIRECTION_INVERT_MASK ((1<<Y_DIRECTION_BIT)|(1<<Z_DIRECTION_BIT))
#define DEFAULT_STEPPER_IDLE_LOCK_TIME 25 // msec (0-254, 255 keeps steppers enabled)
#define DEFAULT_JUNCTION_DEVIATION 0.02 // mm
#define DEFAULT_ARC_TOLERANCE 0.002 // mm
#define DEFAULT_DECIMAL_PLACES 3
#define DEFAULT_REPORT_INCHES 0 // false
#define DEFAULT_AUTO_START 1 // true
#define DEFAULT_INVERT_ST_ENABLE 0 // false
#define DEFAULT_INVERT_LIMIT_PINS 0 // false
#define DEFAULT_SOFT_LIMIT_ENABLE 0 // false
#define DEFAULT_HARD_LIMIT_ENABLE 0 // false
#define DEFAULT_HOMING_ENABLE 0 // false
#define DEFAULT_HOMING_DIR_MASK 0 // move positive dir
#define DEFAULT_HOMING_FEED_RATE 25.0 // mm/min
#define DEFAULT_HOMING_SEEK_RATE 500.0 // mm/min
#define DEFAULT_HOMING_DEBOUNCE_DELAY 250 // msec (0-65k)
#define DEFAULT_HOMING_PULLOFF 1.0 // mm
#endif

Ik kriig bij het uploaden de volgende foutmelding:

Arduino: 1.6.9 (Mac OS X), Board:"Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"

In file included from /Users/hansdhollander/Documents/Arduino/sketch_jul26b/sketch_jul26b.ino:4:0:
/Users/hansdhollander/Documents/Arduino/libraries/Grbl9fMega2560/defaults.h:27:0: error: unterminated #ifndef
#ifndef defaults_h
^
In file included from /Users/hansdhollander/Documents/Arduino/libraries/Grbl9fMega2560/system.h:39:0,
from /Users/hansdhollander/Documents/Arduino/libraries/Grbl9fMega2560/gcode.h:25,
from /Users/hansdhollander/Documents/Arduino/sketch_jul26b/sketch_jul26b.ino:6:
/Users/hansdhollander/Documents/Arduino/libraries/Grbl9fMega2560/defaults.h:27:0: error: unterminated #ifndef
#ifndef defaults_h
^
exit status 1
Fout bij het compileren van board Arduino/Genuino Mega or Mega 2560

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

Je hebt een #endif aan het einde van de file verwijderd. Die moet er nog bij