I had some trouble using the PrintrBoard’s built in SD card reader using Marlin firmware. I also had an issue with the Y-endstop, which I thought was unrelated, as the board would not boot if the Y-endstop was pressed (ie. if the bed was homed). The only help I found was from Lincomatic’s blog again but this time in a comment from “RustyPaint”, found here.
The issue is that the pin used by the Y-endstop is connected to the SS pin of the processor. So if the Y-endstop is closed it interrupts the SPI bus which the processor uses to talk to the SD card. The conflict also causes the board not to boot if the Y-endstop if pressed.
So the work around is that you disconnect the Y-endstop from the PrintrBoard and plug it in to the free Emergency endstop pins. You must then also configure the firmware to look at the E-stop pins instead of the Y-stop.
In pins.h, within the Marlin firmware, change line 918 from:
#define Y_MIN_PIN 20
to
#define Y_MIN_PIN 37
This solved the booting problem and now I can print from an SD card.
(Update: Just make sure your file name is a maximum of 8 characters long and the extension is a maximum of 3 characters. For example “Myprint1.g”)
Thanks to Nicolas Vicuña for pushing me to find a fix and help testing it.
NB: This post gets a fair bit of traffic. If this information helped you at all then please leave a comment.
Is this still the case as of June 2013? Or is this something that can be “fixed” in a new revision or in firmware updates? I’m using repetier firmware and haven’t gotten around to trying SD support yet.
I believe this IS still the case, unfortunately I believe it’s a hardware issue rather than firmware. They should not have used the chip select pin on the processor for the Y stop.
Thanks for your information, I have not tested it yet, but I believe it will work.
Thank you very much. You’ve solved my f…… Y-Endstop problem.
I would like to point out that the line number (918) specified here might not apply to your specific card. I’m running a Makerfarm printrboard and my motherboard setting is 81, so I changed the line relevant to that board.
Although I’m currently printing fine I did not manage to access the SD printing function on Pronterface. Any ideas?
Have you also enabled the “#define SDSUPPORT” in Configuration.h (approx. line 543) ?
Err.. My Configuration.h only goes up to 253 lines 😦 However, I have two occasions for #define SDSUPPORT:
At the beginning (Approx line 36):
#if (Motherboard 00 81) //printrboard
// #define SDSUPPORT
#endif
Later (around line 218) I have:
// LCD and SD support
//#define ULTRA_LCD //general lcd support, also 16×2
//”define SDSUPPORT // Enable SD Card Support in hardware console
A few lines below that There’s a section defining ULTIPANEL that contains #define SDSUPPORT (though that one is activated.
Sorry if this seems to be a very basic question but programming is not my forté but which one of these should I use (delete the //’s)?