RBCE - RigidBot Community Edition Firmware

Share your modifications or have technical discussions about the Rigidbot

RBCE - RigidBot Community Edition Firmware

Postby greg » 15 Aug 2014, 03:53

The RBCE project aims to modify the original Marlin code base with Invent-a-Part's code customizations, with the goal of providing the "community edition" firmware you will find maintained in this thread. These are not official firmware images from Invent-a-Part, which are available from them at https://www.inventapart.com/digital_fil ... center.php If you want to compile your own firmware from the community edition source code, you can fork the git repo at https://github.com/gregrebholz/Marlin_RBCE_legacy

The authors make NO WARRANTY or representation, either express or implied, with respect to this software, its quality, accuracy, merchantability, or fitness for a particular purpose. This software is provided "AS IS", and you, its user, assume the entire risk as to its quality and accuracy.

To upload these firmware images to your RigidBot control board, you can use a simple GUI tool such as http://xloader.russemotto.com/ or the "avrdude" command which is installed along with the Arduino IDE (e.g. $AVRPATH/bin/avrdude -C $AVRPATH/etc/avrdude.conf -pm2560 -cstk500v2 -P/dev/tty.usbmodem1421 -b115200 -D -Uflash:w:RBCE_v0.3_Big_Single_RigidPanel.hex).

Latest Stable RBCE
  • None yet. Stay tuned!

Latest Beta RBCE - v0.3
Notable Features:
  • Preliminary LCD support - RigidPanel LCD tested, RepRap Discount Full Graphic LCD untested
  • LCD behavior matches IAP 1.0 Firmware currently
  • Acceleration limits match IAP 1.0 Firmware currently
  • Resets stepper drivers after bootup to resolve occasional issue with one or more dead axes
  • Runaway heater protection (halt after 40 seconds of being offset from target temperature by 4C on extruder, halt after 20 seconds of being offset from target temperature by 2C on heated bed; timer starts after target temperature reached for the first time)
  • Default PID constants for the redesigned hot end, based on crowd sourced PID tuning (run your own autotune for best results)
Source download:
Binary downloads:
Legacy RBCE versions
Last edited by greg on 01 Mar 2015, 01:51, edited 3 times in total.
greg
 
Posts: 34
Joined: 25 Apr 2014, 14:10

Re: RBCE - RigidBot Community Edition Firmware

Postby NoProblem » 15 Aug 2014, 04:45

As expected PREFECT - :lol: so far
NoProblem
 
Posts: 1
Joined: 23 Jun 2014, 14:32

Re: RBCE - RigidBot Community Edition Firmware

Postby pwnstar » 24 Aug 2014, 08:56

Works great, can't wait for more :)
pwnstar
 
Posts: 2
Joined: 19 Aug 2014, 04:08

Re: RBCE - RigidBot Community Edition Firmware

Postby KnightFire » 25 Aug 2014, 17:01

No file found - RigidBot Regular, single, either LCD.
KnightFire
 
Posts: 1
Joined: 14 Aug 2014, 01:30
Location: Canada

Re: RBCE - RigidBot Community Edition Firmware

Postby greg » 02 Sep 2014, 03:24

Argh, big apology to KnightFire and anyone else with a RB Regular. The forum only notified me today via email about your posts here, and when I checked it looks like I only uploaded the four 'Big' builds... no idea how that happened. I hope you were able to get what you need by compiling the source, but I have uploaded the missing .hex binaries if you'd rather download.
greg
 
Posts: 34
Joined: 25 Apr 2014, 14:10

Re: RBCE - RigidBot Community Edition Firmware

Postby Dave5709 » 16 Sep 2014, 05:14

I've been using this firmware for a while now and it's working great!

I'm a professional programmer, but all closed source. While I'm familiar with version control, I'm not at all familiar with Marlin, or with cross-project merges. Did the merge with Marlin ever go through? What are the implications of the merge?

As a code monkey without experience with arduino or Marlin, is there anything I can help with?
Dave5709
 
Posts: 1
Joined: 14 Sep 2014, 03:39

Re: RBCE - RigidBot Community Edition Firmware

Postby greg » 16 Sep 2014, 06:23

Hi Dave, that's great to hear! Thanks for the feedback. The majority of the code changes that make up RBCE were submitted to the main Marlin project here: https://github.com/ErikZalm/Marlin/pull/1063 which you can follow along with if there are developments.

If you're familiar with git you'll know of 'push' and 'pull' to sync cloned repositories. Github.com adds the 'pull request' -- you don't have write access to the repo you've cloned, but you can submit a request to those that do, so they can choose to 'pull' from you or not. In our case Marlin has 57 pull requests currently outstanding (https://github.com/ErikZalm/Marlin/pulls) and it's pretty much up to them which if any will be merged, and when. They've been pretty good about merging "support for new printers" from what I've seen, so I'm hopeful.

You can see in the pull request that some Marlin contributors didn't like what I considered some of the best 'general cleanup' features initially, so I actually made further revisions to strip that out in the hopes they'd more quickly accept the core changes. After acceptance I'd like to go back and try tackling those "mechanics bundles" that were discussed there. I thought they were quite elegant, but again it was more important to get "RigidBot support" included.

As far as implications, if Marlin accepts the pull request as it currently stands, github can auto-merge it for them with one click (because my changes are all deltas from the bleeding edge; if they accept others' changes that conflict with mine I'll need to resolve the conflicts in my still-open pull request). At the moment they merge, the official Marlin code will be identical to my clone of it at https://github.com/gregrebholz/Marlin . Marlin will continue to evolve and absorb contributions from others, but our RigidBot support will be included in there for folks that want to compile Marlin for our hardware. Ideally we'd all be contributors to the Marlin project from then on, including IAP. One of the next projects to tackle will be taking a diff of IAP's 1.0 and 1.1 firmware, which is mostly LCD menu changes, and applying those to the new rigidpanel.h and rigidpanel.cpp files, to make another pull request to Marlin. That's something IAP could do themselves if they're interested, or I could do, or you, or anyone else that wants to fork Marlin and put together the changes.

To help? why anything you'd like! :) With the pull request outstanding as it is, any changes I make to gregrebholz/Marlin will automatically become part of the open pull request. To avoid that I should have created a branch of Marlin, developed to the point of a pull request, and then I could move on to work on other branches, etc. Since I didn't, I'm kind of on ice until they accept or reject the change (or I give up and close it out to try again).

If you want to acclimate to open source software development, github is worth learning. Make a github account, find a project you're interested in (http://github.com/ErikZalm/Marlin), and click the "Fork" button near the top right. This will give you a complete clone of the Marlin repo in your github account which you can develop and eventually submit pull requests from. To actually work with your clone, you can install git on your laptop/workstation, and then 'git clone https://github.com/youruser/Marlin' to get a clone of your clone. You can make your local git aware of the lineage by adding a 'git remote add upstream https://github.com/ErikZalm/Marlin' and that will allow you to 'git pull origin master' to bring any new developments in Marlin directly into your local repo. Work on your own changes locally, using 'git add/rm/checkout/commit', and eventually push your changes up to github with a 'git push' (you have write permissions to your clone of Marlin on github). Then from github you can submit a 'pull request' to Marlin with a click, and proceed to comment and discuss with the maintainers.

It's a pretty steep learning curve, but as you get comfortable with it the power is evident. You can quickly move around in time, diff between commits or branches, use 'git blame' to find out who was responsible for a particular line of code, etc. I hope you find some enjoyment in it. Feel free to browse the code, ask questions, and make suggestions here on the forum too.
greg
 
Posts: 34
Joined: 25 Apr 2014, 14:10

Re: RBCE - RigidBot Community Edition Firmware

Postby AndreyM » 20 Sep 2014, 11:22

Greetings. Thank you for all of the work on the firmware. But how do I permanently change values in the code? In the firmware put out by Rigidbot I was able to do so in the config file. I have downloaded and installed RBCE_v0.3_BIG_Single_RigidPanel.hex using XLoader. It being a hex file I'm not sure how to modify the X/Y/Z/E steps nor PID settings. For whatever reason, M500 does not permanently save any changes and they revert back to the original every time pronterface is reconnected.
AndreyM
 
Posts: 2
Joined: 19 Aug 2014, 00:52

Re: RBCE - RigidBot Community Edition Firmware

Postby gof » 09 Oct 2014, 07:04

Digging through the code, I've found that in the binaries above as well as in IAP's version, the setting for EEPROM_SETTINGS and EEPROM_CHITCHAT are not defined. As such, you can't save the settings. I don't even think the bed settings are stored.
gof
 
Posts: 4
Joined: 18 Jun 2014, 21:48

Re: RBCE - RigidBot Community Edition Firmware

Postby gof » 15 Oct 2014, 13:56

Greg, can you post the config.h that you are using for each of your builds? I forked your source but was unable to recreate a (correctly) working firmware. Ideally I could start from yours and re-enable the EEPROM storage.

Also see G+ for the question on possibly wrapping in the newest firmware build from IAP.
gof
 
Posts: 4
Joined: 18 Jun 2014, 21:48

Next

Return to Modifications & Technical

Who is online

Users browsing this forum: No registered users and 2 guests
cron