Category: Uncategorized

The BTS7960 is a high-current full-bridge motor driver module. The Key features are:

  • Input voltage: 6V to 27V
  • Maximum allowable current: 43 A
  • PWM capability: up to 25 kHz
  • Two PWM output pins for speed control in direct and reverse directions
  • Two EN output pins to control motors
  • Two IS input pins to protect against high current and heat

BTS7960 is a fully integrated high current half bridge for motor drive applications.
This contains one P- channel high side MOSFET and one N channel low side MOSFET with
an integrated driver IC in one package.

This module can be used to drive  2 wire huge current Motors .Not suitable for Stepper Motors .

In this post we will be using a huge current Motor 24v 250Watts like this :

A separate power source is required for this Motor.

24v 10Amp Metal SMPS is used for this source

This module has 12 pins:

Microcontroller pins (Low current):

  • VCC: Module power supply – 5V
  • GND: Ground
  • IS-R: Input signal for detecting high current – Straight rotation
  • IS-L: Input signal for detecting high current – Inverse rotation
  • EN-R: PWM Signal for controlling motor speed – Straight rotation
  • EN-L: PWM Signal for controlling motor speed – Inverse rotation
  • PWM-R: for controlling motor RIGHT direction
  • PWM-L:  for controlling motor LEFT direction. 

Motor pins (High current):

  • M+: Motor Positive
  • M-: Motor negative
  • B+: Battery positive
  • B+: Battery negative
  • You cannot overload the BTN7960B to destruction. It will overheat and safely shut off. Then restart when it cools and the Enable line is pulsed low then high . Under voltage Shut Down: To avoid uncontrolled motion of the driven motor at low voltages the device shuts off . If the Supply voltage  drops below 5.4V , The Motor driver will switched Off , And won’t turned on untill the Supply voltage increased to 5.5V Or more .
  •  Over temperature Protection: The BTS 7960 is protected against over temperature by an integrated temperature sensor. Over temperature leads to a shut down of both output stages.
  • Current Limitation : The current in the bridge is measured in both switches, High and Low side.If the current reaching the limit current  the switch is deactivated and the other switch is activated for a certain time.
  • To get the Motor to move in an H-bridge the Enable inputs should be held high and PWM-A and PWM-B should be different polarity.
  • Don’t pulse the enables and hold the PWM inputs at a DC level. Some old driver chips can do this. The BTN7960B doesn’t work that way.
  • The naming convention is bit confusing.
  • R PWM & L PWM pins can be pulled HIGH or LOW to enable Direction of Rotation.
  • R-EN  & L-EN pins are used for speed control using PWM.Generally , these 2 pins are connected together to a PWM pin of Arduino. AnalogWrite command is used to control speed.

Connect the Motor red wire to M+ and black wire to M-.

Connect B+ of module to positive of 24v 10amp power source . B- to negative of SMPS.

Make use of thick copper wires for power connection as the motor takes high current.

The module has  8 control pins.

Vcc is connected to 5v of Arduino & Gnd to Gnd of Arduino.

R_IS & L_IS are for current limit alarm outputs, which are not used in this demo.

R_EN & L_EN ins are Right,Left speed control pins .Both are connected together to D11 of Arduino. Note that we use a PWM enabled pin of Arduino for this.

L_PWM is connected to D10 ,  R_PWM is connected to D9. These 2 pins decide the direction control of the motor.

Now upload the following code to Arduino.

To run the motor in CW direction we make R_PWM pin High and L_PWM pin Low.

To make the motor run in CCW –   R_PWM pin Low and L_PWM pin HIGH.

To stop the motor both pins are made LOW.

Speed is controlled using ANALOGWRITE function where the PWM pin is given a value from 0 to 255.


#define RPWM 9
#define LPWM 10
#define PWM 11

void motor_cw(){              //CLOCK WISE
  digitalWrite (LPWM, LOW);
  digitalWrite (RPWM, HIGH);
  analogWrite (PWM, 255); // 0- 255  
  Serial.println (“MOTOR RUNS CW”);
void motor_ccw(){              //ANTI CLOCK WISE
  digitalWrite (LPWM, HIGH);
  digitalWrite (RPWM, LOW);
  analogWrite (PWM, 255);
  Serial.println (“MOTOR RUNS CCW”);

void motor_stop(){          //motor stop
  digitalWrite (LPWM, LOW);
  digitalWrite (RPWM, LOW);
  analogWrite (PWM, 0);
  Serial.println (“STOP”);
void setup() {
pinMode (RPWM, OUTPUT);
pinMode (PWM, OUTPUT);
pinMode (LPWM, OUTPUT);

void loop()




Image 4


In these days of Virus spread , automatic hand sanitizer and auto water tap are the need of the hour.

This is a very simple and low cost effective circuit without a Microcontroller.

Water pump or Water Solenoid can be controlled for dispensing sanitizer or water automatically when hand is brought near the sensor.

Sensor used here is an IR MODULE.

Image 3


The IR sensor module is built on  IR Transmitter and Receiver, Opamp, Variable Resistor &  output LED indicator. IR LED Transmitter is white or transparent in colour,and emits infra red light invisible to human eye.IR Receiver is a photo diode black in color to absorb more light.

IR rays reflected from object is sensed by this receiver and current flow is proportional to the amount of Light. This property makes it useful for IR detection.

A LM358 or 386 comparator is on board and gives a LOW signal while detecting IR.

Normally Output pin is HIGH and becomes LOW on any intruder object.The blue trimpot can be adjusted for sensitivity.

The board operates on 5V DC , and we need a 7805 regulator to convert 12v to 5v.

Image 2


The main device in the circuit is the 4 leg IC OPTOCOUPLER PC817.

It is the cheapest IC available and price is less than a 555 IC.


It has inbuilt  Infrared Emitting Diode (IR LED) and a photo transistor . It is Enclosed in a 4 pin package.

The photo transistor’s base becomes activated when LED conducts and throws light on it. When the current flowing through the LED is interrupted, the infra-red emitted light is cut-off, causing the photo-transistor to cease conducting. The photo-transistor can be used to switch current in the output circuit.

The black DOT is pin 1 which is ANODE of Diode.


The output of OPTO drives a Transistor and in turn the solenoid.

The transistor we use is a NPN  BD139.


Image 7

  • Continuous Collector current (IC) is 1.5A
  • Collector-Emitter voltage (VCE) is 80 V
  • Collector-Base voltage (VCB) is 80V
  • Emitter Base Breakdown Voltage (VBE) is 5V
  • DC current gain (hfe) is 40 to 160

To the collector of BD139 is added the load (solenoid or water pump) through supply voltage.

When BD139 conducts , it switches ON the solenoid.

A diode 1n4007 is used across the coil of solenoid.

A    FLY BACK Diode is placed with reverse polarity from the power supply and in parallel to the relay’s inductance coil. The use of a diode in a relay circuit prevents huge voltage spikes from arising when the power supply is disconnected. A flyback diode is sometimes called flywheel diode, relay diode, or snubber diode as a flyback diode circuit is a type of snubber circuit.

The solenoid used for water tap is the one widely used in water coolers.

Normal working voltage is 24v DC , but it works fine on 12v.

Image 5


The valve features a solenoid, which is an electric coil with a movable ferromagnetic core (plunger) in its center. In the rest position, the plunger closes off a small passage. An electric current through the coil creates a magnetic field. The magnetic field exerts an upwards force on the plunger opening the passage.

This is the basic principle that is used to open and close solenoid valves.

The hole size of 1/4 , 1/2 inches available.

Smaller size ones used for sanitizer dispenser and the bigger ones for water tap.

Instead of solenoid you can replace with a pump motor also.

Image 6

This is a low cost, small size Submersible Pump Motor which can be operated from a 2.5 ~ 6V power supply. It can take up to 120 liters per hour with very low current consumption of 220mA. Just connect tube pipe to the motor outlet, submerge it in water and power it. Make sure that the water level is always higher than the motor. Dry run may damage the motor due to heating and it will also produce noise.

The final circuit requires a 12v supply .

The IR module used here is sensitive to Sun Light.So always cover the IR LEDs with a black sleeve or tape and adjust sensitivity by turning the blue trimpot.

When hand is brought near the IR circuit , it sends a LOW signal to OPTO coupler.

This conducts the BD139 and in turn operates the solenoid or pump.






The mini OLED 0.96 in display is 128 x 64 pixels and communication protocol is I2C.

There is also a SPI version which has more pins 6 or 7.

The I2C model has only 4 pins Vcc,Gnd,SCL & SDA.

The supply volt is 3.3 to 5v. As an I2C device it has got an address , by default it is 0x3C or decimal 60. This can be changed by soldering the position of a resistor on the back of pcb.



Connect Vcc of OLED to 3.3v, Gnd to Gnd

SCL  –>  GPIO 22

SDA  –> GPIO 21


Resolution of display is 128 x 64 pixels. 0 to 127 in X axis and 0 –63 on Y axis.



MicroPython provides some built-in support for these displays, and a simple framebuffer which can be used as a drawing surface.

However, we still need a driver to interface the buffer to the display.

There is a Python ssd1306 module for OLED displays available.This is python library for interfacing OLED (both I2C & SPI supported).

Click on Raw button and save as file on your computer.This save as appears only in Chrome browser.


Use File  –> Open and browse to the location to select the file.

Click File  –>  Save as

Select Micropython device (ESP32)



Save the file as

Now the driver module is on ESP32.


By default already you have

Now we have loaded the driver


From interpreter of Thonny Python , the individual code can be tested.

From machine module import Pin , I2C

Pin Class handles all GPIO pins and I2C handles i2c protocol..

Then import the OLED driver module ssd1306.



To use the display you first need to create an I2C interface. In MicroPython I2C is  via a software implementation so you can select any GPIO pins you like.

We shall select the default SCL pin GPIO 22 &  SDA pin GPIO 21.




Then create an oled object from class SSD1306_I2C

as this class is inside file ssd1306, we use


The arguments are  128 – width , 64 – height , i2c – protocol, 0x3c – address




Once the object is instantiated , the methods can be used.

.text() method is to print message on display.

Pass on the message to print and the X,Y coordinates.

.show() method is used to show the message from buffer to display.

Unless you issue this , you cannot see the result.




The framebuffer class provides support for writing text using a simple 8×8 bitmap font. The pixel x,y positions are relative to the top-left of the 8×8 character, so positioning at 0,0 will give the absolute top left of the screen.

Here we have selected x= 30, y =30 POSITION.




To CLEAR the display we call   fill ( 0) method an then show()




To draw an illuminated  line. Origin  Origin (10,10) and final (80,20)

For illuminated , we use 1 at end





Draw an illuminated horizontal line. Origin (5, 30) width 100 pixels




Draw an illuminated filled rectangle. Origin (20,10) and width x height 60×40 pixels






The ssd1306 object itself  provides methods for direct control of the display component.

The display can be turned on and off using

oled.poweron() and oled.poweroff() respectively.



You can set the contrast for the display using

.contrast() passing in parameter c which is a value between 0 and 255. This controls the contrast between the foreground, active colour 1 and the background 0.


To invert the display, switching foreground and background colours, call .invert(1).

Calling .invert(0) will return the display to how it was originally. You can use this for display-flashing visual effects:


Download code and library module from here :

After testing OLED using interpreter , we shall write code on to EDITOR of Thonny Python.


Save this file as on Micro Python device.

Now you have 3 files on ESP32



Micropython executes on power on , then looks for to execute.

Click on F5 to execute and see the result on OLED display.

Video :




Check out my previous posts on WIFI ESP8266 1.AT COMMANDS  ,  2. TCP CLIENT/SERVER

In this post we shall see how to connect ESP module with an ANDROID Mobile device & communicate.

On ESP side following are the AT commands to configure :

AT+CWLAP   –  Lists all surrounding Access Points

AT+CWJAP = “SSID”,”password”     – Join with your preferred AP


AT+CIPMUX=1     Allow multiple connections

AT+CIPSERVER=1,80   start the SERVER on port 80

AT+CIFSR    to get the STATION IP Address



On your Android Mobile open SETTINGS & switch ON WI FI




Surrounding Access Points will be listed automatically.Select the one to which the ESP module has joined already.Here it is MBLAZE , which is a secured one.




Open the preferred WIFI access point & connect to it by providing the Password.



Now , my Mobile has connected to the Access point where ESP is already connected with.




From the Market , install a TELNET client on your Mobile



Open the TELNET Client

TELNET waits to get the Local Host IP & the Port number.



Enter the IP as & Port as 80  .

This IP is the one we got from AT+CIFSR previously & we’ve started a Server on port 80 already with ESP.

Touch on Connect to Server


Now the TELNET Client is connected to the ESP server on port 80.

Type in some characters & touch Enter




The characters are received by the ESP Module



To send data to TELNET ,use the AT command


This command is to send 15 characters on channel 0




The message is received by the TELNET screen.








First time in India , VEGA ROBOKITS has engineered a development board universal to both AVR & 8051 ICs.The board has in built Programmer capable of programming both AVR & 8051 family ICs.




A 40 pin ZIF socket is used as Target to hold the 8051 IC. Additional 40 pin ZIF socket with modified connection is provided to host AVR ICs.This additional ZIF socket should be placed over the on- board ZIF socket to use AVR ICs.








To start with we shall see how to use this board for 8051 development.

Select switch 1 to USB position ,if you connect the board to PC using A to B USB cable.Now the power is taken from USB itself. If this switch is selected to other side , the board needs an external 12v/1A adapter.

Select the ISP switch (switch 2 near the middle of board) to ON position.This makes sure that you’re going to program the chip .

Put the jumper (found on top of I2C EEPROM IC) on 8051 position.


WILPRO’s WLAR software is used as an application to fuse the HEX files.Download the zip file from :

No installation is required.It is a standalone application.

Download the drivers required for this board from :

Unzip the driver file & double click on  “PL2303_Prolific_DriverInstaller_v1.10.0 “  EXE file to install the drivers.

Connect the USB cable of board to PC & open the DEVICE MANAGER.

If the PORT allotted is within range 1 to 9 , you can start the WLPRO application and proceed to load HEX file.

If the port allotted is a double digit , then WLPRO will enter DEMO mode .Only in ON LINE Mode you can load the HEX file.




To solve this , RIGHT CLICK on the port allotted inside Device Manager & select PROPERTIES.




Click on ADVANCED button under PORT SETTINGS.



From the DROP DOWN you can select a PORT number between 1 & 9  &  click OK.

If the port number is not free , you can try overwriting the pre allotted port number & confirm.








After PORT setting to single digit  , open the WILLAR software . Now you can see ONLINE MODE at the bottom of screen.



Click on DEVICE button & select the target device as AT89S51@ISP 

If you select plain AT89S51 , DEVICE ID ERROR will be returned while programming .So make sure to select the ISP version as device.

Image 6

Click on LOAD button & browse to the location of the HEX file to be fused.Select the HEX file & then click OPEN.




On the next LOAD FILE window leave the File type as “INTEL HEX” & CLICK ok.



You’ll see LOAD FILE SUCCESSFUL display.

Image 7


Now click on the PROGRAM button on the left pane.



Programming is DONE & you get Program Successful display.

Image 8


If you click the AUTO mode button , all functions like Erase,Blank check ,Program,Verify & code copy Protect will be done automatically one by one.

Image 9

To test the program loaded , change the switch 2 to ISP OFF position .Push RESET button to see the result of blinking LED .




Select USB ON (switch 1)

Select the ISP (switch2) to ON position.

Put the Jumper on top of I2C chip to AVR position.

Place the converter socket on the ZIF socket & lock it.Make sure that the handles of sockets match.Do not place the socket in REVERSE as it may damage the target IC.


Image 15


Ensure to select ISP version of IC & not the plain one.

Image 11


Select File type as INTEL HEX & click OK.


Image 12


Click on LOAD & browse to the location of AVR HEX file .

Click OPEN to LOAD the file.

Image 13


After LOAD SUCCESSFUL display click on PROGRAM to fuse the file.


Image 14


Watch this support video  :



For availability of this board contact :


cooltext753793315   cooltext753790696

2014 in review

The stats helper monkeys prepared a 2014 annual report for this blog.

Here’s an excerpt:

Madison Square Garden can seat 20,000 people for a concert. This blog was viewed about 67,000 times in 2014. If it were a concert at Madison Square Garden, it would take about 3 sold-out performances for that many people to see it.

Click here to see the complete report.

Previous post Minipro 866 CS

In this post we shall review the second model of MINIPRO UNIVERSAL PROGRAMMER .This is same as the 866CS model but has the ability to program “IN CIRCUIT”. ICSP programming involves programming the chip leaving it on the existing board itself.This saves the hard work of removing the chip from board and again fixing it.

We shall see how to program PIC16F877A leaving the target IC on the demo board itself.The ZIF socket on programmer is not used & ICSP connector is used instead.

Open the MINIPRO IDE & select the target IC as PIC16F877A.


Instead of 40P Adapter selection (which is default) we’ll select the ICSP port seen under “Set Interface” & ensure that ICSP VCC is Enabled.If this is not enabled then a separate power source is needed for the target demo board.

Click on OK.


Now click on the INFORMATION button seen at the right top corner.

This will display the ICSP connection details between the programmer & the target board.

As the readymade wire supplied with the programmer may not match with all target boards , it is better to use separate wires.Here our target board has male berg pins.So Female to Female Jumper wires are used for the connections.


No separate power source is required for the target demo board as we’ve selected ICSP_VCC Enable.


To load the HEX file on to the buffer click File à Open & browse to the HEX file location.



Confirm that INTEL HEX is selected under File Format of File load Options & All Memory selected under To Region


Now click OK to see the HEX file loaded to the buffer .



  Click the P button on top to initiate Programming


Finally click on the Program button.


You can see the Programming Progressive bar.


Finally PROGRAMMING SUCCESSFUL message appears.



For Programming ATMEL 89Sxx ICs the procedure is same as above.The ICSP connections are known by clicking the INFORMATION button .


Once the connections are done as per the diagram , the HEX file developed using KEIL can be loaded on the buffer.Then Program can be done.

For AVR ICs following is the ICSP connection detail



MINIPRO 866A is a must have tool for all Embedded enthusiasts and Lap Top service Engineers.

The huge support of IC list and ICSP functionality makes it the most value for money product.Note that other manufacturers offer these support for a cost of around Rs.25000/- while the cost of MINIPRO 866A is around 5500/- & if you do not need ICSP ,it is only Rs.4500/- (866CS model).

Watch this support video :

All these days I’ve been using the classic Windows Movie Maker for producing tutorial videos.Recently I purchased this CYBERLINK POWER DIRECTOR 13 for creating videos.This is the first video created using power director.You can leave the comments on the video.



For availability contact :

cooltext753793315 cooltext753790696

In a previous post we’ve seen a Universal Programmer TOPWIN which is capable of programming 8051,PIC,AVR,EEPROM ,EPROM,etc.. But the main problem with TOPWIN is its incompatibility with 64 bit Operating System & Windows 8 .

In this post we shall review an excellent Universal programmer MINIPRO 866 from AUTOELECTRIC Co. that works on all platforms including 32/64 bit Windows 8 .



Two models are available MINIPRO 866 CS & MINIPRO 866 A.

The 866 A has an additional advantage of ICSP – In Circuit Serial Programming – a real awesome support for ON board programming of SMD chips.

ICSP now supports ATMEL89S51,52, ATMEGA- AVR whole series and MICROCHIP PIC10F, 12F, 16F, 18F whole series,SYNCMOS SM59Dxx / SM59Rxx full range.

Minipro programmer delivers outstanding performance in supporting nearly 13k + devices that other similar products like Topwin are not capable.


Download the IDE version 6.10 from :

Always download the latest version as the list of support ICs is updated frequently.

Start the installation file by double clicking MiniProV610setup.exe application.

You can leave it to default location or browse to a preferred one.





Click on INSTALL to confirm USB Driver installation.



Click “Install this driver software anyway “ to bypass Windows verification.


Click FINISH to complete the installation.



Now connect the Hardware unit to the USB port .Under Device Manager you can see the device name as “MiniIProWdf” if the installation went through smoothly.


You’re all set to start the Programming.Open the IDE & if you get Reflash Firmware window , just click on Tools à Reflash Firmware from the IDE to install the latest updates

Obviously you should connect the hardware to the USB & your internet connection should be ON for this process.If there is no access to internet the Reflash Firmware window appears again.




Once the Reflash is successful , click on the “Cancel” button. (Yes it is not OK button ,it is Cancel button) !!

We shall see how to program PIC 16F877A IC .

Under Select IC à click Search and Select IC.


Under Type select MCU/MPU & start typing “PIC16F” inside the ‘ search device’ space bar.All the related PIC ICs will be displayed on the right pane.Select the target IC as , PIC16F877A.

Click on Select.


Ensure that 40 pin adapter is selected on top .Later we’ll see how to work with ICSP.


Click on “Information” button at the right top corner to learn how to place the chip on the ZIF socket.According to the diagram place the IC on the socket , pin 1 is always near the handle.


Lock the handle by pressing it down.

By clicking under DEVICE ,you can perform initial check for the IC .Blank check can be done & if you want to erase the chip , click ERASE


Following is the screenshot of Chip Erase function :


To load the HEX file on to the buffer click File à Open & browse to the location where you’ve stored the HEX file that is to be fused on to the target chip.


Select the HEX file & click Open.


The File Load Options should be in the File format “INTEL HEX” .The Binary option is to load a “bin” file.Here confirm INTEL HEX is selected.


Under DEVICE click on PROGRAM to start fusing the HEX file.


On the next Chip Program window click “Program”.




You can see PROGRAM SUCCESSFUL if the fusing is finished.

To make a copy of a chip say, EPROM 27C256 following is the method :

Select Device as 27c256 using Search Device bar.



Click on the Information button & place the Master IC on to the ZIF socket as per the diagram.


Ensure that the VPP Voltage at the bottom of the screen is selected according to programming voltage of the chip (mostly it is 13.5 or 12v)



Click the “R “ button to READ the chip to the buffer.



Now remove the MASTER chip from the ZIF socket & place the SLAVE IC .This IC should be a fresh blank one or erased one under UV light.

Click on the “P” button on the top to start copying the data on the buffer to the chip.


Same way you can make copy of PIC ,AVR or 8051 Microcontrollers.Remember that , if the source IC is previously LOCKED ,you can’t make a copy.

To program SMD ICs & other QUAD package ICs you can buy Converters on which this IC is mounted.


In the next post we shall review the ICSP model of MINIPRO 866.

Watch this demo video :


Universal Programmer MINIPRO 866CS for all PIC,AVR,8051,EPROM,….


For availabilty of this programmer contact :

cooltext753793315    cooltext753790696

My YouTube channel is back


Happy to inform that YouTube has considered reactivation of my video channel & return all my subscribers & views back as it was earlier.

Thank you You Tube !!

You can expect more & more educational videos from now on…. 

In the previous posts  I’ve  described in detail how to dual Boot Windows 8.1 with Ubuntu Linux.Link here.

In this post I shall demonstrate the steps of dual booting Windows 8.1 with Fedora 20 Linux.


Download the 64 BIT ISO image of FEDORA 20 from here :

Create a live DVD from this iso image.If you do not know how to create a live DVD read on this

" href=’">" href="">" href=""> ‘> The Live DVD can be created using a freeware burner software BurnAware

Following are the steps in creating the dual boot :

1. Create a Recovery media of Windows 8.1 with a 16GB pendrive.You can type on the Tiles window “Recovery “ & select “Create a Recovery Media”.Follow the instructions to create the media.

2. Create an Unallocated space from the Disk Management window.To open this type in “Disk “ on Tiles window & select “Create & Format hard disk partitions”.

Right click on C:\ drive & shrink the volume.Here I’ve created 100GB unallocated space to host Fedora Linux.

3. Windows 8.1 has advanced boot process which does not allow a dual booting.We’ve to disable 2 features of Windows.First is the Fast Start up.Type in “Power “ on Tiles window & select Power Options”.

Select the option which says “Choose what the power button does “ & then click on “Change settings that are currently unavailable “.

Scroll down & Uncheck the option “ Turn On fast startup” . Save the changes.

4. Finally we’ve to Disable the SECURE BOOT of Windows.

Move the mouse to the Right bottom corner to open the Charms bar.Open the Settings & under Power button select the Restart.

Keep pressing the SHIFT key & then click on Restart .

Now  the Advanced options screen opens.Select Troubleshoot & then click on Advanced Options.

Click on UEFI FIRMWARE Settings & then Restart


Under SECURITY tab of UEFI setup DISABLE the SECURE BOOT option & Exit saving changes.

5. Now place the Live DVD & Restart. To boot from the DVD go to the Charms bar  (right bottom corner) & select settings.

Under Power button select Restart.Keep pressing the SHIFT key , click on Restart.

On the advanced screen select USE A DEVICE & then select EFI DVD/CDROM to boot from the DVD.

Start Fedora Live & select Install to Hard drive.Follow the instructions till you get the Dual boot screen.Fedora installation is automatic  and much easier to dual boot than Ubuntu.

Watch this video on Step by step method in Dual booting process :