How to upgrade to Holey-51.28 firmware using Webcontrol in preparation for running Makerverse

To update the firmware from webcontrol, you use the menu:

Actions->Upgrade Holey

Your webcontrol should ship with a firmware version included if you are using the release version. If you are using the development version like me, your button will be blank as shown in the picture above. To manually add a different version and have webcontrol flash the board for you, you must do the following:

  1. Compile the hex file. Do this in the arduino IDE . Press the check box at the upper left of the IDE window and then find the hex file name down at the bottom in the status window.

  2. Once you find the file, rename it from cnc_ctrl_v1.ino.hex to “holey-51.28.hex” or 51.29 or 51.30. but it must say holey-51.xx.hex or it won’t work.

  3. copy the file to your webcontrol/firmware/holey/ folder. If you are using the single file version, you won’t be able to find the folder because it will be temporary and will delete after webcontrol runs. Download the single folder version and try again. Changing versions will not change your calibration that is stored on the arduino or your webcontrol settings that are stored in the .WebControl folder in your home folder.

  4. Restart webcontrol

  5. Verify the button has the same version you named your file - > press the button and it should flash the board.

1 Like

Thanks for making this.

Here’s the specific 51.28 hex file I used when testing Makerverse: cnc_ctrl_v1.ino.hex (169.6 KB)

However, installing a Hex file is the same as installing the firmware via the Arduino IDE. I personally like the Arduino IDE approach because I can see what happened during the install process. I can also use the “Serial Monitor” to ensure that the firmware installed correctly. This is a good basic familiarity to have with your Arduino, if you have time. If you’re comfortable with it, just select the “Arduino Mega 2560” board and grab the source code from .

I have to disassemble my controller to get to it, so I prefer to have webcontrol do it.

Orob - Thanks for putting this together. Everything seems to go well by following your instructions. I even get the webcontrol warning that I have an unsupported version of the Holey firmware. On step 5, I get an error:

Any thoughts on what I’ve done wrong?

What version of webcontrol are you using? If you are using a development version, you have to manually install avrdude which is the flash program for linux. If you are using a distribution version of webcontrol, it should be included. how to know which one you have you ask? look at your folder structure:

developer version:

distribution version:

I’m using the development version of webcontrol - I’m on a Mac. Installing avrdude is a whole separate episode on the Mac.

So switching to the Arduino IDE.

I have been able to update to Holey 51.27 using @madgrizzle’s version here - No problem to compile the file using Arduino and then upload.

When I try to update to 51.28 using this version - - I am able to download the zip file and complie it using the Arduino and upload to the board, but nothing happens.

Is this the correct process, OR are you supposed to upload the holey-51.28.hex file? If that is what you are supposed to upload, how do you upload a compiled hex file that the Arduino IDE did not compile? The IDE only wants to open .ino files.

Thanks for helping a beginner work through all this.

I found with running the development mode, I download the release version just for the upload capability when needed. If the IDE is easiest to plug in your board and flash, then by all means, just use that. I have to disassemble my controller box to unplug the rpi to plug in to my laptop to use the arduino IDE, but compiling a hex and copying it to the raspberry pi and then using webcontrol to flash is pretty easy and I don’t have to even get up off my chair.

The trick to installing avrdude on a Mac is to use Homebrew. It will install all of the dependencies for you.

Once avrdude is installed, go to the Arduino IDE. Change the settings to verbose output. Compile and upload a known firmware update that works. Copy the output to a text editor and look for where the Arduino calls avrdude. Copy that line of code. Modify it in the text editor to point to where the holey-51.28.hex file is located and then run the line of code in the terminal.

1 Like

Hello, I’m a complete newb to arduino ide, however, I believe refreshing my firmware will allow makerverse to talk to my Mega 2560. I have had buffering issues with ground control during testing and want to upgrade.

Would it be possible to explain the second paragraph in greater detail. I don’t understand what do do with the test editing part.

Sorry, but I really don’t know.

Thank you for any help.

1 Like

You are right, you will need to update the firmware for use with makerverse.
The second paragraph is about using a command line utility AVRdude to use the holey-51.28.hex file and put it on the mega. if you have the arduino IDE installed on your PC, then you have AVRDude on your machine.

A post on the arduino forum has an example. The second post has the command for how to do it. You need to customize this command:

C:\Program Files (x86)\arduino-1.6.10\hardware\tools\avr/bin/avrdude -CC:\Program Files (x86)\arduino-1.6.10\hardware\tools\avr/etc/avrdude.conf -v -patmega328p -carduino -PCOM21 -b115200 -D -Uflash:w:C:\Users\per\AppData\Local\Temp\builda0905d717cd3fb20c5f6c59067701315.tmp/serial.ino.hex:i


  • where to find avrdude
  • avrdude’s config file
  • the mega type (-patmega328p)
  • PCOM21 should be whatever number com port your mega shows up as when you plug it in… if com 7, then PCOM7
  • the last c:\ is where to find the 51.28 hex file.

you should be able to leave the rest alone.

Thank you for the reply, so just to sum up. I am currently running on a Mac, I just installed the latest arduino IDE, downloaded and unpacked the holey firmware from madgrizzle, I then open up the cnc****.Ino file. Select the mega 2560 in boards, the right port and then compile and upload to the board. Hook everything back up and makerverse should see it. Just getting my head around it before tomorrow’s round three. But I did get my first cut out of ground control.


If you are compiling from the downloaded version, you need to use the webcontrolcnc/firmware version. then you need to check out the holey-firmware branch and compile that. If you pull the hex file (here) and rather than recompile, you just upload the .hex file, you will get 51.28. Either way you should be able to do it.

Ok, so hopefully the last stupid question, I tried to open the hex file in arduino, but it does not allow me to, do i just remove the .hex from the file name? with the hex prefix removed arduino opens it but it just looks like code.

sorry I honestly don’t know.

the arduino IDE (integrated development environment program) will create (compile) the code to create the hex file (firmware) and then copy it (upload) to the Arduino mega flash storage memory. The program used to upload it is avrdude and it just reads the hex file and sends it to the arduino Mega. If you find where AVRdude is on your hard drive, you can call it directly and not have to compile the program first if you already have the hex file. If you used windows, there is a program called AVRdude GUI and it will allow you to push buttons to make it work. The text commands from the terminal on your mac will need to be used to get that to work. it is a bit tricky though, so it may take a few failures to get it right. If it isn’t right, it just won’t work. Hang in there. Keep trying.

Ok guys, I started a new topic, I gave it my best but now she’s not working at all. Not sure what I did. I broke out my old windows 10 tuning laptop(car), installed the run from directory web control, worked ok, communicated, but I didn’t try to move sled, I then upgraded to holey 51.27, then followed above for holey 51.28. I tried to go back to my mac, makerverse still didn’t communicate, just gibberish, ground control seen the firmware as 51.28. No motor control now in ground control. So I went back to windows web control, nothing, flashed back to 1.28, nothing. Flashed to holey 51.28, left motor keeps running, no control. Flashed back to 1.26 and motors stopped, but now I can’t do anything, ground control(mac communicates, no motor control). I’m at a loss now. I figured the windows web control would be perfect. If I could only go back to yesterday, some times its better to leave it be I guess. :frowning:

Can you post a picture of the top board of your controller? Who sold it to you? The firmware has a pin combination it reads when the mega starts up so it knows which shield version is running. I’m curious if that isn’t quite right for each board version in the 51.28 firmware. The result could be that your encoder pins are then read backwards so the motor never gets to its setpoint, which could be why it spins seemingly out of control. I’m interested in the number of heatsinks on your board and the version number if there is one on it.

Thank you so much for the reply, I believe your on the right track. Well I hope so. Please see the below photos, please now that I’m back to the 1.26 Maslow Firmware, still no motor control, but when I test the motors/encoders with ground control, left fails, no movement anywhere, right fails, no movement anywhere, z axis test, right motor moves.

Something is a mess somewhere.

Hi, you need to download and install the firmware from here

Hope it helps :slight_smile:


Thank you 2cents!!! It is working again. Thank god. :slight_smile: I was getting worried. Thank you so much. I’m currently running the calibrations again. Well I guess my East Bay setup does not agree somewhere. I also tried web control but it didn’t seem to control it right or my laptop is just over whelmed, CPU is 100% pretty much running webcontrol, its old and sucks. Anyway, thanks so much for your help. I’ll just live with as is and ground control.