Arduino Conveyor Belt Oil Skimmer


This is the story of a cheaper Arduino Conveyor Belt Oil Skimmer project.

A company involved in environmental oil disaster recovery and industrial filtration processes and a local train company had the needs to recover oil from the subsoil improperly drained down underground.
Due to the instability of the oil level and quantity in the groundwater, it was not possible to establish the correct recovery point.
The preliminary phase started with analysis matching the following keys:

  • The system must recover oil in a level-independent way
  • All the recovered oil must be collected in a separate and specific container level-controlled
  • Must be autonomous
  • Must be remotely driven with the possibility to switch in local to be driven by an on-site operator
  • The recovery must run for a certain time and stops for a relatively long period afterwards and this sets of time could be very variable depending on operator needs and environmental circumstances
  • … and finally, but not less important, the system must be safe and reliable.


The mechanical part of the system was designed and realized by Disaster Oil Recovery Company’s engineers. They design a long polypropylene conveyor recovery belt skimmer with patent-pending.
To respond properly to all needs the choice was to select a high-performance and low-cost processor like an AVR 8-bit. ARDUINO 328P preassembled was perfectly suitable: it’s very cheaper and simple to install. Due to its low power supply, it’s electrically secure and has enough computation power to drive the entire system.
The movement of the conveyor belt is entrusted to an electrical low power stepper engine.

To permit ARDUINO to drive the motor a Motor-Shield was selected and finally, a GSM-Shield for remote control by SMS (Short Message System) completed the hardware configuration of the system.
For software developing environment was selected ARDUINO IDE freely downloadable via the official website.
Some components were tested separately by single functions: for example, initially was tested the ability of ARDUINO to drive stepper-motor by generating output square-pulses by software interrupts internally programmed.

After that was tested the GSM Shield through which, via SMS, was possible to send commands like “start”, “stop”, “state” and so on, and to get status, warning and alarm messages.
Then two shields were assembled together with ARDUINO and the final software was developed to permit all components to coexist.
The motor was assembled into the final machinery and the final test took place involving both mechanical part and electrical/software one.

The test demonstrated that we needed to introduce, in a simple way, a motor speed regulation mechanism because the oil might be very different in viscosity and density and could be mixed with water or other elements. So a second analysis and design phase was necessary.
To correctly set the right motor speed for a valuable oil recovery the operator must be in place and the idea was to provide a local analogue potentiometer capable to generate a valid electrical continuous signal in a range from 0% to 100%.

In the same way, a settable timer was designed for setting rest/work timing.

A manual selector gave the possibility to an operator to switch between REMOTE mode and LOCAL one. In local mode, the whole system is able to be driven locally and manually and in the other mode, that is in remote one, the system could be driven only by SMS commands.

A start and stop push buttons and some light indicators completed the front panel of the main electrical cabinet.

The whole system was assembled into the main cabinet.


Project improvements

A level probe is used for monitoring the level of the recovery tank. It sends a digital signal to the system that reacts properly.
The main conveyor was assembled mechanically and the final test phase took place.

The first conveyor oil skimmer was 6 meters long and was installed on site in the January 2014. After a month of working two more system born and installed in different locations for the same client.

The system is able to run continuously without any human activity.
It can:

  • Run on work/rest timer freely settable by the user
  • Run at different conveyor speed simply adjusting the potentiometer position in the range 0%…100%
  • Can be driven by local physical commands or remote SMS messages
  • Can memorize the last number that sent a valid command message and responds autonomously to that in case of
    • the recovery tank is full (controlled by the level probe) – the recovery phase shutdown and the system goes into waiting mode
    • power outage – in case of losing power supply the system is able to send a message when it power on again informing the user that a power outage events happened and alerting for waiting for a further command
  • For statistics purpose, the system is able to memorize in a retainable way the total time of production, motor running time and some other parameters that can be retrieved directly by sending a “STATUS” message request

The oil conveyor recovery systems are actually under production and some new model will be produced for similar other applications.