Ardumower Mini

Revision as of 12:18, 2 April 2017 by Alexanderg (Talk | contribs) (Steps)

Jump to: navigation, search


This page describes the 'Ardumower Mini' that can be used to implement a full Ardumower for indoor software development and that you can purchase via the shop Shopping.png

Needed parts

  • Ardumower mini chassis including motors etc.
  • Ardumower mini electronics:
    • Arduino Mega 2560 Board
    • Mega Sensor Shield Special Sensor Expansion Board für Arduino
    • 20 cables female-to-female
    • Dual MC33926 Motor Driver Carrier (or STL298N Dual Motor Driver)
    • Ultrasonic Ranging module (HC-SR04) (optional, recommended)
    • Bluetooth RF Transceiver Module (HC-05) (optional, recommended)
    • Odometry sensor module (encoder) (optional, recommended)
    • Sound Sensor LM386 Audio Amplifier 200x and 150 mH perimeter coil (optional)



  1. Ardumower mini
  2. Ardumower mini tracking perimeter wire
  3. Project LF: lane-by-lane mowing (Gyro+odometry)
  4. Project LF : robot position tracking on map
  5. Project LF: particle filter while mowing
  6. Project LF: robot position estimation via particle filter
  7. Project LF, milestone1 (working µC, perimeter, coil, motors, buzzer, LCD)


The Ardumower Mini can run the same software as the 'big Ardumower'. For the PCB, you don't need to use an Ardumower PCB - instead you can (with some limitation) connect the components directly to the Arduino Mega as shown below. The limitations are: there will be no battery charging circuit, no charging station, and of course your wiring will not look as nice as a ready PCB :-)

For software download, see the Ardumower PCB/code page. In the Arduino IDE, go into file 'config.h', and activate the pin configuration for the Ardumower Mini (enable '#define USE_MINI' and disable '#define USER_MOWER'). Now the code will use the Ardumower Mini pin configuration file ('mini.cpp').

NOTE: Do not use more than 7 volt to operate the mini DC motors!

Ardumower mini wiring.png

1. Start button

Button (a) --- Arduino pinButton (for actual pin number, see code: mini.cpp)
Button (b) --- Arduino GND 

2. Piezo buzzer

Buzzer (a) --- Arduino pinBuzzer (for actual pin number, see code: mini.cpp)
Buzzer (b) --- Arduino GND 

3. Motor driver

3.1 For L298N motor driver

+5v  --- leave open
+12v --- LiPo 2s battery 7volt (+) 
GND  --- LiPo 2s battery 7volt (-)
OUT1 --- left motor (+)
OUT2 --- left motor (-)
OUT3 --- right motor (+)
OUT4 --- right motor (-)
ENA  --- insert jumper (enables OUT1,2)
IN1  --- Arduino pinMotorLeftPWM  (for actual pin number, see code: mini.cpp)
IN2  --- Arduino pinMotorLeftDir  (for actual pin number, see code: mini.cpp)
IN3  --- Arduino pinMotorRightPWM (for actual pin number, see code: mini.cpp)
IN4  --- Arduino pinMotorRightDir (for actual pin number, see code: mini.cpp)
ENB  --- insert jumper (enables OUT3,4)
S1   --- insert jumper (enables 5v regulator for +12v voltage input)

NOTE: You can test L298N motor driver without Arduino:

  1. If you connect IN2 to HIGH (5v) and IN1 to LOW (GND), the motor should rotate forward.
  2. If you connect IN2 to LOW (GND) and IN1 to HIGH (5v), the motor should rotate reverse.

3.2 For MC33926 motor driver

VIN       --- LiPo 2s battery 7volt (+)
GND       --- LiPo 2s battery 7volt (-)
M1OUT1    --- left motor (+)
M1OUT2    --- left motor (-)
M2OUT1    --- right motor (+)
M2OUT2    --- right motor (-)
M1_FB     --- Arduino pinMotorLeftSense (see code: mini.cpp)
M1_SF     --- Arduino pinMotorLeftFault (see code: mini.cpp)
M1_PWM_D1 --- connect with jumper to GND
M1_PWM_D2 --- connect with jumper to VDD
M1_IN1    --- Arduino pinMotorLeftPWM (see code: mini.cpp)
M1_IN2    --- Arduino pinMotorLeftDir (see code: mini.cpp)
EN        --- Arduino pinMotorEnable  (see code: mini.cpp)
M2_FB     --- Arduino pinMotorRightSense (see code: mini.cpp)
M2_SF     --- Arduino pinMotorRightFault (see code: mini.cpp)
M2_PWM_D1 --- connect with jumper to GND
M2_PWM_D2 --- connect with jumper to VDD
M2_IN1    --- Arduino pinMotorRightPWM (see code: mini.cpp)
M2_IN2    --- Arduino pinMotorRightDir (see code: mini.cpp)
EN        --- Arduino pinMotorEnable (see code: mini.cpp)
VDD       --- Arduino 5V 

4. Arduino Mega

Power jack       ---  LiPo 2s battery 7volt (outside is-/inside is+)

5. Bluetooth receiver (optional, but recommended)

VCC5.0  --- Arduino 5v   (for 5v Bluetooth version)
VCC3.3  --- Arduino 3.3v (for 3.3v Bluetooth version)
TXD     --- Arduino RX2
RXD     --- Arduino TX2
GND     --- Arduino GND

6. Sonar/ultrasonic (optional, but recommended)

VCC     --- Arduino 5v
Trig    --- Arduino pinSonarCenterTrigger (see code: mini.cpp)
Echo    --- Arduino pinSonarCenterEcho (see code: mini.cpp)
GND     --- Arduino GND

7. Model R/C (optional)

VCC           --- Arduino 5v
CHANNEL steer --- Arduino pinRemoteSteer (see code: mini.cpp)
CHANNEL speed --- Arduino pinRemoteSpeed (see code: mini.cpp)

8. IMU (compass/gyro/accel) (optional)

SDA     --- Arduino SDA
SCL     --- Arduino SCL
GND     --- Arduino GND
VCC5.0  --- Arduino 5v

9. Perimeter receiver (optional, but recommended)

VCC     --- Arduino 5v
IN      --- coil (a)
GND     --- coil (b)
GND     --- Arduino GND
Out     --- Arduino pinPerimeterLeft (see code: mini.cpp)

10. Perimeter sender (optional, but recommended)

See Ardumower sender.

11. Odometry/wheel encoder (optional)

VCC               --- Arduino 5v
GND               --- Arduino GND
DO1 (left motor)  --- Arduino pinOdometryLeft (see code: mini.cpp)
DO2 (right motor) --- Arduino pinOdometryRight (see code: mini.cpp)   
NOTE: Set 'twoWayOdometrySensorUse = 1'

12. Stand-alone perimeter receiver and sender (for your own robot project)