Upgrade Wilson fork to Marlin 1.1?


FWIW: I re-created the PR to have PICA support bought into the main marlin repo:


After a long period without filament and not printing, I’m getting back into this. Did a new rebase of the Wilson changes onto the 1.1.x branch, so now the Wilson-1.1.x branch is updated to v1.1.6.


Did it ever make it in?

I started using the Dev 1.0.0 version of Repetier firmware when I got my Pica because it has Pica support in by default. I’d like to try Marlin, but don’t really want to mess with manual configuration. The web based configurator for Repetier is such a time saver.


I’m actually liking Repetier a lot and can’t see myself going back to Marlin.


Nah not yet, but I actually saw the first movement in this space in a while just 5 minutes ago, they have accepted a bunch of commits, and close Marty’s original PR, but mine was left open with conflicts.

I have resolved the conflicts in my PR, so hopefully soon?


I am coming back to my Wilson 2 after a long absence and want to update firmware.

What’s the most up-to-date yet stable option - mainline Marlin given pulls accepted/merged, marty’s, robforce’s?

Is there a how-to somewhere? Since forking and hacking the firmware a while back (I remember making a number of changes), I’ve forgotten everything.


You could give Repetier a shot. If you know the details of your printer the web configuration tool makes it really easy.


I guess I’ll take a shot in the dark. I don’t know of a good rollback if firmware doesn’t work as friendly as the one I have now. I print infrequently so guess waiting wouldn’t hurt.


@robbforce I’m interested in using your Wilson-1.1.x fork as you’re doing a great job keeping up with the Marlin releases. I’m comparing the Configuration.h that I’m using, which is based of of Mary’s Configuration_mjrice.h in his RCBugFix-mjrice branch, with the Configuration.h in your fork and there are more differences then I’m currently comfortable with. On Jun 14 you showed that you only made a few Configuration.h changes which are specific to your machine. Are you starting with Marty’s Configuration_mjrice.h file, or are you starting with the Configuration.h in your fork?

A couple of my hang-ups are 1) that the Configuration.h file in your fork has 4000 steps per unit on the Z axis in DEFAULT_AXIS_STEPS_PER_UNIT where Marty’s has 400 and 2) that the Configuration.h in your fork doesn’t have #define Z_RACK_PINION or the following ifdef block.

I’m probably missing something obvious here, appreciate anyones help in pointing it out.


Hey @Rockey. If you pulled the repo, are you sure you have the right branch checked out? Some things are a bit different because I tried to create define blocks in order to combine Wilson I, II and defaults into the config file. For example, regarding the DEFAULT_AXIS_STEPS_PER_UNIT setting, it’s defined in this block based on a “Wilson” type set near the top of the file:

  #define DEFAULT_AXIS_STEPS_PER_UNIT   { 80, 80, 4000, MK7_DEFAULT_STEPS }
  #define DEFAULT_MAX_FEEDRATE          { 100, 100, 3, 25 }
  #define DEFAULT_AXIS_STEPS_PER_UNIT   { 80, 80, 400, 107 }
  #define DEFAULT_MAX_FEEDRATE          { 120, 120, 6, 25 }
  #define DEFAULT_AXIS_STEPS_PER_UNIT   { 80, 80, 4000, 500 }
  #define DEFAULT_MAX_FEEDRATE          { 300, 300, 5, 25 }

As you can see, the settings are what you would expect if WILSON_II_TYPE is enabled (defined).

Z_RACK_PINION can also be found near the top of the file and is defined by default.


Spot on @robbforce! Thanks so much for the quick reply and pointing out the obvious, I was on the wrong branch of your repo. Thanks again! I’m looking forward to checking out what’s new in 1.1.6.

Edit: My first print is off and running on your fork! The way you organized the Configuration.h made it difficult to compare at first but in the end I’m really impressed with what you did. Seems to be setup really well for all Wilson users and their machines. Nicely done man!


Does someone with a pica want to make the changes suggested in my PR:

I could, but I’d be flying be the seat of my pants not actually having a pica myself.


Hi @robbforce. I just upgraded to your latest frimware for wilson 2. With all the default settings. But i am having trouble for auto homing. Y axis only move right and stuck there. i am using RACK PINON for auto levelling. Is there anything i have missed? Any other settings that i need to change in order to get the auto homing and bed levelling work.
Sorry i am a total noob on this.
(I have tried other firmwares but that didnt work.)


I think you mean x axis moves right and stops. It should move right only when it’s done, which would put away the probe, then back to center. Is this happening before a print? Have you checked / updated your your start gcode? This is what mine looks like:

;Basic settings: Layer height: 0.24 Walls: 1.5 Fill: 70
G21        ; metric values
G90        ; absolute positioning
M82        ; set extruder to absolute mode
M107       ; start with the fan off
G28        ; home
G29        ; run auto bedlevel
G92 E0     ; zero the extruded length
G1 F200 E3 ; extrude 3mm of feed stock
G92 E0     ; zero the extruded length again
G1 F6000
M117 Printing...


I haven’t printed anything after I upgraded the firmware. I just tried to auto home on the machine and it didn’t work.
When I start the machine X shows “?” Y “?” And “Z” as well.
Is there anything else I need to change in the configuration.h?


Patrick the Axis XYZ showing “?” means they have not homed yet. As soon as you home the axis they will show their current position.

In the LCD menu click on Prepare then AutoHome. The printer should home XYZ. Do this with you finger on the Off button and if the direction of the axis is wrong you will have to change the direction in Config h or swap the plug around.

If that works then go in the LCD menu click on Prepare then Bed Leveling and make sure it does the routine.

Once those 2 things pass you should be ready to print.


@ant0ny I know about the auto home and bed levelling which are what i did first. But the problem is, when I finished flashing the firmware, I connected with pronterface, X and Y homing are at the opposite position. Which I edit the configuration.h to set it to “true”. But after editing the script I still have no luck. The position that x,Y are supposed to go is correct but when I press Y homing @Pronterface it does not go to the ends stop switch. X homing is right but when I did the autohoming on the machine X only goes half way and go back to end stop switch. That’s the general idea of the trouble I am having. Given I am using e3d Titan. I did not build the machine myself ,it was done by someone else with experience. Other than that it’s mostly stock Wilson 2 design including the bed levelling system.
My question remain, how much changes do I need from the configuration.h that @robbforce provided.
Thank you.
Merry Christmas all. Wish you guys have a great time with fds , family and love ones !


If the x is going halfway then it could be the steps are not set to what Stepper motor and stepper drivers you have.

I am not sure what you have as I build my own printers from scratch but you could just double the steps per mm in Config H and see.

Around line 595 look at #define DEFAULT_AXIS_STEPS_PER_UNIT { 160, 160, 800, 840 } These are a modified
Wilson yours could be different and 160 could be 80

So in the brackets are X, Y, Z, Extruder so you could double you X number and reflash to see if it travels the full width. This may have to be changed for each axis.

If you have a copy of your old firmware you should be able to find these values and copy them into the new firmware.

Have a try and see how you go.


having a similar issue with trying to put 1.1.6 on my mostly stock wilsonII. though mine i know whats going on 99% sure. it is doing the first two touches of the bed levling routine, and the third touch (far right/front) it hits the far right side, which causes the rack/pinion to retract. think its trying to go to the full 200mm width and retracting the pinion. i have found where it defines the size and noticed the x-min have subtract the rack/pinion offset from the min, but nothing on the max, will be trying with subtracting the same value from the max see if it will bed level.


I have just recently completed my wilson ii build, and am currently in the firmware stage. I installed the “out of the box” marlin firmware. I’d hate to go off topic, but where can I be directed to find out how to enable the servo auto bed leveling and get my larger reprapdiscount lcd working. I tried making some changes to the code in the arduino program, but even when all I did was comment out the rack and pinion line, it gave me an error message. It said “error compiling for board arduino/genuino uno mega or mega 2560” I am using a genuine arduino mega not the compatible one. I am using it in conjunction with the pica rev e shield. The motherboard I currently have chosen in the firmware is the rev c model. I didn’t see an option for the rev e. Thoughts? Suggestions?