Overview of the Fabric Shield (rev1.0)

Fabric Shield is the main printed circuit board (PCB) in Hackabot Nano Robotic Kit. It connects Arduino Nano compatible controller to many peripheries (like motors, ultra sonic distance sensor, gyroscope, audio jack, GPS, Bluetooth, WIFI, RF module, micro SD module, I2C breakout boards and other analog sensors.

fabric_shield_rev1_s

Power

According to Arduino.cc, recommended input voltage (VIN) range for Arduino Nano Board is 7-12V if it is standalone although the limits are 6-20V. However, the DC motors that come with the robotic kit is rated 6V (max). In our lab test, the robot is still functional with input voltage as low as 5V although it is not recommended.

There are two ways to connect power to the Fabric Shield. First way is through the 2.1mm DC power jack ( see diagram below). The other way is to use the screw terminals (blue ones) that are next to the power jack.

WARNING: Please double check the polarity of the power and connections of the modules before turning on the power as it could severely damage the robot if they are not hooked up properly. On the other hand. please do not unplug any module while power is on.

fabric_shield_power_connections

 

There are two voltage regulators on the Fabric Shield converting input voltage to 5V and 3.3V for the controller and various sensors.

The controller

Arduino Nano operates at 5V. There are level shifters converting the voltage levels between the IO pins of the controller and the WIFI, Bluetooth and GPS modules. Those modules operates at 3.3V.

There are two 15×2 female headers in the middle of the Fabric Shield. The inner rows of the headers are for the Arduino Nano controller. The outer rows are for users to insert Dupont cables for prototying.

fabric_shield_arduino_headers

 

Mini USB port of the controller should be facing right as shown below.

hackabot_arduino_nano_connections

It is highly recommended to unplug the controller from the Fabric Shield before programming. This eliminates the possibility of damaging other circuits during programming.

programming_arduino_nano

Motor Driver

The motor driver is L293D and it is located between the female header rows mentioned earlier. Digital pins from Arduino Nano supply up to 40mA per pin, which is not enough to drive motors. In HackABot Nano, digital pins 3, 6, 9 and 10 of the Arduino Nano controller connects to L293D and through L293D, they drive the motors or other power hungry devices (like Speakers, LED strips and etc.). Current capacity is 600mA per channel (1.2A peak).  Please keep in mind that the power supply (e.g.  battery) may limit the amount of current available. Voltage level at the output of the motor driver is the same as the input voltage (VIN) that is supplied to the Fabric Shield. 

These pins (D3, 6, 9 and 10) are also PWM (Pulse Width Modulation) pins. It means that the duty cycle (ratio between on and off duration of the signals) could be programmed and maintained by the controller.  It is very useful for controlling the speed of DC motors, brightness of LED strips and etc.

There are two ways to connect the motors. First is to use the screw terminals.

fabric_shield_motor_screw_terminals

The other way is to connect the to male header pins highlighted below. There are two header pins allocated for each output of the motor driver. For example, the purple pins are both connecting to D6 (digital pin 6 after motor driver). Yellow ones are for D9.

hackabot_motor_pins

As a result, up to 4 DC motors could be hooked up to the Fabric Shield like the picture below:

_MG_2239

Ultrasonic Distance Sensor

HC-SR04 is the ultrasonic distance sensor used in this robot. There is a 4×1 female header on the right side of the Fabric Shield to connect to the sensor.

arduino_ultronic_sensor_hc_sr04

hackabot_nano_hc_sr04

This sensor operates at 5V. ‘Trig’ and ‘Echo’ pins are connecting to A1 and A0 pins of Arduino Nano controller respectively.

GPS

The GPS (Global Positioning System) module chosen is GY-NEO6MV2, which operates at 3.3V. TX and RX pins of the GPS module are connecting to the digital pins 4 and 5 of Arduino Nano respectively after level shifters (5V / 3.3V converters)

In the diagram above, there is a 4×2 female header in the area marked “GPS”. Please use the lower row to connect to the GPS.

The upper row connects to 5V (left), A1 , A0 and GND (right) respectively.

Micro SD card

Above the GPS connector, there is a 6×1 female header for connecting to the Micro SD card module. GND pin is on the right side of the 6×1 header.

Radio Frequency Module

Above the Micro SD card headers, there is a 2×4 female header. It is for connecting RF module (nRF24L01).

WIFI / Bluetooth

WIFI or Bluetooth can be used in Hackabot Nano. Since they share the UART pins (digital pins 0 and 1) , only one of them can be used at a time. In the picture below, the 4×2 female header is for the WIFI module (ESP8266). The 4×1 female header below that is for the Bluetooth module.

Both WIFI and Bluetooth modules operates at 3.3V. Level shifters (on the left of the headers) are used to convert the voltage level between Arduino Nano controller and the modules.

fabric_shield_WIFI_Bluetooth

 

Analog Sensors

At the bottom edge of Fabric Shield, there are 4 sets 1×3 male headers. They are for connections to analog sensors (not included in Hackabot Nano Robotic Kit). A0, A1, A6 and A7 pins are 5V I/O pins of Arduino Nano. Pins with ‘-‘ and ‘+’ are GND and 5V respectively.

Since A0 and A1 pins are used by Ultrasonic Distance Sensor, these 2 pins couldn’t be used for analog sensors when the ultrasonic distance sensor is plugged in.

Gyroscope and I2C

On the top edge of the Fabric Shield, there are connectors for 6-axis Gyroscope/Accelerometer (MPU-6050) and I2C headers. They operates at 5V. In the picture below, the 2×4 female header is for I2C. First row is 5V. 2nd row is GND. Third row is SCL (analog pin A5). The forth row is SDA (analog pin A4).

The 8×1 female header is for MPU-6050. Only 5 pins (IRQ, SDA, SCL, GND and 5V) are actually used. The other 3 pins of MPU-6050 (ADO, XCL and XDA) are unconnected.

fabric_shield_i2c_gyro_audio

 

Audio Jack

There is a 3.5mm audio jack above the Gyroscope headers. Analog pin A3, 5V and GND are hooked up to the audio jack. It is possible to supply enough current (up to ~1A) through this port (5V). This is enough to power devices like Raspberry Pi. A3 pin could be used as digital Input/Output or analog Input pins.

Mounting Holes

There are plenty of holes in Fabric Shield. The holes at the 4 corners are mainly for mounting the DC motors and standoffs. There are two bigger holes near GPS header pins and audio jack for running wires through the Fabric Shield.