Quantcast
Channel: Recent Discussions - Repetier-Forum
Viewing all 9285 articles
Browse latest View live

Repetier 1.0.0 + Due + RADDS 1.5 + RepRapDiscount Full Graphic Smart Controller 128x64

$
0
0
Hello,
first at all sorry me to start new discussion, but I am lost in these previews discussions because they are few years old so with old firmware too and with different conclusion. After few days trying to make working I am hopeless.

Many years I run my delta on Repetier + Mega 2560 + RAMPS 1.4 + DRV8825 + RepRapDiscount Full Graphic Smart Controller 128x64 (with adapter) and now is time to upgrade the computing power. I still wanted Repetier and RepRapDiscount Full Graphic Smart Controller 128x64 too, and next I choose DUE + RADDS 1.5) Generate via the Repetier firmware generator new one (with the differences - DUE + RADDS 1.5 and naturally start with the RepRapDiscount Full Graphic Smart Controller 128x64) and make the connection as shown here: https://github.com/luc-github/DUE-RADDS-GLCD/blob/master/Images/RADDS.png?raw=true and here: http://forums.reprap.org/file.php?2,file=72915.Of course I read the forum and few other so I tried:


  • to swap the LCD5 with LCD7,
  • checked the RADDS 1.5 with beeper,
  • checked pin numbers in:

uiconfig.h:
#else // Direct display connections
#define UI_DISPLAY_RS_PIN        63        // PINK.1, 88, D_RS
#define UI_DISPLAY_RW_PIN        -1
#define UI_DISPLAY_ENABLE_PIN            65        // PINK.3, 86, D_E
#define UI_DISPLAY_D0_PIN        59        // PINF.5, 92, D_D4
#define UI_DISPLAY_D1_PIN        64        // PINK.2, 87, D_D5
#define UI_DISPLAY_D2_PIN        44        // PINL.5, 40, D_D6
#define UI_DISPLAY_D3_PIN        66        // PINK.4, 85, D_D7
#define UI_DISPLAY_D4_PIN        59        // PINF.5, 92, D_D4
#define UI_DISPLAY_D5_PIN        64        // PINK.2, 87, D_D5
#define UI_DISPLAY_D6_PIN        44        // PINL.5, 40, D_D6
#define UI_DISPLAY_D7_PIN        66        // PINK.4, 85, D_D7
#define UI_DELAYPERCHAR           50

after my edit:
#else // Direct display connections
#define UI_DISPLAY_RS_PIN        42        // PINK.1, 88, D_RS
#define UI_DISPLAY_RW_PIN        -1
#define UI_DISPLAY_ENABLE_PIN            43        // PINK.3, 86, D_E
#define UI_DISPLAY_D0_PIN        -1        // PINF.5, 92, D_D4
#define UI_DISPLAY_D1_PIN        -1        // PINK.2, 87, D_D5
#define UI_DISPLAY_D2_PIN        -1        // PINL.5, 40, D_D6
#define UI_DISPLAY_D3_PIN        -1        // PINK.4, 85, D_D7
#define UI_DISPLAY_D4_PIN        44        // PINF.5, 92, D_D4
#define UI_DISPLAY_D5_PIN        45        // PINK.2, 87, D_D5
#define UI_DISPLAY_D6_PIN        46        // PINL.5, 40, D_D6
#define UI_DISPLAY_D7_PIN        47        // PINK.4, 85, D_D7
#define UI_DELAYPERCHAR           50

ui.h:
#if FEATURE_CONTROLLER == CONTROLLER_RADDS
#undef SDSS
#define SDSS            10
#undef SPI_PIN
#define SPI_PIN         77
#undef SPI_CHAN
#define SPI_CHAN        0
#define UI_HAS_KEYS 1
#define UI_HAS_BACK_KEY 1
#define UI_DISPLAY_TYPE DISPLAY_4BIT
#define UI_DISPLAY_CHARSET 1
#define BEEPER_TYPE 1
#define UI_COLS 20
#define UI_ROWS 4
#undef BEEPER_PIN
#define BEEPER_PIN             41
#define UI_DISPLAY_RS_PIN      42
#define UI_DISPLAY_RW_PIN      -1
#define UI_DISPLAY_ENABLE_PIN  43
#define UI_DISPLAY_D0_PIN      44
#define UI_DISPLAY_D1_PIN      45
#define UI_DISPLAY_D2_PIN      46
#define UI_DISPLAY_D3_PIN      47
#define UI_DISPLAY_D4_PIN      44
#define UI_DISPLAY_D5_PIN      45
#define UI_DISPLAY_D6_PIN      46
#define UI_DISPLAY_D7_PIN      47
#define UI_ENCODER_A           50
#define UI_ENCODER_B           52
#define UI_ENCODER_CLICK       48
#define UI_RESET_PIN           -1
#define UI_DELAYPERCHAR 50
#define UI_INVERT_MENU_DIRECTION 0
#define UI_BUTTON_BACK         71
#ifdef UI_MAIN

- in futility I just can't get differences between these two numbers of pins, Repetier generated
  • Of course I read the forum and few other so I tried to swap the LCD5 with LCD7
  • tried many more RepRapDiscount Full Graphic Smart Controller 128x64,
  • tried to connect the RepRapDiscount Full Graphic Smart Controller 128x64 directly to DU.
I still believe I do something stupid because I do not want hope that Repetier firmware generator can't generate working firmware with these hardware configuration (Mega 2560 + RAMPS 1.4 + the same LCD... working perfect).

After I upload the firmware, connect thermistors and the RepRapDiscount Full Graphic Smart Controller 128x64 via the schemas above, the LCD lights homogeneous collor, so at least the power supply is right (the constrast setup checked too), and beeper makes soundless noice following the blinking RX and TX leds and the LCD little changes its brightness. If I disconnect thermistors, the beeper should peeps as I set up in generator (on MEGA works) but in this assembly nothing, no peeps after push the encoder too. If I connect DUE + RADDS 1.5 + thermistors to laptop and start Repetier-Host the connecting proces works and thermistors showing their temperature. Only one success - in generator I set up Heated bed Temperature sensor pin - Temp 1 and Extruder Temperature sensor pin - Temp 0 and via the schema above a connected the thermistors and still defect in log in Repetier-Host until I checked that the schema of thermistors pinouts numbers does not respond the numbers in generator (Temp 0 responds T0, but Temp 1 responds T4). And I have to say that I still haven't tried to plug in drivers and main power supply so I expect some other difficulties.

I will be grateful for any help that will lead to working this hardware.


Missing Pieces after slicing

$
0
0
I have noticed that any pieces that are not flat layers do not get sliced when using Slic3r.  I have added a before and after picture to demonstrate what is going on.  The printer I use (pneumatic bioprinter) does not print support so I am messing with gcode commands and temp control to try and print angled pieces, but cannot get the slicer to generate them.

Any help would be appreciated.


TIG welder relay switch connection

$
0
0
Hello everyone. 
I was wondering if anyone may be able to help me with a situation that I am having.

I'm currently working on a project at my college to design a metal three-dimensional printer. I am to use a TIG (tungsten inert gas) welder as my heat source and automate a wire feeder for my "filament". I am currently using a stepper motor as my wire feeder using the extruder port on my Arduino Mega 2560 Ramps 1.4. I have a relay switch to be my on/off effect for my TIG torch but I don't know exactly how to connect the torch to the relay switch to the ramps and power supply. 

Please let me know any further information that I need to provide or any ideas on this matter. 

Thank You. 

Z endstop offset

$
0
0
I've got a printer with one of the escher3d IR probes as a z probe. no other Z endstop. it triggers when the nozzle is 2.5mm off the bed, and so that's where the machine stops. is there any way i can add an offset so when it triggers it then moves the bed up the required amount? i can't easily move the probe up

Print offset reset after G28 in firmware 0.92.9

$
0
0
I had Repetier firmware 0.92.8 in my printer, levelled bed with measuring tool, and fine tuned by setting Z-offset (which can be different with different extruder/bed temperature combinations). However afrer upgrading to 0.92.9, I had some bad prints, therefore I checked what´s going wrong, and found that if I set Z-offset to something, executing G28 (home), resets offsets to zero. Which makes it of course unusable. I returned to 0.92.8 which works as I am used to.

Calibration not working

$
0
0
Ok. Got an Anet A8 for Christmas and printed Thingiverse 20mm calibration cube. Results were ok for first pass but clearly needed tweeking. Please note this is my first printer and I am totally new to Andriuno etc etc. Searched on line and found calibration method on youtube. After lots of help from brainy folk I got the PC talking to the board and upgraded my firmware. After lots of move, measure, calculate via Repetier I got pretty decent results from start of move to end of move.....until I reprinted the calibration cube. Y & Z were fair but X was/is well off.....5mm over what it should be. Could it be the original slice that is off? Thoughts on what to look at for problem.

thanks
Andrew

Anet A8
Arduino 1.8.5
Marlin 1.1.8
Cura 2.3
Repetier Host 2.05
PC Windows 7 Home Premium 32bit

Repetier adding multiplier to calibration figures and I don't know why.

$
0
0

Still trying to dial in my Anet A8. Marlin firmware takes too long to scroll through the axis settings when I change them so I use Repetier Host, M92 followed by M500. I noticed in the log window that X goes in as typed but that Y has an "*75" after the value i input. Can anybody tell me why/what it's for? I suspect I know what it does just no idea why it is doing it.

Andrew

New maker select + when I stop a job on host it will start where last job stopped

$
0
0
it appears this maker select + uses Marlin sadly. When I start a job after cancelling a job at repetier-host it will start right where the last job left off as the home position for X (Any maybe Y).   I have G28 in my starting GCODE and it works when I enter it manually but it doesn't seem to run my starting gcode.  If I do an emergency stop it'll reboot printer and I think that does allow it to start in correct spot.   Also is the reason I cannot see any of the print info on display of the plus like I do the maker select v2 because it is using marlin instead of repetier?

Thanks
Dave

How can I activate the AUX1 signal pin? RAMPS 1.4

$
0
0
Hello everyone

I am trying to activate the AUX1 signal pin on my ramps 1.4 whenever my extruder motor turns on. 

Please give me some advice. 

Communications Timeout after several hours of printing.

$
0
0
Hello,

I have been having timeout issues with a Tevo printer using the MKS-Base 1.5 board. Prints will run for 15 min to an hour or two before timing out with no communications errors in the logs at all, until the timeout issue occurs. I have tested with firmware version 0.92 that shipped with the printer, and 1.0.1, same errors on both.

The printer is connected to a Raspberry Pi 3, running repetier server version 0.86.2, and for testing octoprint for rasberry pi has also been tried with the exact same results. 

The printer also has issues printing from SD card, it will get part way though the file and hang up and fail to complete the print.

The confusing part is that the printer will print flawlessly when connected to a windows 10 laptop running Repetier-host and printing over USB.

What has been tried:

All testing in repeteir-server, octoprint, and the windows 10 laptop have been done with the exact same Gcode file. Since it works without error on the windows 10 laptop, i don't think its a code issue with the file. It also errors out at different places each time also leading me to think there is not a problem with the file since that should cause the errors at the exact same completion percentage each time.

3 different USB cables including two with ferite cores. All three cables worked flawlessly with the windows laptop.

Multiple COM port speeds between 250000, 115200, and 9600.

Two different power supplies for the printer, and two different power supplies for the Raspberry. The most recent test was using a quite large ATX power supply, the 12 volt rail driving the printer, and the RaspberryPi connected to the 5 volt rail so that the printer, and rasberry Pi had a common negative to avoid any voltage differences from separate PSU's.

Timeout values have been increased in the printer firmware, but these timeouts are occurring on very short commands, on small parts. Most commands are a fraction of a second to actually complete as you will be able to see form the logs.

Log file showing the errors that I am getting. This is around line 80,000 in the log file, and around layer 100ish in the print so it gets quite far before acting up.

Any suggestions to try would be appreciated, I have been working on this for several weeks now and its driving me nuts.

> 18:48:07.067: ok 38427
< 18:48:07.067: N38433 G1 X99.301 Y104.022 E668.81946
> 18:48:07.146: ok 38428
< 18:48:07.146: N38434 G1 X99.04 Y103.963 E668.82836
> 18:48:07.210: ok 38429
< 18:48:07.210: N38435 G1 X98.612 Y103.834 E668.84323
> 18:48:07.242: ok 38430
< 18:48:07.242: N38436 G1 X98.297 Y103.704 E668.85456
> 18:48:07.302: T:221.49 /220 B:70.41 /70 B@:0 @:70 T0:221.49 /220 @0:70 T1:29.19 /0 @1:0
> 18:48:07.316: ok 38431
< 18:48:07.316: N38437 G1 X98.108 Y103.614 E668.86152
> 18:48:07.333: ok 38432
< 18:48:07.333: N38438 G1 X97.681 Y103.353 E668.87817
> 18:48:07.364: ok 38433
< 18:48:07.364: N38439 G1 X97.463 Y103.192 E668.88718
> 18:48:07.428: ok 38434
< 18:48:07.429: N38440 G1 X97.243 Y103.007 E668.89674
> 18:48:07.508: ok 38435
< 18:48:07.508: N38441 G1 X96.939 Y102.697 E668.91118
> 18:48:07.556: ok 38436
< 18:48:07.556: N38442 G1 X96.631 Y102.302 E668.92784
> 18:48:38.564: Warning: Communication timeout - resetting communication buffer.
> 18:48:38.564: Connection status: Buffered:114, Manual Commands: 1, Job Commands: 5000
> 18:48:38.564: Buffer used:114 Enforced free byte:19 lines stored:6
< 18:48:38.564: N38443 M117 ETA 22:32:54 day 6
< 18:48:38.564: N38444 G1 X96.536 Y102.154 E668.93369
< 18:48:38.564: N38445 G1 X96.463 Y102.017 E668.93885
< 18:48:38.564: N38446 G1 X96.393 Y101.908 E668.94316
< 18:48:38.564: N38447 G1 X96.281 Y101.682 E668.95155
< 18:48:38.564: N38448 G1 X96.165 Y101.401 E668.96166
> 18:49:09.571: Warning: Communication timeout - resetting communication buffer.
> 18:49:09.572: Connection status: Buffered:124, Manual Commands: 1, Job Commands: 5000
> 18:49:09.572: Buffer used:124 Enforced free byte:19 lines stored:6
< 18:49:09.572: N38449 M117 ETE 03:44:37
< 18:49:09.572: N38450 G1 X96.042 Y101.008 E668.97536
< 18:49:09.572: N38451 G1 X95.983 Y100.734 E668.98468
< 18:49:09.573: N38452 G1 X95.941 Y100.46 E668.9939
< 18:49:09.573: N38453 G1 X95.922 Y100.257 E669.00068
< 18:49:09.573: N38454 G1 X95.913 Y100.011 E669.00887
> 18:49:40.580: Warning: Communication timeout - resetting communication buffer.
> 18:49:40.581: Connection status: Buffered:118, Manual Commands: 1, Job Commands: 5000
> 18:49:40.581: Buffer used:118 Enforced free byte:19 lines stored:6
< 18:49:40.581: N38455 M117 ETA 22:33:53 day 6
< 18:49:40.581: N38456 G1 X95.917 Y99.813 E669.01546
< 18:49:40.582: N38457 G1 X95.96 Y99.372 E669.03019
< 18:49:40.582: N38458 G1 X96.035 Y99.003 E669.04272
< 18:49:40.582: N38459 G1 X96.079 Y98.835 E669.0485
< 18:49:40.582: N38460 G1 X96.177 Y98.549 E669.05855
> 18:50:11.588: Warning: Communication timeout - resetting communication buffer.
> 18:50:11.589: Connection status: Buffered:124, Manual Commands: 1, Job Commands: 5000
> 18:50:11.589: Buffer used:124 Enforced free byte:19 lines stored:6
< 18:50:11.589: N38461 M117 ETE 03:44:37
< 18:50:11.589: N38462 G1 X96.259 Y98.359 E669.06543
< 18:50:11.589: N38463 G1 X96.357 Y98.176 E669.07234
< 18:50:11.590: N38464 G1 X96.444 Y98.043 E669.07762
< 18:50:11.590: N38465 G1 X96.594 Y97.867 E669.08531
< 18:50:11.590: N38466 G1 X96.672 Y97.798 E669.08878
> 18:50:42.595: Warning: Communication timeout - resetting communication buffer.
> 18:50:42.595: Connection status: Buffered:118, Manual Commands: 1, Job Commands: 5000
> 18:50:42.595: Buffer used:118 Enforced free byte:19 lines stored:6
< 18:50:42.595: N38467 M117 ETA 22:34:52 day 6
< 18:50:42.595: N38468 G1 X96.732 Y97.763 E669.09109
< 18:50:42.596: N38469 G1 X97.039 Y97.682 E669.10165
< 18:50:42.596: N38470 G1 X97.28 Y97.647 E669.10975
< 18:50:42.596: N38471 G1 X97.645 Y97.625 E669.12191
< 18:50:42.596: N38472 G1 X97.976 Y97.651 E669.13295
> 18:51:13.605: Warning: Communication timeout - resetting communication buffer.
> 18:51:13.605: Connection status: Buffered:124, Manual Commands: 1, Job Commands: 5000
> 18:51:13.605: Buffer used:124 Enforced free byte:19 lines stored:6
< 18:51:13.606: N38473 M117 ETE 03:44:36
< 18:51:13.606: N38474 G1 X98.066 Y97.677 E669.13607
< 18:51:13.606: N38475 G1 X98.341 Y97.733 E669.1454
< 18:51:13.607: N38476 G1 X99.077 Y98.021 E669.17169
< 18:51:13.607: N38477 G1 X99.395 Y97.894 E669.18308
< 18:51:13.607: N38478 G0 F7200 X97.338 Y97.823
> 18:51:44.613: Warning: Communication timeout - resetting communication buffer.
> 18:51:44.613: Connection status: Buffered:118, Manual Commands: 1, Job Commands: 5000
> 18:51:44.613: Buffer used:118 Enforced free byte:23 lines stored:6
< 18:51:44.613: N38479 M117 ETA 22:35:52 day 6
< 18:51:44.613: N38480 G1 F300 X96.242 Y98.919 E669.23463
< 18:51:44.614: N38481 G1 X96.172 Y98.989
< 18:51:44.614: N38482 G0 F7200 X96.117 Y99.609
< 18:51:44.614: N38483 G1 F300 X97.902 Y97.824 E669.31859
< 18:51:44.615: N38484 G1 X97.972 Y97.754
> 18:52:15.621: Warning: Communication timeout - resetting communication buffer.
> 18:52:15.621: Connection status: Buffered:124, Manual Commands: 1, Job Commands: 5000
> 18:52:15.622: Buffer used:124 Enforced free byte:19 lines stored:6

Laser mode - All movement logs as G1 X0*nn

$
0
0
Hi I am new to repetier host for Laser 
     Host is latest as of today
     Firmware is Repetier latest of today

I can home my machine and jog it around with manual controls.
The Laser comes on and off correctly 
If I enter a G01 move manually, I get a zero return 
e.g.
G01 X100Y100F2400
Log shows 
16:13:22.743 : N77710 G1 X0*102

What am I missing?

I have partially configured Z axis - I can operate the end stop switch manually when homing, but this changes nothing

Thanks

I send the following G code

M452
G4 P1
G21
G28 X0Y0
G00 X13.5644Y10.0968 
M3 S255
G01 X13.2975Y11.1938F2400
G01 X130.00Y11.00F2400
G01 X130Y120F2400
G01 X10Y120F2400
G01 X13.2400Y12.0000F2400
M5
M5
M05

The LCD shows Xw,Yw,Zw as 0.00 X:,Y:,Z: as alternate 0.00 and ?.??
Mul=47%  Las=0.0w 
Stepper disabled 

this is the log  see lines 77756-9 

16:23:11.494 : N77748 M530 S1 L0*48
16:23:11.494 : N77749 M531 xxx*118
16:23:11.494 : N77750 M452*34
16:23:11.494 : N77751 G4 P1*111
16:23:11.494 : N77752 G21*26
16:23:11.496 : N77753 G28 X0*90
16:23:11.497 : N77754 G0 X0*103
16:23:11.497 : N77755 M3 S255*102
16:23:11.497 : N77756 G1 X0*100
16:23:11.498 : N77757 G1 X0*101
16:23:11.498 : N77758 G1 X0*106
16:23:11.502 : N77759 G1 X0*107
16:23:11.596 : N77760 M117 ETE -01s*46
16:23:11.596 : PrinterMode:Laser
16:23:11.597 : N77761 G1 X0*96
16:23:11.597 : N77762 M5*37
16:23:11.597 : N77763 M5*36
16:23:12.562 : X:0.00 Y:20.00 Z:0.000 E:0.0000
16:23:12.563 : N77764 M532 X0 L0*54
16:23:12.563 : LaserOn:255
16:23:12.563 : N77765 G0 X0*101
16:23:12.563 : Printjob finished at 2018/02/07 4:23 PM
16:23:12.563 : Printing Time: 1s
16:23:12.563 : Lines Send: 15
16:23:12.566 : N77766 M5*33
16:23:12.567 : N77767 M104 S0 T0*39
16:23:12.567 : N77768 M140 S0*108
16:23:12.567 : N77769 M84*23
16:23:12.567 : N77770 M530 S0*102

Firmware EEPROM Issue

$
0
0
Hi, so I am trying to connect a Dimensions printer with an Arduino Due (the electronics were gutted and replaced with arduino). I can communicate with the printer just fine however, I cannot get the bed to move close enough to the extruders. I've tried getting into the Firmware EEPROM settings however it says grayed out and I am unable to change the z settings for the firmware. Any suggestions?

Homemade 3d printer calibration

$
0
0
hello, i use marlin to my 3d printer. I tried to make a calibration but when i chose 10 in the x/y axis the movement was 10 of 30 ( I want the distance to be 10 of 220) any ideas what to chenge?

Activating z-probe would lead to forbidden xy position

$
0
0
I have a Prusa i3 printer (cartesian) with a fixed inductive z-probe mounted on the right side of my hotend. In other words:
#define Z_PROBE_X_OFFSET 32
#define Z_PROBE_Y_OFFSET 0
Reachable dimensions of my bed are 180x175mm, so I have:
#define X_MAX_LENGTH 180
#define Y_MAX_LENGTH 175
#define X_MIN_POS 0
#define Y_MIN_POS 0
The lower-left corner of my heated bed is where x=0.0 and y=0.0. After every firmware upload, I do a M502, then M500 so I am absolutely sure that I don't re-use old values. Then I run G28 to home all the axis, but this fails with the error:
Error:Activating z-probe would lead to forbidden xy position: -32.000000, 0.00
After some digging in the source code, I find this line in BedLeveling.cpp that prints this error:
if ((ZPOffsetX > 0 && Printer::currentPosition[X_AXIS] - ZPOffsetX < Printer::xMin)
This condition is true: z-probe x-offset is 32.0 and homing X/Y first yields x = 0.0, therefore 0.0 - 32.0 < X_MIN_POS.

So my question is: what are the things I have to set to make it work. The hotend can reach x=0.0 and y=0.0, but the smallest x the probe can reach is x=32.0.

I am using RADDS 1.5 with firmware v1.0.1.

USB Device malfunctioned

$
0
0
So after fixing a few issues with the printer (K280), I decided to try to print a few things. But alas, when I tried to connect the USB to the computer, this happened



So I looked around and tried to find a few solutions but nothing came up. 

I looked at my device manager and tried to update my driver but that wouldn't help. 

One thing I noticed though. Before I tried to print today, my computer restarted and ran a quick update. Before this update, I could connect to the printer without problems. My luck. 

Any ideas on how to do this? I temporialiy have my printer running with the SD Card but a) it is a pain and b) for some reason it thinks the Z Height is much lower... 

Marlin on maker select plus M107 not working, am I alone?

$
0
0
So my fan is always on and M107 does nothing to stop it.  I have it in my starting gcode and I also cannot stop the fan w/ M107 in real time either.  Is this a limitation of marlin on this maker select plus?
Thanks
Dave

EEprom save on SD Card by radds 1.5

$
0
0
Hello everybody,

I have seen that it is possible to have the EEprom values written to the SD instead of the memory. Can someone tell me how to set this in the firmware for my Radds 1.5?

Many Thanks
Tobias

Homing puts Z through max value

$
0
0
Hi all,

my repetier version can be found here: https://github.com/Anteino/Repetier-Firmware/tree/500XL-Minimal

I implemented a wizard to calibrate the extruder offsets because it's not possible to do this physically (I use a hall sensor that can not easily be adjusted). I think this might be part of the reason that's causing the following problem.

I have my printer home at it's max Z position. All is fine and dandy until I enable FEATURE_AUTOLEVEL. When I set this to true, the printer goes through its maximum position. The max Z length is 500 mm. The offsets of both nozzles are about 2 +- 0.05 mm. With FEATURE_AUTOLEVEL set to false, the printer moves to Z = 498 after homing for obvious reasons. But when I enable FEATURE_AUTOLEVEL again, the printer moves to 502.71 after homing causing the printer to move through its boundaries and hurting itself. I figured out that this is not caused by Printer::homeZAxis(), but I can't seem to figure out what's causing this error.

Please help :/ If you need the contents of my EEPROM I can post them here.

manual positioning / Jogwheel

$
0
0
Hi all !
as i use repetier fw for milling , i found  that positioning for offsets via encoder is not very efficient.
As REPETIER added the analog keypad support i thought about positioning via jostick.
it needs three analog inputs and works via potentiometer-based joysticks.The encoder and other functions keep as before.

i use 1 Analog channel per axis and define several "buttons" depending on joystick position and UIActions define stepwidths.
feedrate for these steps is defined as"JOGRATE" and of coarse very slow.
I tested the code on DUE and it works fine. THE min/max numbers for the buttons depend on the hardware setup,
i used 4.7 KOhm pullups and jostick as variable resistor 0...10 Kohm similar to thermistor input.
thats what i modified in code (FW 92.8 ):

//############Changes in UICONFIG.H


void uiInitKeys() {
#if UI_HAS_KEYS!=0
UI_KEYS_INIT_CLICKENCODER_LOW(43,45); // click encoder on pins 43 and 45. Phase is connected with gnd for signals.
UI_KEYS_INIT_BUTTON_LOW(47); // push button, connects gnd to pin
#endif
}

void uiCheckKeys(uint16_t &action) {

#if UI_HAS_KEYS!=0

UI_KEYS_CLICKENCODER_LOW_REV(43,45); // click encoder on pins 43 and 45. Phase is connected with gnd for signals.
UI_KEYS_BUTTON_LOW(47,UI_ACTION_OK); // push button, connects gnd to pin
#endif

// Here starts Joystick assignment
// button assignment x-axis
struct {
uint16_t min;
uint16_t max;
uint16_t action;
} keys_x[] = {
{ 0, 800, UI_ACTION_X_DOWN10 }, // down 10 mm steps
{ 810, 1200, UI_ACTION_X_DOWN1 }, // down 1 mm steps
{ 1210, 1800, UI_ACTION_X_DOWN01 }, // down 0.1 mm steps
{ 1810, 2000, UI_ACTION_X_DOWN001 }, // down 0.01 mm steps

{ 2200, 2350, UI_ACTION_X_UP001 }, // up 0.01mm steps
{ 2370, 2500, UI_ACTION_X_UP01 }, // up 0.1 mm steps
{ 2510, 2650, UI_ACTION_X_UP1 }, // up 1mm steps
{ 2660, 3000, UI_ACTION_X_UP10 }, // up 10 mm steps
};
const uint8_t numOfKeys_x = sizeof(keys_x) / sizeof(keys_x[0]);

extern volatile uint16_t osAnalogInputValues[ANALOG_INPUTS];
uint16_t adc_x = osAnalogInputValues[KEYPAD_ANALOG_INDEX] >> (ANALOG_REDUCE_BITS);
if (adc_x < 4000) {
for (int8_t ix = 0; ix < numOfKeys_x; ++ix) {
if ((adc_x > keys_x[ix].min) && (adc_x< keys_x[ix].max)) {
action = keys_x[ix].action;
return;
}
}
}

//button assignment y-axis


struct {
uint16_t min;
uint16_t max;
uint16_t action;
}

keys_y[] = {

{ 0, 800, UI_ACTION_Y_UP10 }, // Up 10 mm Steps
{ 810, 1200, UI_ACTION_Y_UP1 }, // Up 1mm Steps
{ 1210,1800, UI_ACTION_Y_UP01 }, // Up 0.1 mm Steps
{ 1810,2000, UI_ACTION_Y_UP001 }, // Up 0.01 mm steps

{ 2200, 2350, UI_ACTION_Y_DOWN001 }, // Down 0.01mm Steps
{ 2370, 2500, UI_ACTION_Y_DOWN01 }, // Down 0.1mm Steps
{ 2510, 2650, UI_ACTION_Y_DOWN1 }, // Down 1mm Steps
{ 2660, 3000, UI_ACTION_Y_DOWN10 }, // Down 10 mm Steps
};


const uint8_t numOfKeys2 = sizeof(keys_y) / sizeof(keys_y[0]);

uint16_t adc_y = osAnalogInputValues[KEYPAD2_ANALOG_INDEX] >> (ANALOG_REDUCE_BITS);
if ( adc_y < 4000) {
for (int8_t iy = 0; iy < numOfKeys2; ++iy) {
if ((adc_y > keys_y[iy].min) && (adc_y < keys_y[iy].max)) {
action = keys_y[iy].action;
return;
}
}
}

// Button assignment Z-Axis
struct {
uint16_t min;
uint16_t max;
uint16_t action;
}

keys_z[] = {


{ 810, 1200, UI_ACTION_Z_UP1 }, // Up 1mm steps
{ 1210,1800, UI_ACTION_Z_UP01 }, // Up 0.1 mm steps
{ 1810,2000, UI_ACTION_Z_UP001 }, // Up 0.01 mm steps

{ 2200, 2350, UI_ACTION_Z_DOWN001 }, //Down 0.01 mm steps
{ 2370, 2500, UI_ACTION_Z_DOWN01 }, //Down 0.1 mm steps
{ 2510, 2650, UI_ACTION_Z_DOWN1 }, // Down 1mm steps

};


const uint8_t numOfKeysz = sizeof(keys_z) / sizeof(keys_z[0]);

uint16_t adc_z = osAnalogInputValues[KEYPAD3_ANALOG_INDEX] >> (ANALOG_REDUCE_BITS);
if ( adc_z < 4000) {
for (int8_t iz = 0; iz < numOfKeysz; ++iz) {
if ((adc_z > keys_z[iz].min) && (adc_z < keys_z[iz].max)) {
action = keys_z[iz].action;
return;
}
}
}


}


//############## Changes in UI.cpp

case UI_ACTION_X_UP:
case UI_ACTION_X_DOWN:
if(!allowMoves) return action;
PrintLine::moveRelativeDistanceInStepsReal(((action == UI_ACTION_X_UP) ? 1.0 : -1.0) * (Printer::axisStepsPerMM[X_AXIS]), 0, 0, 0, Printer::homingFeedrate[X_AXIS], false,false);
break;

case UI_ACTION_X_UP001:
case UI_ACTION_X_DOWN001:
if(!allowMoves) return action;
PrintLine::moveRelativeDistanceInStepsReal(((action == UI_ACTION_X_UP001) ? 1.0 : -1.0) * (Printer::axisStepsPerMM[X_AXIS]/100), 0, 0, 0, JOGRATE, false,false);
break;

case UI_ACTION_X_UP01:
case UI_ACTION_X_DOWN01:
if(!allowMoves) return action;
PrintLine::moveRelativeDistanceInStepsReal(((action == UI_ACTION_X_UP01) ? 1.0 : -1.0) * (Printer::axisStepsPerMM[X_AXIS]/10), 0, 0, 0, JOGRATE, false,false);
break;


case UI_ACTION_X_UP1:
case UI_ACTION_X_DOWN1:
if(!allowMoves) return action;
PrintLine::moveRelativeDistanceInStepsReal(((action == UI_ACTION_X_UP1) ? 1.0 : -1.0) * Printer::axisStepsPerMM[X_AXIS], 0, 0, 0, JOGRATE, false,false);
break;

case UI_ACTION_X_UP10:
case UI_ACTION_X_DOWN10:
if(!allowMoves) return action;
PrintLine::moveRelativeDistanceInStepsReal(((action == UI_ACTION_X_UP10) ? 1.0 : -1.0) * (Printer::axisStepsPerMM[X_AXIS]*10), 0, 0, 0, JOGRATE, false,false);
break;


case UI_ACTION_Y_UP:
case UI_ACTION_Y_DOWN:
if(!allowMoves) return action;
PrintLine::moveRelativeDistanceInStepsReal(0, ((action == UI_ACTION_Y_UP) ? 1.0 : -1.0) * Printer::axisStepsPerMM[Y_AXIS]/100, 0, 0,Printer::homingFeedrate[Y_AXIS], false,false);
break;

case UI_ACTION_Y_UP001:
case UI_ACTION_Y_DOWN001:
if(!allowMoves) return action;
PrintLine::moveRelativeDistanceInStepsReal(0, ((action == UI_ACTION_Y_UP001) ? 1.0 : -1.0) * Printer::axisStepsPerMM[Y_AXIS]/100, 0, 0, JOGRATE, false,false);
break;
case UI_ACTION_Y_UP01:
case UI_ACTION_Y_DOWN01:
if(!allowMoves) return action;
PrintLine::moveRelativeDistanceInStepsReal(0, ((action == UI_ACTION_Y_UP01) ? 1.0 : -1.0) * Printer::axisStepsPerMM[Y_AXIS]/10, 0, 0, JOGRATE, false,false);
break;
case UI_ACTION_Y_UP1:
case UI_ACTION_Y_DOWN1:
if(!allowMoves) return action;
PrintLine::moveRelativeDistanceInStepsReal(0, ((action == UI_ACTION_Y_UP1) ? 1.0 : -1.0) * Printer::axisStepsPerMM[Y_AXIS], 0, 0, JOGRATE, false,false);
break;
case UI_ACTION_Y_UP10:
case UI_ACTION_Y_DOWN10:
if(!allowMoves) return action;
PrintLine::moveRelativeDistanceInStepsReal(0, ((action == UI_ACTION_Y_UP10) ? 1.0 : -1.0) * Printer::axisStepsPerMM[Y_AXIS]*10, 0, 0, JOGRATE, false,false);
break;






case UI_ACTION_Z_UP:
case UI_ACTION_Z_DOWN:
if(!allowMoves) return action;
PrintLine::moveRelativeDistanceInStepsReal(0, 0, ((action == UI_ACTION_Z_UP) ? 1.0 : -1.0) * Printer::axisStepsPerMM[Z_AXIS], 0, Printer::homingFeedrate[Z_AXIS], false,false);
break;

case UI_ACTION_Z_UP001:
case UI_ACTION_Z_DOWN001:
if(!allowMoves) return action;
PrintLine::moveRelativeDistanceInStepsReal(0, 0, ((action == UI_ACTION_Z_UP001) ? 1.0 : -1.0) * Printer::axisStepsPerMM[Z_AXIS]/100, 0, JOGRATE, false,false);
break;

case UI_ACTION_Z_UP01:
case UI_ACTION_Z_DOWN01:
if(!allowMoves) return action;
PrintLine::moveRelativeDistanceInStepsReal(0, 0, ((action == UI_ACTION_Z_UP01) ? 1.0 : -1.0) * Printer::axisStepsPerMM[Z_AXIS]/10, 0, JOGRATE, false,false);
break;

case UI_ACTION_Z_UP1:
case UI_ACTION_Z_DOWN1:
if(!allowMoves) return action;
PrintLine::moveRelativeDistanceInStepsReal(0, 0, ((action == UI_ACTION_Z_UP1) ? 1.0 : -1.0) * Printer::axisStepsPerMM[Z_AXIS], 0, JOGRATE, false,false);
break;



//########### Changes in ui. H ( additional uiactions)
#define UI_ACTION_X_UP1 114
#define UI_ACTION_X_DOWN1 115
#define UI_ACTION_X_UP01 116
#define UI_ACTION_X_DOWN01 117
#define UI_ACTION_X_UP001 118
#define UI_ACTION_X_DOWN001 119
#define UI_ACTION_X_UP10 120
#define UI_ACTION_X_DOWN10 121

#define UI_ACTION_Y_UP1 122
#define UI_ACTION_Y_DOWN1 123
#define UI_ACTION_Y_UP01 124
#define UI_ACTION_Y_DOWN01 125
#define UI_ACTION_Y_UP001 126
#define UI_ACTION_Y_DOWN001 127
#define UI_ACTION_Y_UP10 128
#define UI_ACTION_Y_DOWN10 129


#define UI_ACTION_Z_UP1 130
#define UI_ACTION_Z_DOWN1 131
#define UI_ACTION_Z_UP01 132
#define UI_ACTION_Z_DOWN01 133
#define UI_ACTION_Z_UP001 134
#define UI_ACTION_Z_DOWN001 135


//############Changes in Repetier.h
// add:


#if defined(ADC_KEYPAD2_PIN) && (ADC_KEYPAD2_PIN > -1)
#define KEYPAD2_ANALOG_INPUTS 1
#define KEYPAD2_ANALOG_INDEX EXT0_ANALOG_INPUTS+EXT1_ANALOG_INPUTS+EXT2_ANALOG_INPUTS+EXT3_ANALOG_INPUTS+EXT4_ANALOG_INPUTS+EXT5_ANALOG_INPUTS+BED_ANALOG_INPUTS+THERMO_ANALOG_INPUTS+KEYPAD_ANALOG_INPUTS
#define KEYPAD2_ANALOG_CHANNEL THERMO_COMMA ADC_KEYPAD2_PIN
#else
#define KEYPAD2_ANALOG_INPUTS 0
#define KEYPAD2_ANALOG_CHANNEL
#endif


#if defined(ADC_KEYPAD3_PIN) && (ADC_KEYPAD3_PIN > -1)
#define KEYPAD3_ANALOG_INPUTS 1
#define KEYPAD3_ANALOG_INDEX EXT0_ANALOG_INPUTS+EXT1_ANALOG_INPUTS+EXT2_ANALOG_INPUTS+EXT3_ANALOG_INPUTS+EXT4_ANALOG_INPUTS+EXT5_ANALOG_INPUTS+BED_ANALOG_INPUTS+THERMO_ANALOG_INPUTS+KEYPAD_ANALOG_INPUTS+KEYPAD2_ANALOG_INPUTS
#define KEYPAD3_ANALOG_CHANNEL THERMO_COMMA ADC_KEYPAD3_PIN
#else
#define KEYPAD3_ANALOG_INPUTS 0
#define KEYPAD3_ANALOG_CHANNEL
#endif

// change:
/** \brief number of analog input signals. Normally 1 for each temperature sensor */
#define ANALOG_INPUTS (EXT0_ANALOG_INPUTS+EXT1_ANALOG_INPUTS+EXT2_ANALOG_INPUTS+EXT3_ANALOG_INPUTS+EXT4_ANALOG_INPUTS+EXT5_ANALOG_INPUTS+BED_ANALOG_INPUTS+THERMO_ANALOG_INPUTS+KEYPAD_ANALOG_INPUTS+KEYPAD2_ANALOG_INPUTS+KEYPAD3_ANALOG_INPUTS)
#if ANALOG_INPUTS > 0
/** Channels are the MUX-part of ADMUX register */
#define ANALOG_INPUT_CHANNELS {EXT0_ANALOG_CHANNEL EXT1_ANALOG_CHANNEL EXT2_ANALOG_CHANNEL EXT3_ANALOG_CHANNEL EXT4_ANALOG_CHANNEL EXT5_ANALOG_CHANNEL BED_ANALOG_CHANNEL THERMO_ANALOG_CHANNEL KEYPAD_ANALOG_CHANNEL KEYPAD2_ANALOG_CHANNEL KEYPAD3_ANALOG_CHANNEL}
#endif


//#######Changes in configuration.h ( add keypad2 and3)

/* You can have one keypad connected via single analog pin as seen on
some printers with Melzi V2.0 board, 20x4 LCD and 5 buttons keypad. This must be
the analog pin number! */
#define ADC_KEYPAD_PIN ORIG_ADC_KEYPAD_PIN
#define ADC_KEYPAD2_PIN ORIG_ADC_KEYPAD2_PIN
#define ADC_KEYPAD3_PIN ORIG_ADC_KEYPAD3_PIN
#define JOGRATE 3 // fixed feedrate for slow moves during joystick moves
// define pins directly or via pins.h respectively userpins.h
// for a better overview i use reference names and define the pin numbers in userpins.h


EEprom save change von radds 1.5

$
0
0
Hello everybody,

I have seen that it is possible to have the EEprom values written to the SD instead of the memory. Can someone tell me how to set this in the firmware for my Radds 1.5?

Many Thanks
Tobias
Viewing all 9285 articles
Browse latest View live