Smoothieware / Smoothie2-old

(Deprecated attempt at) A Smoothie firmware port to the Smoothieboard v2 boards.
GNU General Public License v3.0
34 stars 22 forks source link

Motor control not working #28

Closed marcosfg closed 7 years ago

marcosfg commented 8 years ago

I hooked up some drivers to my bambino 210E board to start testing the firmware step generation.

When I send a G0/1 command the firmwares stops responding and the motors are blocked but do not move.

The G28 command replies "OK" and brakes the motor, but no movement.

I am currently using a Bambino with the virtual com port firmware, and I'm using a JTAG probe to flash and debug.

Has anyone had this problem?

DouglasPearless commented 8 years ago

I am using a Bambino 210 (not E) with JTAG and eclipse, but I am waiting for my drivers to arrive (TMC2130).

In the interim I may try some DRV825’s and see what is happening too.

Cheers Douglas

On 26/08/2016, at 5:08 AM, Marcos Gomes notifications@github.com wrote:

I hooked up some drivers to my bambino 210E board to start testing the firmware step generation.

When I send a G0/1 command the firmwares stops responding and the motors are blocked but do not move.

The G28 command replies "OK" and brakes the motor, but no movement.

I am currently using a Bambino with the virtual com port firmware, and I'm using a JTAG probe to flash and debug.

Has anyone had this problem?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/Smoothieware/Smoothie2/issues/28, or mute the thread https://github.com/notifications/unsubscribe-auth/ADkh-1KEDYBMfCAjXIDT55dfQjZMMze5ks5qjcwXgaJpZM4JtS0B.

marcosfg commented 8 years ago

I am also using some DRV8825. Please test if you can.

If you have an oscilloscope or logic analyser you may also verify the step/dir pin output.

thanks

DouglasPearless commented 8 years ago

I have a logic analyser (two actually) and a venerable oscilloscope.

Might be able to with things up in the next day or two and test.

On 26/08/2016, at 8:56 PM, Marcos Gomes notifications@github.com wrote:

I am also using some DRV8825. Please test if you can.

If you have an oscilloscope or logic analyser you may also verify the step/dir pin output.

thanks

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Smoothieware/Smoothie2/issues/28#issuecomment-242671785, or mute the thread https://github.com/notifications/unsubscribe-auth/ADkh-_0E21sKOKyMlNZ1lxba0DemqeaNks5qjqo5gaJpZM4JtS0B.

adamgreen commented 8 years ago

I have hit an issue before where running the Smoothie2 firmware on Bambino boards with optimizations disabled would throw off the timing and cause it to hang. I re-enabled optimizations in PR #24. If you were disabling them again to make debugging easier, it could be related to your issue.

I do know that the firmware still ran differently after that PR on my Bambino in comparison to actual Smoothie2 prototype hardware where a G1 command would return immediately but take awhile to respond on Bambino hardware. I never debugged that issue before moving onto other projects though.

DouglasPearless commented 8 years ago

Can you post your config file

marcosfg commented 8 years ago

Sorry for the delay.

here's the config file I'm using config.txt

DouglasPearless commented 8 years ago

Thanks, I will have a look at it over the next few days (I need to wire up steppers to my Bambino210 ) Cheers Douglas

On 31/08/2016, at 2:16 AM, Marcos Gomes notifications@github.com wrote:

Sorry for the delay.

here's the config file I'm using config.txt https://github.com/Smoothieware/Smoothie2/files/445114/config.txt — You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Smoothieware/Smoothie2/issues/28#issuecomment-243453427, or mute the thread https://github.com/notifications/unsubscribe-auth/ADkh-w1T94srY_RwlHsQLf5131t_i9l7ks5qlDs2gaJpZM4JtS0B.

marcosfg commented 8 years ago

I have managed to put my motors running, however after running a bit they stop. Here's what I have changed:

In Kernel.cpp I have added the following lines: // Configure the step ticker this->base_stepping_frequency = this->config->value(base_stepping_frequency_checksum)->by_default(100000)->as_number(); float microseconds_per_step_pulse = this->config->value(microseconds_per_step_pulse_checksum)->by_default(5)->as_number(); this->acceleration_ticks_per_second = THEKERNEL->config->value(acceleration_ticks_per_second_checksum)->by_default(1000)->as_number();

In StepTicker.cpp I have changed the stepping frequency: this->set_frequency(100000); to this->set_frequency(10000);

I have realized that in Smoothie2, the firmware uses the Ticker libraries from mbed. The Smoothie1 uses the timer0 and timer3 interrupts to control the step generation. Shouldn't we use this method instead?

DouglasPearless commented 8 years ago

I am currently stuck as I cannot get the Smoothie2 to initialise anymore.

Despite building a clean environment, and downloading the current code from github again, I have done something very wrong and I can load the .elf file, and single step, it never gets to the breakpoint at main(); I have some long nights ahead of me while I try and figure this out :-( it is very strange.

DouglasPearless commented 8 years ago

I think the use of the MBED libraries is a preparatory move to a RTOS; I have used a couple of RTOS and timing is always a bit of 'fun' in a real-time application.

DouglasPearless commented 8 years ago

I have ordered a new JLink in case mine is broken.

DouglasPearless commented 8 years ago

Hmm, looks like my v8 hardware is too old for Cortex M4, I need a 9.1 or later :-(

Note sure why it worked and then stopped, perhaps when I downloaded the latest JLink software?

arthurwolf commented 8 years ago

This is weird indeed. I hope you get it running again soon.

On Mon, Sep 19, 2016 at 7:38 AM, Douglas Pearless notifications@github.com wrote:

Hmm, looks like my v8 hardware is too old for Cortex M4, I need a 9.1 or later :-(

Note sure why it worked and then stopped, perhaps when I downloaded the latest JLink software?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/Smoothieware/Smoothie2/issues/28#issuecomment-247914221, or mute the thread https://github.com/notifications/unsubscribe-auth/AAGpFQn5VeP_u-XKX37W6ylkx0CSwzS1ks5qrh_kgaJpZM4JtS0B .

Courage et bonne humeur.

marcosfg commented 8 years ago

It is indeed strange. I'm using a LPC-Link 2 with v1 hardware. The J-link I use was compiled on 30 May 2016.

Regarding the MBed libraries I also believe they are being used to facilitate the move to MBed OS.

I will make some tests comparing the mbed timers with timer0/1 handlers.

DouglasPearless commented 8 years ago

New JLink Edu arrived, working again :-)

DouglasPearless commented 8 years ago

Well I now have everything sort of working, need to put logic analyser on the stepper motor outputs (inputs to the SilentStepSticks) to see if they are receiving any pulses as they do not move; have turned on optimisations in makefile, still runs extremely slowly, something very wrong with the timers that drive the unit, will probably take a while to debug!!

DouglasPearless commented 8 years ago

Yes I made the following changes too:

In Kernel.cpp I have added the following lines: // Configure the step ticker this->base_stepping_frequency = this->config->value(base_stepping_frequency_checksum)->by_default(100000)->as_number(); float microseconds_per_step_pulse = this->config->value(microseconds_per_step_pulse_checksum)->by_default(5)->as_number(); this->acceleration_ticks_per_second = THEKERNEL->config->value(acceleration_ticks_per_second_checksum)->by_default(1000)->as_number();

In StepTicker.cpp I have changed the stepping frequency: this->set_frequency(100000); to this->set_frequency(10000);

marcosfg commented 8 years ago

I am not completely sure, but it seems that mbed library uses only one timer for every timer objects. From the tests I have made the library has difficulties to keep up with timers of a few micro seconds.

I am converting the stepper module to use the LPC timers. Currently I am able to run the motors without speed control. I hope in the next days I will be able to do a push request with the changes.

DouglasPearless commented 8 years ago

That would be a very interesting outcome.

I have used the CMSIS RTOS on a 48MHz ARM M3 (SiLabs EFM32 platform) to run a servo with real-time feedback of the shaft, and getting the RTOS abstracted timers to work properly was such a pain that I too used the native timers

On 21/09/2016, at 12:35 AM, Marcos Gomes notifications@github.com wrote:

I am not completely sure, but it seems that mbed library uses only one timer for every timer objects. From the tests I have made the library has difficulties to keep up with timers of a few micro seconds.

I am converting the stepper module to use the LPC timers. Currently I am able to run the motors without speed control. I hope in the next days I will be able to do a push request with the changes.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Smoothieware/Smoothie2/issues/28#issuecomment-248288280, or mute the thread https://github.com/notifications/unsubscribe-auth/ADkh-zYcZseAuDH5tWd4d5LWu0yUxQTqks5qr9MagaJpZM4JtS0B.

marcosfg commented 8 years ago

I have solved the problem. I have changed the step generation methods to use the chip timers.

I have made a new pull request with the changes.

DouglasPearless commented 8 years ago

Hi team,

I have tried the new code and notice an interesting set of pulses for the step pin:

And zooming in:

And the pulses themselves:

Thoughts?

Cheers Douglas

Sent from my iPhone

On 28/09/2016, at 2:51 AM, Marcos Gomes notifications@github.com wrote:

I have solved the problem. I have changed the step generation methods to use the chip timers.

I have made a new pull request with the changes.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or mute the thread.

marcosfg commented 8 years ago

Douglas, can you attach an image from the steps?

DouglasPearless commented 8 years ago

The Step pin: image1 The gap between blocks of pulses: image2 The pulses in each block of pulses: image3 I suspect that Smoothie2 should be using hardware PWM and not a timer and loop driven method to generate the pulses.

I had this exact issue when porting servo software to ARM RTOS/RTX as there is always another task that has to do something (e.g. calculations during a loop) that affects the timing.

wolfmanjm commented 8 years ago

that is exactly why I rewrote the step generation. Using PWM won't fix this. It simply takes too long to setup the next move. If you port tthe new step generation this will get fixed.

DouglasPearless commented 8 years ago

OK, I don't have the time to port this at the moment, Marcos do you have time to do this?

DouglasPearless commented 8 years ago

I was reviewing the Smoothie code to see what needs to change for Smoothie 2 to achieve this. I am not exactly clear which commit(s) need to be ported, is it this one:

https://github.com/Smoothieware/Smoothieware/pull/946/commits/8b260c2c2f391324244eba299ef92e4186813a7b?diff=split

and/or are there other commits / changes that must be ported?

Cheers Douglas

arthurwolf commented 8 years ago

It's a whole. We need to get all of current v1 into current v2. A lot changed, and it's all inter-connected. This means doing a 3-way diff on all files, and for all files, pretty much use the current v1 file, but with whatever changes are needed for it to work on v2 ( which usually is not much ). I did this a few months back, it's a few day's work, it's annoying, but it needs to be done. If nobody else does it i'll try to find time to do it myself.

On Thu, Sep 29, 2016 at 4:20 AM, Douglas Pearless notifications@github.com wrote:

I was reviewing the Smoothie code to see what needs to change for Smoothie 2 to achieve this. I am not exactly clear which commit(s) need to be ported, is it this one:

Smoothieware/Smoothieware@8b260c2?diff=split https://github.com/Smoothieware/Smoothieware/pull/946/commits/8b260c2c2f391324244eba299ef92e4186813a7b?diff=split

and/or are there other commits / changes that must be ported?

Cheers Douglas

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Smoothieware/Smoothie2/issues/28#issuecomment-250353811, or mute the thread https://github.com/notifications/unsubscribe-auth/AAGpFVYNIHH_676UgXr28fpsqR37lWoZks5quyBwgaJpZM4JtS0B .

Courage et bonne humeur.

marcosfg commented 8 years ago

The port I have made is from a previous release from the v1 firmware. As I posted in the push request it is necessary to finish the port to the current state of the v2 firmware.

I intend to continue this development as soon as possible. I am currently also working in thermocouple spi communication port.

In the meantime the step generation is working well with my drv8825 drivers and nema17 motors.

marcosfg commented 8 years ago

I believe the current issue can now be closed since the original problem has been resolved.

DouglasPearless commented 8 years ago

OK, I am working on step generation with the TMC2130 256 microstep so I can get my new electronics moving, then back to my work on fixing the Rotary Delta issues.

On 30/09/2016, at 1:24 AM, Marcos Gomes notifications@github.com wrote:

The port I have made is from a previous release from the v1 firmware. As I posted in the push request it is necessary to finish the port to the current state of the v2 firmware.

I intend to continue this development as soon as possible. I am currently also working in thermocouple spi communication port.

In the meantime the step generation is working well with my drv8825 drivers and nema17 motors.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Smoothieware/Smoothie2/issues/28#issuecomment-250451195, or mute the thread https://github.com/notifications/unsubscribe-auth/ADkh-0TgchzzGmGlfnKLZMp8eesBtukxks5qu63vgaJpZM4JtS0B.

DouglasPearless commented 8 years ago

I have a puzzling situation, when I enable SPI (using SSP0) for the TMC2130, as soon as I do that the step generation at the pins for the stepper motors stops working!

The SPI works just fine itself.

My code:

    if ( THEKERNEL->config->value( tmc2130_checksum )->by_default(true)->as_bool() == true ) {
        spi_mosi_pin.from_string(THEKERNEL->config->value(spi_mosi_pin_checksum)->by_default("nc")->as_string())->as_output();
        spi_miso_pin.from_string(THEKERNEL->config->value(spi_miso_pin_checksum)->by_default("nc")->as_string())->as_output();
        spi_sck_pin.from_string( THEKERNEL->config->value(spi_sck_pin_checksum )->by_default("nc")->as_string())->as_output();
        if (spi != nullptr)
            delete api;
        spi = new mbed::SPI(spi_mosi_pin.getPinName(), spi_miso_pin.getPinName(), spi_sck_pin.getPinName());
        // Spi settings: 1MHz (default), 8 bits (default), mode 0 (default)
        spi->format(8); //TODO the max31855 usings 16 bits so need to modify that code to also use 8 bits as the TMC2130 requires 40 bit frames
    }

and the pins I use from my config.default file:

tmc2130_enable                  true          # tmc2130 stepper motor drivers
tmc2130_spi_miso_pin                1.1       # SPI MISO
tmc2130_spi_mosi_pin                1.2       # SPI MOSI
tmc2130_spi_sck_pin             3.0       # SPI SCK
alpha_spi_cs_pin                7.4       # Pin for alpha SilentStepStick SPI Enable pin
beta_spi_cs_pin                 7.5       # Pin for beta SilentStepStick SPI Enable pin
gamma_spi_cs_pin                1.0           # Pin for gamma SilentStepStick SPI Enable pin

If I set tmc2130_enable false then the step pulses are generated for a G28, but tmc2130_enable true then no step pulses are generated for a G28

I have read the data sheet for the LPC4300 and cannot find a reason for this.

Thoughts?

arthurwolf commented 8 years ago

Some problem with pin configuration/registers maybe ?

On Wed, Oct 5, 2016 at 12:39 AM, Douglas Pearless notifications@github.com wrote:

I have a puzzling situation, when I enable SPI (using SSP0) for the TMC2130, as soon as I do that the step generation at the pins for the stepper motors stops working!

The SPI works just fine itself.

My code:

if ( THEKERNEL->config->value( tmc2130_checksum )->by_default(true)->as_bool() == true ) {
    spi_mosi_pin.from_string(THEKERNEL->config->value(spi_mosi_pin_checksum)->by_default("nc")->as_string())->as_output();
    spi_miso_pin.from_string(THEKERNEL->config->value(spi_miso_pin_checksum)->by_default("nc")->as_string())->as_output();
    spi_sck_pin.from_string( THEKERNEL->config->value(spi_sck_pin_checksum )->by_default("nc")->as_string())->as_output();
    if (spi != nullptr)
        delete api;
    spi = new mbed::SPI(spi_mosi_pin.getPinName(), spi_miso_pin.getPinName(), spi_sck_pin.getPinName());
    // Spi settings: 1MHz (default), 8 bits (default), mode 0 (default)
    spi->format(8); //TODO the max31855 usings 16 bits so need to modify that code to also use 8 bits as the TMC2130 requires 40 bit frames
}

and the pins I use from my config.default file:

tmc2130_enable true # tmc2130 stepper motor drivers tmc2130_spi_miso_pin 1.1 # SPI MISO tmc2130_spi_mosi_pin 1.2 # SPI MOSI tmc2130_spi_sck_pin 3.0 # SPI SCK alpha_spi_cs_pin 7.4 # Pin for alpha SilentStepStick SPI Enable pin beta_spi_cs_pin 7.5 # Pin for beta SilentStepStick SPI Enable pin gamma_spi_cs_pin 1.0 # Pin for gamma SilentStepStick SPI Enable pin

If I set tmc2130_enable false then the step pulses are generated for a G28, but tmc2130_enable true then no step pulses are generated for a G28

I have read the data sheet for the LPC4300 and cannot find a reason for this.

Thoughts?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Smoothieware/Smoothie2/issues/28#issuecomment-251534323, or mute the thread https://github.com/notifications/unsubscribe-auth/AAGpFeUnIfyehuApKQHeOQjDcDpJrMS8ks5qwtWSgaJpZM4JtS0B .

Courage et bonne humeur.

wolfmanjm commented 8 years ago

FWIW I'm not even sure why @DouglasPearless is writing this as it already exists in the motorcontrol module. And the motorcontrol module has nothing to do with step generation.

DouglasPearless commented 8 years ago

A very good question!

I have removed my code from my repo and instead are porting all the code in the UTILS directory which includes the motordrivercontrol that Jim pointed out has been there for a year, (and I have not even looked at!), then I will add the TMC2130 to that code and get that working.

Yes it is probably a register conflict somewhere, but as I was simply using the mbed SPI routine to use the SSP0 in SPI mode, it puzzled me as to why it broke the current step generation and it will be interesting to see if the same happens when I port motordrivercontrol; it so I will have to go back through the new timer0/1/2/RTT code to determine what is conflicting, not a task I am looking forward to.

I noticed that tin currentcontrol, the I2C pins are hard wired in the I2C module, should these be read from the config file as well?

Cheers Douglas

On 6/10/2016, at 9:14 AM, Jim Morris notifications@github.com wrote:

FWIW I'm not even sure why @DouglasPearless https://github.com/DouglasPearless is writing this as it already exists in the motorcontrol module. And the motorcontrol module has nothing to do with step generation.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Smoothieware/Smoothie2/issues/28#issuecomment-251786062, or mute the thread https://github.com/notifications/unsubscribe-auth/ADkh-75PJmucK7os7wHzY3f0r-Sgv8m8ks5qxAU_gaJpZM4JtS0B.

DouglasPearless commented 7 years ago

Success, Smoothie2 driving the X-Axis of my FirePick Delta using watterott.com SilentStepStep TMC2130 at 256 microsteps https://youtu.be/7YAyC6qikQs

marcosfg commented 7 years ago

Great news. Have you tried the SPI 1 channel? I am having some issues when using this channel for the MAX31855

DouglasPearless commented 7 years ago

I could mot use SSP1 as I recall at least one of the pins is used for something else on the Bambino210E, cannot remember what though, might have been the Ethernet??

marcosfg commented 7 years ago

The schematics show that the SPP1 channel is free in pins D36-D39 from J14. However when I use this configuration I can not see any clock output in the SCK pin, however I can use the SSP1 MOSI to write data.

When using SSP0 pins from the J16 connector I have no problem.

DouglasPearless commented 7 years ago

@wolfmanjm I am trying to figure out which commit contains the fixes to the step generation to fix the gaps in the stepper pulses.

Is it one of these? "alos make sure stepticker handles ablock with no steps on any motor" https://github.com/Smoothieware/Smoothieware/commit/4de83d432944e0318ec200bca0ca202ab9c0414d "prepare to check the step pulse length compared to stepping frequency" https://github.com/Smoothieware/Smoothieware/commit/12ae3902cd3f711eec1ade65a31db408cf84e134 "have unstep timer stop on match, so no more interrupts until it is reenabled" https://github.com/Smoothieware/Smoothieware/commit/e0a9f9e11dbd16a118d32449ec5d650b5b8bea46

wolfmanjm commented 7 years ago

it isn;t any single commit it is the whole thing it is all related. it was a major rewrite there was no specific fix. There is no way to cherry pick the things. the whole tree needs to be re ported.

DouglasPearless commented 7 years ago

OK, I will probably start back here and roll forward:

Implement endstops using new motion control https://github.com/Smoothieware/Smoothieware/commit/c8bac202c5fecdc8d92b23fa98ff34bef274bfb0

DouglasPearless commented 7 years ago

OK, it sounds like I have to just get on with it :-)

I have done a folder diff on the current Smoothie v1 src folder and the Smoothie2 src folder and have spent the last few hours analysing the differences.

The challenge is to figure out when there are differences, what should be ported and what should not as I do not know why the Smoothie2 code is necessarily different, for example due to a new feature, or change due to a different platform or represents when the original port was done and needs to be ported.

Here are the code files that are different:

libs/Adc.cpp libs/Adc.h libs/ConfigSources/FirmConfigSource.cpp libs/ConfigSources/FirmConfigSource.h libs/HeapRing.cpp libs/HeapRing.h libs/Hook.h libs/Kernel.cpp libs/Kernel.h libs/Module.cpp libs/Module.h libs/nuts_bolts.h libs/Pin.cpp libs/Pin.h libs/Pwm.cpp libs/RingBuffer.h libs/SlowTicker.cpp libs/SlowTicker.h libs/StepperMotor.cpp libs/StepperMotor.h libs/StepTicker.cpp libs/StepTicker.h libs/utils.cpp libs/utils.h main.cpp makefile modules/communication/GcodeDispatch.cpp modules/communication/SerialConsole.cpp modules/communication/SerialConsole.h modules/communication/utils/Gcode.cpp modules/communication/utils/Gcode.h modules/robot/ActuatorCoordinates.h modules/robot/arm_solutions/BaseSolution.h modules/robot/arm_solutions/CartesianSolution.cpp modules/robot/arm_solutions/CartesianSolution.h modules/robot/arm_solutions/CoreXZSolution.cpp modules/robot/arm_solutions/CoreXZSolution.h modules/robot/arm_solutions/ExperimentalDeltaSolution.cpp modules/robot/arm_solutions/ExperimentalDeltaSolution.h modules/robot/arm_solutions/HBotSolution.cpp modules/robot/arm_solutions/HBotSolution.h modules/robot/arm_solutions/LinearDeltaSolution.cpp modules/robot/arm_solutions/LinearDeltaSolution.h modules/robot/arm_solutions/MorganSCARASolution.cpp modules/robot/arm_solutions/MorganSCARASolution.h modules/robot/arm_solutions/RotaryDeltaSolution.cpp modules/robot/arm_solutions/RotaryDeltaSolution.h modules/robot/arm_solutions/RotatableCartesianSolution.cpp modules/robot/arm_solutions/RotatableCartesianSolution.h modules/robot/Block.cpp modules/robot/Block.h modules/robot/Conveyor.cpp modules/robot/Conveyor.h modules/robot/Planner.cpp modules/robot/Planner.h modules/robot/Robot.cpp modules/robot/Robot.h modules/tools/drillingcycles/Drillingcycles.cpp modules/tools/endstops/Endstops.cpp modules/tools/endstops/Endstops.h modules/tools/laser/Laser.cpp modules/tools/laser/Laser.h modules/tools/switch/Switch.cpp modules/tools/temperaturecontrol/max31855.cpp modules/tools/temperaturecontrol/predefined_thermistors.h modules/tools/temperaturecontrol/TemperatureControl.cpp modules/tools/temperaturecontrol/TemperatureControl.h modules/tools/temperaturecontrol/TemperatureControlPool.cpp modules/tools/temperaturecontrol/TemperatureControlPool.h modules/tools/temperaturecontrol/Thermistor.cpp modules/tools/toolmanager/Tool.h modules/tools/toolmanager/ToolManager.cpp

Is there a suggested approach to try and determine what changes need to be ported?

Cheers Douglas

On 17/10/2016, at 5:20 PM, Jim Morris notifications@github.com wrote:

it isn;t any single commit it is the whole thing it is all related. it was a major rewrite there was no specific fix. There is no way to cherry pick the things. the whole tree needs to be re ported.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Smoothieware/Smoothie2/issues/28#issuecomment-254109579, or mute the thread https://github.com/notifications/unsubscribe-auth/ADkh-1JMs0HrtVWTfGlO6KdR88Xibr-Uks5q0vehgaJpZM4JtS0B.

arthurwolf commented 7 years ago

Hey Douglas.

Pretty much all changes need to be changed. I did the process a few months back because Smoothie2 was about a year behind Smoothie1 and it took about two days ( I think ). It's a lot of work but it's not very difficult, you just need to make sure you don't remove things that are in Smoothie2 specifically to get the code to run on the LPC4330, which is not that much code really.

On Mon, Oct 17, 2016 at 10:12 AM, Douglas Pearless <notifications@github.com

wrote:

OK, it sounds like I have to just get on with it :-)

I have done a folder diff on the current Smoothie v1 src folder and the Smoothie2 src folder and have spent the last few hours analysing the differences.

The challenge is to figure out when there are differences, what should be ported and what should not as I do not know why the Smoothie2 code is necessarily different, for example due to a new feature, or change due to a different platform or represents when the original port was done and needs to be ported.

Here are the code files that are different:

libs/Adc.cpp libs/Adc.h libs/ConfigSources/FirmConfigSource.cpp libs/ConfigSources/FirmConfigSource.h libs/HeapRing.cpp libs/HeapRing.h libs/Hook.h libs/Kernel.cpp libs/Kernel.h libs/Module.cpp libs/Module.h libs/nuts_bolts.h libs/Pin.cpp libs/Pin.h libs/Pwm.cpp libs/RingBuffer.h libs/SlowTicker.cpp libs/SlowTicker.h libs/StepperMotor.cpp libs/StepperMotor.h libs/StepTicker.cpp libs/StepTicker.h libs/utils.cpp libs/utils.h main.cpp makefile modules/communication/GcodeDispatch.cpp modules/communication/SerialConsole.cpp modules/communication/SerialConsole.h modules/communication/utils/Gcode.cpp modules/communication/utils/Gcode.h modules/robot/ActuatorCoordinates.h modules/robot/arm_solutions/BaseSolution.h modules/robot/arm_solutions/CartesianSolution.cpp modules/robot/arm_solutions/CartesianSolution.h modules/robot/arm_solutions/CoreXZSolution.cpp modules/robot/arm_solutions/CoreXZSolution.h modules/robot/arm_solutions/ExperimentalDeltaSolution.cpp modules/robot/arm_solutions/ExperimentalDeltaSolution.h modules/robot/arm_solutions/HBotSolution.cpp modules/robot/arm_solutions/HBotSolution.h modules/robot/arm_solutions/LinearDeltaSolution.cpp modules/robot/arm_solutions/LinearDeltaSolution.h modules/robot/arm_solutions/MorganSCARASolution.cpp modules/robot/arm_solutions/MorganSCARASolution.h modules/robot/arm_solutions/RotaryDeltaSolution.cpp modules/robot/arm_solutions/RotaryDeltaSolution.h modules/robot/arm_solutions/RotatableCartesianSolution.cpp modules/robot/arm_solutions/RotatableCartesianSolution.h modules/robot/Block.cpp modules/robot/Block.h modules/robot/Conveyor.cpp modules/robot/Conveyor.h modules/robot/Planner.cpp modules/robot/Planner.h modules/robot/Robot.cpp modules/robot/Robot.h modules/tools/drillingcycles/Drillingcycles.cpp modules/tools/endstops/Endstops.cpp modules/tools/endstops/Endstops.h modules/tools/laser/Laser.cpp modules/tools/laser/Laser.h modules/tools/switch/Switch.cpp modules/tools/temperaturecontrol/max31855.cpp modules/tools/temperaturecontrol/predefined_thermistors.h modules/tools/temperaturecontrol/TemperatureControl.cpp modules/tools/temperaturecontrol/TemperatureControl.h modules/tools/temperaturecontrol/TemperatureControlPool.cpp modules/tools/temperaturecontrol/TemperatureControlPool.h modules/tools/temperaturecontrol/Thermistor.cpp modules/tools/toolmanager/Tool.h modules/tools/toolmanager/ToolManager.cpp

Is there a suggested approach to try and determine what changes need to be ported?

Cheers Douglas

On 17/10/2016, at 5:20 PM, Jim Morris notifications@github.com wrote:

it isn;t any single commit it is the whole thing it is all related. it was a major rewrite there was no specific fix. There is no way to cherry pick the things. the whole tree needs to be re ported.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/ Smoothieware/Smoothie2/issues/28#issuecomment-254109579, or mute the thread https://github.com/notifications/unsubscribe-auth/ADkh- 1JMs0HrtVWTfGlO6KdR88Xibr-Uks5q0vehgaJpZM4JtS0B.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Smoothieware/Smoothie2/issues/28#issuecomment-254141079, or mute the thread https://github.com/notifications/unsubscribe-auth/AAGpFfzohWLlUtP-ox2M3FSuZ4El5Ni8ks5q0y3lgaJpZM4JtS0B .

Courage et bonne humeur.

DouglasPearless commented 7 years ago

I have spent more hours on this and have started to work forwards from the point Smoothie2 appears to have been last updated to V1:

Commits on Jun 17, 2016 Implement homing for deltas, which only homes in the Z Axis https://github.com/Smoothieware/Smoothieware/commit/a35788ee13281c7c339e46175177123420e27d6e Not Ported Appears to use older code and may not be relevant under Smoothie2? Commits on Jun 17, 2016 Implement endstops using new motion control https://github.com/Smoothieware/Smoothieware/commit/c8bac202c5fecdc8d92b23fa98ff34bef274bfb0 Undecided Appears to use older code and may not be relevant under Smoothie2? Commits on Jun 17, 2016 Merge pull request #944 from Zaaphod/edge https://github.com/Smoothieware/Smoothieware/commit/d3bc6d21b8db959d3ab02ee8e90c5df449d04dec Ported
Commits on Jun 17, 2016 Merge pull request #2 from Zaaphod/Update-Config---Change-Default https://github.com/Smoothieware/Smoothieware/commit/417d8684cf0a3450d394d4be4fac7d2237bfcfce Ported
Commits on Jun 17, 2016 Merge pull request #1 from Zaaphod/remove-test-output https://github.com/Smoothieware/Smoothieware/commit/6f3c2ce16cd111787292c1d49bea50bfeb62681d Not Ported Seems to have been removed later Commits on Jun 16, 2016 fix bugs inconveyor so it starts queue off correctly https://github.com/Smoothieware/Smoothieware/commit/a19a873f2ed84d5a68fffba9560df6e2cfff8999 Undecided Appears to use older code and may not be relevant under Smoothie2? Commits on Jun 16, 2016 Go back to stepticker getting data direct from block queue. https://github.com/Smoothieware/Smoothieware/commit/f6542ad9b2130bf22cdfb3677cdda336f09f0901 To Be Ported Commits on Jun 13, 2016 Change default https://github.com/Smoothieware/Smoothieware/commit/b259f517a93c120a836de3c0826ffbe01117fa3e Ported Config changes required Commits on Jun 13, 2016 Add mm_max_arc_error https://github.com/Smoothieware/Smoothieware/commit/1d40d89d75a69d9d4d9e34b033f45540d0f8a212 Ported Final version of change Commits on Jun 13, 2016 Add mm_max_arc_error https://github.com/Smoothieware/Smoothieware/commit/1bd50ecf36a371eae121b68ec7844975e3fe9cbd Not Ported draft version of change Commits on Jun 13, 2016 Add mm_max_arc_error https://github.com/Smoothieware/Smoothieware/commit/8355f592f245f1e9a3d32bfc9c7be329edec066b Not Ported draft version of change Commits on Jun 13, 2016 Add mm_max_arc_error https://github.com/Smoothieware/Smoothieware/commit/973e1ba390cdeb10169909ad6491ae347eb904ad Not Ported draft version of change Commits on Jun 13, 2016 Add mm_max_arc_error https://github.com/Smoothieware/Smoothieware/commit/69b3673c913ead652521ed32b35b64ab3ad9430a Not Ported draft version of change Commits on Jun 13, 2016 Add mm_max_arc_error https://github.com/Smoothieware/Smoothieware/commit/b3952e3a2b33179e81b4570c9a692db4017aa2dc Not Ported draft version of change Commits on Jun 13, 2016 Add mm_max_arc_error https://github.com/Smoothieware/Smoothieware/commit/b3952e3a2b33179e81b4570c9a692db4017aa2dc Not Ported draft version of change Commits on Jun 11, 2016 Merge remote-tracking branch 'upstream/edge' into feature/acceleration-per-tick https://github.com/Smoothieware/Smoothieware/commit/cd1f52a78fd579889117973623c01e9e39243a29 Not Ported not relevant Commits on Jun 11, 2016 update firmware.bin https://github.com/Smoothieware/Smoothieware/commit/8f065109a0bb857b5443e47a7e97f6bce55633db Not Ported not relevant Commits on Jun 11, 2016 Merge pull request #942 from wolfmanjm/upstreamedge https://github.com/Smoothieware/Smoothieware/commit/861f44ab1b32c66fa2788f104f05e7369438b290 Not Ported same as below Commits on Jun 11, 2016 Fix resume so it uses G53 to restore position https://github.com/Smoothieware/Smoothieware/commit/3702f30027eae38faf86903ee6c117517764c313 Not Ported /modules/utils/player/Player.cpp change will need to be reviewed later when player code ported to Smoothie2 Commits on Jun 10, 2016 Update README.creole https://github.com/Smoothieware/Smoothieware/commit/c3f47374fea860a9a644f04bcd2647a627743cd4 Not Ported Not relevant Commits on Jun 10, 2016 Update Robot.cpp https://github.com/Smoothieware/Smoothieware/commit/a0ab0ffd7e62b6cf9fc1dbff615d9b2e90022976 Not Ported Seems to have been removed later Commits on Jun 10, 2016 disable test output https://github.com/Smoothieware/Smoothieware/commit/51e9608a25181482551c9043766fd1f778abba2b Not Ported Code already removed Commits on Jun 10, 2016 Minor change https://github.com/Smoothieware/Smoothieware/commit/4e80c43d3cb776879e135c5fe705c20f69fa71d9 Not Ported Seems to have been removed later Commits on Jun 9, 2016 Update HowToFileIssues.md https://github.com/Smoothieware/Smoothieware/commit/86a8f052f4021e7ffd91c06f427581b85db18db7 Not Ported Not relevant Commits on Jun 9, 2016 Merge pull request #941 from wolfmanjm/upstreamedge https://github.com/Smoothieware/Smoothieware/commit/b73c29f4d14a4fc8b14147b66aca0aeda6db1bc5 Not Ported Not relevant Commits on Jun 9, 2016 how to file issues document https://github.com/Smoothieware/Smoothieware/commit/1113dc7e75d9d9922c32725b36c6dea0f4521160 Not Ported Not relevant Commits on Jun 9, 2016 bug fix, changes with arc error, test output https://github.com/Smoothieware/Smoothieware/commit/4d0f60a9a1aaa34e23e2ba6cc50af574550bd56b Not Ported Seems to have been removed later Commits on Jun 7, 2016 move where the stepticker debug pin is defined https://github.com/Smoothieware/Smoothieware/commit/265bab4b00e1a3f08544a70cd77e264505d7a68c Not Ported Not relevant Commits on Jun 7, 2016 remove the minimum stepper rate as it is no longer used https://github.com/Smoothieware/Smoothieware/commit/64e0bf7bb65efc2348d6ada1eb6c47cbf638af2d Ported

Does this seem a better way to go?

I will need help to determine what needs porting and what does not, I realise that I will make some redundant ports that will later be over-written, but it seems the only way to be safe??

Cheers Douglas

On 17/10/2016, at 9:11 PM, douglas Douglas.Pearless@pearless.co.nz wrote:

OK, it sounds like I have to just get on with it :-)

I have done a folder diff on the current Smoothie v1 src folder and the Smoothie2 src folder and have spent the last few hours analysing the differences.

The challenge is to figure out when there are differences, what should be ported and what should not as I do not know why the Smoothie2 code is necessarily different, for example due to a new feature, or change due to a different platform or represents when the original port was done and needs to be ported.

Here are the code files that are different:

libs/Adc.cpp libs/Adc.h libs/ConfigSources/FirmConfigSource.cpp libs/ConfigSources/FirmConfigSource.h libs/HeapRing.cpp libs/HeapRing.h libs/Hook.h libs/Kernel.cpp libs/Kernel.h libs/Module.cpp libs/Module.h libs/nuts_bolts.h libs/Pin.cpp libs/Pin.h libs/Pwm.cpp libs/RingBuffer.h libs/SlowTicker.cpp libs/SlowTicker.h libs/StepperMotor.cpp libs/StepperMotor.h libs/StepTicker.cpp libs/StepTicker.h libs/utils.cpp libs/utils.h main.cpp makefile modules/communication/GcodeDispatch.cpp modules/communication/SerialConsole.cpp modules/communication/SerialConsole.h modules/communication/utils/Gcode.cpp modules/communication/utils/Gcode.h modules/robot/ActuatorCoordinates.h modules/robot/arm_solutions/BaseSolution.h modules/robot/arm_solutions/CartesianSolution.cpp modules/robot/arm_solutions/CartesianSolution.h modules/robot/arm_solutions/CoreXZSolution.cpp modules/robot/arm_solutions/CoreXZSolution.h modules/robot/arm_solutions/ExperimentalDeltaSolution.cpp modules/robot/arm_solutions/ExperimentalDeltaSolution.h modules/robot/arm_solutions/HBotSolution.cpp modules/robot/arm_solutions/HBotSolution.h modules/robot/arm_solutions/LinearDeltaSolution.cpp modules/robot/arm_solutions/LinearDeltaSolution.h modules/robot/arm_solutions/MorganSCARASolution.cpp modules/robot/arm_solutions/MorganSCARASolution.h modules/robot/arm_solutions/RotaryDeltaSolution.cpp modules/robot/arm_solutions/RotaryDeltaSolution.h modules/robot/arm_solutions/RotatableCartesianSolution.cpp modules/robot/arm_solutions/RotatableCartesianSolution.h modules/robot/Block.cpp modules/robot/Block.h modules/robot/Conveyor.cpp modules/robot/Conveyor.h modules/robot/Planner.cpp modules/robot/Planner.h modules/robot/Robot.cpp modules/robot/Robot.h modules/tools/drillingcycles/Drillingcycles.cpp modules/tools/endstops/Endstops.cpp modules/tools/endstops/Endstops.h modules/tools/laser/Laser.cpp modules/tools/laser/Laser.h modules/tools/switch/Switch.cpp modules/tools/temperaturecontrol/max31855.cpp modules/tools/temperaturecontrol/predefined_thermistors.h modules/tools/temperaturecontrol/TemperatureControl.cpp modules/tools/temperaturecontrol/TemperatureControl.h modules/tools/temperaturecontrol/TemperatureControlPool.cpp modules/tools/temperaturecontrol/TemperatureControlPool.h modules/tools/temperaturecontrol/Thermistor.cpp modules/tools/toolmanager/Tool.h modules/tools/toolmanager/ToolManager.cpp

Is there a suggested approach to try and determine what changes need to be ported?

Cheers Douglas

On 17/10/2016, at 5:20 PM, Jim Morris <notifications@github.com mailto:notifications@github.com> wrote:

it isn;t any single commit it is the whole thing it is all related. it was a major rewrite there was no specific fix. There is no way to cherry pick the things. the whole tree needs to be re ported.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Smoothieware/Smoothie2/issues/28#issuecomment-254109579, or mute the thread https://github.com/notifications/unsubscribe-auth/ADkh-1JMs0HrtVWTfGlO6KdR88Xibr-Uks5q0vehgaJpZM4JtS0B.

arthurwolf commented 7 years ago

I really think you'll have a much easier time using something like meld to go over all the files one by one and just port everything, it's going to be way more productive than going over actual commits.

On Mon, Oct 17, 2016 at 1:40 PM, Douglas Pearless notifications@github.com wrote:

I have spent more hours on this and have started to work forwards from the point Smoothie2 appears to have been last updated to V1:

Commits on Jun 17, 2016 Implement homing for deltas, which only homes in the Z Axis https://github.com/Smoothieware/Smoothieware/commit/ a35788ee13281c7c339e46175177123420e27d6e Not Ported Appears to use older code and may not be relevant under Smoothie2? Commits on Jun 17, 2016 Implement endstops using new motion control https://github.com/Smoothieware/Smoothieware/commit/ c8bac202c5fecdc8d92b23fa98ff34bef274bfb0 Undecided Appears to use older code and may not be relevant under Smoothie2? Commits on Jun 17, 2016 Merge pull request #944 from Zaaphod/edge https://github.com/Smoothieware/Smoothieware/commit/ d3bc6d21b8db959d3ab02ee8e90c5df449d04dec Ported Commits on Jun 17, 2016 Merge pull request #2 from Zaaphod/Update-Config---Change-Default https://github.com/Smoothieware/Smoothieware/commit/ 417d8684cf0a3450d394d4be4fac7d2237bfcfce Ported Commits on Jun 17, 2016 Merge pull request #1 from Zaaphod/remove-test-output https://github.com/Smoothieware/Smoothieware/ commit/6f3c2ce16cd111787292c1d49bea50bfeb62681d Not Ported Seems to have been removed later Commits on Jun 16, 2016 fix bugs inconveyor so it starts queue off correctly https://github.com/Smoothieware/Smoothieware/commit/ a19a873f2ed84d5a68fffba9560df6e2cfff8999 Undecided Appears to use older code and may not be relevant under Smoothie2? Commits on Jun 16, 2016 Go back to stepticker getting data direct from block queue. https://github.com/Smoothieware/Smoothieware/commit/ f6542ad9b2130bf22cdfb3677cdda336f09f0901 To Be Ported Commits on Jun 13, 2016 Change default https://github.com/ Smoothieware/Smoothieware/commit/b259f517a93c120a836de3c0826ffbe01117fa3e Ported Config changes required Commits on Jun 13, 2016 Add mm_max_arc_error https://github.com/ Smoothieware/Smoothieware/commit/1d40d89d75a69d9d4d9e34b033f45540d0f8a212 Ported Final version of change Commits on Jun 13, 2016 Add mm_max_arc_error https://github.com/ Smoothieware/Smoothieware/commit/1bd50ecf36a371eae121b68ec7844975e3fe9cbd Not Ported draft version of change Commits on Jun 13, 2016 Add mm_max_arc_error https://github.com/ Smoothieware/Smoothieware/commit/8355f592f245f1e9a3d32bfc9c7be329edec066b Not Ported draft version of change Commits on Jun 13, 2016 Add mm_max_arc_error https://github.com/ Smoothieware/Smoothieware/commit/973e1ba390cdeb10169909ad6491ae347eb904ad Not Ported draft version of change Commits on Jun 13, 2016 Add mm_max_arc_error https://github.com/ Smoothieware/Smoothieware/commit/69b3673c913ead652521ed32b35b64ab3ad9430a Not Ported draft version of change Commits on Jun 13, 2016 Add mm_max_arc_error https://github.com/ Smoothieware/Smoothieware/commit/b3952e3a2b33179e81b4570c9a692db4017aa2dc Not Ported draft version of change Commits on Jun 13, 2016 Add mm_max_arc_error https://github.com/ Smoothieware/Smoothieware/commit/b3952e3a2b33179e81b4570c9a692db4017aa2dc Not Ported draft version of change Commits on Jun 11, 2016 Merge remote-tracking branch 'upstream/edge' into feature/acceleration-per-tick https://github.com/ Smoothieware/Smoothieware/commit/cd1f52a78fd579889117973623c01e9e39243a29 Not Ported not relevant Commits on Jun 11, 2016 update firmware.bin https://github.com/ Smoothieware/Smoothieware/commit/8f065109a0bb857b5443e47a7e97f6bce55633db Not Ported not relevant Commits on Jun 11, 2016 Merge pull request #942 from wolfmanjm/upstreamedge https://github.com/Smoothieware/Smoothieware/ commit/861f44ab1b32c66fa2788f104f05e7369438b290 Not Ported same as below Commits on Jun 11, 2016 Fix resume so it uses G53 to restore position https://github.com/Smoothieware/Smoothieware/commit/ 3702f30027eae38faf86903ee6c117517764c313 Not Ported /modules/utils/player/Player.cpp change will need to be reviewed later when player code ported to Smoothie2 Commits on Jun 10, 2016 Update README.creole https://github.com/ Smoothieware/Smoothieware/commit/c3f47374fea860a9a644f04bcd2647a627743cd4 Not Ported Not relevant Commits on Jun 10, 2016 Update Robot.cpp https://github.com/ Smoothieware/Smoothieware/commit/a0ab0ffd7e62b6cf9fc1dbff615d9b2e90022976 Not Ported Seems to have been removed later Commits on Jun 10, 2016 disable test output https://github.com/ Smoothieware/Smoothieware/commit/51e9608a25181482551c9043766fd1f778abba2b Not Ported Code already removed Commits on Jun 10, 2016 Minor change https://github.com/ Smoothieware/Smoothieware/commit/4e80c43d3cb776879e135c5fe705c20f69fa71d9 Not Ported Seems to have been removed later Commits on Jun 9, 2016 Update HowToFileIssues.md https://github.com/ Smoothieware/Smoothieware/commit/86a8f052f4021e7ffd91c06f427581b85db18db7 Not Ported Not relevant Commits on Jun 9, 2016 Merge pull request #941 from wolfmanjm/upstreamedge https://github.com/Smoothieware/Smoothieware/commit/ b73c29f4d14a4fc8b14147b66aca0aeda6db1bc5 Not Ported Not relevant Commits on Jun 9, 2016 how to file issues document https://github.com/ Smoothieware/Smoothieware/commit/1113dc7e75d9d9922c32725b36c6dea0f4521160 Not Ported Not relevant Commits on Jun 9, 2016 bug fix, changes with arc error, test output https://github.com/Smoothieware/Smoothieware/commit/ 4d0f60a9a1aaa34e23e2ba6cc50af574550bd56b Not Ported Seems to have been removed later Commits on Jun 7, 2016 move where the stepticker debug pin is defined https://github.com/Smoothieware/Smoothieware/commit/ 265bab4b00e1a3f08544a70cd77e264505d7a68c Not Ported Not relevant Commits on Jun 7, 2016 remove the minimum stepper rate as it is no longer used https://github.com/Smoothieware/Smoothieware/commit/ 64e0bf7bb65efc2348d6ada1eb6c47cbf638af2d Ported

Does this seem a better way to go?

I will need help to determine what needs porting and what does not, I realise that I will make some redundant ports that will later be over-written, but it seems the only way to be safe??

Cheers Douglas

On 17/10/2016, at 9:11 PM, douglas Douglas.Pearless@pearless.co.nz wrote:

OK, it sounds like I have to just get on with it :-)

I have done a folder diff on the current Smoothie v1 src folder and the Smoothie2 src folder and have spent the last few hours analysing the differences.

The challenge is to figure out when there are differences, what should be ported and what should not as I do not know why the Smoothie2 code is necessarily different, for example due to a new feature, or change due to a different platform or represents when the original port was done and needs to be ported.

Here are the code files that are different:

libs/Adc.cpp libs/Adc.h libs/ConfigSources/FirmConfigSource.cpp libs/ConfigSources/FirmConfigSource.h libs/HeapRing.cpp libs/HeapRing.h libs/Hook.h libs/Kernel.cpp libs/Kernel.h libs/Module.cpp libs/Module.h libs/nuts_bolts.h libs/Pin.cpp libs/Pin.h libs/Pwm.cpp libs/RingBuffer.h libs/SlowTicker.cpp libs/SlowTicker.h libs/StepperMotor.cpp libs/StepperMotor.h libs/StepTicker.cpp libs/StepTicker.h libs/utils.cpp libs/utils.h main.cpp makefile modules/communication/GcodeDispatch.cpp modules/communication/SerialConsole.cpp modules/communication/SerialConsole.h modules/communication/utils/Gcode.cpp modules/communication/utils/Gcode.h modules/robot/ActuatorCoordinates.h modules/robot/arm_solutions/BaseSolution.h modules/robot/arm_solutions/CartesianSolution.cpp modules/robot/arm_solutions/CartesianSolution.h modules/robot/arm_solutions/CoreXZSolution.cpp modules/robot/arm_solutions/CoreXZSolution.h modules/robot/arm_solutions/ExperimentalDeltaSolution.cpp modules/robot/arm_solutions/ExperimentalDeltaSolution.h modules/robot/arm_solutions/HBotSolution.cpp modules/robot/arm_solutions/HBotSolution.h modules/robot/arm_solutions/LinearDeltaSolution.cpp modules/robot/arm_solutions/LinearDeltaSolution.h modules/robot/arm_solutions/MorganSCARASolution.cpp modules/robot/arm_solutions/MorganSCARASolution.h modules/robot/arm_solutions/RotaryDeltaSolution.cpp modules/robot/arm_solutions/RotaryDeltaSolution.h modules/robot/arm_solutions/RotatableCartesianSolution.cpp modules/robot/arm_solutions/RotatableCartesianSolution.h modules/robot/Block.cpp modules/robot/Block.h modules/robot/Conveyor.cpp modules/robot/Conveyor.h modules/robot/Planner.cpp modules/robot/Planner.h modules/robot/Robot.cpp modules/robot/Robot.h modules/tools/drillingcycles/Drillingcycles.cpp modules/tools/endstops/Endstops.cpp modules/tools/endstops/Endstops.h modules/tools/laser/Laser.cpp modules/tools/laser/Laser.h modules/tools/switch/Switch.cpp modules/tools/temperaturecontrol/max31855.cpp modules/tools/temperaturecontrol/predefined_thermistors.h modules/tools/temperaturecontrol/TemperatureControl.cpp modules/tools/temperaturecontrol/TemperatureControl.h modules/tools/temperaturecontrol/TemperatureControlPool.cpp modules/tools/temperaturecontrol/TemperatureControlPool.h modules/tools/temperaturecontrol/Thermistor.cpp modules/tools/toolmanager/Tool.h modules/tools/toolmanager/ToolManager.cpp

Is there a suggested approach to try and determine what changes need to be ported?

Cheers Douglas

On 17/10/2016, at 5:20 PM, Jim Morris <notifications@github.com mailto:notifications@github.com> wrote:

it isn;t any single commit it is the whole thing it is all related. it was a major rewrite there was no specific fix. There is no way to cherry pick the things. the whole tree needs to be re ported.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/ Smoothieware/Smoothie2/issues/28#issuecomment-254109579, or mute the thread https://github.com/notifications/unsubscribe-auth/ADkh- 1JMs0HrtVWTfGlO6KdR88Xibr-Uks5q0vehgaJpZM4JtS0B.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Smoothieware/Smoothie2/issues/28#issuecomment-254184191, or mute the thread https://github.com/notifications/unsubscribe-auth/AAGpFR1LBPEg8fBKaHyulOZXoFAaC13xks5q016pgaJpZM4JtS0B .

Courage et bonne humeur.

DouglasPearless commented 7 years ago

OK,

I have had a look at the meld tool, very nice.

Started to compare the ‘src’ folders from my current Smoothie2 and Smoothie1 (current), looks to indeed be quite a few nights work.

Note: I won’t be looking at the Web feature. I won’t also consider the USB and SD Card features as the base functions for these from Micromint's update is not due to the end of the month / next month.

Cheers Douglas

On 18/10/2016, at 1:20 AM, Arthur Wolf notifications@github.com wrote:

I really think you'll have a much easier time using something like meld to go over all the files one by one and just port everything, it's going to be way more productive than going over actual commits.

On Mon, Oct 17, 2016 at 1:40 PM, Douglas Pearless notifications@github.com wrote:

I have spent more hours on this and have started to work forwards from the point Smoothie2 appears to have been last updated to V1:

Commits on Jun 17, 2016 Implement homing for deltas, which only homes in the Z Axis https://github.com/Smoothieware/Smoothieware/commit/ a35788ee13281c7c339e46175177123420e27d6e Not Ported Appears to use older code and may not be relevant under Smoothie2? Commits on Jun 17, 2016 Implement endstops using new motion control https://github.com/Smoothieware/Smoothieware/commit/ c8bac202c5fecdc8d92b23fa98ff34bef274bfb0 Undecided Appears to use older code and may not be relevant under Smoothie2? Commits on Jun 17, 2016 Merge pull request #944 from Zaaphod/edge https://github.com/Smoothieware/Smoothieware/commit/ d3bc6d21b8db959d3ab02ee8e90c5df449d04dec Ported Commits on Jun 17, 2016 Merge pull request #2 from Zaaphod/Update-Config---Change-Default https://github.com/Smoothieware/Smoothieware/commit/ 417d8684cf0a3450d394d4be4fac7d2237bfcfce Ported Commits on Jun 17, 2016 Merge pull request #1 from Zaaphod/remove-test-output https://github.com/Smoothieware/Smoothieware/ commit/6f3c2ce16cd111787292c1d49bea50bfeb62681d Not Ported Seems to have been removed later Commits on Jun 16, 2016 fix bugs inconveyor so it starts queue off correctly https://github.com/Smoothieware/Smoothieware/commit/ a19a873f2ed84d5a68fffba9560df6e2cfff8999 Undecided Appears to use older code and may not be relevant under Smoothie2? Commits on Jun 16, 2016 Go back to stepticker getting data direct from block queue. https://github.com/Smoothieware/Smoothieware/commit/ f6542ad9b2130bf22cdfb3677cdda336f09f0901 To Be Ported Commits on Jun 13, 2016 Change default https://github.com/ Smoothieware/Smoothieware/commit/b259f517a93c120a836de3c0826ffbe01117fa3e Ported Config changes required Commits on Jun 13, 2016 Add mm_max_arc_error https://github.com/ Smoothieware/Smoothieware/commit/1d40d89d75a69d9d4d9e34b033f45540d0f8a212 Ported Final version of change Commits on Jun 13, 2016 Add mm_max_arc_error https://github.com/ Smoothieware/Smoothieware/commit/1bd50ecf36a371eae121b68ec7844975e3fe9cbd Not Ported draft version of change Commits on Jun 13, 2016 Add mm_max_arc_error https://github.com/ Smoothieware/Smoothieware/commit/8355f592f245f1e9a3d32bfc9c7be329edec066b Not Ported draft version of change Commits on Jun 13, 2016 Add mm_max_arc_error https://github.com/ Smoothieware/Smoothieware/commit/973e1ba390cdeb10169909ad6491ae347eb904ad Not Ported draft version of change Commits on Jun 13, 2016 Add mm_max_arc_error https://github.com/ Smoothieware/Smoothieware/commit/69b3673c913ead652521ed32b35b64ab3ad9430a Not Ported draft version of change Commits on Jun 13, 2016 Add mm_max_arc_error https://github.com/ Smoothieware/Smoothieware/commit/b3952e3a2b33179e81b4570c9a692db4017aa2dc Not Ported draft version of change Commits on Jun 13, 2016 Add mm_max_arc_error https://github.com/ Smoothieware/Smoothieware/commit/b3952e3a2b33179e81b4570c9a692db4017aa2dc Not Ported draft version of change Commits on Jun 11, 2016 Merge remote-tracking branch 'upstream/edge' into feature/acceleration-per-tick https://github.com/ Smoothieware/Smoothieware/commit/cd1f52a78fd579889117973623c01e9e39243a29 Not Ported not relevant Commits on Jun 11, 2016 update firmware.bin https://github.com/ Smoothieware/Smoothieware/commit/8f065109a0bb857b5443e47a7e97f6bce55633db Not Ported not relevant Commits on Jun 11, 2016 Merge pull request #942 from wolfmanjm/upstreamedge https://github.com/Smoothieware/Smoothieware/ commit/861f44ab1b32c66fa2788f104f05e7369438b290 Not Ported same as below Commits on Jun 11, 2016 Fix resume so it uses G53 to restore position https://github.com/Smoothieware/Smoothieware/commit/ 3702f30027eae38faf86903ee6c117517764c313 Not Ported /modules/utils/player/Player.cpp change will need to be reviewed later when player code ported to Smoothie2 Commits on Jun 10, 2016 Update README.creole https://github.com/ Smoothieware/Smoothieware/commit/c3f47374fea860a9a644f04bcd2647a627743cd4 Not Ported Not relevant Commits on Jun 10, 2016 Update Robot.cpp https://github.com/ Smoothieware/Smoothieware/commit/a0ab0ffd7e62b6cf9fc1dbff615d9b2e90022976 Not Ported Seems to have been removed later Commits on Jun 10, 2016 disable test output https://github.com/ Smoothieware/Smoothieware/commit/51e9608a25181482551c9043766fd1f778abba2b Not Ported Code already removed Commits on Jun 10, 2016 Minor change https://github.com/ Smoothieware/Smoothieware/commit/4e80c43d3cb776879e135c5fe705c20f69fa71d9 Not Ported Seems to have been removed later Commits on Jun 9, 2016 Update HowToFileIssues.md https://github.com/ Smoothieware/Smoothieware/commit/86a8f052f4021e7ffd91c06f427581b85db18db7 Not Ported Not relevant Commits on Jun 9, 2016 Merge pull request #941 from wolfmanjm/upstreamedge https://github.com/Smoothieware/Smoothieware/commit/ b73c29f4d14a4fc8b14147b66aca0aeda6db1bc5 Not Ported Not relevant Commits on Jun 9, 2016 how to file issues document https://github.com/ Smoothieware/Smoothieware/commit/1113dc7e75d9d9922c32725b36c6dea0f4521160 Not Ported Not relevant Commits on Jun 9, 2016 bug fix, changes with arc error, test output https://github.com/Smoothieware/Smoothieware/commit/ 4d0f60a9a1aaa34e23e2ba6cc50af574550bd56b Not Ported Seems to have been removed later Commits on Jun 7, 2016 move where the stepticker debug pin is defined https://github.com/Smoothieware/Smoothieware/commit/ 265bab4b00e1a3f08544a70cd77e264505d7a68c Not Ported Not relevant Commits on Jun 7, 2016 remove the minimum stepper rate as it is no longer used https://github.com/Smoothieware/Smoothieware/commit/ 64e0bf7bb65efc2348d6ada1eb6c47cbf638af2d Ported

Does this seem a better way to go?

I will need help to determine what needs porting and what does not, I realise that I will make some redundant ports that will later be over-written, but it seems the only way to be safe??

Cheers Douglas

On 17/10/2016, at 9:11 PM, douglas Douglas.Pearless@pearless.co.nz wrote:

OK, it sounds like I have to just get on with it :-)

I have done a folder diff on the current Smoothie v1 src folder and the Smoothie2 src folder and have spent the last few hours analysing the differences.

The challenge is to figure out when there are differences, what should be ported and what should not as I do not know why the Smoothie2 code is necessarily different, for example due to a new feature, or change due to a different platform or represents when the original port was done and needs to be ported.

Here are the code files that are different:

libs/Adc.cpp libs/Adc.h libs/ConfigSources/FirmConfigSource.cpp libs/ConfigSources/FirmConfigSource.h libs/HeapRing.cpp libs/HeapRing.h libs/Hook.h libs/Kernel.cpp libs/Kernel.h libs/Module.cpp libs/Module.h libs/nuts_bolts.h libs/Pin.cpp libs/Pin.h libs/Pwm.cpp libs/RingBuffer.h libs/SlowTicker.cpp libs/SlowTicker.h libs/StepperMotor.cpp libs/StepperMotor.h libs/StepTicker.cpp libs/StepTicker.h libs/utils.cpp libs/utils.h main.cpp makefile modules/communication/GcodeDispatch.cpp modules/communication/SerialConsole.cpp modules/communication/SerialConsole.h modules/communication/utils/Gcode.cpp modules/communication/utils/Gcode.h modules/robot/ActuatorCoordinates.h modules/robot/arm_solutions/BaseSolution.h modules/robot/arm_solutions/CartesianSolution.cpp modules/robot/arm_solutions/CartesianSolution.h modules/robot/arm_solutions/CoreXZSolution.cpp modules/robot/arm_solutions/CoreXZSolution.h modules/robot/arm_solutions/ExperimentalDeltaSolution.cpp modules/robot/arm_solutions/ExperimentalDeltaSolution.h modules/robot/arm_solutions/HBotSolution.cpp modules/robot/arm_solutions/HBotSolution.h modules/robot/arm_solutions/LinearDeltaSolution.cpp modules/robot/arm_solutions/LinearDeltaSolution.h modules/robot/arm_solutions/MorganSCARASolution.cpp modules/robot/arm_solutions/MorganSCARASolution.h modules/robot/arm_solutions/RotaryDeltaSolution.cpp modules/robot/arm_solutions/RotaryDeltaSolution.h modules/robot/arm_solutions/RotatableCartesianSolution.cpp modules/robot/arm_solutions/RotatableCartesianSolution.h modules/robot/Block.cpp modules/robot/Block.h modules/robot/Conveyor.cpp modules/robot/Conveyor.h modules/robot/Planner.cpp modules/robot/Planner.h modules/robot/Robot.cpp modules/robot/Robot.h modules/tools/drillingcycles/Drillingcycles.cpp modules/tools/endstops/Endstops.cpp modules/tools/endstops/Endstops.h modules/tools/laser/Laser.cpp modules/tools/laser/Laser.h modules/tools/switch/Switch.cpp modules/tools/temperaturecontrol/max31855.cpp modules/tools/temperaturecontrol/predefined_thermistors.h modules/tools/temperaturecontrol/TemperatureControl.cpp modules/tools/temperaturecontrol/TemperatureControl.h modules/tools/temperaturecontrol/TemperatureControlPool.cpp modules/tools/temperaturecontrol/TemperatureControlPool.h modules/tools/temperaturecontrol/Thermistor.cpp modules/tools/toolmanager/Tool.h modules/tools/toolmanager/ToolManager.cpp

Is there a suggested approach to try and determine what changes need to be ported?

Cheers Douglas

On 17/10/2016, at 5:20 PM, Jim Morris <notifications@github.com mailto:notifications@github.com> wrote:

it isn;t any single commit it is the whole thing it is all related. it was a major rewrite there was no specific fix. There is no way to cherry pick the things. the whole tree needs to be re ported.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/ Smoothieware/Smoothie2/issues/28#issuecomment-254109579, or mute the thread https://github.com/notifications/unsubscribe-auth/ADkh- 1JMs0HrtVWTfGlO6KdR88Xibr-Uks5q0vehgaJpZM4JtS0B.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Smoothieware/Smoothie2/issues/28#issuecomment-254184191, or mute the thread https://github.com/notifications/unsubscribe-auth/AAGpFR1LBPEg8fBKaHyulOZXoFAaC13xks5q016pgaJpZM4JtS0B .

Courage et bonne humeur. — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Smoothieware/Smoothie2/issues/28#issuecomment-254191846, or mute the thread https://github.com/notifications/unsubscribe-auth/ADkh-5cTw4wT-_DjIV8LQnjwqOoTUe0Kks5q02gZgaJpZM4JtS0B.

DouglasPearless commented 7 years ago

Once I have finished porting Extruder and Zprobe I will have completed most of the code that does not use SDCard or USB, probably by Monday. The rest needs those libraries to be done.

Then I can look at the endstop problem again and moving step generation to the M0 core.

Sent from my iPhone

On 17/10/2016, at 10:23 PM, Arthur Wolf notifications@github.com wrote:

Hey Douglas.

Pretty much all changes need to be changed. I did the process a few months back because Smoothie2 was about a year behind Smoothie1 and it took about two days ( I think ). It's a lot of work but it's not very difficult, you just need to make sure you don't remove things that are in Smoothie2 specifically to get the code to run on the LPC4330, which is not that much code really.

On Mon, Oct 17, 2016 at 10:12 AM, Douglas Pearless <notifications@github.com

wrote:

OK, it sounds like I have to just get on with it :-)

I have done a folder diff on the current Smoothie v1 src folder and the Smoothie2 src folder and have spent the last few hours analysing the differences.

The challenge is to figure out when there are differences, what should be ported and what should not as I do not know why the Smoothie2 code is necessarily different, for example due to a new feature, or change due to a different platform or represents when the original port was done and needs to be ported.

Here are the code files that are different:

libs/Adc.cpp libs/Adc.h libs/ConfigSources/FirmConfigSource.cpp libs/ConfigSources/FirmConfigSource.h libs/HeapRing.cpp libs/HeapRing.h libs/Hook.h libs/Kernel.cpp libs/Kernel.h libs/Module.cpp libs/Module.h libs/nuts_bolts.h libs/Pin.cpp libs/Pin.h libs/Pwm.cpp libs/RingBuffer.h libs/SlowTicker.cpp libs/SlowTicker.h libs/StepperMotor.cpp libs/StepperMotor.h libs/StepTicker.cpp libs/StepTicker.h libs/utils.cpp libs/utils.h main.cpp makefile modules/communication/GcodeDispatch.cpp modules/communication/SerialConsole.cpp modules/communication/SerialConsole.h modules/communication/utils/Gcode.cpp modules/communication/utils/Gcode.h modules/robot/ActuatorCoordinates.h modules/robot/arm_solutions/BaseSolution.h modules/robot/arm_solutions/CartesianSolution.cpp modules/robot/arm_solutions/CartesianSolution.h modules/robot/arm_solutions/CoreXZSolution.cpp modules/robot/arm_solutions/CoreXZSolution.h modules/robot/arm_solutions/ExperimentalDeltaSolution.cpp modules/robot/arm_solutions/ExperimentalDeltaSolution.h modules/robot/arm_solutions/HBotSolution.cpp modules/robot/arm_solutions/HBotSolution.h modules/robot/arm_solutions/LinearDeltaSolution.cpp modules/robot/arm_solutions/LinearDeltaSolution.h modules/robot/arm_solutions/MorganSCARASolution.cpp modules/robot/arm_solutions/MorganSCARASolution.h modules/robot/arm_solutions/RotaryDeltaSolution.cpp modules/robot/arm_solutions/RotaryDeltaSolution.h modules/robot/arm_solutions/RotatableCartesianSolution.cpp modules/robot/arm_solutions/RotatableCartesianSolution.h modules/robot/Block.cpp modules/robot/Block.h modules/robot/Conveyor.cpp modules/robot/Conveyor.h modules/robot/Planner.cpp modules/robot/Planner.h modules/robot/Robot.cpp modules/robot/Robot.h modules/tools/drillingcycles/Drillingcycles.cpp modules/tools/endstops/Endstops.cpp modules/tools/endstops/Endstops.h modules/tools/laser/Laser.cpp modules/tools/laser/Laser.h modules/tools/switch/Switch.cpp modules/tools/temperaturecontrol/max31855.cpp modules/tools/temperaturecontrol/predefined_thermistors.h modules/tools/temperaturecontrol/TemperatureControl.cpp modules/tools/temperaturecontrol/TemperatureControl.h modules/tools/temperaturecontrol/TemperatureControlPool.cpp modules/tools/temperaturecontrol/TemperatureControlPool.h modules/tools/temperaturecontrol/Thermistor.cpp modules/tools/toolmanager/Tool.h modules/tools/toolmanager/ToolManager.cpp

Is there a suggested approach to try and determine what changes need to be ported?

Cheers Douglas

On 17/10/2016, at 5:20 PM, Jim Morris notifications@github.com wrote:

it isn;t any single commit it is the whole thing it is all related. it was a major rewrite there was no specific fix. There is no way to cherry pick the things. the whole tree needs to be re ported.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/ Smoothieware/Smoothie2/issues/28#issuecomment-254109579, or mute the thread https://github.com/notifications/unsubscribe-auth/ADkh- 1JMs0HrtVWTfGlO6KdR88Xibr-Uks5q0vehgaJpZM4JtS0B.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Smoothieware/Smoothie2/issues/28#issuecomment-254141079, or mute the thread https://github.com/notifications/unsubscribe-auth/AAGpFfzohWLlUtP-ox2M3FSuZ4El5Ni8ks5q0y3lgaJpZM4JtS0B .

Courage et bonne humeur. — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

arthurwolf commented 7 years ago

Nice work.

Moving the step generation code to the M0 is huge work, it's way more complicated than it seems. I've played with a few ideas of how to do that, but @wolfmanjm has reasons why it wouldn't for for each. This is hard stuff.

Cheers.

On Wed, Oct 19, 2016 at 1:17 PM, Douglas Pearless notifications@github.com wrote:

Once I have finished porting Extruder and Zprobe I will have completed most of the code that does not use SDCard or USB, probably by Monday. The rest needs those libraries to be done.

Then I can look at the endstop problem again and moving step generation to the M0 core.

Sent from my iPhone

On 17/10/2016, at 10:23 PM, Arthur Wolf notifications@github.com wrote:

Hey Douglas.

Pretty much all changes need to be changed. I did the process a few months back because Smoothie2 was about a year behind Smoothie1 and it took about two days ( I think ). It's a lot of work but it's not very difficult, you just need to make sure you don't remove things that are in Smoothie2 specifically to get the code to run on the LPC4330, which is not that much code really.

On Mon, Oct 17, 2016 at 10:12 AM, Douglas Pearless < notifications@github.com

wrote:

OK, it sounds like I have to just get on with it :-)

I have done a folder diff on the current Smoothie v1 src folder and the Smoothie2 src folder and have spent the last few hours analysing the differences.

The challenge is to figure out when there are differences, what should be ported and what should not as I do not know why the Smoothie2 code is necessarily different, for example due to a new feature, or change due to a different platform or represents when the original port was done and needs to be ported.

Here are the code files that are different:

libs/Adc.cpp libs/Adc.h libs/ConfigSources/FirmConfigSource.cpp libs/ConfigSources/FirmConfigSource.h libs/HeapRing.cpp libs/HeapRing.h libs/Hook.h libs/Kernel.cpp libs/Kernel.h libs/Module.cpp libs/Module.h libs/nuts_bolts.h libs/Pin.cpp libs/Pin.h libs/Pwm.cpp libs/RingBuffer.h libs/SlowTicker.cpp libs/SlowTicker.h libs/StepperMotor.cpp libs/StepperMotor.h libs/StepTicker.cpp libs/StepTicker.h libs/utils.cpp libs/utils.h main.cpp makefile modules/communication/GcodeDispatch.cpp modules/communication/SerialConsole.cpp modules/communication/SerialConsole.h modules/communication/utils/Gcode.cpp modules/communication/utils/Gcode.h modules/robot/ActuatorCoordinates.h modules/robot/arm_solutions/BaseSolution.h modules/robot/arm_solutions/CartesianSolution.cpp modules/robot/arm_solutions/CartesianSolution.h modules/robot/arm_solutions/CoreXZSolution.cpp modules/robot/arm_solutions/CoreXZSolution.h modules/robot/arm_solutions/ExperimentalDeltaSolution.cpp modules/robot/arm_solutions/ExperimentalDeltaSolution.h modules/robot/arm_solutions/HBotSolution.cpp modules/robot/arm_solutions/HBotSolution.h modules/robot/arm_solutions/LinearDeltaSolution.cpp modules/robot/arm_solutions/LinearDeltaSolution.h modules/robot/arm_solutions/MorganSCARASolution.cpp modules/robot/arm_solutions/MorganSCARASolution.h modules/robot/arm_solutions/RotaryDeltaSolution.cpp modules/robot/arm_solutions/RotaryDeltaSolution.h modules/robot/arm_solutions/RotatableCartesianSolution.cpp modules/robot/arm_solutions/RotatableCartesianSolution.h modules/robot/Block.cpp modules/robot/Block.h modules/robot/Conveyor.cpp modules/robot/Conveyor.h modules/robot/Planner.cpp modules/robot/Planner.h modules/robot/Robot.cpp modules/robot/Robot.h modules/tools/drillingcycles/Drillingcycles.cpp modules/tools/endstops/Endstops.cpp modules/tools/endstops/Endstops.h modules/tools/laser/Laser.cpp modules/tools/laser/Laser.h modules/tools/switch/Switch.cpp modules/tools/temperaturecontrol/max31855.cpp modules/tools/temperaturecontrol/predefined_thermistors.h modules/tools/temperaturecontrol/TemperatureControl.cpp modules/tools/temperaturecontrol/TemperatureControl.h modules/tools/temperaturecontrol/TemperatureControlPool.cpp modules/tools/temperaturecontrol/TemperatureControlPool.h modules/tools/temperaturecontrol/Thermistor.cpp modules/tools/toolmanager/Tool.h modules/tools/toolmanager/ToolManager.cpp

Is there a suggested approach to try and determine what changes need to be ported?

Cheers Douglas

On 17/10/2016, at 5:20 PM, Jim Morris notifications@github.com wrote:

it isn;t any single commit it is the whole thing it is all related. it was a major rewrite there was no specific fix. There is no way to cherry pick the things. the whole tree needs to be re ported.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/ Smoothieware/Smoothie2/issues/28#issuecomment-254109579, or mute the thread https://github.com/notifications/unsubscribe-auth/ADkh- 1JMs0HrtVWTfGlO6KdR88Xibr-Uks5q0vehgaJpZM4JtS0B.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Smoothieware/Smoothie2/issues/ 28#issuecomment-254141079, or mute the thread https://github.com/notifications/unsubscribe-auth/AAGpFfzohWLlUtP- ox2M3FSuZ4El5Ni8ks5q0y3lgaJpZM4JtS0B .

Courage et bonne humeur. — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Smoothieware/Smoothie2/issues/28#issuecomment-254784117, or mute the thread https://github.com/notifications/unsubscribe-auth/AAGpFdscyzBD6na77Ms2jwMCLvtnSH-Aks5q1fxKgaJpZM4JtS0B .

Courage et bonne humeur.

DouglasPearless commented 7 years ago

In working my way through the extruder code I have noticed there are no longer and set_last_milestones, set_acceleration & get_acceleration for the stepper don’t seem to be used anymore, is this correct?

in Robot.cpp there are changes to the way that the stepper motors that control the actual movement are handled:

SmoothieV1: void Robot::reset_actuator_position(const ActuatorCoordinates &ac) { for (size_t i = X_AXIS; i <= Z_AXIS; i++) actuators[i]->change_last_milestone(ac[i]);

// now correct axis positions then recorrect actuator to account for rounding
reset_position_from_current_actuator_position();

}

SmoothieV2: void Robot::reset_actuator_position(const ActuatorCoordinates &ac) { for (size_t i = 0; i < actuators.size(); i++) actuators[i]->change_last_milestone(ac[i]);

// now correct axis positions then recorrect actuator to account for rounding
reset_position_from_current_actuator_position();

}

Where we have:

define X_AXIS 0

define Y_AXIS 1

define Z_AXIS 2

define E_AXIS 3

and therefore (at least in Smoothie1) this also represents the stepper motors in actuators[].

So is this still correct for the Extruders to be included in the new reset_actuator_position or should it revert to the old code as there is no marker that I have noticed that defines how many motors in the actuators[] are required for the arm_solutions as with with no extruders implemented in SmoothieV2, this works, but as soon as I add extruders to actuators[], then this code may have unintended consequences?

Cheers Douglas

On 20/10/2016, at 9:38 AM, Arthur Wolf notifications@github.com wrote:

Nice work.

Moving the step generation code to the M0 is huge work, it's way more complicated than it seems. I've played with a few ideas of how to do that, but @wolfmanjm has reasons why it wouldn't for for each. This is hard stuff.

Cheers.

On Wed, Oct 19, 2016 at 1:17 PM, Douglas Pearless notifications@github.com wrote:

Once I have finished porting Extruder and Zprobe I will have completed most of the code that does not use SDCard or USB, probably by Monday. The rest needs those libraries to be done.

Then I can look at the endstop problem again and moving step generation to the M0 core.

Sent from my iPhone

On 17/10/2016, at 10:23 PM, Arthur Wolf notifications@github.com wrote:

Hey Douglas.

Pretty much all changes need to be changed. I did the process a few months back because Smoothie2 was about a year behind Smoothie1 and it took about two days ( I think ). It's a lot of work but it's not very difficult, you just need to make sure you don't remove things that are in Smoothie2 specifically to get the code to run on the LPC4330, which is not that much code really.

On Mon, Oct 17, 2016 at 10:12 AM, Douglas Pearless < notifications@github.com

wrote:

OK, it sounds like I have to just get on with it :-)

I have done a folder diff on the current Smoothie v1 src folder and the Smoothie2 src folder and have spent the last few hours analysing the differences.

The challenge is to figure out when there are differences, what should be ported and what should not as I do not know why the Smoothie2 code is necessarily different, for example due to a new feature, or change due to a different platform or represents when the original port was done and needs to be ported.

Here are the code files that are different:

libs/Adc.cpp libs/Adc.h libs/ConfigSources/FirmConfigSource.cpp libs/ConfigSources/FirmConfigSource.h libs/HeapRing.cpp libs/HeapRing.h libs/Hook.h libs/Kernel.cpp libs/Kernel.h libs/Module.cpp libs/Module.h libs/nuts_bolts.h libs/Pin.cpp libs/Pin.h libs/Pwm.cpp libs/RingBuffer.h libs/SlowTicker.cpp libs/SlowTicker.h libs/StepperMotor.cpp libs/StepperMotor.h libs/StepTicker.cpp libs/StepTicker.h libs/utils.cpp libs/utils.h main.cpp makefile modules/communication/GcodeDispatch.cpp modules/communication/SerialConsole.cpp modules/communication/SerialConsole.h modules/communication/utils/Gcode.cpp modules/communication/utils/Gcode.h modules/robot/ActuatorCoordinates.h modules/robot/arm_solutions/BaseSolution.h modules/robot/arm_solutions/CartesianSolution.cpp modules/robot/arm_solutions/CartesianSolution.h modules/robot/arm_solutions/CoreXZSolution.cpp modules/robot/arm_solutions/CoreXZSolution.h modules/robot/arm_solutions/ExperimentalDeltaSolution.cpp modules/robot/arm_solutions/ExperimentalDeltaSolution.h modules/robot/arm_solutions/HBotSolution.cpp modules/robot/arm_solutions/HBotSolution.h modules/robot/arm_solutions/LinearDeltaSolution.cpp modules/robot/arm_solutions/LinearDeltaSolution.h modules/robot/arm_solutions/MorganSCARASolution.cpp modules/robot/arm_solutions/MorganSCARASolution.h modules/robot/arm_solutions/RotaryDeltaSolution.cpp modules/robot/arm_solutions/RotaryDeltaSolution.h modules/robot/arm_solutions/RotatableCartesianSolution.cpp modules/robot/arm_solutions/RotatableCartesianSolution.h modules/robot/Block.cpp modules/robot/Block.h modules/robot/Conveyor.cpp modules/robot/Conveyor.h modules/robot/Planner.cpp modules/robot/Planner.h modules/robot/Robot.cpp modules/robot/Robot.h modules/tools/drillingcycles/Drillingcycles.cpp modules/tools/endstops/Endstops.cpp modules/tools/endstops/Endstops.h modules/tools/laser/Laser.cpp modules/tools/laser/Laser.h modules/tools/switch/Switch.cpp modules/tools/temperaturecontrol/max31855.cpp modules/tools/temperaturecontrol/predefined_thermistors.h modules/tools/temperaturecontrol/TemperatureControl.cpp modules/tools/temperaturecontrol/TemperatureControl.h modules/tools/temperaturecontrol/TemperatureControlPool.cpp modules/tools/temperaturecontrol/TemperatureControlPool.h modules/tools/temperaturecontrol/Thermistor.cpp modules/tools/toolmanager/Tool.h modules/tools/toolmanager/ToolManager.cpp

Is there a suggested approach to try and determine what changes need to be ported?

Cheers Douglas

On 17/10/2016, at 5:20 PM, Jim Morris notifications@github.com wrote:

it isn;t any single commit it is the whole thing it is all related. it was a major rewrite there was no specific fix. There is no way to cherry pick the things. the whole tree needs to be re ported.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/ Smoothieware/Smoothie2/issues/28#issuecomment-254109579, or mute the thread https://github.com/notifications/unsubscribe-auth/ADkh- 1JMs0HrtVWTfGlO6KdR88Xibr-Uks5q0vehgaJpZM4JtS0B.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Smoothieware/Smoothie2/issues/ 28#issuecomment-254141079, or mute the thread https://github.com/notifications/unsubscribe-auth/AAGpFfzohWLlUtP- ox2M3FSuZ4El5Ni8ks5q0y3lgaJpZM4JtS0B .

Courage et bonne humeur. — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Smoothieware/Smoothie2/issues/28#issuecomment-254784117, or mute the thread https://github.com/notifications/unsubscribe-auth/AAGpFdscyzBD6na77Ms2jwMCLvtnSH-Aks5q1fxKgaJpZM4JtS0B .

Courage et bonne humeur. — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Smoothieware/Smoothie2/issues/28#issuecomment-254933565, or mute the thread https://github.com/notifications/unsubscribe-auth/ADkh-0z5h8iVwlB-QaXTGyni0l7hD5x0ks5q1n-rgaJpZM4JtS0B.

arthurwolf commented 7 years ago

Yes, the new v1 code is completely different, extruder becomes just another axis instead of having the extruder module fully control it ( as in : extruders are now handled by robot )

On Thu, Oct 20, 2016 at 3:17 AM, Douglas Pearless notifications@github.com wrote:

In working my way through the extruder code I have noticed there are no longer and set_last_milestones, set_acceleration & get_acceleration for the stepper don’t seem to be used anymore, is this correct?

in Robot.cpp there are changes to the way that the stepper motors that control the actual movement are handled:

SmoothieV1: void Robot::reset_actuator_position(const ActuatorCoordinates &ac) { for (size_t i = X_AXIS; i <= Z_AXIS; i++) actuators[i]->change_last_milestone(ac[i]);

// now correct axis positions then recorrect actuator to account for rounding reset_position_from_current_actuator_position(); }

SmoothieV2: void Robot::reset_actuator_position(const ActuatorCoordinates &ac) { for (size_t i = 0; i < actuators.size(); i++) actuators[i]->change_last_milestone(ac[i]);

// now correct axis positions then recorrect actuator to account for rounding reset_position_from_current_actuator_position(); }

Where we have:

define X_AXIS 0

define Y_AXIS 1

define Z_AXIS 2

define E_AXIS 3

and therefore (at least in Smoothie1) this also represents the stepper motors in actuators[].

So is this still correct for the Extruders to be included in the new reset_actuator_position or should it revert to the old code as there is no marker that I have noticed that defines how many motors in the actuators[] are required for the arm_solutions as with with no extruders implemented in SmoothieV2, this works, but as soon as I add extruders to actuators[], then this code may have unintended consequences?

Cheers Douglas

On 20/10/2016, at 9:38 AM, Arthur Wolf notifications@github.com wrote:

Nice work.

Moving the step generation code to the M0 is huge work, it's way more complicated than it seems. I've played with a few ideas of how to do that, but @wolfmanjm has reasons why it wouldn't for for each. This is hard stuff.

Cheers.

On Wed, Oct 19, 2016 at 1:17 PM, Douglas Pearless < notifications@github.com> wrote:

Once I have finished porting Extruder and Zprobe I will have completed most of the code that does not use SDCard or USB, probably by Monday. The rest needs those libraries to be done.

Then I can look at the endstop problem again and moving step generation to the M0 core.

Sent from my iPhone

On 17/10/2016, at 10:23 PM, Arthur Wolf notifications@github.com wrote:

Hey Douglas.

Pretty much all changes need to be changed. I did the process a few months back because Smoothie2 was about a year behind Smoothie1 and it took about two days ( I think ). It's a lot of work but it's not very difficult, you just need to make sure you don't remove things that are in Smoothie2 specifically to get the code to run on the LPC4330, which is not that much code really.

On Mon, Oct 17, 2016 at 10:12 AM, Douglas Pearless < notifications@github.com

wrote:

OK, it sounds like I have to just get on with it :-)

I have done a folder diff on the current Smoothie v1 src folder and the Smoothie2 src folder and have spent the last few hours analysing the differences.

The challenge is to figure out when there are differences, what should be ported and what should not as I do not know why the Smoothie2 code is necessarily different, for example due to a new feature, or change due to a different platform or represents when the original port was done and needs to be ported.

Here are the code files that are different:

libs/Adc.cpp libs/Adc.h libs/ConfigSources/FirmConfigSource.cpp libs/ConfigSources/FirmConfigSource.h libs/HeapRing.cpp libs/HeapRing.h libs/Hook.h libs/Kernel.cpp libs/Kernel.h libs/Module.cpp libs/Module.h libs/nuts_bolts.h libs/Pin.cpp libs/Pin.h libs/Pwm.cpp libs/RingBuffer.h libs/SlowTicker.cpp libs/SlowTicker.h libs/StepperMotor.cpp libs/StepperMotor.h libs/StepTicker.cpp libs/StepTicker.h libs/utils.cpp libs/utils.h main.cpp makefile modules/communication/GcodeDispatch.cpp modules/communication/SerialConsole.cpp modules/communication/SerialConsole.h modules/communication/utils/Gcode.cpp modules/communication/utils/Gcode.h modules/robot/ActuatorCoordinates.h modules/robot/arm_solutions/BaseSolution.h modules/robot/arm_solutions/CartesianSolution.cpp modules/robot/arm_solutions/CartesianSolution.h modules/robot/arm_solutions/CoreXZSolution.cpp modules/robot/arm_solutions/CoreXZSolution.h modules/robot/arm_solutions/ExperimentalDeltaSolution.cpp modules/robot/arm_solutions/ExperimentalDeltaSolution.h modules/robot/arm_solutions/HBotSolution.cpp modules/robot/arm_solutions/HBotSolution.h modules/robot/arm_solutions/LinearDeltaSolution.cpp modules/robot/arm_solutions/LinearDeltaSolution.h modules/robot/arm_solutions/MorganSCARASolution.cpp modules/robot/arm_solutions/MorganSCARASolution.h modules/robot/arm_solutions/RotaryDeltaSolution.cpp modules/robot/arm_solutions/RotaryDeltaSolution.h modules/robot/arm_solutions/RotatableCartesianSolution.cpp modules/robot/arm_solutions/RotatableCartesianSolution.h modules/robot/Block.cpp modules/robot/Block.h modules/robot/Conveyor.cpp modules/robot/Conveyor.h modules/robot/Planner.cpp modules/robot/Planner.h modules/robot/Robot.cpp modules/robot/Robot.h modules/tools/drillingcycles/Drillingcycles.cpp modules/tools/endstops/Endstops.cpp modules/tools/endstops/Endstops.h modules/tools/laser/Laser.cpp modules/tools/laser/Laser.h modules/tools/switch/Switch.cpp modules/tools/temperaturecontrol/max31855.cpp modules/tools/temperaturecontrol/predefined_thermistors.h modules/tools/temperaturecontrol/TemperatureControl.cpp modules/tools/temperaturecontrol/TemperatureControl.h modules/tools/temperaturecontrol/TemperatureControlPool.cpp modules/tools/temperaturecontrol/TemperatureControlPool.h modules/tools/temperaturecontrol/Thermistor.cpp modules/tools/toolmanager/Tool.h modules/tools/toolmanager/ToolManager.cpp

Is there a suggested approach to try and determine what changes need to be ported?

Cheers Douglas

On 17/10/2016, at 5:20 PM, Jim Morris notifications@github.com wrote:

it isn;t any single commit it is the whole thing it is all related. it was a major rewrite there was no specific fix. There is no way to cherry pick the things. the whole tree needs to be re ported.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub < https://github.com/ Smoothieware/Smoothie2/issues/28#issuecomment-254109579>, or mute the thread https://github.com/notifications/unsubscribe-auth/ADkh- 1JMs0HrtVWTfGlO6KdR88Xibr-Uks5q0vehgaJpZM4JtS0B.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Smoothieware/Smoothie2/issues/ 28#issuecomment-254141079, or mute the thread https://github.com/notifications/unsubscribe- auth/AAGpFfzohWLlUtP- ox2M3FSuZ4El5Ni8ks5q0y3lgaJpZM4JtS0B .

Courage et bonne humeur. — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Smoothieware/Smoothie2/issues/ 28#issuecomment-254784117, or mute the thread https://github.com/notifications/unsubscribe-auth/ AAGpFdscyzBD6na77Ms2jwMCLvtnSH-Aks5q1fxKgaJpZM4JtS0B .

Courage et bonne humeur. — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/ Smoothieware/Smoothie2/issues/28#issuecomment-254933565, or mute the thread https://github.com/notifications/unsubscribe-auth/ADkh-0z5h8iVwlB- QaXTGyni0l7hD5x0ks5q1n-rgaJpZM4JtS0B.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Smoothieware/Smoothie2/issues/28#issuecomment-254984659, or mute the thread https://github.com/notifications/unsubscribe-auth/AAGpFRKUefkh0l2uQ_hmPnqA7W85i5AAks5q1sErgaJpZM4JtS0B .

Courage et bonne humeur.