Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Woodpecker CNC GRBL 0.9 to 1.1f #336

Closed
fhollermayer opened this issue Dec 28, 2017 · 71 comments
Closed

Update Woodpecker CNC GRBL 0.9 to 1.1f #336

fhollermayer opened this issue Dec 28, 2017 · 71 comments

Comments

@fhollermayer
Copy link

Hello, I just recently decided to update my Chinese “Woodpecker CNC Board” to the most up-to-date grbl Version 1.1f.

I found Mariano Gaston’s YouTube video that promises the feasibility of this procedure and shows the necessary connections. I also read the issue about connecting limit switches to this board (#123) and as mentioned there I re-checked all pins from the header regarding there mapping to the 328P. For some reason I can’t get a direct connection between the pin associated with MISO and its counterpart on the chip itself. The connection seems to be bridged by something – maybe a diode? Nevertheless, I tried to connect my programmer (usbasp-clone and ArduinoISP). - Long story short, after several ours of fiddling around I finally managed to brick my controller board.

I know this is most probably not an issue with GRBL itself and thus should not be posted as an issue for that, but I have no idea where to look for support regarding this specific problem. So sorry for that, but any help is highly appreciated!

Following first what I’ve done to kill the board and then what I’ve tried to get it back up.

As described above I am using an usbasp-clone and an Arduino Nano as ArduinoISP. From the begin on I had problems connecting the Woodpecker using the usbasp-clone, so I mostly tried to update with the avrisp. With all connection in place and the external power supply connected I got something like this from avrdude:

`$ avrdude -c avrisp -p m328p -P com6 -b 19200 -B 100

avrdude.exe: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.02s

avrdude.exe: Device signature = 0x0fca07
avrdude.exe: Expected signature for ATmega328P is 1E 95 0F
Double check chip, or use -F to override this check.

avrdude.exe done. Thank you.`

After several hours I thought it would be a great idea to just modify Arduino’s avrdude configuration to expect this device signature. I clicked the “Burn bootloader” entry, it did something and then crashed. I’ve got no log from that procedure but now, the board is not serial-printing its version number on startup anymore.

Since then I’ve tried many different configurations, with and without external power supply using windows and linux hosts, testing my programmers with other 328p chips, etc.
My current test is just an avrdude invocation to query the device signature. Both programmers are working, I verified that with the other chip. For that reason, I assume the programmer-side wiring is correct as well. I checked the wiring to the Woodpecker board multiple times and for the MISO pin that is connected via an unknown component I also tried to bypass it by connecting the wire directly to the atmega pin.
Using the usbasp-clone I always get an ‘initialization failed’ (windows and linux host). With the ArduinoISP I get two different responses depending on the attachment of the programmers VCC line - despite the external supply – It’s either 0x0fca07 (with connected VCC) or 0x1f9f0f (with disconnected VCC) but never 0x1e950f what it should be. I tried different values for the -B parameter without any success.

So, any suggestions?

@chamnit
Copy link
Contributor

chamnit commented Dec 28, 2017

From what I can glean from your post, it doesn't look good for you. That youtube video said nothing about the specifics of burning v1.1, only that its possible. It also didn't say anything about having to alter the Arduino config to get it to work.

In my experience, I've never had any problems with flashing via programmer. I just made sure that everything was disconnected from the controller, since the programming pins are shared on the 328p. I also just use command line to compile and flash, often with the '-F' to override the signature check, which may or may not help you.

Anyhow, closing this issue since it's not a Grbl software problem, but you and others can still comment after.

@chamnit chamnit closed this as completed Dec 28, 2017
@fhollermayer
Copy link
Author

Thank you so much for your quick response. "[...], often with the '-F' to override" and the fact that my board was already bricked made me confident in retrying the update procedure and it just worked ;)

I used the Arduino IDE, an external power supply, disconnected stepper motors and spindle. I connected an Arduino Nano as described in my previous post and changed the device signature in the avrdude.conf

 RST       MISO
 |SCK      |MOSI
ooooooooooooooooo
ooooooooooooooooo
GND

@FelisucoVFR
Copy link

Hi fxh1357!
Good success!

I don't know how to start with! Can you please help me?
May I know a step by step procedure? Is it possible taking the actual .hex as a back up?
Do you create the .hex with IDE and then upload it?
Do you have any picture of the connections from your Nano to the Woodpecker board?
Which selections at the IDE? "Arduino as ISP"?
External power supply. Where? 5v?

Thanks!

@VirtualEnder
Copy link

So I'm a complete idiot and forgot to copy the settings out of grbl before I flashed this thing. Did anyone happen to save those settings, or have the correct settings for this unit?

On another note, my board had the Arduino bootloader already installed and flashes fine via the Arduino software. I just had to select Arduino Uno as the board and and it worked flawlessly. Now if I could just get the settings back....

@biasedlogic
Copy link

Well, your settings depend on your machine... Not knowing what that is will make it hard to come up with reasonable values.
On the other hand, the only thing set right in the original settings of my 1610 was the step per mm setting... It may be better to just start from scratch anyway

@X3msnake
Copy link

X3msnake commented Jan 13, 2018 via email

@fhollermayer
Copy link
Author

@X3msnake Can you provide a link where to get the 'original firmware'? I think that would be quite difficult in respect to the variety of ebay and AliExpress sellers using slighltly different Boards and components -

@fhollermayer
Copy link
Author

@VirtualEnder find following the settings I am currently using -

#ifdef DEFAULTS_MINI_1610
  // Grbl generic default settings merged with the values present in the MINI 1610 CNC stock firmware (GRBL 0.9 on a WOODPECKER CNC board).
  #define DEFAULT_X_STEPS_PER_MM 800.0
  #define DEFAULT_Y_STEPS_PER_MM 800.0
  #define DEFAULT_Z_STEPS_PER_MM 800.0
  #define DEFAULT_X_MAX_RATE 5000.0 // mm/min
  #define DEFAULT_Y_MAX_RATE 5000.0 // mm/min
  #define DEFAULT_Z_MAX_RATE 800.0 // mm/min
  #define DEFAULT_X_ACCELERATION (10.0*60*60) // 10*60*60 mm/min^2 = 10 mm/sec^2
  #define DEFAULT_Y_ACCELERATION (10.0*60*60) // 10*60*60 mm/min^2 = 10 mm/sec^2
  #define DEFAULT_Z_ACCELERATION (10.0*60*60) // 10*60*60 mm/min^2 = 10 mm/sec^2
  #define DEFAULT_X_MAX_TRAVEL 200.0 // mm NOTE: Must be a positive value.
  #define DEFAULT_Y_MAX_TRAVEL 200.0 // mm NOTE: Must be a positive value.
  #define DEFAULT_Z_MAX_TRAVEL 200.0 // mm NOTE: Must be a positive value.
  #define DEFAULT_SPINDLE_RPM_MAX 7000.0 // rpm
  #define DEFAULT_SPINDLE_RPM_MIN 0.0 // rpm
  #define DEFAULT_STEP_PULSE_MICROSECONDS 10
  #define DEFAULT_STEPPING_INVERT_MASK 0
  #define DEFAULT_DIRECTION_INVERT_MASK 5
  #define DEFAULT_STEPPER_IDLE_LOCK_TIME 25 // msec (0-254, 255 keeps steppers enabled)
  #define DEFAULT_STATUS_REPORT_MASK 3 // MPos enabled
  #define DEFAULT_JUNCTION_DEVIATION 0.01 // mm
  #define DEFAULT_ARC_TOLERANCE 0.002 // mm
  #define DEFAULT_REPORT_INCHES 0 // false
  #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_INVERT_PROBE_PIN 0 // false
  #define DEFAULT_LASER_MODE 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

Concrete changes are the steps_per_mm, max_rate, spindle_rpm_max, direction_invert_mask and status_report_mask

@fhollermayer
Copy link
Author

@FelisucoVFR

May I know a step by step procedure? Is it possible taking the actual .hex as a back up?

Have a look at the guide provided in the grbl wiki. To get the settings right you need to also check the "Advanced Users" section to alter the configuration as I mentioned in my last comment.
To use an Arduino as a Programmer there is a guide as well, see Flashing Grbl to an Arduino
To use an Arduino Nano see Arduino Nano as an ISP Programmer

On top of that you will need to adjust the expected device signature to trick Arduino IDE to flash the firmware regardless of the failed device signature check. (I also removed all cables running to the board and the stepper drivers to minimize side effects.)
To change the signature:

  • Try to upload the sketch, avrdude will print out the expected and actual values.
  • Copy that actual device signature and put in in your avrdude.conf at the section describing the m328p (id = “m328p”). Just add a # in front of the original device signature to easlily restore it afterwards an add a new line like signature = 0x0f 0xca 0x07; The file can be found at %localappdata%\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino9\etc\avrdude.conf
  • You should now be able to flash the firmware.

I had some changes in the read device signature during my testing, so maybe it fails on your first attempts. Just retry, or change the signature again. Be aware, that avrdude will not be able to verify the written firmware, most likely due to the same reason that changes the read signature! So an error in the console after uploading is expected.

I don't think, that it is possible to get the currently persisted *.hex file out there because some peripherals are seeminlgly interfering the downstream, thus the wrong device signature and failing checksum. I could be wrong at that point. The *.hex file itself would not get you anywhere because the problem itself is getting it onto the board.

Do you create the .hex with IDE and then upload it?

Arduino IDE creates the *.hex file on the fly when uploading.

Do you have any picture of the connections from your Nano to the Woodpecker board?

Have a look at Connecting ArduinoISP to WOODPECKER CNC

Which selections at the IDE? "Arduino as ISP"?

Correct "Arduino as ISP" and make sure to use Sketch->Upload using Programmer. Otherwise you will just uplaod the firmware to your Programmer

External power supply. Where? 5v?

As mentioned in my comment two weeks ago I was finally successful connecting the WOODPECKER CNC board to its 12V power supply. But a 5V connection from the arduino without connected power supply should be fine as well.

I spend several hour fiddling around to get my CNC running again. And there is some chance that you'll brick your controller. I would not recommend doing this update when you need your machine sooner as a new board would arrive in the mail.

@X3msnake
Copy link

@fxh1357

Can you provide a link where to get the 'original firmware'? I think that would be quite difficult in respect to the variety of ebay and AliExpress sellers using slighltly different Boards and components

I cannot, don't know what the user board is neither the seller, if it was my board i would search for the specs and/or ask the seller for the original hex file to do reupload.

It might end up being too much hassle and I would probably just pull the datasheets on the motors and mesure the axel pitch and use the reprap calculators to find the closest settings for the machine i had at hands

https://www.prusaprinters.org/calculator/

@VirtualEnder
Copy link

Thanks @fxh1357,

I already started rebuilding the config. I think we have basically the same machine, except mine is the 3018 version. The direction inversion mask is the same, but I'm still fussing with the steps/mm. I got to 750, but oddly the Y axis seems to be slightly different from the X and Z axis. I need to have it cut some lines along each axis at a fixed depth and take some measurements, but it's pretty close.

Unfortunately the board has been rebooting part way through the cut, which I'm still debugging. That is part of why I was trying to upgrade, but it hasn't solved the issue. Hopefully I can figure it out.

@FelisucoVFR
Copy link

@fxh1357
Thanks a lot! I’ll try soon!
Thanks for all the notes. It took me some time studying the Arduino as ISP but I catch it.
I did all as you described except for the signature as I used the -F option at avrdude. I just copied the long avrdude text the IDE wrote and added the -F in a cmd. It overrides the signature but got different error. I don’t remember now the error exactly, sorry.
I will update with better info about the fail I get.
I have the UNO I used as ISP and other CNC shield for it so I am not worry about the board but I would like to use this one.

Thanks again!

@FelisucoVFR
Copy link

I cannot success @fxh1357
Itryed many times again but no way. I am getting the following:

C:\Users\3Dsuco>C:\Users\XXX\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino9/bin/avrdude -CC:\Users\XXX\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino9/etc/avrdude.conf -v -patmega328p -cstk500v1 -PCOM7 -b19200 -Uflash:w:C:\Users\XXX\Documents\Arduino\Build_Folder/grbl11f.ino.ino.hex:i -F

avrdude: Version 6.3, compiled on Jan 17 2017 at 12:00:53
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch

     System wide configuration file is "C:\Users\XXX\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino9/etc/avrdude.conf"

     Using Port                    : COM7
     Using Programmer              : stk500v1
     Overriding Baud Rate          : 19200
     AVR Part                      : ATmega328P
     Chip Erase delay              : 9000 us
     PAGEL                         : PD7
     BS2                           : PC2
     RESET disposition             : dedicated
     RETRY pulse                   : SCK
     serial program mode           : yes
     parallel program mode         : yes
     Timeout                       : 200
     StabDelay                     : 100
     CmdexeDelay                   : 25
     SyncLoops                     : 32
     ByteDelay                     : 0
     PollIndex                     : 3
     PollValue                     : 0x53
     Memory Detail                 :

                              Block Poll               Page                       Polled
       Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
       ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
       eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
       flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
       lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
       hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
       efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
       lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
       calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
       signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

     Programmer Type : STK500
     Description     : Atmel STK500 Version 1.x firmware
     Hardware Version: 2
     Firmware Version: 1.18
     Topcard         : Unknown
     Vtarget         : 0.0 V
     Varef           : 0.0 V
     Oscillator      : Off
     SCK period      : 0.1 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.10s

avrdude: Device signature = 0xffffff (probably .reduced_core_tiny) (retrying)

Reading | ################################################## | 100% 0.08s

avrdude: Device signature = 0xffffff (probably .reduced_core_tiny) (retrying)

Reading | ################################################## | 100% 0.05s

avrdude: Device signature = 0xffffff (probably .reduced_core_tiny)
avrdude: Yikes! Invalid device signature.
avrdude: safemode: hfuse reads as FF
avrdude: safemode: efuse reads as FF
avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "C:\Users\XXX\Documents\Arduino\Build_Folder/grbl11f.ino.ino.hex"
avrdude: writing flash (30580 bytes):

Writing | ################################################## | 100% 43.75s

avrdude: 30580 bytes of flash written
avrdude: verifying flash memory against C:\Users\XXX\Documents\Arduino\Build_Folder/grbl11f.ino.ino.hex:
avrdude: load data flash data from input file C:\Users\XXX\Documents\Arduino\Build_Folder/grbl11f.ino.ino.hex:
avrdude: input file C:\Users\3Dsuco\Documents\Arduino\Build_Folder/grbl11f.ino.ino.hex contains 30580 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 25.97s

avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
0xff != 0x0c
avrdude: verification error; content mismatch

avrdude: safemode: hfuse reads as FF
avrdude: safemode: efuse reads as FF
avrdude: safemode: Fuses OK (E:FF, H:FF, L:FF)

avrdude done. Thank you.

Any idea?
Thanks

@VirtualEnder
Copy link

So my rebooting issue was an issue with the computer not the board. I switched to my laptop and it works great! 800mm/s was dead on. Got some acceptable cuts out of 2mm and 3mm carbon fiber. Will try some 5mm later this week, but it seems as if everything is working! I think for a $300 amazon special, that's a good deal.

@fhollermayer
Copy link
Author

@FelisucoVFR are you sure, that all your connections are correct?

@FelisucoVFR
Copy link

@fxh1357 Quite sure as I did from 0 three times with different drawings. All of them matched except for the vcc which in one is disconnected. I tried anyway with same result.
Anyway, the avrdude makes the write, which can be unreal, but it reads later to check. I understand it works.
I did it without any motor nor pololu, with and without external power.
It seems a kind of write protect.

@fhollermayer
Copy link
Author

@FelisucoVFR Do you always get the device signature 0xffffff?

@FelisucoVFR
Copy link

FelisucoVFR commented Jan 15, 2018

@fxh1357
Correct. Always the same one.
Which Arduino board I should select? UNO, Nano, Nano pro, Mini, doesn’t matter?
Well, I tried all of them. Just to save time next time.
Thanks a lot

@fhollermayer
Copy link
Author

@FelisucoVFR The chip on the woodpecker cnc is a 328p, so Nano should be right.

@FelisucoVFR
Copy link

@fxh1357
More tests, same results.
My concern was the most about the autoleveling which is included with grbl 1.1f but I found the software OpenCNCPilot which works also on 0.9, so I think I am going to desist about this.
Many thanks for your help.

@xseignard
Copy link

Hello,
Here is the command I used to upload grbl v1.1f to my woodpecker board (through the usb cable)

avrdude -pm328p -carduino -P/dev/cu.wchusbserial1420 -b57600 -D -Uflash:w:grbl_v1.1f.20170801.hex

Don't forget to save your settings before!! (running $$command)

@JBSchueler
Copy link

Hi, I have a woodpecker PCB like this one and would like to update from 0.9 to 1.1f.
Does anyone known if this boards use the default grbl cpu pin mapping or do I have to changes/swap some pins?
image

@JBSchueler
Copy link

Seems mine has a different baudrate (115k2) as others who where able to flash the woodpecker.

avrdude -CC:\Users\XXX\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino9/etc/avrdude.conf -v -patmega328p -carduino -PCOM11 -b115200 -Uflash:w:C:\projects\CNC\CNC3018\update_fw/grbl_v1.1f.20170801.hex:i

avrdude: Version 6.3, compiled on Jan 17 2017 at 12:00:53
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "C:\Users\XXX\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino9/etc/avrdude.conf"

         Using Port                    : COM11
         Using Programmer              : arduino
         Overriding Baud Rate          : 115200
         AVR Part                      : ATmega328P
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : Arduino
         Description     : Arduino
         Hardware Version: 3
         Firmware Version: 4.4
         Vtarget         : 0.3 V
         Varef           : 0.3 V
         Oscillator      : 28.800 kHz
         SCK period      : 3.3 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% -0.00s

avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: safemode: hfuse reads as 0
avrdude: safemode: efuse reads as 0
avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "C:\projects\CNC\CNC3018\update_fw/grbl_v1.1f.20170801.hex"
avrdude: writing flash (30492 bytes):

Writing | ################################################## | 100% 5.19s

avrdude: 30492 bytes of flash written
avrdude: verifying flash memory against C:\projects\CNC\CNC3018\update_fw/grbl_v1.1f.20170801.hex:
avrdude: load data flash data from input file C:\projects\CNC\CNC3018\update_fw/grbl_v1.1f.20170801.hex:
avrdude: input file C:\projects\CNC\CNC3018\update_fw/grbl_v1.1f.20170801.hex contains 30492 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 4.03s

avrdude: verifying ...
avrdude: 30492 bytes of flash verified

avrdude: safemode: hfuse reads as 0
avrdude: safemode: efuse reads as 0
avrdude: safemode: Fuses OK (E:00, H:00, L:00)

avrdude done.  Thank you.


C:\projects\arduino-1.8.5\hardware\tools\avr\bin>

@akomelj
Copy link

akomelj commented Mar 2, 2018

TL;DR In the end, I flashed mine with 115200 as well (my board looks exactly like yours, JBSchueler).

I nearly earned myself a PhD from programming this beast. At first, I was getting some strange not synced and response != expected errors from avrdude trying to flash it directly using xseignard's command. Then I hooked it up via a spare Nano ("Arduino as ISP" type) and tried flashing again - and this time it worked. Well...

The only problems is that I forgot to change -carduino parameter of avrdude so I was flashing my Nano instead. :-) Imagine the surprise when opening serial connection and seeing grbl 0.9j greeting message after a "successful" flash. Once I figured that out, I changed the controller type to -cavrisp and successfully flashed it via Nano ISP (baud 19200). Just in case, I flashed stock Arduino Nano bootloader on top of that and later tried re-flashing it again directly without the Nano ISP (baud 115200) and this time it worked like charm.

Unfortunately, I still don't know wheather the initial errors were only temporary or not.

So, long story short for posterity: when flashing directly with avrdude, use -carduino and rates 57600 or 115200; when flashing with avrdude via Arduino ISP, use -cavrisp and rate 19200. If flashing the bootloader, first flash the bootloader and then grbl (with avrdude -D not to erase the bootloader).

@JBSchueler
Copy link

Thanks for the update @akomelj, this is well explained.

I tried programming via an Arduino ISP programmer but was not able to succeed.
This is how I connected the SPI interface.
image

So I tried direct updating the FW via the USB connection of the woodpecker and seems it has a boot loader when shipped.

After flashed the woodpecker to 1.1f and send the configurations to the eeprom it works all just out of the box.

@9a4gl
Copy link

9a4gl commented Mar 10, 2018

Can anyone explain how to copy settings out before flashing to avoid problems that @VirtualEnder had ? In summary of 1.1 they mention EEPROM settings will be wiped and restored with new settings. I am new to this, what software tools you use to see/copy/restore those settings ?

@JBSchueler
Copy link

Use $$ to read the settings from the EEprom.
this can be done via any terminal program or most of the CNC programs have the option to enter manual instructions, like $$.
Copy and save the settings from the terminal into a file.
That file can be used to upload the old settings to the freshly burned board..

@9a4gl
Copy link

9a4gl commented Mar 11, 2018

Thanks. In that case I maybe have something for @VirtualEnder . I bought this https://www.ebay.com/itm/253468669130 it is 3018 with Woodpacker 2.8 board. Here are settings I read:

$0=10 (step pulse, usec)       
$1=25 (step idle delay, msec)
$2=0 (step port invert mask:00000000)
$3=5 (dir port invert mask:00000101)
$4=0 (step enable invert, bool) 
$5=0 (limit pins invert, bool)  
$6=0 (probe pin invert, bool)
$10=3 (status report mask:00000011)
$11=0.010 (junction deviation, mm)
$12=0.002 (arc tolerance, mm)     
$13=0 (report inches, bool)             
$20=0 (soft limits, bool)
$21=0 (hard limits, bool)         
$22=0 (homing cycle, bool)                                                    
$23=0 (homing dir invert mask:00000000)
$24=25.000 (homing feed, mm/min) 
$25=500.000 (homing seek, mm/min)
$26=250 (homing debounce, msec)
$27=1.000 (homing pull-off, mm)   
$100=800.000 (x, step/mm)
$101=800.000 (y, step/mm)         
$102=800.000 (z, step/mm)
$110=800.000 (x max rate, mm/min)
$111=800.000 (y max rate, mm/min)
$112=500.000 (z max rate, mm/min)              
$120=10.000 (x accel, mm/sec^2)
$121=10.000 (y accel, mm/sec^2)
$122=10.000 (z accel, mm/sec^2)
$130=200.000 (x max travel, mm)
$131=200.000 (y max travel, mm)
$132=200.000 (z max travel, mm)                                               
ok             

@jonhwiki
Copy link

jonhwiki commented Aug 4, 2018

Help how to restore original firmware grbl 1.1f. By mistake install benks eleksmaker and the motherboard does not work

@Orval14
Copy link

Orval14 commented Aug 5, 2018

Good evening,
blourido - your description is consistent with the allusion of my point 3 already described and well commented in the previous posts. For information, you can connect the tab "MISO" on the Zen connector. To have the same card as you, it works very well like this and it's easier to wire.
36897152-ac8b7602-1e15-11e8-9d5e-fb9425044941

jonhwiki - You can repeat the description made by -blourido- You can even, at worst, invest in an arduino Uno ($ 3) to recover your Woodpecker. If it does not work look at the semi-manual method of tgirard and used the UNO remained cable like IPS to put back the correct version (beware the 19200 speed for me with a 3.1 card - see above).

@jonhwiki
Copy link

jonhwiki commented Aug 5, 2018

Some more detailed video, try the arduino load the grbl and it does not work.

@Orval14
Copy link

Orval14 commented Aug 6, 2018

It's a bit short "it does not work"
What does not work?

  • the card on the CNC,
  • flashing the bootloader (error message?),
  • the loading of the Grbl version (error message?),
  • the program itself (test with PuTTY for example?)
    Where does your update procedure stop working with which error?

@blourido
Copy link

blourido commented Aug 7, 2018

Dear Orval14:

I look at your Woodpecker board but it´s not the same as mine.
WOODPECKER 3.1 GRBL is different than WOODPECKER CNC GRBL0.9
Is important to look if your board is exactly the same, because each board is different and the pin board is different.

@Orval14
Copy link

Orval14 commented Aug 8, 2018

Good evening blourido,

I have a Woodpecker 3.1 as in your photos with the UART plug at the bottom for the small keyboard / miniSD card. Sorry, I took the picture of a 0.9 version of a previous post to illustrate my point. I am not at home to be able to take a picture of my card 3.1.
Actually the MISO lug is the one you specify but without a real connection I never managed to finish the update (synchronization error). By plugging the MISO on the Zen plug (electrical continued with multimeter checked) and soldering the MOSI on the regulator leg, the transfer worked the first time.

For those who encounter some concern with this temporary contact on this very thin lug of the microprocessor (I like your protection between MISO and MOSI), the Zen plug seems more simple.

Photo of the seller's site of my card - screenprint "Woodpecker 3.1 GRBL" - purchase June 2018
woodpecker3 1

@Orval14
Copy link

Orval14 commented Aug 8, 2018

Small complement

For those who have a Woodpecker 3.1 card and want to solder a connector to flash the bootloader, you can connect to the holes at the bottom of the card like this:

connecteur3 1

@gojimmypi
Copy link

@blourido and @Orval14 thank you for posting this information on the Woodpecker 3.1 GRBL board. I've ordered my first-ever CNC (a 3018, specifically this one) and I am expecting it this week! :)

Would you happen to have a schematic for the Woodpecker 3.1 controller? I found this one, but it is unlabeled. I suspect it is for a slightly different board:

https://s3.amazonaws.com/linksprite/cnc/schematic+2.pdf

I suppose the most important thing is the image above showing the bootloader pins.

Thanks

@Orval14
Copy link

Orval14 commented Oct 14, 2018

Good evening gojimmypi,
This scheme must be for version 0.9 or other but not for a 3.1 ... For exemple, if you look at the bottom right on the diagram, it indicates the wiring of 3 LEDs (5V, RxD and TxD). On the 3.1 you ordered, the LED2 RxD no longer exists (and many other small changes as the UART port, its resistors and capacitors aren't shown ...).
Personally schematic parts that have occupied me, are on pieces of paper nothing so clean ... This diagram has the merit of giving however a good basis of work to understand the wiring of this card.

For the update of GRBL, the explanations of previous posts and this wiring should be able to assist you.
Welcome to the world of CNC.

@ccantill
Copy link

ccantill commented Nov 25, 2018

FYI, I found out there is a much simpler way of re-flashing my Woodpecker 3.0 board with just the onboard CH340 serial. Apparently the bootloader is already loaded on the chip, but the reset pin isn't hooked to the CH340. The key is to ground the reset pin, then release from ground and run avrdude at the exact same time. I used the two middle pins of the bottom row of the UART connector for this. Timing is critical here and starting avrdude and releasing RST from GND has to happen pretty much at the exact same time.

@RaulJYepez
Copy link

Good day @hberjanin .

  1. You need download the .hex file of grbl 1.1 in the next link: https://github.com/gnea/grbl

image

  1. Conect your board 3.0.2 with the normal cable and in Xloader you have to select the hex file, the device is Duemilanove/Nano(ATmega328) the correct COM port and baud rate 115200

image

  1. Upload the file (this step takes some minutes, don't go insane)

  2. Configure the board inside of the control software (Candle in my case)

Regards

@einencool
Copy link

Hello, I need to ask one question, because it‘s not clear for me.
I have the woodpecker 2.9 GRBL Board that was left from a little 1610-CNC. Long story short. I got it flashed with the GRBL 1.1f. First flashing the Bootloader with an Arduino Uno and then flashing the GRBL Hex file with the AVRDude cmd-Box because Arduino IDE doesn‘t work several times...

I‘ve got one question for my little machine. First to say, the Board is at the moment not in the machine.
I want to use a laser with this board.
Does the Pin-Out change during the update Process? Because the spindle PWM should have changed, or isn‘t it?
Normaly for my bigger CNC I‘m using bCNC for controlling. Do I need to change for the Laser to the „Candle“ Software?
And one last, but I hope not so stupid question. I‘ve got a 24V Power supply on the board. Does it convert the Power for the Laser automatically to 12V or do I have to change my Power supply to 12V?

Sorry for the noob questions, but I don‘t want to toast my board g
Greets
Chris

@bmalbusca
Copy link

Hello:
I just get grbl 1.1f in my CNC Machine.

The WOODPECKER 3.1 GRBL is the control board my CNC have, this is an arduino uno chinesse clon, but they didn´t install the bootloader and you can´t upgrade from USB port.

Make sure your board is the same because each Woodpecker version is different.

woodpecker pins

The easy way to upgrade from grbl 0.9 for me is to use an arduino uno. You can program this arduino as a programer.

From the ARDUINO IDE "Quemar Bootloader"
arduino1

You must conect this arduino pins to Woodpecker Board (look at the pictures):
Aduino Woodpecker
pin 10 to Rst (orange wire)
pin 11 to MOSI (green wire) (crocodile to mosfet)
pin 12 to MISO (white wire) (directly to Atmel mega 328P pin)
pin 13 to d13 (SCK) (yelow wire)
Vcc (5V) to 5V (red wire)
GND to GND (brown wire)

conexion 1

conexion 2

Finaly you can upgrade grbl from USB with the arduino IDE

arduino2

Hi, I have an error when I'm trying to burn the bootloader of woodpecker : avrdude: stk500_disable(): unknown response=0x12 . Wich configurations Arduino ISP have you used? I0m using the Arduino Nano.

@Orval14
Copy link

Orval14 commented Feb 6, 2019

Hello, normally Nano or Uno it must work all the same if the wiring is good.
To have a little more information on the transfer, you can modify the upload.verbose = true line in the preferences.txt file to the end of the file (see its location in file-> preferences or [ctrl] + [,]) .
To also put the odds on your side, make this update the controller card of the Woodpecker unconnected and with its own power supply. The USB cable is only for data transfer (current less than 500mA).
You can reset (on the Woodpecker) just before starting the transfer (actions as simultaneous as possible).
Good luck

PS: - Do not forget to change the programmer to AVR ISP and no longer USBasp.

  • And change the target to Namo / ATmega328P for the Woodpecker.
    Sorry for this (perhaps obvious) note but otherwise it is the Arduino Nano ISP that you are trying to update ...

@peagerfw
Copy link

Hi guys, I have problem with my two board woodpecker 3.2 - 3.2A
All this boards are updated on 1.1f and thats it all with my "tuning" I do not have any next upgrade.
1)Board 3.2

  • when I working, board is always disconnect from usb port. (after 10min ,25min or 1hour always diferent time)

2)Board 3.2A
-Stepper motor Y,X not work. (spindle motor is ok)
-used software GRBL candle
-picture for info
(12v led not lighting,SEMI is very hot)
=Bad 47uH?
W3 2
W3 2A

I have read many informations, but I can not find solution of this problem. Help me please. Thank you
Peter

@Edwinrj
Copy link

Edwinrj commented Aug 11, 2019

I discovered a solution, what happens is that the boards are configured with an old bootloader and the arduino IDE recognizes it as an arduino nano in the old bootloader option (I am using version 1.8.9).

image

I uploaded the GRBL 1.1 with the arduino IDE, place these settings (my board woodpecker is v3.3)

    $ 1 = 25
    $ 2 = 0
    $ 3 = 5
    $ 4 = 0
    $ 5 = 0
    $ 6 = 0
    $ 10 = 3
    $ 11 = 0.010
    $ 12 = 0.002
    $ 13 = 0
    $ 20 = 0
    $ 21 = 0
    $ 22 = 0
    $ 23 = 0
    $ 24 = 25,000
    $ 25 = 500,000
    $ 26 = 250
    $ 27 = 1,000
    $ 30 = 1000
    $ 31 = 0
    $ 32 = 0
    $ 100 = 800,000
    $ 101 = 800,000
    $ 102 = 800,000
    $ 110 = 800,000
    $ 111 = 800,000
    $ 112 = 500,000
    $ 120 = 10,000
    $ 121 = 10,000
    $ 122 = 10,000
    $ 130 = 200,000
    $ 131 = 200,000

and the CNC worked

@martinglass
Copy link

Here's the stock settings from my Woodpecker CNC Grbl 0.9j board. Acceleration rates are much higher (like 5000 for X & Y) compared to the Default Grbl ones:

$$
$0=10 (step pulse, usec)
$1=25 (step idle delay, msec)
$2=0 (step port invert mask:00000000)
$3=2 (dir port invert mask:00000010)
$4=0 (step enable invert, bool)
$5=0 (limit pins invert, bool)
$6=0 (probe pin invert, bool)
$10=3 (status report mask:00000011)
$11=0.010 (junction deviation, mm)
$12=0.002 (arc tolerance, mm)
$13=0 (report inches, bool)
$20=0 (soft limits, bool)
$21=0 (hard limits, bool)
$22=0 (homing cycle, bool)
$23=0 (homing dir invert mask:00000000)
$24=25.000 (homing feed, mm/min)
$25=500.000 (homing seek, mm/min)
$26=250 (homing debounce, msec)
$27=1.000 (homing pull-off, mm)
$100=800.000 (x, step/mm)
$101=800.000 (y, step/mm)
$102=800.000 (z, step/mm)
$110=5000.000 (x max rate, mm/min)
$111=5000.000 (y max rate, mm/min)
$112=800.000 (z max rate, mm/min)
$120=10.000 (x accel, mm/sec^2)
$121=10.000 (y accel, mm/sec^2)
$122=10.000 (z accel, mm/sec^2)
$130=200.000 (x max travel, mm)
$131=200.000 (y max travel, mm)
$132=200.000 (z max travel, mm)

@pxp888
Copy link

pxp888 commented Aug 21, 2019

I have the woodpecker CNC board version 3.3. Are the pins for ISP programming the same as 3.2?

@FelisucoVFR
Copy link

Yeah! After lot of time away from hobbies, I could finally succeed to upgrade to grbl 1.1h using the @Orval14 connection:


@fxh1357 Thanks again.

What I could not do is burning the bootloader. It says to be done but I cannot use the USB to upload a new scketch.

Thanks to all

@maniakpc
Copy link

maniakpc commented Dec 2, 2019

@peagerfw hello i have the same problem 12 DC power converter is dead, i tried replace 470 capacitor but no way, what you do with this piece of :D ? btw i am from slovakia too bro.

@calston
Copy link

calston commented Jun 1, 2020

For anyone else coming across this, yes simply removing the stepper drivers makes it flash as usual from Arduino IDE!

@FelisucoVFR
Copy link

Not all the boards @calston. Mine didn’t go so easy and I tried that too. Only way working for me was the last one I commented. Even previous similar ones didn’t work for me.
Someone said that after burning a bootloader you can use the USB normally but I went tired to try that, so a few wires and run is not too bad.

@FelisucoVFR
Copy link

May be new versions of the Woodpecker?
Which one you have?

@calston
Copy link

calston commented Jun 1, 2020

Mine doesn't have a version, it just says "Woodpecker CNC GRBL 0.9", but I do notice the reset button is rotated 90 degrees to the one in the pictures above.

@GitHubCaps
Copy link

GitHubCaps commented Jun 22, 2020

Thank you to everyone sharing your results here. I finally got my CNC PRO 3018 flashed to the latest version grbl v1.1h with some modifications. I would like to note that it already came with WOODPECKER 3.2 and grbl v1.1f.20170801 was already on it (purchased Nov 2018).

Board and offline controller looks similar to this one here:

#336 (comment)

JBSchueler mentioned this

Seems mine has a different baudrate (115k2) as others who where able to flash the woodpecker.

avrdude -CC:\Users\XXX\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino9/etc/avrdude.conf -v -patmega328p -carduino -PCOM11 -b115200 -Uflash:w:C:\projects\CNC\CNC3018\update_fw/grbl_v1.1f.20170801.hex:i

Using Arduino IDE:
I first tried with Tools > Board > Arduino Uno, however it didn't work.

This worked :
Tools > Board > Arduino Nano
Tools > Processor > ATmega328P (Old Bootloader)
Tools > Programmer > AVR ISP

I remembered seeing this in avrdude devices.txt and figured it was worth a shot to try the different Nano settings.

Mega(ATMEGA1280);m1280;stk500;57600;
Duemilanove/Nano(ATmega328);m328p;stk500;57600;
Duemilanove/Nano(ATmega168);m168;stk500;19200;
Uno(ATmega328);m328p;stk500;115200;
Mega(ATMEGA2560);atmega2560;stk500v2;115200;

Strangely enough, -b57600 worked like a charm and is what ATmega328P (Old Bootloader) is configured to use. Though I thought for sure it had to be -b115200, since that is how I connect and use it with bCNC. Also, I didn't use a programmer, just Upload after Verify / compiled it.

/bin/avrdude -C/etc/avrdude.conf -v -patmega328p -carduino -P/dev/ttyUSB0 -b57600 -D -Uflash:w:/tmp/arduino_build/grblUpload.ino.hex:i

No -F or -B parameters were even needed, just testing with different baudrates

/home/user/.arduino15/packages/arduino/tools/avrdude/6.3.0-arduino17/bin/avrdude -C/home/user/.arduino15/packages/arduino/tools/avrdude/6.3.0-arduino17/etc/avrdude.conf -v -patmega328p -carduino -P/dev/ttyUSB0 -b57600 -D -Uflash:w:/tmp/arduino_build_370015/grblUpload.ino.hex:i 

avrdude: Version 6.3-20190619
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "/home/user/.arduino15/packages/arduino/tools/avrdude/6.3.0-arduino17/etc/avrdude.conf"
         User configuration file is "/home/user/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/ttyUSB0
         Using Programmer              : arduino
         Overriding Baud Rate          : 57600
         AVR Part                      : ATmega328P
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : Arduino
         Description     : Arduino
         Hardware Version: 2
         Firmware Version: 1.16
         Vtarget         : 0.0 V
         Varef           : 0.0 V
         Oscillator      : Off
         SCK period      : 0.1 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: reading input file "/tmp/arduino_build_370015/grblUpload.ino.hex"
avrdude: writing flash (29738 bytes):

Writing | ################################################## | 100% 18.02s

avrdude: 29738 bytes of flash written
avrdude: verifying flash memory against /tmp/arduino_build_370015/grblUpload.ino.hex:
avrdude: load data flash data from input file /tmp/arduino_build_370015/grblUpload.ino.hex:
avrdude: input file /tmp/arduino_build_370015/grblUpload.ino.hex contains 29738 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 15.96s

avrdude: verifying ...
avrdude: 29738 bytes of flash verified

avrdude done.  Thank you.

Figured I may as well share this for anyone looking for optimal settings for the 3018:
Place this in default.h...

#ifdef DEFAULTS_CNC_PRO_3018
  // Grbl custom settings.
  #define DEFAULT_X_STEPS_PER_MM 800.0
  #define DEFAULT_Y_STEPS_PER_MM 800.0
  #define DEFAULT_Z_STEPS_PER_MM 800.0
  #define DEFAULT_X_MAX_RATE 2500.0 // mm/min
  #define DEFAULT_Y_MAX_RATE 2500.0 // mm/min
  #define DEFAULT_Z_MAX_RATE 2000.0 // mm/min
  // #define DEFAULT_X_ACCELERATION (10.0*60*60) // 10*60*60 mm/min^2 = 10 mm/sec^2
  // #define DEFAULT_Y_ACCELERATION (10.0*60*60) // 10*60*60 mm/min^2 = 10 mm/sec^2
  // #define DEFAULT_Z_ACCELERATION (10.0*60*60) // 10*60*60 mm/min^2 = 10 mm/sec^2
  #define DEFAULT_X_ACCELERATION 80.0
  #define DEFAULT_Y_ACCELERATION 80.0
  #define DEFAULT_Z_ACCELERATION 100.0
  #define DEFAULT_X_MAX_TRAVEL 300.0 // mm NOTE: Must be a positive value.
  #define DEFAULT_Y_MAX_TRAVEL 180.0 // mm NOTE: Must be a positive value.
  #define DEFAULT_Z_MAX_TRAVEL 45.0  // mm NOTE: Must be a positive value.
  #define DEFAULT_SPINDLE_RPM_MAX 255.0 // rpm (I use this setting for both laser and milling)
  #define DEFAULT_SPINDLE_RPM_MIN 5.0 // rpm
  #define DEFAULT_STEP_PULSE_MICROSECONDS 10
  #define DEFAULT_STEPPING_INVERT_MASK 0
  #define DEFAULT_DIRECTION_INVERT_MASK 5 // 0
  #define DEFAULT_STEPPER_IDLE_LOCK_TIME 25 // msec (0-254, 255 keeps steppers enabled)
  #define DEFAULT_STATUS_REPORT_MASK 3 // MPos enabled ($10=1 bCNC recommended $10=3 for v1.1)
  #define DEFAULT_JUNCTION_DEVIATION 0.01 // mm
  #define DEFAULT_ARC_TOLERANCE 0.002 // mm
  #define DEFAULT_REPORT_INCHES 0 // false
  #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_INVERT_PROBE_PIN 0 // false
  #define DEFAULT_LASER_MODE 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

and change in config.h from

#define DEFAULTS_GENERIC
#define CPU_MAP_ATMEGA328P // Arduino Uno CPU

to

// #define DEFAULTS_GENERIC
#define DEFAULTS_CNC_PRO_3018 // Custom
#define CPU_MAP_ATMEGA328P // Arduino Uno CPU

Note: I did have all steppers disconnected and only the 24v power supply and usb cable hooked up.

Hopefully that may help others out that stumbles here like I did

@gurux13
Copy link

gurux13 commented Sep 19, 2021

If you're running into the issue raised in the first comment, chances are your CNC board is getting in the way of flashing.
I've tried reading the firmware multiple times with -F (as the device ID was incorrect), but was getting different results.

The issue turned out to be capacitances on the board. Here's what the CLK line looks like:
ADS00003

I've lowered the flashing speed in Arduino ISP code tenfold (replace this with (100000/6)):
image

After this change it worked like a charm - try it.

(the CLK line above is after lowering the speed).

@rcimports
Copy link

I realize im late to the party but for anyone following, i was able to update my woodpecker board to grbl 1.1h with a usb connection and a combination of tutorials.
using arduino ide 1.8.5 not 2.0, (2.0 would not let me add the zip library correctly)
download grbl 1.1h from their github and add it as a zip library to arduino ide,
then you need to download the Atmel AVR explained minis library in the board manager.
Now select "Atmel atmega 328p explained mini as the board" and "Arduino as ISP (ATmega32U4)" as the programmer. this should allow you to upload GRBL successfully. hope this helps!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests