51

Re: Solidoodle2-marlin firmware update thread

New update: Rincewind has added simple to use support for Solidoodle 2 AND 3 in the one set of files.

In configuration.h, on line 15, the firmware defaults to Solidoodle 2:

#define SOLIDOODLE_VERSION 2

If you change this to '3':

#define SOLIDOODLE_VERSION 3

Rincewind's code will now compile with the correct sized x,y & z dimensions.

A very useful update I'm sure everyone will agree.

52

Re: Solidoodle2-marlin firmware update thread

Just FYI I started getting some "Error: checksum mismatch" errors in longer prints after I switched to the new firmware. It is basically an "out of memory" error. I suspect my chip to be defective and I don't expect your printer to have the same problem, but in case it does, you can mitigate it by reducing the BLOCK_BUFFER_SIZE to 8 in configuration_adv.h, like this:

#if defined SDSUPPORT
   #define BLOCK_BUFFER_SIZE 8 // Instead of 16
#else
   #define BLOCK_BUFFER_SIZE 8 // Instead of 16
#endif

Please report here any of these errors, as if it is a common issue we will investigate this problem further.

53 (edited by adrian 2013-03-07 05:40:40)

Re: Solidoodle2-marlin firmware update thread

I've just done a full MCU replacement to a 1284p.

Wanted to let everyone know that I used Arduino 1.0.3 IDE and the RepRap GEN7 Sanguino Bootloader. Using the GEN7 stuff, I was able to without errors (except the expected ones re PROGMEM) compile Lawsy's firmware from github.

I've done gantry moves succesfully - and everything *seems* to respond well... I forgot to record my extrusion calibration details from the 644p though so I'm going to rerun that first..

So if this is the case, we can shortly update the wiki to drop the Arduino-022 requirement, and just advise to use Gen7 bootloaders with the latest Arduino.

54

Re: Solidoodle2-marlin firmware update thread

Just to update - I've done a few prints now. Still have to work on the Z-Wobble Calibration so wont show any off - but I can confirm using the latest Gen7 Bootloader + Lawsy's latest works just fine with compiling in Arduino 1.0.3 and operation indeed seems spot on.

55

Re: Solidoodle2-marlin firmware update thread

Thanks for the feedback! To have the Gen7 bootloader you either have to buy a new chip with it preinstalled or flash it with a programmer/arduino, right?

56 (edited by adrian 2013-03-07 12:28:04)

Re: Solidoodle2-marlin firmware update thread

Yup, thats correct. I happened to have a 1284p in the drawer so had to flash a bootloader anyway (well, I could have just loaded it using a programmer each time, but thought why not give the Gen7 a go...).

I flashed it both with a BusPirate (invaluable tool!) and an AVR ISP2 because I goofed the load the first time (I did bootloader then the firmware using the programmer - which promptly blew away the bootloader wink ).

But if you have a spare Arduino around, its just as easy to use that..

You might find just installing the new board files is enough to allow you to compile under the newer IDE but still use your older Gen6 based bootloader...

57

Re: Solidoodle2-marlin firmware update thread

I'm comparing the Lincomatic branch to the Solidoodle version to see if I can paste in VIKI LCD functionality, and noticed that the Marlin.pde is mostly empty in the Solidoodle2-Marlin version.

#include "Configuration.h"
#include "pins.h"

#ifdef ULTRA_LCD
#include <LiquidCrystal.h>
#endif

#if DIGIPOTSS_PIN > -1
#include <SPI.h>
#endif

Is the extent of the code there.

Here is an email I got from Roy at Panucatt about setting up Viki for Sanguinololu-

Hi Ian,

Here's a quick way to get it up and running. The firmware still needs polishing but it works.

So Download Lincomatics version of Marlin, also install LiquidTWI2 library (rename to LiquidTWI2 before copying to Arduino Library folder)

Uncomment this line on configuration.h

#define PANUCATT_VIKI

Paste this under the Sanguinololu section in pins.h right after #define SDSS

#ifdef PANUCATT_VIKI
    //#define SDSS  31        //Viki CS pin @ A0
    #define BEEPER -1
    #define SDCARDDETECT 30 //Viki CD pin @ A1
    #define BTN_EN1 29      //Viki ENC_A pin @ A2
    #define BTN_EN2 28      //Viki ENC_B pin @ A3
   
    #define BLEN_C 2
    #define BLEN_B 1
    #define BLEN_A 0
   
    #define encrot0 0
    #define encrot1 2
    #define encrot2 3
    #define encrot3 1
#endif

Connect the other pins on the ICSP header

DI -> MOSI
CLK -> SCK
DO -> MISO

I'm not sure whether to go through the Lincomatic Marlin and change it to Solidoodle settings, or find the LCD functionality in Lincomatic and try to paste it into Solidoodle2-Marlin.

58

Re: Solidoodle2-marlin firmware update thread

IanJohnson wrote:

I'm comparing the Lincomatic branch to the Solidoodle version to see if I can paste in VIKI LCD functionality, and noticed that the Marlin.pde is mostly empty in the Solidoodle2-Marlin version.

This was changed quite recently in Marlin, basically Marlin.pde was renamed into Marlin_main.cpp, and Marlin.pde is little more than a placeholder now. This was done to remove the dependency on the Arduino IDE.

I'm not sure whether to go through the Lincomatic Marlin and change it to Solidoodle settings, or find the LCD functionality in Lincomatic and try to paste it into Solidoodle2-Marlin.

I have the feeling it would be easier to apply SD configuration to Lincomatic, as all the changes in Lawsy's firmware are quite well encapsulated.

FYI since you are interested in stand-alone printing, I'm almost finished modifying Pronterface to use the PengPod as a full-fledged touchscreen interface for the Solidoodle (I still need some bugfixes but it's going to work very nicely!)

59 (edited by adrian 2013-03-15 01:10:12)

Re: Solidoodle2-marlin firmware update thread

IanJohnson wrote:

I'm comparing the Lincomatic branch to the Solidoodle version to see if I can paste in VIKI LCD functionality, and noticed that the Marlin.pde is mostly empty in the Solidoodle2-Marlin version.
....
I'm not sure whether to go through the Lincomatic Marlin and change it to Solidoodle settings, or find the LCD functionality in Lincomatic and try to paste it into Solidoodle2-Marlin.

I just hooked up my RepRapDiscount Smart Controller and it was virtually the 'same' instructions you've quoted - although mines gone onto a RAMPS1.4 I have recently thrown onto the Solidoodle. All I ended up having to do was define the Controller in Configuration.h and I found a few entries in pins.h for the specific pinout.

Unless you want to switch branches, it would probably be a 5 min job to update the lawsy-marlin to have the correct entries in pin.h as a #ifdef based on the configuration.h #define (like its done now for the RepRapDiscount Smart Controller: http://reprap.org/wiki/RepRapDiscount_Smart_Controller ).

I do note though the above is useless for those that don't have a RAMPS board attached as the smart adapter wont fit a Sang, but the principles are otherwise the same with respect to the firmware.

60

Re: Solidoodle2-marlin firmware update thread

adrian wrote:
IanJohnson wrote:

I'm comparing the Lincomatic branch to the Solidoodle version to see if I can paste in VIKI LCD functionality, and noticed that the Marlin.pde is mostly empty in the Solidoodle2-Marlin version.
....
I'm not sure whether to go through the Lincomatic Marlin and change it to Solidoodle settings, or find the LCD functionality in Lincomatic and try to paste it into Solidoodle2-Marlin.

I just hooked up my RepRapDiscount Smart Controller and it was virtually the 'same' instructions you've quoted - although mines gone onto a RAMPS1.4 I have recently thrown onto the Solidoodle. All I ended up having to do was define the Controller in Configuration.h and I found a few entries in pins.h for the specific pinout.

Unfortunately it seems that the Lincomatic branch has something more than just pin definitions, mostly because it uses the LiquidTWI2 library. On the other hand,  most of the work in Lincomatic is to support Printrboard, which we don't need. I think that Ian might still try to limit the changes to the pin redefinitions in Lawsy's firmware (the choice of library seems mostly for performance, not for functionality).

So, bottom line, I think the neatest thing would be to merge Lincomatic's LCD support into Lawsy's Marlin, but the fastest would be to port Lawsy's configuration to Lincomatic. But I wouldn't switch our "semi-official" Marlin repository to a Lincomatic fork, as we would diverge more from the root Marlin, and it would get harder to maintain.

61

Re: Solidoodle2-marlin firmware update thread

I have once again made a preconfigured version of Arduino 022 available at:

http://www.mediafire.com/?3qy0wjf86a66du8

The readme has been updated to reflect this and the define Solidoodle 2 or 3 instructions.

62

Re: Solidoodle2-marlin firmware update thread

I downloaded the latest firmware and the latest Arduino software.  When I open Configuration.h, I don't see the #define SOLIDOODLE_VERSION line.  I tried using the "find" function in the Arduino software, but it can't find that declaration either.

63

Re: Solidoodle2-marlin firmware update thread

Are you downloading from my github?

Whatever is on the solidoodle site is a copy of an older and inferior version of my firmware.

64

Re: Solidoodle2-marlin firmware update thread

lawsy wrote:

Are you downloading from my github?

Whatever is on the solidoodle site is a copy of an older and inferior version of my firmware.

Yes.  I followed the link in the first post to your GitHub, and downloaded the zip file containing everything.

65

Re: Solidoodle2-marlin firmware update thread

I figured it out.  I was using the firmware from the first GitHub link, not the direct download link.  I got 'er working now.  Thanks again, Lawsy.

66

Re: Solidoodle2-marlin firmware update thread

lawsy wrote:

New update: Rincewind has added simple to use support for Solidoodle 2 AND 3 in the one set of files.

In configuration.h, on line 15, the firmware defaults to Solidoodle 2:

#define SOLIDOODLE_VERSION 2

If you change this to '3':

#define SOLIDOODLE_VERSION 3

Rincewind's code will now compile with the correct sized x,y & z dimensions.

A very useful update I'm sure everyone will agree.

That's nice! We tried to get the main Marlin branch to do that something like this, but they declined.

Former Solidoodle employee, no longer associated with the company.

67

Re: Solidoodle2-marlin firmware update thread

Rincewind (the firmware magician!) has reimplemented Neil Martin's hysteresis code, now bug free.

See the details here:

https://github.com/mlaws/solidoodle2-marlin/pull/2

68

Re: Solidoodle2-marlin firmware update thread

lawsy wrote:

Rincewind (the firmware magician!) has reimplemented Neil Martin's hysteresis code, now bug free.

See the details here:

https://github.com/mlaws/solidoodle2-marlin/pull/2

Just about to write that myself smile Thanks for the post and for being so fast in adding the code to the repository!

69

Re: Solidoodle2-marlin firmware update thread

Great - I'm look forward to checking it out.  FWIW, I have a version of "NoLash" running in C/C++.  Code still needs to be cleaned up and tested as a post-process.  Hopefully, though, it is now redundant smile
Matt

70

Re: Solidoodle2-marlin firmware update thread

mconsidine wrote:

I have a version of "NoLash" running in C/C++.  Code still needs to be cleaned up and tested as a post-process.  Hopefully, though, it is now redundant smile
Matt

That's interesting! If you are willing to share the code, we can check how different it is from the currently implemented solution and maybe use it to improve the firmware further.

71 (edited by mconsidine 2013-05-07 14:53:15)

Re: Solidoodle2-marlin firmware update thread

Rincewind wrote:

That's interesting! If you are willing to share the code, we can check how different it is from the currently implemented solution and maybe use it to improve the firmware further.

Absolutely.  I'll post it here in this thread this evening.  I've compared the output to the original and the original author ("georgeflug" in the reprap forums) was extremely helpful in identifying a bug I was having trouble squashing.  But that seems to be sorted out now.  So it's just an issue of making it look good enough to not be embarassing smile

EDIT : Code is attached.  Again, credit to the original author for the insights...

Matt

Post's attachments

NoLashToo.C 5.8 kb, 8 downloads since 2013-05-07 

You don't have the permssions to download the attachments of this post.

72

Re: Solidoodle2-marlin firmware update thread

Hi all, I have just updated my Solidoodle 2 firmware to the latest from github.  I am not sure about setting the backlash value (M99).  Is there a tutorial link anywhere on how to work out the setting to use?  I came from the anti-backlash firmware thread but although it instructs how to add the firmware support, it doesn't seem to explain what to set it to...

Sorry if this is a dumb question. 

Cheers
SLAM-ER

Thanks
SLAM-ER

73

Re: Solidoodle2-marlin firmware update thread

SLAM-ER wrote:

Hi all, I have just updated my Solidoodle 2 firmware to the latest from github.  I am not sure about setting the backlash value (M99).  Is there a tutorial link anywhere on how to work out the setting to use?

You should use a dial gauge and measure the backlash directly. Check this out: http://www.thingiverse.com/thing:28990 and follow the instructions there except that you don't need to convert into steps and you can just use the amount of backlash in mm.

74 (edited by dukeofdixon 2013-06-03 02:31:04)

Re: Solidoodle2-marlin firmware update thread

Hey
My printer came online last night. And could not get it configured. My Dalek didn't print right. Then I couldn't not figure out how to get into the configuration files on my board. I found this site and downloaded Solidoodle from github. Now my board and machine are fine tuned! Thank You!

Edit: I thought I had it but it seems that no matter what value I put for my X axis it can't reach it's goal of 100 meters. Any suggestions as to what I might try?

75

Re: Solidoodle2-marlin firmware update thread

Big user friendly update!

Adrian has kindly prepared PC and Mac versions of the latest Arduino which are compatible with the Sanguinololu boards.

From the readme:

Arduino0022 is no longer needed. A preprepared version of Arduino 1.0.5 has been setup by ozadr1an. It features the required changes needed for the Sanguinololu electronics to work with versions of Arduino beyond 0022. Official Arduino download is available, but you will need to move the files from the Add-ons folder of this repository for the firmware to successfully compile and upload:

-http://arduino.cc/hu/Main/Software

Preprepared PC version:

-http://www.mediafire.com/download/leatx … indows.zip
-https://docs.google.com/file/d/0B7Ieezi … UM2Rk02ajQ

Simply unzip into a folder of your choice.

Preprepared Mac version:

-http://www.mediafire.com/download/9z357 … macosx.zip
-https://docs.google.com/file/d/0B7Ieezi … FZfb0QwZ0U

This has cut a whole bunch of steps out of preparing the Arduino IDE for firmware editing.

All credit to Adrian for creating and Ian Johnson for testing.