Setup USB Connection - RESOLVED


Many slicers have that function built right in. Which slicer are you using?


Slicer? I’m using Simplify3D. When I connect a cable to the USB port on the Wilson II Mega board, the LCD display shows garbage and is unresponsive. This does not seem normal. Does the Wilson II need to be configured for a USB connection before using the USB connection?


I’m seen that happen when the controller is powered solely by USB power but should not happen the printer is on and the controller is powered by the printers power supply.

There is some advice on the internet that says you should have only one power supply to your Arduino, USB or otherwise but that’s not true, you can have them both connected. The Arduino Mega only uses USB power if no other power source is connected.


My LCD is fine and functions normally when powered only by the USB. (Except of course none of the 12-volt things will work (motors, heat etc.) I have no problem with USB plugged in and power supply on at the same time either. HOWEVER, I do occasionally get garbage on the LCD screen whether under USB or regular power supply. I think it might be static charge (dry air, everything is shocky here this time of year.) But, I just click the smart controller knob and it’s all back just fine immediately. I always try to remember to discharge myself against a ground before touching my printer this time of year. So far, I haven’t destroyed anything but I have sometimes forgotten, and actually gotten a static shock right against the controller screen, sd card, etc., no damage though. (Knock on wood…)
Have you tried a different cable? I don’t know how to upload g-code yet. Only thing I’ve done like that so far is to make some changes to Marlin and re-flash the Mega. I use the arduino interface program for that. Have you installed it, and the drivers? Here’s where I started with that part of the learning curve…

Also I watched some you-tube tuts. NotePad++ is a valuable and useful free tool to have on board as well if you’re going to be editing marlin. Much easier than using the arduino interface to edit.


Thanks Dave. I think I’ve resolved the USB connection issue. Now have to tackle how to find the most recent “load” on github and then try to compile and load…


OK, so now that I’ve decided I need to reload the firmware I’ve zeroed in on a version Marty directed another user to – “Marlin” in the “MarlinWilsonDefunct” zip file – which I have downloaded from github. I’m no expert at Arduino libraries but have loaded and used many in my years working with the Arduino Uno and Mega boards. Most Arduino libraries contain a minimum of (1) ".h"file and (1) “.cpp” file. The library file folder name, the “*.ino” file and the “.cpp” file should all have the same name. So I open the “Marlin” folder and find 77 files and 2 sub-folders. First, Arduino will reject trying to load “Marlin” as a library because of the 2 sub-folders. So, I have removed them. There are two “includes” – “dogm_font_data_marlin.h” and “dogm_lcd_implementation.h” that try to include “U8glib.h” - which I find is no longer available??

Bottom line without spending the whole night trying figure which of the 77 files really need to be in the Marlin library, is there a write-up, tutorial, how-to, You Tube video, that describes how to find the appropriate release and update the firmware?


Someone did a really concise list of steps a while ago, I’m having trouble finding it.

Here is the Marlin documentation for flashing your board.

Before flashing you can check that your computer and Arduino are communicating using the Serial Monitor.

  1. Open the Arduino IDE
  2. Tools menu, Board, Arduino/Genuino Mega or Mega 2560
  3. Connect Arduino board, if not already connected
  4. Tools menu, Port, select COM port (windows) or TTYUSB port (Linux/Mac) that your board connected on. If your board is not being assigned a COM port by windows you may have to load the CH340 USB to Serial driver.
  5. Tools menu, Serial Monitor
  6. If it displays a number of echos legibly, you’re good to go, If you get a bunch of non-readable characters, you may need to set the baud rate. Try 250000 or 115200.

I’d actually like to see the “Steps per unit” that’s echoed from your board. It may help to diagnose the other problem your having with the bed level routine.

Once you have your board connected you are ready to follow flash instructions. You were asking about the many files. I think you only need to open the one, Marlin.ino file and that will open all the other needed to program your board. Spend some time reviewing the configuration.h file, that is where the controller board (RAMPS or PICA) and Z-probe style and other options are defined.

Hope that helps.


Here is the message communicated when the serial monitor is opened from the IDE after loading the updated firmware:

The “Steps/unit” seems a bit excessive for the “Z” axis - although I don’t know how to change it.

The only Wilson II firmware I was able to compile without error was one named “RCBugFix-mjrice”. My Arduino IDE was 1.8.0 which worked quite well. Based on comments found on this forum, I reverted the IDE back to 1.6.9, loaded the Marlin code from the above named release, compiled it, then uploaded to the Wilson II – no errors… HOWEVER, the LCD just displayed two lines of BLOCKs… similar to issues others on this forum have experienced after reloading firmware. Fortunately, I have a copy of the firmware Marty sent with the printer when I purchased it. I was able to successfully reload that firmware (Marlin 1.0.2) and got the printer back to its state before trying to upload the more current firmware. UNFORTUNATELY, with a “fresh” firmware load, the printer still won’t do an AUTO HOME. It is acting exactly has it did before the firmware reload. Here is the message communicated when the serial monitor is opened from the IDE after loading the original firmware:

(Note that the “Steps/unit” value for the Z-axis with the original firmware reload is now 390!! – The two errors displayed were resolved by changing the TEMP_SENSOR_0 value to 5 from 1 in the configuration.h file.)
All this boils down to is that the problem has to be mechanical… any suggestions on where to start looking … ???


  1. Issuing a M501 gcode with pronterface returns the following offset values stored in EEPROM: M206 X-100.00 Y-105.00 Z-11.50 (these seem accurate and reasonable)


I’m wondering if the microstepping switches or pins are all closed for the X axis. That enables 1/16th microstepping for the A4988 motor driver. If one switch or pin is open if could use greater microstepping (1/8th or greater) and be traveling much more than expected.

I keep thinking you may have the motors hooked up to the wrong axis driver but you’ve probably checked that. I’ll have to revisit the other thread and see what troubleshooting you’ve done there.

You’re right concerning that Marlin 1.1 config, those Z-steps are far to high for the Wilson II. With that version of Marlin, using Mary’s RCBugFix-mjrice branch, you have to replace the Configuration.h file with Configuration_mjrice.h to get the right configuration.


I had not made any changes to the drivers (i.e. removing/replacing) so the switches would not be the issues. However, I did remove and checked to make sure. All three switches under each driver were in the “ON” position. I had swapped the Z driver with the X driver a couple of days ago to make sure I didn’t have a bad driver. It didn’t change the behavior. Unfortunately, in checking the switches earlier today, I inserted one of the drivers off by one position - my bad, wasn’t paying attention. I fried the driver and apparently zapped the PICA board… so, I’m out of service until I receive the new PICA board I just ordered. I have been suspecting perhaps the PICA may have become corrupted since reloading the firmware didn’t change the failure. We will find out when the new card comes in!!

Meanwhile, where in the plethora of files associated with the Marlin load would I find the AUTO HOME code? Also I thought the minimum requirement for any ARDUINO code routine was a SETUP() and a LOOP() function. In which of the files would I find the LOOP() function?


Dang, Mike. I think I should stop trying to help, causing more harm than solutions.

I’m not sure where all the auto home code is but investigating the Wilson II probe code might get you there. I was going to suggest you look at the commit Marty made to Marlin 1.0.2 when he implemented the rack and pinion probe but that seems to be lost in the move to MarlinWilsonDefunct. For 1.1.0 you can see the probe code that Marty added in this commit.

I believe Marlin_Main.cpp have the setup() and loop() functions you are looking for.


Thanks Rockey. I appreciate all the help you have been providing. :relaxed: It was my error as I was just not being careful. Will look up the code, however, I’m still leaning towards perhaps a failure of the PICA somehow because we basically eliminated the external hardware and had reloaded the firmware with no change in the way Auto Home was behaving. I have PICA card I replaced several months ago when the metal rod in the filament holder fell out of the mount and rolled across the exposed solder joints on the end of the hot bed. It blew the glass fuse on the board and the MOSFET. After replacing these, I found the hot bed thermistor circuit wasn’t working so it must have been zapped too. Long way to say I will probably reinstall that board, knowing the thermistor circuit doesn’t work, just to see if it will at least run Auto Home function properly.


Received the new PICA card yesterday and immediately installed it. Confirmed that ALL connections were correct, that the board was properly seated on the MEGA, and that the stepper drivers were positioned correctly. Great expectations that after power on, I would have a functioning printer. NOT! When powered on, the LCD display was not properly displaying the upper left quadrant of the display:

Being the eternal optimist I thought I could overcome this nuisance and proceeded to attempt to run AUTO HOME. Nothing happened when selected. Not good. I then attempted to move the X, Y, and Z axis positions (Prepare > Motion …). Nothing moved. I verified that the X,Y, and Z endstop switches were working – they were. I then attached the printer to its USB port on my PC. I didn’t get the message that should display when connected to the PC so, it isn’t communicating with the PC.

Any suggestions on what the next steps should be? Any other things to check
with power on before I remove the board?

(I would note that the PRINTER FAN connection on the new PICA is a JST-type connecter instead of the two position male header pins on the older PICA. Fortunately I am able to use the existing two-position female connector but am not sure if the polarity is correct. I assumed the + lead would be to the right?)


So, now I have a new PICA card (version unknown but I assume it would be the most current), and a new Arduino MEGA 2650. I have temporarily removed the Stepper drivers and have successfully loaded the Marlin-RCBugFix firmware. When I power the printer up, I get two rows of BLOCKs on the display and the audible alarm is on steady. Removing power (+12V supply), still connected to PC via USB, there is no change … still have the alarm on. I seem to be digressing with everything thing I try. Is there methodical way to test the system to make sure things are working as they should?


The problem with the LCD sounds like you don’t have the correct display compiled in. In your configuration.h file, make sure you have the motherboard set to BOARD_PICA and REPRAP_DISCOUNT_SMART_CONTROLLER enabled at around line 1278. As a side note, I would continue using the older but stable version of marlin from my repo (the MarlinWilsonDefunct branch).


STATUS: New PICA, new ARDUINO Mega, 3 new stepper drivers. Loaded MarlinWilsonDefunct firmware, confirmed MOTHERBOARD BOARD_PICA_REVC and REPRAP_DISCOUNT_SMART_CONTROLLER set in Configuration.h… Tested/confirmed that X, Y and Z motors move, (EXTRUDER doesn’t … could be a defective stepper driver), BED and HOTEND heaters working, END STOP switches working.
AUTO HOME and BED LEVELING appear to be functioning properly. Still have issue with upper left quadrant of LCD not displaying properly. Also noticed that at power on the PREPARE option appears in the menu. After running AUTO HOME and BED LEVELING the PREPARE option is gone and replaced with TUNE?? Is this a change?


EXTRUDER issue is NOT the driver. Here’s what I have done to troubleshoot:

  1. Moved the driver from the Extruder position and put it in the Y-AXIS position. Using PREPARE->MOVE->Y-AXIS, the Y-AXIS moves… conclusion: driver is good.
  2. Unplugged Y-AXIS cable from Y-AXIS position and inserted the EXTRUDER cable into the Y-AXIS position. PREPARE->MOVE->Y-AXIS causes the EXTRUDER to move … conclusion: EXTRUDER motor and cable are GOOD.
  3. Put the Y-AXIS cable in the EXTRUDER position. PREPARE->MOVE->EXTRUDER … Y-AXIS does NOT move… conclusion: PICA board is bad.

I’m using the E1 EXTRUDER position. Is this the correct EXTRUDER position to be using with the Marlin firmware or does the MarlinWilsonDefunct firmware expect the EXTRUDER to be in position E0??


The default extruder is E0.

In the photo above with the connector circled in red… is that correct? It looks like the hotend fan connector, which should be plugged into 12V, not into FET4. The print fan should be plugged into FET4, and it is normally the JST connector.


The connector pictured in a previous reply is the Printer Fan connector. The point I was making in that picture was that the PICA I recently received only had a JST connector in the FET4 position (see image below). The two male pins that were on the original board are not on the new PICA.

To answer your question regarding the LCD, yes, was working just fine before I had the AUTO HOME not working issue…

Current status is that I repositioned the EXTRUDER to E0 and it is now working. So, for this particular forum exchange, the AUTO HOME issue is RESOLVED. Printer is back to normal with the exception of the LCD display.


Received and installed a new Discount RepRap LCD controller. LCD issue resolved… printer is up and running at 100%. Still don’t know what caused the original problem of AUTO HOME not working. Thanks to all who offered advice…