Cooking Italian Cuisine With Open-Source Hardware

Article By : M. Di Paolo Emilio

The hardware project presented here is a basis for having fun implementing different solutions.

Arrosticini — sheep or lamb skewers — are a staple of the cuisine of Italy’s Abruzzo region. A typical dish of the pastoral tradition, they are said to have been invented early in the last century by hungry shepherds stuck in the fields during the seasonal movement of their flocks to fresh pastures. The shepherds would butcher an old sheep, cut the meat into small pieces, slide the pieces onto sticks, and cook the skewers over a flame.

Cooking an arrosticino to perfection requires careful control of the cooking temperature and cooking time as well as even heat distribution. The traditional method is to grill the skewers on a fornacella charcoal grill. According to purists, electric cookers compromise the traditional flavor of an arrosticino (and the self-respect of the chef). Grilling arrosticini the traditional way, however, is a labor-intensive, exacting process. Is it possible to achieve grilling perfection using a motorized setup?

The following schematic project proposes a way to automate the process with a sensor system and motor control to yield perfect arrosticini. The simplicity of the feedback system allows for implementing any solution. The components used include temperature sensors, a display to view the temperature, and a motor control solution.


The first concern when grilling meat is to bring the interior to the desired temperature while maintaining a constant cooking process. Suppose you have a plate piled high with meat at the initial temperature T0. At the start of cooking, the surface of the meat is placed in contact with the surface of the grill at temperature Tg. For this simple condition, the temperature of the meat for any time, t, and any depth, z, can be modeled by the formula:

where D is the thermal diffusivity (or heat diffusion coefficient) of the meat and erfc is the complementary error function (whose approximate value can be found in special tables).

In mathematics, the error function (also called the Gauss error function) is a particular function encountered in probability, statistics, and partial derivative differential equations. It is defined as:

and is valid for each real number x. The values in the erfc table can be obtained by developing the Taylor series error function and integrating for the whole real axis.

Figure 1: Variation of temperature with time for different sensors. The temperature starts from an initial value and then reaches its maximum and remains within a certain tolerance.1

The aim is to prepare the coals by keeping the temperature under control so that it remains constant in time. The distribution that we should obtain is of the type shown in Figure 1.

Thermal diffusivity (unit of measurement: mm2/s) is a specific property of the material that characterizes the non-stationary heat conduction. This quantity describes how quickly a material reacts to a temperature change. Thermal diffusivity is a prerequisite in solving the Fourier equation for non- stationary heat transfer.

The model equation can be solved to determine the time required for the meat to reach the desired temperature, T(z,t):

The only tricky part of this equation is to find the values for erfc. Surely, we would be dealing with values of <1. Table 1 shows some possible values of the temperature difference.

Table 1: Values for erfc

The typical arrosticino consists of meat that is cut to a thickness of roughly 1 cm (depending on the type) and is inserted onto a skewer measuring about 25 cm long. The meat extends down roughly half of the skewer length, and the skewers are positioned on the stove with the bare wood extending over the edge, allowing the cook to turn them so that the meat cooks evenly on all four sides (Figure 2).

Figure 2: Each arrosticino is positioned on the fornacella at a distance of 7 to 15 cm (adjustable) from the coals. The basic setup will vary depending on the number of arrosticini to be cooked.

After defrosting and before grilling the meat, the cook would dry it with absorbent paper and wait for its temperature to reach approximately room temperature. The average grilling time is about 1 to 2 minutes per side (related to the temperature of the coals and the relative distance from the arrosticini).


The project must include temperature sensors to control the temperature of both the arrosticini and the coals. The optimum temperature of the meat will determine the degree of cooking, so it will be necessary to assess the difference in temperature during the design phase. The hardware structure comprises:

  • an Arduino board2
  • temperature sensors
  • a display to show the temperature of the coals and the arrosticini. The two temperatures must be different; the operator must keep the coals under control so that the temperature is the same as the starting temperature.
  • a fan to ensure uniform heating and, therefore, uniform cooking. In this case, the model described above will present a coefficient to multiply that takes ventilation into account. According to the programming, the fan can be switched on where necessary, i.e., when the temperature difference between the coals and the meat begins to deviate.
  • an I2C display to indicate the temperature and control text on the cooking of the meat
  • two stepper or DC motors — one to turn the arrosticini and the other to slide them off the grill. The speed of these two motors must be synchronized. In addition, a defective temperature variation should reduce the speed of the motor so that the cooking remains optimal.

The temperature sensors used are PT100 sensors, which commonly find application in industry settings such as laboratories for measuring temperature during work sessions. The nominal resistance of these sensors is established by the IEC 751 standard and is 100 Ω in a temperature condition equal to 0°C. The use of thermal resistance in the PT100 allows it to operate in a broader temperature range, between –200°C and 850°C, with excellent accuracy and interchangeability, stably and durably (Figure 3).

Figure 3: Arduino and PT100 sensors with conditioning circuit

Conditioning is accomplished via the MAX31865, an easy-to-use resistance-digital converter optimized for platinum resistance temperature detectors (RTDs) such as the PT100. An external resistor sets the sensitivity for the RTD used, and a precision delta-sigma ADC converts the ratio of RTD resistance to reference resistance into digital form. Arduino makes this easily manageable through the libraries that can be implemented in the integrated development environment (IDE). Brushless DC (BLDC) motors offer high efficiency, but above all, excellent torque and speed values that suit a broad range of applications. The design of a brushless DC motor aims to optimize the torque, or the amount of rotational force, which is related to the magnet and coil winding. The greater the number of pole pairs in the magnet, the greater the motor torque.3

Portescap’s Ultra EC platform offers a range of brushless motor families to target different torque and speed requirements. The parent company’s patented coil minimizes iron losses to maximize efficiency.

Maxon’s EC-i brushless motors are available in small diameters suitable for robotic applications. The motor has a diameter of 30 mm and is characterized by high dynamics and high torque. It is available in two lengths, each in a standard version and a high-torque version, with a maximum nominal torque up to 110 mNm at 75 W. In all versions, the new EC-i 30 motors can be expanded with encoders, gearboxes, servo controllers, or positioning controllers.

The DC Motor Control Shield from Infineon Technologies is one of the first high-current motor control boards compatible with Arduino as well as with Infineon’s XMC1100 Boot Kit, based on the BTN8982TA IC. The DC Motor Control Shield can drive two unidirectional DC motors (half-bridge configuration) or one bidirectional DC motor (H-bridge configuration). A PWM can control the BTN8982TA NovalithIC half-bridges via the IN Pin (Figure 4).

Figure 4: Infineon’s XMC1100 Boot Kit

The arrosticini in our project can be connected to a motorized system to rotate them 90° every 1 to 2 minutes. Once the 360° rotation is complete, an arrosticino must be removed from the coals. The taste of the meat depends on the temperature of the coals, which can vary widely (900°C can be reached inside the coals, at a distance of 10 to 20 cm, whereas in the fornacella, they reach temperatures of 150°C to 300°C); bringing the meat to a temperature of approximately 150°C starts the so-called Maillard reaction — the chemical reaction that gives browned meat its distinctive flavor and aroma.

Calibration will be required to coordinate the movement of each arrosticino with the temperature of the grill and of the arrosticino itself, together with the movement of the sliding mechanism that will transfer the cooked meat to the plate. The slides can be removed, and the operator must take care to remove them once the cooking time has passed.

Therefore, the software will have to provide temperature reading/setup and display functions; a grid temperature control algorithm evaluating deviations within 5% of the original temperature; and control alarms, such as an LED and/or a buzzer module.

Cooking on the grill will still present the practical problem of keeping the temperature as constant as possible. But that’s where the fun (and the taste) lies! Before starting cooking, novice grillers will need to study up on how the cooking time affects the taste. The skill of the cook in positioning and removing the arrosticini at the right time is also very important.

The motorized control system requires using a fornacella grill, as shown in Figure 5. We will connect our motor at one end of the grill to perform the rotation.

Figure 5: Motorized grill

The “calibration” of the system will determine the cooking time, usually about 1 to 2 minutes per side, depending on personal taste as well as the temperature of the fire. The important thing is to keep the temperature constant when adding coal. Figure 6 presents a general layout.

Figure 6: General system layout. A display can be added by connecting it to Arduino via I2C.


The hardware project presented here is a basis for having fun implementing other solutions. We have not described the firmware implemented on Arduino. But the hardware solutions already have libraries that allow you to manage operations, easily taking the mathematical model into account.


  1. Application Note: The Science of Grilling Meat
  2. Arduino Projects
  3. Motor Tutorial

Leave a comment