1 (edited by Accessdenied 2014-03-17 09:53:52)

Topic: Problems with Marlin

Guys, I tried to upgrade to Adrians Marlin and then to Lawsly's Marlin, but I have some problems now..

1. How get to know which Marlin version do I have? All I see when turn on Reperier connected to printer is: Marlin V1.
2. Before my fan was controlable from Repetier as I soldered it to Printboard fan pins. Now it's now working, I checked with multimeter these pins on plate and now there are no 12V, but -12V on each pin if I measure it from pin to ground. Does it mean that new firmware missed these pins and now I need to make some changes to Marlin and upload it again??

P.S. I also tried M97 code to make sin Z wobble compensation (http://www.soliwiki.com/Calibration_of_the_Z_wobble), tried different values , but nothing changes. Now I also have problems with bed heating, it's heating very , veeery slow and usually stops at 84C. And also have problems with material extrusion while printing firs layers - sometimes extrusion stops and then again starts. At the same places I think.

2 (edited by adrian 2014-03-17 11:34:37)

Re: Problems with Marlin

1. The very FIRST line that the printer spits out is the date the firmware was compiled - you will have to scroll backup in repetier-hosts log window to see it. As to which 'version' it is - both versions you referenced have the same internal versions, so the only way to tell is based on you recalling which version you last compiled and when. It looks like this, with obviously whatever date you compiled your firmware in place of the one listed here. I've bolded the key lines...

MyMarlin wrote:

00:03:58.951 : echo: External Reset
00:03:58.951 : Marlin 1.0.0
00:03:58.951 : echo: Last Updated: Feb  9 2014 15:12:46 | Author: Adrian/Lawsy/Rincewind/Tealvince
00:03:58.951 : Compiled: Feb  9 2014
00:03:58.951 : echo: Free Memory: 2894  PlannerBufferBytes: 1232
00:03:58.951 : echo:Stored settings retrieved
00:03:58.951 : echo:Steps per unit:
00:03:58.951 : echo:  M92 X160.00 Y160.00 Z400.00 E990.00
00:03:58.951 : echo:Maximum feedrates (mm/s):
00:03:58.951 : echo:  M203 X3000.00 Y3000.00 Z50.00 E400.00
00:03:58.951 : echo:Maximum Acceleration (mm/s2):
00:03:58.951 : echo:  M201 X2220 Y2220 Z300 E300
00:03:58.951 : echo:Acceleration: S=acceleration, T=retract acceleration
00:03:58.951 : echo:  M204 S3000.00 T3000.00
00:03:58.951 : echo:Advanced variables: S=Min feedrate (mm/s), T=Min travel feedrate (mm/s), B=minimum segment time (ms), X=maximum XY jerk (mm/s),  Z=maximum Z jerk (mm/s),  E=maximum E jerk (mm/s)
00:03:58.951 : echo:  M205 S0.00 T0.00 B20000 X60.00 Z0.60 E5.00
00:03:58.951 : echo:Home offset (mm):
00:03:58.951 : echo:  M206 X0.00 Y0.00 Z0.00
00:03:58.951 : echo:PID settings:
00:03:58.951 : echo:   M301 P15.44 I0.51 D116.62
00:04:00.160 : echo:SD card ok
00:04:00.261 : FIRMWARE_NAME:Marlin V1; Sprinter/grbl mashup for gen6 FIRMWARE_URL:https://github.com/ErikZalm/Marlin/ PROTOCOL_VERSION:1.0 MACHINE_TYPE:Rumba EXTRUDER_COUNT:1

I *could* increment the version number in our versions - however - that will mean that we are 'ahead' of the mainline Marlin, as all its versions are perpetually 1.0.0 at the moment (technically, they are all still 1.0 RC's...) .. I am not keen to version a fork higher than the mainline base from which it derives... that will just lead to all sorts of poo... sad

2. Marlin can't control the MOSFET's current direction or polarity - if it could, it would be awesome wink As to if the pins are different; The printrboard section of pins.h of my marlin is identical to Solidoodles much older version - EXCEPT for the SDSS pin, which has a long sordid tale unto itself (teach people to share Y-Stops with SS pins ... ); So in short - whatever is going on with your PWM fan is unrelated to the firmware;

My Marlin:

#if MOTHERBOARD == 8 || MOTHERBOARD == 81
#define KNOWN_BOARD 1
#define AT90USB 1286  // Disable MarlinSerial etc.

#ifndef __AVR_AT90USB1286__
#error Oops!  Make sure you have 'Teensy++ 2.0' selected from the 'Tools -> Boards' menu.
#endif

#define LARGE_FLASH        true

#define X_STEP_PIN          0
#define X_DIR_PIN           1
#define X_ENABLE_PIN       39

#define Y_STEP_PIN          2
#define Y_DIR_PIN           3
#define Y_ENABLE_PIN       38

#define Z_STEP_PIN          4
#define Z_DIR_PIN           5
#define Z_ENABLE_PIN       23

#define E0_STEP_PIN         6
#define E0_DIR_PIN          7
#define E0_ENABLE_PIN      19

#define HEATER_0_PIN       21  // Extruder
#define HEATER_1_PIN       -1
#define HEATER_2_PIN       -1
#define HEATER_BED_PIN     20  // Bed
#define FAN_PIN            16  // Fan
// You may need to change FAN_PIN to 16 because Marlin isn't using fastio.h
// for the fan and Teensyduino uses a different pin mapping.

#if MOTHERBOARD == 8  // Teensylu
  #define X_STOP_PIN         13
  #define Y_STOP_PIN         14
  #define Z_STOP_PIN         15
  #define TEMP_0_PIN          7  // Extruder / Analog pin numbering
  #define TEMP_BED_PIN        6  // Bed / Analog pin numbering
#else  // Printrboard
  #define X_STOP_PIN         35
  #define Y_STOP_PIN          8
  #define Z_STOP_PIN         36
  #define TEMP_0_PIN          1  // Extruder / Analog pin numbering
  #define TEMP_BED_PIN        0  // Bed / Analog pin numbering
#endif

#define TEMP_1_PIN         -1
#define TEMP_2_PIN         -1

#define SDPOWER            -1
#define SDSS               14
#define LED_PIN            -1
#define PS_ON_PIN          -1
#define KILL_PIN           -1
#define ALARM_PIN          -1

#ifndef SDSUPPORT
// these pins are defined in the SD library if building with SD support
  #define SCK_PIN           9
  #define MISO_PIN         11
  #define MOSI_PIN         10
#endif

#endif  // MOTHERBOARD == 8 (Teensylu) or 81 (Printrboard)

Solidoodles Marlin:

#if MOTHERBOARD == 8 || MOTHERBOARD == 81
#define KNOWN_BOARD 1
#define AT90USB 1286  // Disable MarlinSerial etc.

#ifndef __AVR_AT90USB1286__
#error Oops!  Make sure you have 'Teensy++ 2.0' selected from the 'Tools -> Boards' menu.
#endif

#define X_STEP_PIN          0
#define X_DIR_PIN           1
#define X_ENABLE_PIN       39

#define Y_STEP_PIN          2
#define Y_DIR_PIN           3
#define Y_ENABLE_PIN       38

#define Z_STEP_PIN          4
#define Z_DIR_PIN           5
#define Z_ENABLE_PIN       23

#define E0_STEP_PIN         6
#define E0_DIR_PIN          7
#define E0_ENABLE_PIN      19

#define HEATER_0_PIN       21  // Extruder
#define HEATER_1_PIN       -1
#define HEATER_2_PIN       -1
#define HEATER_BED_PIN     20  // Bed
#define FAN_PIN            16  // Fan
// You may need to change FAN_PIN to 16 because Marlin isn't using fastio.h
// for the fan and Teensyduino uses a different pin mapping.

#if MOTHERBOARD == 8  // Teensylu
  #define X_STOP_PIN         13
  #define Y_STOP_PIN         14
  #define Z_STOP_PIN         15
  #define TEMP_0_PIN          7  // Extruder / Analog pin numbering
  #define TEMP_BED_PIN        6  // Bed / Analog pin numbering
#else  // Printrboard
  #define X_STOP_PIN         35
  #define Y_STOP_PIN          8
  #define Z_STOP_PIN         36
  #define TEMP_0_PIN          1  // Extruder / Analog pin numbering
  #define TEMP_BED_PIN        0  // Bed / Analog pin numbering
#endif

#define TEMP_1_PIN         -1
#define TEMP_2_PIN         -1

#define SDPOWER            -1
#define SDSS                8
#define LED_PIN            -1
#define PS_ON_PIN          -1
#define KILL_PIN           -1
#define ALARM_PIN          -1

#ifndef SDSUPPORT
// these pins are defined in the SD library if building with SD support
  #define SCK_PIN           9
  #define MISO_PIN         11
  #define MOSI_PIN         10
#endif

#endif  // MOTHERBOARD == 8 (Teensylu) or 81 (Printrboard)

Re the P.S : Did you enable the hystersis options in the Configuration.h file ? you need to enable the Z_Wobble et al in Configuration.h for it to do anything.. and Re the Heated Bed - Did you enable as per the Configuration.h file PIDTEMPBED; the defaults in the file for the PID are based on older beds - make sure to run the referenced M303 E-1 C8 S95 command (or susbstitute S95 as desired..) . Update the values in the file, recompile, reupload.

However - If you didn't enable the PIDTEMPBED - then the Firmware has nothing to do with your Bed heatup - because it simply turns on the MOSFET then and thats that... so if its now not performing as the same, something physical has changed - be it your Powersupply, the MOSFET going, bad physical connection, or the bed itself.  Given the MOSFET for your PWM Fan is now misbehaving - I'd be checking for a short or something somewhere as well...

3

Re: Problems with Marlin

adrian wrote:

you will have to scroll backup in repetier-hosts log window to see it..

Hello, adrian!
How to do this?

4

Re: Problems with Marlin

Click on the scroll bar next to the message window, or click in it and use the mouse wheel if you have one...
Or alternative, under Repetier-Hosts Preferences, make sure Logging is enabled, and just open the Log file in a text editor.

5 (edited by Accessdenied 2014-03-17 13:08:44)

Re: Problems with Marlin

adrian wrote:

Click on the scroll bar next to the message window, or click in it and use the mouse wheel if you have one...
Or alternative, under Repetier-Hosts Preferences, make sure Logging is enabled, and just open the Log file in a text editor.

If you mean Config -> Repetier host setting, there "Log session" was disabled.
Well, in the Log window when I connect to printer all what I see is:

OpenGL verison: 1.1.0
OpenGL extensions: GL_WIN_swap_hint GL_EXT_brga GL_EXT_paletted_texture
OpenGL renderer: GDI Generic
Fast VBOs for rendering not supported. Using slower default method.
FIRMWARE_NAME: Marlin V1; Solidoodle mashup FIRMWARE_URL: http://ww.mendel-parts.com PROTOCOL_VERSION:1.o MACHINE_TYPE: Mendel EXTRUDER_COUNT:1
echo:ACtive Extruder: 0

6 (edited by adrian 2014-03-17 13:22:12)

Re: Problems with Marlin

you're not using lawsy or mines firmware - since you have the mendel-parts.com URL there..... you get that from Pirvan (just curious - only other place I've seen someone using the Mendel streamed firmware... )? Anyway, Because the "mendel-parts" based 'mashup' isn't the one we developed here in the community... I'd personally suggest grabbing the firmware which is the latest one from the community;

Grab the source code by downloading the zip from https://github.com/ozadr1an/Solidoodle- … in_v1_beta , Unzip it, move the "Marlin" folder to the Arduino-Sketches directory (check preferences inside Arduino IDE), then open that Marlin folder and the Marlin.ino/Marlin.pde (either, doesn't matter) and use that to compile the firmware.

7 (edited by Accessdenied 2014-03-17 13:24:05)

Re: Problems with Marlin

adrian wrote:

you're not using lawsy or mines firmware - since you have the mendel-parts.com URL there.....

Grab the source code by downloading the zip from https://github.com/ozadr1an/Solidoodle- … in_v1_beta , Unzip it, move the "Marlin" folder to the Arduino-Sketches directory (check preferences inside Arduino IDE), then open that Marlin folder and the Marlin.ino/Marlin.pde (either, doesn't matter) and use that to compile the firmware.

Then I should conclude that Bootloader didn't load the new firmware to the board. It is sad because I don't know now how to do this thing.
I used your instruction: http://www.soliforum.com/topic/3098/gui … board-wip/
And tried to upload with Bootloade from this instruction: http://wiki.solidoodle.com/update-firmware

Any suggestions? hmm

P.S. I have SD 2 with standart Printboard from 2013 y August.

8 (edited by adrian 2014-03-17 13:25:10)

Re: Problems with Marlin

make sure you're doing the boot jumper at the right time (before you power the board), and let us know what errors if any the hid-bootloader program (from inside the hid-bootloader.zip folder) reports.

This is one of the 'joys' (theres many... neutral ) of the Printrboard.. and why I despise them tongue lol smile

9 (edited by adrian 2014-03-17 13:35:51)

Re: Problems with Marlin

Accessdenied wrote:

P.S. I have SD 2 with standart Printboard from 2013 y August.

Oh - so you've never upgraded you're firmware ever? thats the board as it shipped from Solidoodle?

If it is - then thats not good because its yet another GPL violation by Solidoodle because thats NOT the firmware they link to on their site that they state they ship with the boards... (a mendel-parts mashup...) The Solidoodle firmware, on their site, would leave the Firmware URL as  '"http://www.solidoodle.com/how-to-2/how-to-update-firmware/"' ..

If yours is a fresh untouched board from Solidoodle, then someones playing silly buggers again and sticking their fingers up at the GPL....

10 (edited by Accessdenied 2014-03-17 13:37:14)

Re: Problems with Marlin

adrian wrote:
Accessdenied wrote:

P.S. I have SD 2 with standart Printboard from 2013 y August.

Oh - so you've never upgraded you're firmware ever? thats the board as it shipped from Solidoodle?

Awesome if it is - because its yet another GPL violation by Solidoodle because thats NOT the firmware they link to on their site that they state they ship with the boards... (a mendel-parts mashup...) The Solidoodle firmware, on their site, would leave the Firmware URL as  '"http://www.solidoodle.com/how-to-2/how-to-update-firmware/"' .. If yours is a fresh untouched board from Solidoodle, then someones playing silly buggers again....

Its Motherboard Rev E. Guys from this forum said that it means that I have standart Printboard.
Yes, it is fresh board as it was shipped, I didnt change anything - only tried to make firmware upgrade with your and Lawsly firmware as I mentioned in first topic.

11

Re: Problems with Marlin

Accessdenied wrote:
adrian wrote:
Accessdenied wrote:

P.S. I have SD 2 with standart Printboard from 2013 y August.

Oh - so you've never upgraded you're firmware ever? thats the board as it shipped from Solidoodle?

Awesome if it is - because its yet another GPL violation by Solidoodle because thats NOT the firmware they link to on their site that they state they ship with the boards... (a mendel-parts mashup...) The Solidoodle firmware, on their site, would leave the Firmware URL as  '"http://www.solidoodle.com/how-to-2/how-to-update-firmware/"' .. If yours is a fresh untouched board from Solidoodle, then someones playing silly buggers again....

Its Motherboard Rev E. Guys from this forum said that it means that I have standart Printboard.
Yes, it is fresh board as it was shipped, I didnt change anything.

Well - Solidoodle are violating the GPL... AGAIN....

12

Re: Problems with Marlin

adrian wrote:

Well - Solidoodle are violating the GPL... AGAIN....

What does it mean? Why again? I don't know what means GPL and whhy is it violating..? smile

13

Re: Problems with Marlin

adrian wrote:

make sure you're doing the boot jumper at the right time (before you power the board), and let us know what errors if any the hid-bootloader program (from inside the hid-bootloader.zip folder) reports.

This is one of the 'joys' (theres many... neutral ) of the Printrboard.. and why I despise them tongue lol smile

So am I still able to do upgrade? If so, then lets figure out about the procedure with BootLoader.
This is form wiki.solidoodle:

1. Download Lincomatic's BootloaderHID.zip and extract the files.
2. Move the firmware.cpp.hex file from the previous section into the BootloaderHID folder.
3. Connect your motherboard to your PC via USB. Add a jumper to the BOOT pins and press the RESET button to reset into bootloader mode. If you do not have a jumper, just short the pins together and press reset.
3. Open a command prompt window. Navigate to BootloaderHID folder in the comand promt window and type the following command, substituting your file in for "firmware.cpp.hex":

hid_bootloader_cli -mmcu=at90usb1286 -w -v firmware.cpp.hex


Your firmware should upload to your motherboard very quickly before resetting. But it can take a few seconds to start. Give it up to a minute before you give up.
-----------------
As they say, I should firstly connect USB to the plate and PC, only then to add jumper. So should I add jumper before, not after connecting USB?
Then I push reset button ONCE? And jumper should still stay?
Ok, then I navigate to DOS windown and type "hid_boot...."

But WHY they write, that "Your firmware should upload to your motherboard very quickly before resetting"???????????? If they say to reset and only after it to write command into DOS window to make booting....... So it should upload AFTER..??!
Please explain those steps.

14

Re: Problems with Marlin

The board needs to startup with the jumper across the boot pins - pressing 'reset' causes it to also restart. Yes the board will only accept new firmware if it starts up with the jumper in place to put it into DFU mode so it can receive the new firmware.

Putting it on before powering it up vs plugging it in, putting the jumper on, then pressing reset; essentially does the same things...

15

Re: Problems with Marlin

So I add jumper, only then plug in USB, then without hurry type in cmd prompt into C:\Users\user\Documents\BootloaderHID:
hid_bootloader_cli -mmcu=at90usb1286 -w -v Marlin.cpp.hex
After that I remove jumper and just turn the power off and then on for printer, thats all, right?

16

Re: Problems with Marlin

in theory - yup.

But I've never had/used the Solidoodle built Printrboards (they wont send me a free one, and I wont pay $100 for it so I can help them...) - so I'm just working from guess work

17

Re: Problems with Marlin

Thats what I saw in cmd. But still http:mendel......
http://www.bildites.lv/images/p20azy5dytflrv9oooar.jpg

18

Re: Problems with Marlin

THe update may have taken properly....What you are seeing in the log file might actually be just a mistake....

There is a small problem with the code in the Language.h file that it does not properly show the Solidoodle Machine name etc...

For the Elif statement to work correctly you have to add "MOTHERBOARD == 6" to the beginning - see below corrected.

Otherwise, it will always default to MENDEL for any of the solidoodle board options. 

#ifndef LANGUAGE_CHOICE
#define LANGUAGE_CHOICE 1 // Pick your language from the list above
#endif

#define PROTOCOL_VERSION "1.0"

#if MOTHERBOARD == 7 || MOTHERBOARD == 71
#define MACHINE_NAME "Ultimaker"
#define FIRMWARE_URL "http://firmware.ultimaker.com"
#elif MOTHERBOARD == 80
#define MACHINE_NAME "Rumba"
#define FIRMWARE_URL "https://github.com/ErikZalm/Marlin/"
#elif MOTHERBOARD == 6 || MOTHERBOARD == 62 || MOTHERBOARD == 33 || MOTHERBOARD == 34 || MOTHERBOARD == 81 //{SD Patch}
#define MACHINE_NAME "Solidoodle" //{SD Patch}
#define FIRMWARE_URL "http://github.com/mlaws/solidoodle2-marlin/" //{SD Patch}
#elif MOTHERBOARD == 77
#define MACHINE_NAME "3Drag"
#define FIRMWARE_URL "http://3dprint.elettronicain.it/"
#else
#ifdef CUSTOM_MENDEL_NAME
#define MACHINE_NAME CUSTOM_MENDEL_NAME
#else
#define MACHINE_NAME "Mendel"
#endif

#define FIRMWARE_URL "http://www.mendel-parts.com"
#endif

19

Re: Problems with Marlin

adrian wrote:

you're not using lawsy or mines firmware - since you have the mendel-parts.com URL there..... you get that from Pirvan (just curious - only other place I've seen someone using the Mendel streamed firmware... )? Anyway, Because the "mendel-parts" based 'mashup' isn't the one we developed here in the community... I'd personally suggest grabbing the firmware which is the latest one from the community;

Grab the source code by downloading the zip from https://github.com/ozadr1an/Solidoodle- … in_v1_beta , Unzip it, move the "Marlin" folder to the Arduino-Sketches directory (check preferences inside Arduino IDE), then open that Marlin folder and the Marlin.ino/Marlin.pde (either, doesn't matter) and use that to compile the firmware.

Out of curiosity is there a wiki/howto upload this firmware to an SD3 with a printrboard?  I've been taken down some strange roads, like having to install the Teensy enhancements to arduino 1.0.5.. but it complains the hex file is too large....

THanks
  Andrew

20 (edited by accusedmonk 2014-04-29 13:41:47)

Re: Problems with Marlin

I was having the same problem with the fan on my sd3 with the rev e printrboard.  The pins for the fan were actually 22 on the updated firmware, i had to revert back to 16.  My fan works fine now.

Rjp350z is right about the log not showing an update.  Every different version i used all show the same marlin v1 mendel-parts.com in the log.  So the gpl probably isn't being violated.  I know mine was changed because I'm using an e3d now and i can ramp up the heat well past 230.

I am sure his bed problems are firmware related as well.  Ive run my bed at 115 for awhile now and would reach that after 10-20 mins.  After i flashed it wont get over 96 now.  I manually changed the max bed temp from 110 to 120.  I haven't done pid tuning for the bed, but if its on constant that won't help.

The only thing i can think is the e3d is using more of the power supply.  The hot end reaches 230 in under two minutes now, but its only on 30-40% duty cycle instead of 50% so i don't think current draw is limited from the hotend change.

I did see in the firmware a setting for bed max power, which was set at 256, noted that that was full power. Maybe try 255?

Edit:
Could a wrong thermistor in firmware cause such slow heating?   I'm going to check it when i get back home.

Bowden SD3, Rumba, E3D hotend, Mk5 with RtRyder changes, Direct drive Y axis and bearings, GT2 pulleys and braided fishing line, Lawsy linear bearing conversion, M3 Z screw.

21

Re: Problems with Marlin

Wrong thermistor selection in fw will change the amount of time to get to a stated temperature because the temp will not be the same... if the temp is reading low by 20 degrees then it will take added time to get to 20 degrees hotter all the while it is reading 20 degrees less.

22

Re: Problems with Marlin

accusedmonk wrote:

I fixed my bed temp maxing at about 96 and taking a long time to reach it with a few tweaks to the firmware again.

Lines 91-94 in configuration.h, I changed the bed sensor table from 6 to 1.
#define TEMP_SENSOR_0 6 //{SD Patch}
#define TEMP_SENSOR_1 0
#define TEMP_SENSOR_2 0
#define TEMP_SENSOR_BED 1 //{SD Patch}

Lines 162-165 in configuration.h, I uncommented pidtempbed which gives me perfectly flat 115C with the values already in the firmware.
// If this is enabled, find your own PID constants below.
#define PIDTEMPBED
//
//#define BED_LIMIT_SWITCHING

For the ones bothered by the firmware not displaying correctly in RH:

Lines 32-34 in language.h, I have the printrboard and using 81 myself.  The firmware I have from lawsy's github doesn't have that as an option in the language tab.  I just added the extra "|| MOTHERBOARD == 81"

#elif MOTHERBOARD == 62 || MOTHERBOARD == 33 || MOTHERBOARD == 34 || MOTHERBOARD == 81        //{SD Patch}
    #define MACHINE_NAME "Solidoodle"                                    //{SD Patch}
    #define FIRMWARE_URL "http://github.com/mlaws/solidoodle2-marlin/"   //{SD Patch}

I fired up both the bed and the extruder after the bed stablilized temp.  Neither fluctuated and maintained a flat tempurature, which rules out the power supply lacking like I was previously suspecting.

I hope this can help some of you guys.  Happy Printing!

Bowden SD3, Rumba, E3D hotend, Mk5 with RtRyder changes, Direct drive Y axis and bearings, GT2 pulleys and braided fishing line, Lawsy linear bearing conversion, M3 Z screw.