I'm in the process of tweaking the firmware (Repetier 0.92.6) because of some problems mentioned here: Delta printer printing incorrect dimensions in X and Y directions. Z dimensions are correct

But I found out that the printer manufacturer has locked the firmware (probably) and I cannot edit it. So I have to burn a new one (I guess? Correct me if I'm wrong)

Printer name: Dimension Dual Delta

Manufacturer: J Group Robotics

Website: http://www.jgrouprobotics.com/dimension-dual-delta

I have the slicer (Simplify3D) configured with the FFF profile as my printer was working completely fine up until a few weeks ago. I just want to know that if I change the firmware, would I have to change/update the profile as well? If yes, how do I do that?

Here is a screenshot of Repetier host. The "JGR" continues indefinitely:

Screenshot of log

Here is the actual log text

22:56:00.216 : OpenGL version:4.2.0
22:56:00.218 : OpenGL renderer:GeForce GT 540M/PCIe/SSE2
22:56:00.218 : Using fast VBOs for rendering is possible
22:56:06.634 : Printer reset detected - initalizing
22:56:06.661 : start
22:56:06.662 : Info:External Reset
22:56:06.662 : Info:Autoleveling enabled
22:56:06.662 : Transformation matrix: 0.999994 0.000010 0.003587 0.000000 0.999996 -0.002727 -0.003587 0.002727 0.999990
22:56:06.865 : N1 M110*34
22:56:06.865 : N2 M115*36
22:56:06.865 : N3 M105*36
22:56:06.865 : N4 M114*35
22:56:06.865 : N5 M111 S6*98
22:56:06.869 : N6 T0*60
22:56:06.870 : N7 M20*22
22:56:06.871 : N8 M80*19
22:56:06.872 : N9 M105*46
22:56:08.706 : Free RAM:1002
22:56:08.706 : Autoretract:0
22:56:08.706 : X:0.00 Y:0.00 Z:0.000 E:0.0000
22:56:08.713 : N10 M220 S100*80
22:56:08.713 : N11 M221 S100*80
22:56:08.714 : N12 M111 S6*84
22:56:08.714 : FIRMWARE_NAME:Repetier_0.92.6 FIRMWARE_URL:https://github.com/repetier/Repetier-Firmware/ PROTOCOL_VERSION:1.0 MACHINE_TYPE:Delta EXTRUDER_COUNT:2 REPETIER_PROTOCOL:3
22:56:08.714 : Printed filament:32.75m Printing time:0 days 6 hours 0 min
22:56:08.714 : PrinterMode:FFF
22:56:08.714 : N13 T0*8
22:56:08.745 : X:0.00 Y:0.00 Z:0.000 E:0.0000
22:56:08.745 : Begin file list
22:56:08.746 : End file list
22:56:09.726 : JGR
22:56:09.960 : N14 M105*18
22:56:10.972 : JGR
22:56:11.979 : JGR
22:56:12.969 : JGR
22:56:13.016 : N15 M105*19
22:56:14.028 : JGR
22:56:15.035 : JGR
22:56:16.025 : JGR
22:56:16.072 : N16 M105*16
22:56:17.085 : JGR
22:56:18.091 : JGR
22:56:19.081 : JGR
22:56:19.134 : N17 M105*17
22:56:20.157 : JGR
22:56:21.163 : JGR
22:56:22.154 : JGR
22:56:22.189 : N18 M105*30
22:56:23.202 : JGR
22:56:24.208 : JGR
22:56:25.199 : JGR
22:56:25.245 : N19 M105*31
22:56:26.253 : JGR
22:56:27.261 : JGR
22:56:28.267 : JGR
22:56:28.307 : N20 M105*21
22:56:29.319 : JGR
22:56:30.326 : JGR
22:56:31.316 : JGR
22:56:31.363 : N21 M105*20
22:56:32.376 : JGR
22:56:33.382 : JGR
22:56:34.372 : JGR

Edit: Since it is advisable to get a new controller board and keep the current one as it is, I'm attaching a picture of what my printer is controlled by.

enter image description here

The black box on the green board reads HRD 12008. Google says its a DC-DC SMPS module but mine has some extra connectors than what I could find online.

The black board is a MKS Base v1.3

The other box is a solid state relay.

This is more intimidating than I thought it would be. How do I proceed now? If I get a brand new controller board to play with, which should it be? Also, I can't seem to locate any RAMPS shield.

  • $\begingroup$ The reason that you have no RAMPS board is that, on your board, the RAMPS and the Arduino circuitry are merged into one. Any new controller would work, as they all run the same firmware. There are many to choose from. As you are just experimenting (and reverse engineering) at this stage, I personally would buy a cheap Chinese Arduino Mega 2560 and RAMPS board on eBay, for only $10 (if you buy them separately - don't get a combination "deal"), to test your settings. Once you are happy with those settings, then you can spend more money on a better board, should you feel that you need it. $\endgroup$ – Greenonline Jun 3 '17 at 23:54

The firmware is not really locked by the OEM1, you just need to upload (or, as you say burn) a new version. This is not unusual2.

Repetier is just like any other firmware that uses Arduino boards. While it may seem intimidating at first, it really is quite easy to regularly upload new firmware to the Arduino Mega 2560 board3. If you are not familiar with Arduino programming at all, then there are a good number of Repetier oriented guides out there, for example, from Repetier's own web site, Repetier-Firmware Documentation.

If are you familiar with Arduino programming, then it really is the same as uploading the Blink sketches, but the base code is just bigger, that is all.

There is too much to detail in a simple answer here and, as I stated above, there are a lot of online guides. However, en bref:

  1. Download and install the Arduino IDE to your Mac/Wintel/Linux PC;
  2. Download the latest Repetier firmware to your Mac/Wintel/Linux PC4;
  3. Connect the Arduino Mega 2560 to your PC using a USB cable;
  4. Change the settings, i.e. Boards and Port settings, in the Arduino IDE, so that your PC can "see" the Arduino Mega 2560;
  5. Open the Reptier firmware, that you have just downloaded, in the Arduino IDE;
  6. Configure the Repetier firmware source code, i.e. make some edits in the Configuration.h file5, with the tweaks that you require (which you mention in your question)6;
  7. Compile the firmware using the Arduino IDE. and (finally);
  8. Upload the firmware to the Arduino Mega 2560.

That is it. Once you have done it a few times, it will become second nature.

Watch a few online youtube videos, as well, before you start, so that you have a better idea of what to do. For example:

With respect to the Slicer's profile settings... I am not sure about that at all.

The reason that you have no RAMPS board is that, on your MKS board, the RAMPS and the Arduino are merged into one. Any new controller would work, as they all run the same firmware. There are many to choose from. As you are just experimenting (and reverse engineering) at this stage, I personally would buy a cheap Chinese Arduino Mega 2560 (€6) and RAMPS (€4) board on eBay, for a total of only €10 (if you buy them separately - don't get a combination "deal" as they are generally more expensive - although compare the prices first, you may find a bargain), to test your settings. Once you are happy with those settings, then you can spend more money on a better board, should you feel that you need it.


1 If you have to get around the licensing, then it sounds like you could/should recompile the firmware, or use some other firmware, i.e. Marlin. However, wait to see what other people suggest.

2 There really isn't much risk in uploading new firmware. The only risk, which I guess Mark is referring to, is that you may/will not have the correct firmware settings for your make of printer, and therefore the printer may not work correctly, until you get the firmware settings correct. So, in that respect, it is a good idea to buy a secondary Arduino Mega and RAMPS1.4 board to play with, for just $10 (Chinese clones work just fine). But, as you say that your board already has bad settings, and you do not wish to pay for more licensing, then you haven't much to lose by uploading new firmware to it, except the warranty. So, if I were in your position, and I did not want to pay the licensing, I would set aside the supplied controller (for possible future use/reference), and use a Arduino Mega 2560/RAMPS 1.4 combination to control the printer. That said, if your printer is still under warranty, can't you ask the manufacturer to supply you a new controller with the correct settings?

3 There is no way of extracting the code from an Arduino and then modifying it. You need the original source code files. See Is there any way to download a sketch from an Arduino? OK, you can obtain the machine code, but unless you are an expert, or guru, modifying it is impossible.

4 The installation order, of the Arduino IDE and Repetier, will not matter. You probably need to rebuild the firmware, I would guess, but I am not 100% sure. It might be a good idea to contact the vendor to see what they recommend, before overwriting their code (assuming that the control board came pre-programmed)

5 I found this video #18: Calibration extremely useful, for configuring Marlin, and understanding the firmware settings in the Configuration.h file.

6 You may find this link useful for your "tweaks": Repetier-Firmware configuration tool for version 0.92.9 version

  • 1
    $\begingroup$ Actually I just need to change a few parameters in the firmware since after an unexpected reboot, the calibration got all screwed up. But when I tried to do that using the repetier host, the log constantly shows the name of my printer's manufacturer and I'm unable to execute anything. Is there any workaround to it? $\endgroup$ – Ojasvi Srivastava May 30 '17 at 15:04
  • $\begingroup$ @OjasviSrivastava - Can you post the log file contents, or a relevent excerpt, in your question? Also, clarify in your question that you are using Repetier Host and state exactly what happens, and what you are doing, or trying to do. The more information you provide, then the more accurately someone will be able to address the issue that you are experiencing. $\endgroup$ – Greenonline May 30 '17 at 15:19
  • 1
    $\begingroup$ I've added a screenshot. I've never really done this before so let me know if you need any more details. Is it important to install Arduino IDE before repetier host? I did it in the other order. $\endgroup$ – Ojasvi Srivastava May 30 '17 at 16:05
  • 1
    $\begingroup$ well the vendor is asking me to renew the contract which will cost me a lot. He'll provide me any support only after I do that. If I could only tweak the relevant parameters (delta radius, rod length etc) without rebuilding the entire firmware that'd be great. PS: I've pasted the log in the question. Hope that helps $\endgroup$ – Ojasvi Srivastava May 30 '17 at 17:38
  • 2
    $\begingroup$ @OjasviSrivastava This article explains how to use an AVR programmer to backup your existing firmware so (in theory) you can always get back to your original code. As Greenonline mentioned, this is a binary backup and is not intended to be modified. Trying to reverse-engineer modifiable code from the binary code on the Arduino is not realistic. $\endgroup$ – markshancock May 31 '17 at 15:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.