Timer automatically starts when turned on

Jonathan Langlois shared this feedback 7 months ago

I've been designing an automated drilling rig, and for the longest time I couldn't figure out what was going wrong. I've finally found the answer. Timer blocks automatically start when turned on. This is most aggravating.

The drilling rig has a dig and retract function which each have their own set of timers. Since the action sequence is a bit different, theses function need their own separate timers. Both sets of timers get called by the sensors, but one set is off. To switch function, I need to turn on one set of timer blocks, and turn on the other set. This is where the problem happens. The timers automatically begin their sequence which causes the drill to be ejected. I've found a way around this by adding "Stop" to the reset block, but the reality is that turning on a timer does not mean that I want it to start. It just means that I want it to be in a state where it can be called by the sensors.

I would really appreciate if the timers did not automatically start when turned on. I'm certain that I'm not the only one who has run into this weird issue.

Comments (2)


Dismiss this, I seem to have another problem with my drilling rig that I have not figured out yet. The thing that is really causing me grief right now is the fact that I don't seem to have a way to detect which direction the piston is pushing, or which rotor is locked.


might I suggest looking into the programmable block

(par le nom je me permets de passer en français, mais plus sérieusement, avec un peu de prog tu peu tout controller. j'ai fait mes premiers tests il n'y a pas si longtemps, pas trop difficile à maitriser (remarque j'enseigne en info), et j'ai pu faire un code pour qu'une série de piston s'arrête à une hauteur précise. Bref, tu aurais tout ce que tu cherches comme info et comme contrôle)


Yeah, I know that's an option. I was looking to try and do this without a programmable block. It's been a very long time since I've done any programming, but it's definitely something I would be able to do with enough time and effort. I'm trying to build something that I could put on the workshop and would work in any world.

I've already solved a number of problems:

  • Detecting when the piston bottoms out
  • Detecting when the piston maxes out
  • Detecting when the rig has fully retracted.
  • Detecting when there's no longer any blueprint to be welded.
  • Selecting Drill or Retract mode
  • Getting the two pistons to move the drill in the right direction depending on which mode is turned on.

That already allows the drill to work on it's own once it's been started. What I've got left to do is:

  • Resolve deadlock condition when the drill is stopped with both rotors locked.
  • When interrupted in the middle of a cycle, ensure that the piston go in the right direction after switching mode.

Both of those conditions are created when drilling is stopped. I've already mostly taken care of the first issue. It's predictably always going to be true during the initial startup. Otherwise, it seems I can get away with using trigger now to just about eliminate the possibility of a user resetting during the handover from one rotor to the other. I'm still thinking on the second one. It's a harder problem to solve. It's not a problem at all if it's going in the wrong direction initially while in drill mode, it will self correct and no harm will be done. It is a problem if it goes in the wrong direction in Retract mode since it would push the drill into the rock.

Edit: I ended up adding an indicator light and just adding a piston reverse in the reset sequence. It's not the timer solution I wanted, but it does the job.


I wish you good luck on your engineering task ;)

(Looks like it will be fun to look at/use when complete)


I got it working to my satisfaction, but good gosh that was so much harder then it needed to be. Rotors, Pistons and Timer blocks seriously need some TLC. I really would like to see a much more visual interface with timer blocks, something like you see in some programs where you can just link parts and actions.