1

Topic: Beta of latest Marlin_V1 w/ Solidoodle Patches (Oct-13) (All Boards)

I've patched up the very latest as of the weekend marlin and re-incorporated the "Solidoodle Specific" settings and patched in the Hysterisis and Wobble patches.

I've also scoured the June-14 printrboard firmware that was released. I noted some additional changes to the acceleration settings and the like, which are wholly mechanical and not motherboard related, so have back ported those into the firmware as well.

Notables there was acceleration is down to 1000 max/default, and the individual axi' are 1200.
Bed is up to 150° Max too.

There was a pinswap in the solidoodle-printrboard firmware for 'fan pin', it changed from 22 to 16, so I echoed the changes. As far as I can tell, thats the only non-mainline-marlin change that was used, which means, this firmware should really be 'universal' now - excepting the compilation methods (you will still need to dance the printrboard dance as per the wiki... but you can use this source code for the firmware).

Fun features from the latest marlin:
Viki LCD Support, and a whole heap of I2C ones. So if you had a Viki, dust it off, download the firmware, uncomment the appropriate define in configuration.h, and voila!
"BabyStepping" - Very cool feature to micro-step axis during a print job. This is very cool and i've used the z-axis one a fair bit last few days. It allows you to drop the bed just a tiny bit, or raise it a tiny bit, to get that *perfect* first layer. I print a 2-3 loop skirt, and just tweak it via the LCD... also handy if you notice a missed step, you can tweak it out again! smile
Filament Change via LCD works properly now - AND resumes correctly
Auto-bed-leveling - as discussed in the other thread. If you care to give it a go and have a servo around, the codes in the firmware now at least. Instructions at the end of the Readme at github or in the firmware source code.

....and a HEAP of bugfixes. Pretty much every file that wasn't just a support file has been changed since my last firmware realignment in May..

I'll update the bundled arduino IDE's in the next few days once I know theres no other issues with the firmware.

And I'd be very keen for someone with a printboard and are comfortable with the update process to test the firmware too!

For now, you'll have to download from my Github;
https://github.com/ozadr1an/Solidoodle- … in_v1_beta .

I'll send a pull request through to lawsy's source-base in next few days again once we know its good as is.

- Adrian

2

Re: Beta of latest Marlin_V1 w/ Solidoodle Patches (Oct-13) (All Boards)

Thanks for the hard work!

SD2 - Glass Bed, Fans on PCB and Y motor, Custom enclosure
Slicer - Simplify3D

3

Re: Beta of latest Marlin_V1 w/ Solidoodle Patches (Oct-13) (All Boards)

I will give this a go tonight on my printrboard.

You know, they really need to revision Marlin. There are 1000 versions of Marlin V1. Its ****ing annoying. I have like 5 folders of Marlin, and they are getting harder to keep track of each day.

Chuck Bittner is a quadriplegic gamer who is petitioning the major console developers to include internal button remapping in all console games. You can help.
Sign Chuck Bittners petition

4

Re: Beta of latest Marlin_V1 w/ Solidoodle Patches (Oct-13) (All Boards)

Outstanding work!

Most people will have no idea the time and effort you've put into this. I can only hope you're building up some 3D printing karma that will reward you in some way in the future.

5

Re: Beta of latest Marlin_V1 w/ Solidoodle Patches (Oct-13) (All Boards)

Top notch work. Wish there was a way I could thank you better!

6

Re: Beta of latest Marlin_V1 w/ Solidoodle Patches (Oct-13) (All Boards)

Adrian,

Just tried to compile with ZWOBBLE_PATCH enabled but get the following error with Sanguinololu.

Any ideas?


planner.cpp: In function 'void plan_buffer_line(const float&, const float&, const float&, const float&, float, const uint8_t&)':
planner.cpp:533: error: 'zwobble' was not declared in this scope

7

Re: Beta of latest Marlin_V1 w/ Solidoodle Patches (Oct-13) (All Boards)

Uploaded to SD3 with printrboard and I am finishing a print now. It all looks good.

Good work!

Chuck Bittner is a quadriplegic gamer who is petitioning the major console developers to include internal button remapping in all console games. You can help.
Sign Chuck Bittners petition

8 (edited by adrian 2013-10-15 07:48:52)

Re: Beta of latest Marlin_V1 w/ Solidoodle Patches (Oct-13) (All Boards)

Just happy to be of help all smile

rjp350z wrote:

Adrian,

Just tried to compile with ZWOBBLE_PATCH enabled but get the following error with Sanguinololu.

Any ideas?


planner.cpp: In function 'void plan_buffer_line(const float&, const float&, const float&, const float&, float, const uint8_t&)':
planner.cpp:533: error: 'zwobble' was not declared in this scope

My bad, I committed the wrong planner.cpp file.

Redownload the source-code, download the planner.cpp file, or add to your local copy from Line 60:

#ifdef ZWOBBLE_PATCH
  #include "ZWobble.h" //{SD Patch}
#endif
#ifdef HYSTERESIS_PATCH
  #include "Hysteresis.h" //{SD Patch}
#endif

Apologies about that!

Hazer - Thanks very much for testing. Means we now have a unified firmware at least, different firmware update methods not withstanding...

9

Re: Beta of latest Marlin_V1 w/ Solidoodle Patches (Oct-13) (All Boards)

I should note a couple of things:

1: I have noticed that it is over-all faster than the Solidoodle official firmware for printrboard. By this, I mean I have my SD3 running at 120mm/s print speed for a month now. Even though I have it at that speed, certain 'limitations' for varied prints have the speeds slow down (small objects, larger outer perimeter-to-infill ratio prints, yada yada). I have noticed that during certain layers, it slows down ALOT. But this newer Marlin release must have less limitations applied. I printed a couple of small-but-complicated parts for the test run, and it flew through them. Quality was the same as before.

2: I have been working on getting the LCD to work with the printrboard for awhile now. One thing I found out was that somebody on the Marlin team decided back in December 2012 to renumber all of the pins for the printrboard. Two bad things about this. First, the numbering no longer matches any web documentation about connecting LCD and SD support (lincomatic, Think3D, my3Dprinterbuild). This confuses things since the only people to get this working have different pin number assignments. Second, when the pins were renumbered, they only did it in fastio.h and pins.h. They did not update SD2pinmap.h which specifies the pin numbering for SD support. I believe this breaks SD support when it is turned on. I am not completely certain though. I reported the issue to the Marlin github.

3: Do you have any plans to commit your filament alarm in the future?

4: I pretty much have a stock SD3. Is there anything that anybody would want tested on a printrboard that would be changeable? What I mean is, if someone had an upgraded hotend they could easily change the max temperature in the firmware. I dont see any need to confirm that. But is there anything else in the firmware that could be tested for upgraded SD3s?

Chuck Bittner is a quadriplegic gamer who is petitioning the major console developers to include internal button remapping in all console games. You can help.
Sign Chuck Bittners petition

10 (edited by adrian 2013-10-15 13:46:24)

Re: Beta of latest Marlin_V1 w/ Solidoodle Patches (Oct-13) (All Boards)

Hey Hazer; thanks for the feedback, appreciate it.

Quick responses to your points right now:

1: Cool! Loads of bugfixes and improvements as a result of the delta code have occured in mainstream-marlin
2: I'll have to check it out further. Not having a printrboard immeadiately handy, I'll have to take that away and investigate it further on the weekend for you. It shouldn't be too much of a drama to get some alignment. 
3: Yes, but I have pulled it from *this release* as I'm going to realign it to work with some newer/different functions. I basically have 'backed the wrong horse' on some M600 patches a few months back, and rather than continue to try and beat it into submission, I'm going to refactor my code to work with the 'as adopted' M600 patches... Blah... but once its aligned, I'll let it soak for a few weeks then submit it upstream. The original is still there under the _M600 branch... but I'll patch this branch with the newer code in next few days.
4: I'll have a few things in next few days you can test tongue smile

11

Re: Beta of latest Marlin_V1 w/ Solidoodle Patches (Oct-13) (All Boards)

adrian wrote:

Just happy to be of help all smile

rjp350z wrote:

Adrian,

Just tried to compile with ZWOBBLE_PATCH enabled but get the following error with Sanguinololu.

Any ideas?


planner.cpp: In function 'void plan_buffer_line(const float&, const float&, const float&, const float&, float, const uint8_t&)':
planner.cpp:533: error: 'zwobble' was not declared in this scope

My bad, I committed the wrong planner.cpp file.

Redownload the source-code, download the planner.cpp file, or add to your local copy from Line 60:

#ifdef ZWOBBLE_PATCH
  #include "ZWobble.h" //{SD Patch}
#endif
#ifdef HYSTERESIS_PATCH
  #include "Hysteresis.h" //{SD Patch}
#endif

Apologies about that!

Hazer - Thanks very much for testing. Means we now have a unified firmware at least, different firmware update methods not withstanding...

No problem Adrian,  That's why we are all here to debug and make it better wink

I will re-download and try to test tomorrow night as I am out of town right now

Rob

12 (edited by adrian 2013-10-16 10:27:34)

Re: Beta of latest Marlin_V1 w/ Solidoodle Patches (Oct-13) (All Boards)

Hazer , good news!!
I *think* i've got the Onboard SD sorted out, and can explain how the pinmappings working. smile

Redownload the firmware from https://github.com/ozadr1an/Solidoodle- … in_v1_beta and enable SD Card support. Compile and upload that to the board.

Now - the Y-Endstop on the Printrboard, for whatever reason, is wired to the *hardware* SS port on the at90usb.. which means when this pin changes state the sd library is coded to pull an interrupt - this is what you would have read about elsewhere... it *may* not be a problem now, or it may be. So during this testing, be prepared to test accessing hte SD card with the Y-axis both homed and 'not homed'.... If it proves to continue to interfere, we can swap across to the E-stop pins..

Ok, so to test, you should be able to upload a file to the SD card via repetier host using the sd-card 'upload' command... you should also be able to list files etc. make sure to keep them '8.3' such as 'yoda.gco'.

With regard to the pin mapping, yeah its a mess, but its not entirely the fault of any one particular person.

Whats happening is some parts of marlin are referencing the fastio.h pin mapping, which is bound to a map defined in that file and loosely based on atmega 'arduino' pins, and that goes to the PortXXX on the at90..  but you can work it out via the 'PortXXX' mapping elsewhere in the file.
Now, *other* parts of the SD library are using the pin numbers directly in 'native' numbering, meaning the use the Teensyduino port mapping. This is also why the 'fan pin' is actually "pin 16", not the '22' as per mainline-marlin. Pin 22 is the 'fastio.h' mapping for "pin 16", but the FAN_PIN calls in 'planner.cpp' actually use native analog_write calls direct to "FAN_PIN", so you need the 'teensyduino' pin mapping.

Long waffling story short, I've made a bunch of changes, set stuff to do what appears to be the right calls. So re download the firmware code smile

But I can't predict if some nasty back code will still cause issues by reading hte hardware-ss pin (pin 20 or 8 depending on mapping) which is now the 'y-stop' on the printrboard will interefere. Try as above, both on and off the home switch, and if it does interfere, solution is to jump to using hte E-stop for y-stop (and setting y-stop in firmware to read pin 13/19...)

Anyway - mapping issue solved - just takes some dilligence on what calls what where sad

Can you test asap if this has made the onboard SD work as expected... if that works.. we can move on to cleaning up the LCD issues for you.

13

Re: Beta of latest Marlin_V1 w/ Solidoodle Patches (Oct-13) (All Boards)

I'll check it out. I already have a working version of the SD and LCD where I just switched the numbering back. I will take this new version and make the tests. My version does have the Y-endstop problem, so if yours solves that, that would be great.

Chuck Bittner is a quadriplegic gamer who is petitioning the major console developers to include internal button remapping in all console games. You can help.
Sign Chuck Bittners petition

14 (edited by adrian 2013-10-16 21:05:35)

Re: Beta of latest Marlin_V1 w/ Solidoodle Patches (Oct-13) (All Boards)

Cool cool, I didn't change the mapping, I just dealt with it. I can't see fastio going back as its coded based on the teensylu, which follows the arduino-esque pin mapping. The printrboard on the other hand, was laid out from scratch based on whats closest to what physical connectors - or borrowing Teensylu pins otherwise - meaning it follows nothing close to the teensylu pin numbering in a bunch of areas. smile

So this way at least, motherboard == 81 (the new printrboard type code), will work, as long as you uncomment SDSUPPORT... The end-stop, we will deal with seperately (and I'll have a chat to SD about if it is a root issue - and get them to pin swap the gerber files they use to get the boards etched (painful as there will then be two versions) or get them to 'adopt' using the e-stop port, and either switch the silkscreens around, or deal with it (less painful, and only leads to differences in connection point not behaviours...)

Keen to hear if it works. and the status of the y-stop (being the hardware SS port, the microcontrollers natural reaction is to treat it as an interrupt...)

15

Re: Beta of latest Marlin_V1 w/ Solidoodle Patches (Oct-13) (All Boards)

Thank you adrian! You are the best.

I just uploaded your firmware to my SD3. As a curious thing, the version I got from your github already had the printer selection line set up for an SD3 and I didn't have to change anything there. 

Works like a charm!

16

Re: Beta of latest Marlin_V1 w/ Solidoodle Patches (Oct-13) (All Boards)

No worries.

Keen for someone to test the SD Card support on a new Printrboard SD... (bearing in mind, you can't use Kingston branded SD as they don't support the required protocols...)

17

Re: Beta of latest Marlin_V1 w/ Solidoodle Patches (Oct-13) (All Boards)

I can try to do this tonight.

BTW: I believe most of those issues (file format and Kingston) have been fixed.

Chuck Bittner is a quadriplegic gamer who is petitioning the major console developers to include internal button remapping in all console games. You can help.
Sign Chuck Bittners petition

18 (edited by adrian 2013-10-17 10:57:04)

Re: Beta of latest Marlin_V1 w/ Solidoodle Patches (Oct-13) (All Boards)

Hazer wrote:

I can try to do this tonight.

BTW: I believe most of those issues (file format and Kingston) have been fixed.

Thanks for that ! smile

The file-format, looks to still be 8.3, but I could be wrong.

And the kingston issue is more that 90% of kingston cards don't support SPI, which is what the sdlib uses (theres a few ways to access SD cards - SPI or 'native'.. SDIO is the way to access cards though using 4x, 10x etc.. and not done with most microcontrollers as its a pita timing wise...). It may well have moved on, but its been a long standing general 'using-spi-to-access-sd-cards' issue for a while outside of marlin.

19

Re: Beta of latest Marlin_V1 w/ Solidoodle Patches (Oct-13) (All Boards)

Hey Hazer - you had a chance to do the tests with the new code and the onboard SD card ?

20

Re: Beta of latest Marlin_V1 w/ Solidoodle Patches (Oct-13) (All Boards)

Not good. Enabling SD support and having an SD card in it breaks the USB communication. I cannot get RH to talk to the printer. If I comment out SDSUPPORT, then everything works again.

Just to let you know, I have had alot of problems with the stock printrboard and SD card working. In actuality, I have a clone printrboard that I have had no problems getting the same firmware to work, where it will not work on the SD stock board. I plan to install the clone more 'permanently' this week. I will load this firmware into that and let you know.

Chuck Bittner is a quadriplegic gamer who is petitioning the major console developers to include internal button remapping in all console games. You can help.
Sign Chuck Bittners petition

21

Re: Beta of latest Marlin_V1 w/ Solidoodle Patches (Oct-13) (All Boards)

Hazer wrote:

Not good. Enabling SD support and having an SD card in it breaks the USB communication. I cannot get RH to talk to the printer. If I comment out SDSUPPORT, then everything works again.

Just to let you know, I have had alot of problems with the stock printrboard and SD card working. In actuality, I have a clone printrboard that I have had no problems getting the same firmware to work, where it will not work on the SD stock board. I plan to install the clone more 'permanently' this week. I will load this firmware into that and let you know.

Was excited to see that work.

Former Solidoodle employee, no longer associated with the company.

22

Re: Beta of latest Marlin_V1 w/ Solidoodle Patches (Oct-13) (All Boards)

Does this update work with the Sanguinololu boards?

SD2 - Glass Bed, Fans on PCB and Y motor, Custom enclosure
Slicer - Simplify3D

23 (edited by adrian 2013-10-22 22:50:36)

Re: Beta of latest Marlin_V1 w/ Solidoodle Patches (Oct-13) (All Boards)

yes - Sangs are included in 'All Boards' smile

But to confirm, yes.. Motherboard Type 62....

24

Re: Beta of latest Marlin_V1 w/ Solidoodle Patches (Oct-13) (All Boards)

Update:

I installed a printrboard clone and tried the latest one you gave me. No good. It does the same thing. When I enable SDSUPPORT, it hoses the connnection to RH. It doesnt show me the printer information, and does not recieve commands. Yes, removing SDSUPPORT it goes back to normal.

So, I took the firmware from the first post and changed the following:
fastio.h has old pin numbering.
SD2pinmap.h has B6 for SDSS.
pins.h has oold pin numbering, and Y stop is moved to E5 (the E endstop).

I can now see the SD card mounted in RH. I am running a test print as I type. Now, this is on the clone board. I had an issue with the stock motherboard before, but I will re-install and try again to see if the newest Marlin somehow takes care of that issue.

Chuck Bittner is a quadriplegic gamer who is petitioning the major console developers to include internal button remapping in all console games. You can help.
Sign Chuck Bittners petition

25 (edited by adrian 2013-10-24 10:06:35)

Re: Beta of latest Marlin_V1 w/ Solidoodle Patches (Oct-13) (All Boards)

Cheers for the update. Its hard to write microcode for a board I dont have lying around at the moment wink All I got is datasheets to work off wink

Let us know how it goes on the SD OEM Printrboard