Commit Graph

541 Commits

Author SHA1 Message Date
PavelSindler 6f617696ac dummy "ok" reponse readded (fix for SD card print with Octoprint: fixes communication timeout issues) 2018-06-25 18:52:22 +02:00
XPila 20f98d487a
Merge pull request #872 from XPila/MK3
Farm mode - tmc2130 extruder current setting fixed
2018-06-25 17:45:58 +02:00
Robert Pelnar fe9b4e5f1f Farm mode - tmc2130 extruder current setting fixed 2018-06-25 17:45:07 +02:00
PavelSindler 0fccf5a737
Merge pull request #870 from XPila/MK3
Mk3
2018-06-25 17:36:22 +02:00
PavelSindler 5d531b0f66 save extruder relative mode correctly 2018-06-25 17:30:20 +02:00
Robert Pelnar 12de2f95e6 Farm mode: PFW360, PFW361, PFW362, PFW363 2018-06-25 17:29:34 +02:00
Robert Pelnar 6d4c3b8b27 Farm mode - reset using watchdog for MK3 2018-06-25 16:04:47 +02:00
PavelSindler 49ad60f0ff
Merge pull request #851 from PavelSindler/confused_display
set default printer message when recovering from crash detection
2018-06-22 08:48:33 +02:00
PavelSindler a83475bf7c whitespace 2018-06-21 22:18:10 +02:00
PavelSindler 7b81663883 crash detection/stop print erroneous movements hotfix 2018-06-21 22:16:45 +02:00
PavelSindler ee1e8dfccc set default printer message when recovering from crash detection and at the end of mesh bed leveling 2018-06-20 17:58:31 +02:00
XPila 2be36f626f
Merge pull request #845 from PavelSindler/crash_movements
crash detection fix for absolute E coordinates
2018-06-19 18:46:39 +02:00
PavelSindler 650d8cc643
Merge pull request #844 from mkbel/add_farm_PRUSA_RESET
Add PRUSA RESET command in farm mode.
2018-06-19 18:44:00 +02:00
PavelSindler 1e60390545 dont process data from serial line if print is saved (crash detection and filament detection) 2018-06-19 16:51:22 +02:00
PavelSindler 209209459d Merge remote-tracking branch 'upstream/MK3' into crash_movements 2018-06-18 18:29:12 +02:00
Robert Pelnar 7619e94040 New ML support - checksum and signature 2018-06-15 20:37:33 +02:00
PavelSindler ac1e089a7f crash detection fix for absolute E coordinates 2018-06-15 20:03:48 +02:00
Marek Bel 32165dedb0 Add PRUSA RESET command in farm mode. 2018-06-15 17:07:44 +02:00
mkbel 9ba49affc6
Merge pull request #835 from PavelSindler/safety_timer_gcode
Safety timer gcode
2018-06-14 20:49:25 +02:00
PavelSindler ed2f87f4f5 documentation updated 2018-06-14 17:29:40 +02:00
bubnikv eef6c68c9f Added support for a secondary boot loader, based on the OptiBoot project,
modified to update the external flash memory on Einsy boards.
Due to a bug in the USB to serial converter firmware on the Prusa Einsy
boards, the STK500 protocol has been modified to never send semicolon
characters towards the main processor.

This firmware updater is compatible with a modified avrdude using
the "arduino" protocol, see the following commit.
https://github.com/prusa3d/Slic3r/tree/fwupdater_languages
2018-06-14 15:13:21 +02:00
PavelSindler 2026e7fe4d Revert changes in Timer class; disable safety timer in handleSafetyTimer function if safetytimer inactive time was set to zero 2018-06-14 13:14:14 +02:00
PavelSindler 2a219143fe Merge remote-tracking branch 'upstream/MK3' into safety_timer_gcode 2018-06-14 13:09:15 +02:00
PavelSindler c1425aece3 gcode: set safety timer period 2018-06-13 16:22:06 +02:00
PavelSindler 3ca7c82e08 power panic: restore dir names 2018-06-12 19:45:59 +02:00
PavelSindler fb6f4c6c8f break 2018-06-12 15:06:11 +02:00
PavelSindler 0ab0519c01 power panic fix: short filenames 2018-06-12 14:35:25 +02:00
PavelSindler db9c82acef M600 communication timeout fix 2018-06-11 20:28:18 +02:00
XPila d6ccaa7c08
Merge pull request #830 from PavelSindler/crash_det_cool_hotend
Crash detection: set nozzle target temp to zero when waiting for user
2018-06-11 15:43:54 +02:00
XPila 5178675cdd
Merge pull request #829 from PavelSindler/temp_cal_fix2
Home XYZ: first move Z higher to protect steel sheet/heatbed
2018-06-11 15:42:59 +02:00
PavelSindler 2f5bb80e98 crash detection: turn off nozzle when waiting for user 2018-06-11 15:34:16 +02:00
PavelSindler d4106c2fe3 If homing all axes, move Z little bit higher before X and Y movements to protect steel sheet/heatbed 2018-06-11 11:13:49 +02:00
Robert Pelnar 0cf7d12ae3 New ML support - lcd optimalization
lcd_puts_P and lcd_printf_P functions
LineFeed implemented in LiquidCrystal_Prusa
2018-06-10 22:06:00 +02:00
Robert Pelnar 0f75bcb442 New ML support - flash usage optimalization
used flash space 252826bytes (MK3 + ML support), free ~1kbyte
2018-06-10 20:44:36 +02:00
Robert Pelnar c25fec9f0a New ML support
printf float library enabled - platform.txt must be modified!
+flash usage optimalization - printing to serial line
current flash usage: 253206bytes (MK3 + ML support)

platform.txt original line 20:
compiler.c.elf.flags=-w -Os -Wl,--gc-sections

platform.txt modified line 20 (enable printf float library)
compiler.c.elf.flags=-w -Os -Wl,-u,vfprintf -lprintf_flt -lm -Wl,--gc-sections
2018-06-10 20:04:25 +02:00
Robert Pelnar a1ea5019dc Merge remote-tracking branch 'upstream/MK3' into MK3-new_lang 2018-06-10 16:29:29 +02:00
Robert Pelnar 076258ff99 New ML support - cond.trans. for LANG_MODE 0 2018-06-10 16:28:15 +02:00
Robert Pelnar 4567d2feca removed unused cond. trans. for NEW_SPI 2018-06-10 16:11:39 +02:00
Robert Pelnar fcfb4cdcae New ML support - menu tunning, startup
+config headers (bool - true/false replaced with 0/1)
+fixed include hierarchy
+removed comments
2018-06-10 16:04:32 +02:00
Robert Pelnar f098707021 New ML support - W25X20CL - update process UI tunning 2018-06-10 00:22:28 +02:00
Robert Pelnar 5de0a6437d New ML support - W25X20CL - lang switching
+removed unused code
2018-06-09 23:49:26 +02:00
Robert Pelnar dcd58d002c New ML support - W25X20CL
language selection from menu is working
2018-06-09 19:16:36 +02:00
Robert Pelnar a9446cc6b3 New ML support - W25x20CL 2018-06-09 18:26:53 +02:00
Robert Pelnar ebd8375313 New ML support - external flash W25X20CL - upgrade is working!!! (hardcoded to german)
+print test (LT_PRINT_TEST)
2018-06-09 17:49:41 +02:00
Robert Pelnar c0946d8f04 New ML support - w25x20cl spi external flash support
+fixed some messages
+sec lang update test
2018-06-09 01:23:04 +02:00
XPila 31357379ff
Merge branch 'MK3' into time_remaining 2018-06-08 18:31:32 +02:00
XPila 8963757c3c
Merge branch 'MK3' into crash_detection_stop 2018-06-08 18:28:43 +02:00
PavelSindler 5e120e6e52 power panic flow factor hotfix 2018-06-08 18:13:50 +02:00
PavelSindler 332a23bef5 Crash detection stops and waits for user if it fails multiple times in short time frame 2018-06-08 16:08:07 +02:00
XPila 739de5224e
Merge branch 'MK3' into MK3-new_lang 2018-06-08 14:38:00 +02:00
Robert Pelnar 37f82118c8 New ML support - lang select menu fix 2018-06-08 02:03:25 +02:00
Robert Pelnar bd1e410228 New ML support - W25X20CL external spi flash support 2018-06-08 00:20:28 +02:00
PavelSindler 877f8f2a61
Merge pull request #795 from 3d-gussner/MK3_fix5
Fix warning: This is kind of important
2018-06-07 22:22:54 +02:00
PavelSindler a15f0138de show estimated time to end of the print if available in gcode: initial version 2018-06-07 20:50:30 +02:00
PavelSindler 42cfcb2601
Merge pull request #794 from stahlfabrik/M860-enhanced
Improved M860 - now wait for cooling of PINDA, too
2018-06-06 12:01:06 +02:00
XPila 1290326210
Merge pull request #790 from PavelSindler/power_panic_flow_rate
power panic: extruder_multipliers added
2018-06-05 20:58:15 +02:00
XPila 6a8425f62d
Merge pull request #809 from mkbel/Use_Timer
Use timer
2018-06-05 20:54:41 +02:00
PavelSindler d49c4508a7 removing some debug code 2018-06-05 20:39:42 +02:00
PavelSindler 264daaf715 typo fixed 2018-06-05 20:33:05 +02:00
PavelSindler aacaf67eaa Crash detection/filament sensor: restore print from stored line number in case that we are printing over USB, retraction fix; debug: cmd queue on LCD 2018-06-05 20:28:41 +02:00
Marek Bel 01af8a806b Merge branch 'MK3' into Use_Timer 2018-06-05 19:03:11 +02:00
Marek Bel f819392d10 Do not create static object in function. Saves 8B RAM and 16B flash, because there is no need to guard constructor against concurrent calls. 2018-06-05 18:38:25 +02:00
Marek Bel 7cc8b743c2 Add .gitignore. Setup doxyfile. Create project documentation main page. Document property of static object constructors on gcc-avr. 2018-06-05 18:30:02 +02:00
PavelSindler 746ac17e4e debugging 2018-06-04 16:40:56 +02:00
Robert Pelnar 47c68c884c New ML support - fixed duplicate strings 2018-06-01 14:35:03 +02:00
Robert Pelnar 53d9d8bd8a New ML support - lang codes
+script tunning
2018-06-01 10:47:47 +02:00
3d-gussner 5004433b20 Fix warning: This is kind of important
Again another fix from https://github.com/prusa3d/Prusa-Firmware/pull/138 made by @Thess for the MK2 branch which i think is quite important.

Ardunio IDE 1.8.5 result with Compiler warnings set to "More" or "All"
```
sketch\Marlin_main.cpp:3265:44: warning: the address of 'retracted' will always evaluate as 'true' [-Waddress]

               if((echange<-MIN_RETRACT && !retracted) || (echange>MIN_RETRACT && retracted)) { //move appears to be an attempt to retract or recover

                                            ^

sketch\Marlin_main.cpp:3265:82: warning: the address of 'retracted' will always evaluate as 'true' [-Waddress]

               if((echange<-MIN_RETRACT && !retracted) || (echange>MIN_RETRACT && retracted)) { //move appears to be an attempt to retract or recover

                                                                                  ^

sketch\Marlin_main.cpp:3268:28: warning: the address of 'retracted' will always evaluate as 'true' [-Waddress]

                   retract(!retracted);

                            ^

sketch\Marlin_main.cpp:3870:15: warning: statement has no effect [-Wunused-value]
```

I don't know if that helps making small pull requests as they are easier to review or it would make sense to combine few more.

Prusa should really review this pull [request](https://github.com/prusa3d/Prusa-Firmware/pull/138) again for the MK3 branch, as it was one that made warnings disapear in the MK2 branch and made finding new flaws in the code much much easier.
2018-06-01 10:17:03 +02:00
Robert Pelnar 5a2b056d47 Merge remote-tracking branch 'upstream/MK3' into MK3-new_lang 2018-06-01 00:43:16 +02:00
Christoph Stahl 7c4fce7876 whitespace correction 2018-05-31 18:55:14 +02:00
Christoph Stahl 73708ec883 Improved M860 - now wait for cooling of PINDA, too
The M860 - wait for PINDA temperature - gcode has been improved. Until now it could only wait until the PINDA has been warmed up to a set temperature. Now it also can wait until the PINDA has cooled down to a set temperature. The calling syntax has not been changed at all. The logic now looks if the bed or hotend have a target temperature different from 0. If so, the code waits until PINDA has warmed up. Otherwise it waits until PINDA has cooled down.

Applications:
- Possibility to start a Print at exactly the right PINDA temperature. (Do not start the heater until PINDA is cooled down)
- Much easier manual temperature calibration (automating the wait for cool down in between calibration runs)
- Possibility for temp calibration verification on one heat bed by printing multiple objects with different PINDA temperatures one after the other
2018-05-31 16:41:59 +02:00
XPila 80c641ae5d
Merge pull request #789 from 3d-gussner/MK3_fix4
Fixed warning: invalid suffix on literal; C++11 requires a space betw…
2018-05-31 14:09:49 +02:00
Robert Pelnar 37e575f4bc New ML support - debug output, bootloader
bootapp - automaticaly erase flash when necessary
+test code
2018-05-30 19:29:52 +02:00
PavelSindler 9104b0601a power panic: extruder_multipliers added 2018-05-30 18:59:33 +02:00
3d-gussner eeca0f683b Fixed warning: invalid suffix on literal; C++11 requires a space between literal and identifier [-Wliteral-suffix] 2018-05-30 16:06:22 +02:00
PavelSindler 3bf47d7f83 "run xyz cal first" message 2018-05-30 15:29:59 +02:00
PavelSindler 987f8969c0 Merge remote-tracking branch 'upstream/MK3' into temp_cal_coordinates_fix 2018-05-30 15:20:40 +02:00
PavelSindler 2561ab9c7d
Merge pull request #786 from XPila/MK3-new_lang
Mk3 new lang
2018-05-30 14:54:47 +02:00
3d-gussner dce2d45499 Fixed forgotten comment 2018-05-30 13:35:48 +02:00
Robert Pelnar 4746c77195 New ML support - bootloader support and update proces test 2018-05-29 21:03:47 +02:00
PavelSindler d307868a90 merge with upstream 2018-05-28 20:38:55 +02:00
PavelSindler 26724c4a48 removed message 2018-05-28 20:31:57 +02:00
PavelSindler 7e79ce8e53 MK3: crash detection for Z axis is active during auto home and mesh bed leveling (normal mode is forced for Z movents); temp cal coordintes corrections; temp cal: xy movents always in safe Z distance from heatbed, Z-axis homing improved 2018-05-28 20:26:15 +02:00
Robert Pelnar baa66a0887 New ML support - secondary language name, language selection 2018-05-28 17:14:55 +02:00
XPila 28a767b460
Merge pull request #760 from PavelSindler/safety_timer_fixes
Safety timer not active during filament runout procedure
2018-05-28 13:28:24 +02:00
PavelSindler 58ae70c4e1
Merge branch 'MK3' into MK3-new_lang 2018-05-28 13:22:14 +02:00
Robert Pelnar 15207e4d5e Linearity correction fix - (eeprom storage changed to byte instead of word)
+enabled for XYZ axes
2018-05-28 01:47:08 +02:00
Robert Pelnar 55157640c5 New ML support - czech version is working!!!
postbuild.sh, make_lang.sh - fixed (id and offset calculation)
language.c, language.h - fixed (==||==)
config.h - reserved space for _SEC_LANG changed
Marlin_main.cpp - debug output + hardcoded lang_select(1) //means cz
2018-05-27 15:14:04 +02:00
PavelSindler 2ffb95c72a bugfix: use absolute coordinates for steel sheet removal position, because there is no homing at the beginning of calibration in case that position is already known 2018-05-24 20:28:00 +02:00
Robert Pelnar 2cf20c8c99 New ML support - migration - fix_source_1.sh script (replace 'MSG_xx' with '_T(MSG_xx)')
+ output + fixed source
2018-05-23 16:37:08 +02:00
Robert Pelnar da3432e237 New ML support - changed _SEC_LANG reserved space to 10kb, added debug code 2018-05-23 16:11:12 +02:00
Robert Pelnar f00a9ce636 New ML support - language.c, language.h - code fixed, Marlin_main.cpp - debug output 2018-05-23 15:46:08 +02:00
PavelSindler 0091b41fb5
Merge pull request #744 from PavelSindler/M860_fix
M860 fix: send busy messages
2018-05-23 13:15:46 +02:00
PavelSindler 137e1c5027 whitespace 2018-05-22 13:33:31 +02:00
PavelSindler d63a17c696 Safety timer not active during filament runout detection 2018-05-22 13:31:21 +02:00
Robert Pelnar bd587faab9 New ML support - migration - replaced source, removed original ML support files (backup) 2018-05-22 03:20:03 +02:00
MRprusa3d 83aa710da6 menu returns corrections
Settings::FilamentSensor & FilamentAutoload

removing Calibration::ShowEndStops @ MK3
2018-05-15 20:23:22 +02:00
PavelSindler c59e9bd6be M860 fix: send busy messages 2018-05-15 18:27:25 +02:00
Marek Bel 02ecd08786 Convert Time class to template, instantiate LongTimer for longer and ShortTimer for shorter periods. 2018-05-11 16:31:42 +02:00
Marek Bel e8730c2899 Merge branch 'MK3' into read_xyz_cal
# Conflicts:
#	Firmware/ultralcd.cpp
2018-05-10 18:31:31 +02:00
Marek Bel c359d11858 Do not disable bed heating, when the print is paused.
Also remove duplicate handleSafetyTimer() call.
2018-05-04 15:21:22 +02:00
MRprusa3d 8a92d9b6a3 MaR::180501b 2018-05-02 23:49:21 +02:00
MRprusa3d d02333918f MaR::180501 2018-05-02 22:13:47 +02:00
PavelSindler 420d1079af terminate temperature calibration in case that Z probing function returns false 2018-04-30 17:51:44 +02:00
PavelSindler 2a57325bd5
Merge pull request #685 from mkbel/add_safety_timer_notice
Show full screen blocking notification message after heater turned off
2018-04-27 17:24:33 +02:00
PavelSindler 265d4761a3 M861: steps value for 35C 2018-04-27 17:07:10 +02:00
Marek Bel eced66f0f6 Show full screen blocking notification message after heater turning off by safety timer. 2018-04-27 16:23:20 +02:00
PavelSindler acd308e3d4 safety timer prolonged to 30 minutes 2018-04-27 14:03:09 +02:00
PavelSindler e7cf68e038 whitespace 2018-04-26 19:27:07 +02:00
PavelSindler 2dd0d84845 M861: usteps and z_shift variables correction 2018-04-26 19:14:28 +02:00
PavelSindler 9c3e0aab36 M861 update: use signed values 2018-04-26 18:55:08 +02:00
Marek Bel ae08788c99 Split lcd_service_mode_show_result screens to separate functions. Make them non blocking. Remove global array distance_from_min, pass it as function return value. Make Support submenus returning to Support menu. 2018-04-26 16:36:02 +02:00
PavelSindler 2657d3febd MK25: SILENT_MODE_NORMAL changed to SILENT_MODE_POWER 2018-04-26 15:12:45 +02:00
PavelSindler 9a6cc8a035
Merge pull request #664 from MRprusa3d/MK3
Mk3
2018-04-25 22:20:45 +02:00
MRprusa3d 7e462b3224
Merge branch 'MK3' into MK3 2018-04-25 19:15:36 +00:00
MRprusa3d 0b6644915a
Add files via upload 2018-04-25 18:47:19 +00:00
PavelSindler d85a8077a8 M115 update 2018-04-25 20:39:10 +02:00
Robert Pelnar 0271ab3643 Meshbedleveling, calibration Z
check crash Z (MK3)
 check deviation of Z-probe (>50um == error, all printers)
kill with message "debris on nozzle..."
2018-04-25 16:19:16 +02:00
XPila 5bb9451b5d
Merge pull request #658 from XPila/MK3-V3_2
Meshbedleveling/MK3 - check crash Z after homeaxis (kill with message…
2018-04-24 20:54:53 +02:00
Robert Pelnar 1553e99d8e Meshbedleveling/MK3 - check crash Z after homeaxis (kill with message "debris on nozzle...") 2018-04-24 20:12:29 +02:00
PavelSindler f9d64bdfb1
Merge pull request #655 from mkbel/fix_z_home_point
Fix z home point
2018-04-24 16:51:57 +02:00
XPila 79b9f736aa
Merge pull request #657 from PavelSindler/temp_cal_update
Temp calibration update
2018-04-24 15:16:13 +02:00
PavelSindler 8efe66ef99 remove tab 2018-04-24 14:34:49 +02:00
PavelSindler ffe93b2ca9 whitespace correction 2018-04-24 14:33:48 +02:00
PavelSindler cc74edfa13 whitespace 2018-04-24 14:23:52 +02:00
PavelSindler 010ceceff9 add another homing after steel sheet is removed; added timeout for pinda cooling; if PINDA doesn't trigger before reaching Z = -1mm, temp. calibration fails 2018-04-24 13:43:51 +02:00
Marek Bel 9bd4d580d7 Use right calibration point. This change is only formal, as both original and new point have same coordinates. 2018-04-23 20:33:25 +02:00
Marek Bel cccd8246ab Fix world2machine(const float &x, const float &y, float &out_x, float &out_y) not using input parameters if only WORLD2MACHINE_CORRECTION_SHIFT is applied. 2018-04-23 20:33:14 +02:00
PavelSindler 043c8c66be waiting for pinda probe cooling 2018-04-19 16:55:00 +02:00
PavelSindler 5791d9f0d8 EEPROM address conflict fix; forcing selftest can happen only in case that we have TMC2130 drivers 2018-04-18 14:17:28 +02:00
Marek Bel c88f0108af Fix safety timer.
Constant parameter greater than 16 bits must by stated as unsigned long.
2018-04-13 19:30:08 +02:00
PavelSindler b1bb6841c9
Merge pull request #617 from mkbel/fix_farm_reset_1
Fix farm reset
2018-04-13 10:02:54 +02:00
Marek Bel 388d6eea36 Fix printer resets in farm mode if command "PRUSA SN" is received and 32U2 processor is not responding. 2018-04-12 18:44:33 +02:00
Marek Bel 08740356b8 Move "PRUSA SN" gcode to separate function. 2018-04-12 18:41:11 +02:00
XPila 6b5835fd9f
Merge pull request #612 from PavelSindler/M861_gcode
M861 gcode, temp cal is automaticly activated after calibration process
2018-04-11 18:45:57 +02:00
PavelSindler 45d1dbbfe0 temp cal. active set to false 2018-04-11 18:37:07 +02:00
PavelSindler ce66699340 dont use default temp table for new printers and dont automaticly activate temp. cal. (new pinda probes have different characteristics) 2018-04-11 18:36:38 +02:00
PavelSindler 47eab97d2d temp. calibration is automaticly activated after calibration process 2018-04-11 18:16:16 +02:00
PavelSindler 0ba7850146 pinda temp table changed back 2018-04-11 17:40:04 +02:00
XPila c69524c3fb
Merge pull request #611 from XPila/MK3-V3_2
removed Configuration_prusa.h
2018-04-11 17:33:37 +02:00
Robert Pelnar 89efcb84b1 removed Configuration_prusa.h
fixed - compilation for MK25
2018-04-11 17:32:31 +02:00
PavelSindler 919fba531a wait for PINDA gcode changed 2018-04-11 16:48:47 +02:00
PavelSindler f70685a92d
Merge pull request #542 from stahlfabrik/MK3_PINDA_TEMP_WAIT_GCODE
MK3 Add Gcode to wait for minimum PINDA temp
2018-04-11 16:40:21 +02:00
Robert Pelnar 92997204a1 Linearity correction - TMC codes for calibration object, variable stored as uint8, range from 1.03 to 1.20 2018-04-03 12:30:35 +02:00
Robert Pelnar baade7db61 Removed unused files (ST7565R-dogm, digipot)
renamed functions digipot_init and digipot_current
fixed cond. trans. (menus)
fixed variant files - MK25, MK3
2018-03-29 23:01:13 +02:00
Robert Pelnar 363a9d24b3 LiquidCrystal class renamed to LiquidCrystal_Prusa 2018-03-29 17:50:43 +02:00
Robert Pelnar 186e630299 New SPI (do not use Arduino SPI class)
saved ~300bytes flash, 4bytes ram
2018-03-29 17:42:41 +02:00
XPila 06d5ec5659
Merge pull request #586 from mkbel/ustep_linearity_2
Ustep linearity
2018-03-28 19:38:34 +02:00
XPila ffdd11e960
Merge pull request #587 from XPila/MK3-V3_2
Mk3 v3 2
2018-03-28 19:38:20 +02:00
Robert Pelnar bde097cad1 bugfix - PFW233 - first homing in silent mode Y crash. 2018-03-28 19:22:20 +02:00
Marek Bel 9cb036fbcb Merge remote-tracking branch 'prusa3d/MK3' into ustep_linearity_2 2018-03-28 19:11:02 +02:00