HA, I hit ‘publish post’ on accident, and there doesn’t seem to be an undo: This is my scratchpad as I try to get RepRap Firmware on my C-Bot. This is *not* the final page. It’ll be way prettier when I figure out what I’m doing…
- RepRap Forum:
- RADDS LCD is not supported at this time, but the PanelDue is. Plus, it’s a touchscreen.
RRF Background: http://forums.reprap.org/read.php?13,569468,575223#msg-575223
Below install nodes follow these steps:
BUILD FROM SOURCE
I did not do this. Scons was too much a pain in my arse.
STEP 2, SCONS!!!!
I could only get scons installed by doing a MacPort :
$ port install scons
And then spending an hour getting various packages updated.
STEP 3 : GET OLD ARDUINO IDE
To get bossac (which you need to flash the bin to the Due), you need Arduino 1.5.8:
I can’t seem to find bossac anywhere on my mac on the latest release.
STEP 4 : ALREADY DONE
when setting up Repetier
STEP 5 :
git clone https://github.com/dcnewman/RepRapFirmware.git
Edit paths as appropriate
$ cp sample_rrf_arduino_paths.py ~/.rrf_arduino_paths.py
git clone https://github.com/dcnewman/CoreNG.git
STEP 7 : SKIP, using precompiled .bin
http://www.shumatech.com/web/products/bossav > This is known to NOT work with RADDS.
BOSSA is an acronym for Basic Open Source SAM-BA Application c?
$ /Applications/Development/Arduino_158.app/Contents/Resources/Java/hardware/tools/bossac –port=tty.usbmodem2621 -e -w -v -U true -b /Users/ak_eric/git/RepRapFirmware-RADDS/Release/RepRapFirmware-1.10+4-dc42-radds.bin
Copy content of /git/RepRapFirmware-RAADS/SD-Image/sys-CoreXY to your sd card root, and rename it to sys
USB cable in in Native USB port (the one furthest from the barrel jack).
Via S3d, connect at 115200 baud to /dev/cu.usbmodem2621
Sometimes take a few tries of unplugging the usb (or pressing the reset button on the RADDS\Due), Refreshing S3d, and re-connecting.
Note: I am completely unable to connect via the Arduino Serial monitor unless I first: Connect via S3D above. Quit S3d. Open Arduino. Choose the board (below). Unplug and replug the USB, then connect. If I don’t do those steps, while the Arduino IDE Port menu lists the device, it doesn’t list the text in the parenthesis after it (shown below), and it appears is that parenthetical text isn’t shown, then it can’t talk to it. Simplify3D must somehow be registering the USB device in a way that helps kick the Arduino into gear? I have no idea.
Tools -> Board -> Arduino Due ( Native USB Port)
Port -> /dev/cu.usbmodem2621 (Arduino Due (Native USB Port))
Open the Serial Monitor. Set baud to 115200. If it won’t connect, unplug\replug the USB.
Based on this forum post, need this plugin in Octoprint to make it compatible with RRF:
Just browse the Octoprint plugin manager to this file to install:
I had to unplug and replug the Due into the Pi on multiple ports… eventually started working. It usually involved these steps:
Plug USB cable into Pi USB port 0. Refresh the Ocotprint web page. Try to connect. Fail. Plug USB cable into another Pi port, repeat. Eventually it connects. And once it’s connected, you can unplug \ replug into any usb port and it’ll work. Chaos!
Note, there may be some fan-related issues:
To test (in S3D, Octoprint, or Arduino you actually got connected):
M503 to report config status and know it’s actually working: If the SD is in there, it should print what’s in config.g, otherwise it’ll report no config file. If you’er in Arduino and you get no response, then you probably have the issue I describe above.
Macros can live in the /sys folder, or in the /macros directory with any extension.
While in a macro, you can call another macro. Macros are searched in /sys directory and it is recommended to always specify explicitly the path.
M98 calls to other macros.
Defining nozzle and bed thermistor via M305
I’m using a E3d-V6 thermistor for my Volcano hotend.
Use the Beta value 4267K.
It’s 100k Ohm
M305 P T B R L H X
- P : Heater Number : Not to be confused with the ‘P’ (tool) value of M563. 0 = heated bed (RADDS bed), 1 = first extruder (RADDS H0). 2 = second extruder (RADDS H1), 3 = third extruder (RADDS H2).
- T : Thermistor resistance at 25c
- B : Beta Value
- R : Series Resistor Value
When communicating with the RADDS, if you enter a M305 P0, it’ll print the current state.
My Values (just a generic 100k one for the bed), RADDS has a 4700 ohm inline resistor.
M305 P0 T100000 R4700 ; P0 = Heater 0 = The bed. Not sure the 'beta' value for this.
M305 P1 T100000 R4700 B4267 ; P1 = Heater 1 = The extruder nozzle. Beta per the E3D docs.
Note, you’ll know these values are wrong if at room temp (25C / 77F) your control software (like Simplify 3D) doesn’t read 25(ish)c : I had originally set R1000, and it reported the resting temp to be 60c, very, very wrong.
Defining ‘Tools’ via M563
M563 P D H
- P : Specifies the ‘tool‘ number, 0 -> infinity.
- D : The drive(s) used by the tool : 0, 2, 3 : D0 <-(zero) Is the first drive after the XYZ steppers, so presumably the extruder stepper.
- H : The heater(s) used by the tool : 0, 1, 3 : 0 = Heated bed, 1 = first extruder heater.
M563 P0 D0 H1 ; Tool (P) 0 : D0 = Extruder stepper 1. H1 = First extruder heater.
To select a tool in gcode, use T# to select it, T99 to deselect (needed?)
Defining axis direction and enable values via M569
M569 P S R X Y Z E
- P : Specifics the ‘drive‘ number, not to be confused with the ‘P’ (tool) value of M563. 0=X, 1=Y, 2=Z, 3=E (right?).
- S : Whether the drive should move forward. 1 = forward, 0 = backward.
- R : Enable Drive. 1 = enable, 2 = disable.
M569 P0 S1 ; X
M569 P1 S0 ; Y - I needed to reverse this.
M569 P2 S1 ; Z
M569 P3 S1 ; E1
M569 P4 S1 ; E2(?) : I don't think I'm using this drive.
Set Endstop configuration via M574
M574 X Y Z S
- X, Y, Z : The switch type for the axis : 0 = none, 1 = low (min) 2 = high (max).
- S : Logic level : Defines whether the endstop input is ‘active high’ (S1, the default), or low (S0).
M574 X1 Y1 Z1 S0
Defining steps per mm via M92
My Values, copied from Repetier, since I’m using the same SD6128 drivers at 1/32 microstepping.
M92 X399.486 Y401.083 Z804.91
They were an amazing pain: I have a hotend cooling fan, and a PLA cooling fan.
This is what finally worked:
M106 P0 T60 H1 ; Enable the auto hotend cooling fan to kick on at 60c.
M106 P1 H-1 ; Must do H-1, or it'll turn on with P0 for some reason.
M106 S0 P1 ; Must do, or P1 will go full blast on start :S
- If I didn’t declare P1 non-thermostatic (H-1) it would turn on with P0.
- If I didn’t set P1 to a speed of 0, it would go full blast on machine start.
- Still havn’t figured out how to hijack pin H2 to double as a case cooling fan.
Stuff to comment out:
- All M540, M552, M553, and M554 (network) commands, not supported by RADDS.
- M906 (motor current) commands : Not supported by RADDS.
Set Extruder PID via M301
M301 H P I D T S W B
Is there autotune in RRF?
+ homex.g, homey.g, homez.g
Make sure you set the G1 commands when moving the head some amount past your build volume, so they’ll be sure to hit the end-switches no matter what. For example, my X platform width is 305mm. So when homing:
G1 X-330 F3000 S1
I set it to go -330, just to make sure it hits.
Macro M & G code usage
- config.g : Machine starting up
- stop.g : M0
- resume.g : M24
- pause.g : M25
- stop.g : M25
- homeall.g : G28
- bed.g G28 / G32 (if using auto leveling)
- tpre0.g : Before tool1 is selected
- tpost0.g : After tool1 is selected
- tfree0.g : When tool1 is freed
Wiring the hardware
https://github.com/dcnewman/RepRapFirmware/blob/dev/doc/RADDS-v1.5.md < This is actually the best overall setupguide for the whole thing I’ve found.
Some notes from that doc, for the RADDS board:
- The minimum endstop headers are used for the endstops: X min, Y min, and Z min.
- Thermistor position T4 is used for the heated bed. This is the thermistor header farthest from the board’s corner.
- Thermistor position T0 is used for the first extruder, T1 for the second, etc.
- Fan0 with ‘M106 S# P0′. Where S is 0-255 . P0 is default, and can be omitted. This if the hotend cooler.
- Fan1 with ‘M106 S# P1′ : This is the PLA cooler on the hotend.
My own stuff:
- RADDS cooling fan is hooked to H2 : How to configure that as a fan?
- How to make hotend fan turn on automatically? http://forums.reprap.org/read.php?13,569468,606169#msg-606169
Switching IO pins:
- On RADDS hardware running RepRapFirmware-dc42, the supported Arduino Due pin numbers and their names are:
- 5 TIOA6, 6 PWML7, 39 PWMH2, 58 AD3, 59 AD2, 66 DAC0, 67 DAC1, 68 CANRX0, 69 CANTX0, 70 SDA1, 71 SCL1, 72 RX LED, 73 TX LED.
- Use M583 to wait for a pin.
- Endstops not being detected no matter what combo of values is entered into M574.
- Last remaining issue before print!
- PLA Cooler fan turns on automatically when using M563 to define the first tool.
- Solved : Setting Fan0 to thermostatic (turn on when hotend reaches certain temp) it aut0-fixed this. Weird.
- PLA Cooler fan doesn’t respect PWM control: It’s either 100% on, or off.
- Solved: Needed tricky config.g, see above.
- Extruder doesn’t seem to be reading the correct temperature.
- Solved: Wrong inline-resistor value: had 1000, should be 4700 (what’s on the RADDS boar).
- Can’t figure out how to enable the case cooling fan by plugging it into H2.
- Whenever I start the Due\RADDS, I have to press reset to actually make it work. This happens in Repetier too.
- Described here as well: http://forums.reprap.org/read.php?13,569468,579517#msg-579517
- Appears to be a bug in the firware of a chip on the Due itself:
- I wonder if this is why I couldn’t use my programming port to flash the bin to the Due?
- From above post : “all arduino due r3 have this problem and there is an new version called r3-e that do not have the problem”