Log splitter controlling

Hello!

I have a log splitter(Palax combi tsve) that doesn`t work because of the electronics that controls the hydraulics is broken.

The main components that makes the splitter work is quite few, 2 magnetic limit switches, one magnetic actuator switch, 2 way hydraulic solenoid valve and a lot of safety crap. I have been troubleshooting the machine for quite a while can't figure out what is wrong.

So my question is would it be hard to use these existing components and write a program to control the hydraulic ram?

Im not sure if Im going to this but if I don't find what is wrong with my log splitter I may have to. I have limited programming experience, I have only done some blinking light and servomotor projects before and have never used any input signals to the arduino board except an on/off switch.

My native language is not english so ask if you did not understand what I mean.

Moderator did minor edit (mainly newlines)

vennu:
...
So my question is would it be hard to use these existing components and write a program to control the hydraulic ram?
...

Welcome to the forum,

I moved your thread to project guidance as that seems to be a more appropriate place.

Can you give more information about the hardware involved?
A picture or a link to type numbers / descriptions makes things easier .

On first thought switches can always be connected to Arduino, so that is not the problem.
A solenoid valve typically runs at higher voltages so a relay so be able to handle that.

Replacing "safety crap" with an Arduino is always a bit more risky (also in legal terms).
Better replace it with dedicated hardware. Safety switches are typical in series so if one goes off
the whole machine goes off, no need for an Arduino there.

Is there currently a "user interface", switch on/off, set pressure and so on?

As said before more info is needed.

PS, where are you from?

first the answer is YES.

the Micro-controller does the series of tasks type of work very well.

I would think there should be a way to fix the manufactures controls. that would be the best first choice.

you do need to understand, really understand.
really-really understand, exactly what the system does, every step.

you can write it out in a sequence of steps,

log tray sensor if the tray it empty, do nothing
if the tray has a log, then indicate there is a log.

motor run sensor
if the motor is not running- then indicate the motor is not running
if the motor is running, then indicate the motor is running

feed bin full sensor
if the feed bin is full, indicate the feed bin is full
if the fed bin is not full, indicate the feed bin is not full.

operator start switch
if the feed bin is not full AND if the motor is running AND if there is a log

=====================

as you can see, to one thing, there are many, many steps.

with the Arduino, you have to connected to each sensor, and maybe add some more.
in some cases, you can use the existing sensor, in some cases it may not work with the Arduino, or you may need to add a device to change one signal into a signal the Arduino can use.

a typical program will read all the sensors in the beginning

then do the logic and math in the middle

and at the end, it will do all the outputs

lastly, it will save any information for the next scan of the loop.

do not try to read things in the middle, or control things in the beginning. it leads to confusion and makes it harder to troubleshoot.

Thx for your fast replays! I am considering to replace the logic because when you boot up the electronics it does always something different, sometimes it blinks the errorlight or the errorlight stays lit and other times it doesnt do anything and once it did actuate the splitting ram for no reason. Maybe you that have more knowledge in this field can figure out whats going on. I called to Palax and they told me to try to change the controller which is very expensive and may not fix the problem.
And one more thing, I have had to take the controller it self in to my house and open it up to dry it because of the condesation that builds up has been the cause of these kinds of problems before but I have been able to get the splitter working before by doing this (but cant see any kind of visible damage on the board it self).

I will explain what the splitter should do:

1.Log tray emptyLog tray
2.log falls on the switch and the ram should split the log, but if the ram doesnt hit the front limitswitch in 5seconds it returns back Log here

3.I want to have a rocker switch to manually control the ram, for example if I see that a log will jam and i need to get the ram back immediately.

heres the limit switch front:
Front limitswitch

back: Limitswitch back
these switches are magnetic and on/off type

hydralicvalve 12v and needs a couple of amps to work properly: Hydraulicvalve

the user interface: User interface

And the contollerhousing: The housing

I have some ideas yet have to check before I proceed to change the electronics completly.

And I am from Finland :smiley:

vennu:
And one more thing, I have had to take the controller it self in to my house and open it up to dry it because of the condesation that builds up has been the cause of these kinds of problems before but I have been able to get the splitter working before by doing this...

Until the condensation issue is solved replacing the controller with an Arduino is pointless.

vennu:
(but cant see any kind of visible damage on the board it self).

The switches may have been damaged by condensation.

The switches may have been damaged by condensation.

I have measured the switches and they seems to work

Until the condensation issue is solved replacing the controller with an Arduino is pointless.

The condensation problem is solved simply by moving the cotrollerhousing, which is now right next to the warm hydraulics, away from the hydraulics

I am considering to replace the logic because when you boot up the electronics it does always something different, sometimes it blinks the errorlight or the errorlight stays lit and other times it doesnt do anything and once it did actuate the splitting ram for no reason.

This is not good :frowning:

If an error light comes on there may well be an error. To replace the system you need to be sure you know what all the 'safety crap' does and make sure your replacement system is at least as secure.

The safety "crap" is just sensors for covers that has to be there so the machine gets CE marking.I have bypassed all the cover sensors already and the machine has been working for several years with the bypasses in place. Best safety measures when working with heavy machinery is common sense.

Error lights goes on when:
1.A log is on the actuator switch when booting up... I have measured the switch and it works normally
2.safety guards is open... I have bypassed the sensors and the bypasses is working(jumper wire)
3.A log is stuck on the splitter wedge and the ram doesnt reach the front limit switch in a certain time...if the logic is working the ram should retract automatically... I have measured all limit switches and they work
4.The hydraulic ram is somewhere between the limit switches... it should go back to its standby position automatically or be retracted manually with the rockers witch that controls the hydraulic ram and then its good to go
5. for some unknown reason... usually just restart the logic then its ok

The bizzare thing with the logic is that it does boot up 1/5times if the machine has been without electricity for 2-5h at least. It boots up normally and a green light lights up for good to go but immediately shuts down when you want to split/drive the hydraulic valve. If you dont let it sit for more than a couple of seconds it rearly even boots up but if it boot up it blinks that there is an error. Sometimes the logic actuates the hydraulic cylinder how it wants for a couple of seconds and shuts down.

I have bypassed all the cover sensors already and the machine has been working for several years with the bypasses in place. Best safety measures when working with heavy machinery is common sense.

Tell that to some kid when he has his arm chopped off.

The best safety measures are experience, working safety sensors and the common sense not to disable them.

ell that to some kid when he has his arm chopped off.

The best safety measures are experience, working safety sensors and the common sense not to disable them.

Good that you are concerned about my safety but that I have removed a cover for the splitter tray is not that big of a hazard because you do not have to have your hands even near the splitter ram...

Regarding to that experience makes you a safe worker is not always true, my neighbor that had a saw mill and had 40 years of experience cut his whole arm of last summer, because he was too used to the mill and was too relaxed when he was working. The "fun" thing of his story is that he had already sold the mill and he was cutting boards to him self one last time....

But enough of these safety lectures... I am here to get advice how I should proceed with my problem with my logsplitter, If I had experience and knowledge how to program an Arduino to perform the task I need to accomplish with it, I would not be here asking for your advice who is more experienced with logicboards

I have not been able to find any faults in the switches or connections in my splitter so I am suspecting that the fault is in the brainbox.

I decided to try to make my own controller first, but if I am too bad at coding an Arduino I have to buy the logicboard from Palax.
I am going to buy AMP 1-776228-4 connector and just replace the old logic board that way I do not have to destroy the old circuit that is already in the log splitter…if I am able to make my own project work :slight_smile: .

I made this circuit to simulate my splitter, do you think that the circuit looks alright or do I have some kind of mistakes that will cause trouble when I am trying to develop the software. And this is the circuit on the machine right now and how I am going to leave it, I am just connecting the Arduino in the existing connector.

Here is an explanation to my testing circuit:
D3ram out and D4ram in is only to simulate the control signal to the hydraulic valve
D5 and D6 is the limit switches that is on the hydraulic ram
D7 is the actuator switch

If you think the circuit looks alright I will post what I want to accomplish with the arduino step by step and how I have tried to tell the arduino how I want it to function. I think that it will help you to help me to trouble shoot my code because I am pretty sure I need to ask for help with my code.

While there is no reason not to use pulldown resistors on your inputs, note that the arduino has built in pull-ups that you can use instead. e.g.

pinmode(12,INPUT_PULLUP);

So I need to ground the inputs instead of connecting them the 5v pin?

Yes. And you'll consider low a button press.

I tried to make the code for the splitter. I got it to work once but figured that i will try to do some bits of more elegant and fu**ed something up that I cant figure out :confused:
And I have some questions how do i do a timer that does not stop the code and maybe you can spot the fault I have so RamIn stays HIGH in my code.

This was my first code I have ever rmade from scratch

const int RamIn = 3;                                        //Actuates hydralic valve 
const int RamOut = 4;                                       //Actutes hydralic valve
const int LimitIn = 5;                                      //Limit swich that is closed when ram is completly in
const int LimitOut = 6;                                     // Limit switch that is closed when ram is fully extended
const int Actuator = 7;                                     // Switch is closed when a log is on it
           
void setup() {
  pinMode(RamIn, OUTPUT);
  pinMode(RamOut, OUTPUT);
  pinMode(LimitOut, INPUT_PULLUP);
  pinMode(LimitIn, INPUT_PULLUP);
  pinMode(Actuator, INPUT_PULLUP);

  

}

void loop() {

int LimitInVal = digitalRead(LimitIn);
int RamOutVal = digitalRead(RamOut);  
  
  if(LimitInVal == HIGH && RamOutVal == LOW ){
    digitalWrite(RamIn, HIGH);
    }
  else {
    digitalWrite(RamIn, LOW);                                 //Puts the hydralic cylinder in standby position if RamOut is not HIGH.
    }

  
  
  int ActuatorVal = digitalRead(Actuator);
  int LimitOutVal = digitalRead(LimitOut);
 
   if(ActuatorVal == LOW && LimitInVal == LOW){               //Actuates RamOut.. 
    digitalWrite(RamOut, HIGH);                                 // Here I want to put in a timer...if LimitOut is not LOW in 5s the ram goes back to LimitIn == LOW
    }
    
    
    while(LimitOutVal == LOW ){
      digitalWrite(RamOut, LOW);
      delay(100);                                               //drives ram back to LimitIn switch
      digitalWrite(RamIn,HIGH);
      if(LimitInVal == LOW){
      break;
      }
   }

      
      if(LimitInVal == LOW){
        digitalWrite(RamIn, LOW);                           //This does not work and RamIn stays HIGH
      }
 
        
      
     }

Why does this not work, its seems like its stuck in the while loop even though the if statement is true

 while(LimitOutVal == LOW ){
      digitalWrite(RamOut, LOW);
      delay(100);                                               //drives ram back to LimitIn switch
      digitalWrite(RamIn,HIGH);
      if(LimitInVal == LOW){
      break;
      }
   }

I suspect it's because you aren't reading LimitInVal in the loop. Try adding this before the if statement:

LimitInVal = digitalRead(LimitIn);

wildbill:
I suspect it's because you aren't reading LimitInVal in the loop. Try adding this before the if statement:

LimitInVal = digitalRead(LimitIn);

Thanks a lot, got it to work now!!!

You have the same issue here:

while(LimitOutVal == LOW ){
[code]

You don't update LimitOutVal anywhere in the loop so if it defeats the point of continuously checking it.