Build a DIY Atta Kneading Robot With Motors & Controllers
Turn a simple DC motor into a dough-kneading machine! A hands-on robotics project that mixes electronics, mechanics and a little bit of chapati magic.
Why This Project?
From Kitchen Chore to Cool Robot 🍞⚙️
Every day, someone in your house kneads atta (wheat flour dough) by hand to make soft rotis. It takes strong arms and a lot of patience! In this project, you'll build a small robot that does the kneading job using a motor, a controller, and a rotating paddle — just like the machines used in bakeries, but built by you.
Shopping List
What You'll Need
All parts are easy to find online or at your local electronics shop. Approximate prices in INR.
| Part | What it does | Price |
|---|---|---|
| 12V 100 RPM DC Geared Motor (high torque) | Spins the kneading paddle | ₹450 |
| L298N Motor Driver Module | Lets Arduino control motor speed & direction | ₹120 |
| Arduino Uno | The robot's brain | ₹550 |
| 12V 2A Power Adapter | Powers the motor | ₹250 |
| 10K Potentiometer | Adjusts kneading speed | ₹20 |
| Push Button | Start / Stop control | ₹10 |
| Buzzer | Beeps when dough is ready | ₹15 |
| Stainless steel mixing bowl | Holds the atta | ₹200 |
| Wooden/steel paddle + shaft coupler | Does the actual kneading | ₹150 |
| Mounting frame (wood/acrylic) + screws | Holds the motor above the bowl | ₹250 |
| Jumper wires + breadboard | Connects everything | ₹100 |
| Estimated Total | ≈ ₹2,115 | |
Wiring It Up
The Circuit Diagram
The Arduino talks to the L298N motor driver, which supplies enough power to spin the geared motor. A potentiometer sets the speed and a button starts/stops kneading.
Let's Build It
Step-by-Step Assembly
Build the frame
Cut and assemble a simple wooden or acrylic frame that holds the motor upright, directly above the mixing bowl. Leave enough clearance for the paddle to spin freely inside the bowl.
Attach the motor
Mount the 12V geared motor to the top of the frame using motor clamps or L-brackets. Make sure it sits centered above the bowl.
Make the paddle
Attach a shaft coupler to the motor's output shaft, then connect a wooden or stainless-steel paddle to it. This paddle will do the actual kneading.
Wire the L298N driver
Connect the motor's two wires to OUT1 and OUT2 on the L298N. Connect the 12V adapter to the driver's power input, and connect ENA, IN1 and IN2 to the Arduino as shown in the circuit diagram.
Add the controls
Wire the potentiometer to analog pin A0 for speed control, the push button to pin D2 for start/stop, and the buzzer to pin D8 for the "dough ready" alert.
Upload the code
Connect your Arduino to a computer and upload the sketch below using the Arduino IDE.
Test with water first
Before using real atta, test the paddle motion with just water in the bowl to make sure it spins smoothly and doesn't wobble.
Knead your first dough!
Add flour and water to the bowl, press the start button, and watch your robot knead. It'll beep when the timer finishes.
Programming
The Arduino Code
This sketch reads the potentiometer for speed, starts/stops kneading with the button, runs a 3-minute kneading timer, and beeps when it's done.
// DIY Atta Kneading Robot - MakeMindz // Motor speed via potentiometer, start/stop button, auto-timer + buzzer const int ENA = 9; // PWM speed pin const int IN1 = 8; // direction pin 1 const int IN2 = 7; // direction pin 2 const int potPin = A0; const int buttonPin = 2; const int buzzerPin = 8 + 5; // use pin 13 for buzzer bool kneading = false; unsigned long startTime = 0; const unsigned long kneadDuration = 180000UL; // 3 minutes void setup() { pinMode(ENA, OUTPUT); pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT); pinMode(buttonPin, INPUT_PULLUP); pinMode(buzzerPin, OUTPUT); Serial.begin(9600); } void loop() { if (digitalRead(buttonPin) == LOW && !kneading) { kneading = true; startTime = millis(); Serial.println("Kneading started!"); delay(300); // simple debounce } if (kneading) { int speedValue = map(analogRead(potPin), 0, 1023, 120, 255); digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW); analogWrite(ENA, speedValue); if (millis() - startTime >= kneadDuration) { kneading = false; analogWrite(ENA, 0); celebrationBeep(); Serial.println("Dough is ready!"); } } else { analogWrite(ENA, 0); // motor off when idle } } void celebrationBeep() { for (int i = 0; i < 3; i++) { digitalWrite(buzzerPin, HIGH); delay(200); digitalWrite(buzzerPin, LOW); delay(150); } }
kneadDuration to make kneading longer or shorter, or adjust the map() range to change how fast the fastest speed is.
The Science Bit
How Does It Actually Work?
The Arduino is the "brain" — it doesn't have enough power on its own to run a motor, so it sends small signals to the L298N motor driver, which acts like an amplifier for electricity. The driver takes power from the 12V adapter and pushes it into the motor, spinning the paddle. The potentiometer changes a voltage that the Arduino reads as a number, which is turned into a speed. The button tells the Arduino to start a timer, and once time's up, the buzzer lets everyone know the dough is ready.
Questions
Frequently Asked Questions
Can this machine really knead atta like a human hand?
A small hobby version can mix and partially knead soft dough, but for fully hand-like kneading you'd need a higher-torque motor and a stronger frame — this project is meant to teach the concept, not replace your kitchen mixer.
Is it safe for kids to use?
Yes, with adult supervision. Kids should build and program the robot, but an adult should be present whenever the motor is running near the bowl.
Can I use a servo motor instead of a DC motor?
Servo motors don't spin continuously in the way needed for kneading — a geared DC motor or a continuous-rotation servo is a better fit.
What if my motor is too weak to knead dough?
Start by testing with a soft, wet dough or even just water and flour paste. If it stalls, you may need a motor with higher torque (a lower RPM, higher gear-ratio motor).
Keep Building
What to Try Next
Add an OLED screen to show the countdown timer, or a second motor with a scraper to keep dough from sticking to the bowl walls. You could even add an ESP32 and control the start button from your phone!

Comments
Post a Comment