I plan to use P8.13 and P8.15 of the beaglebone in a i2c bitbang mode. Do i need to use external pull up resistors in my circuit? or can i use the internal pull up which is available on the beaglebone black itself?
It depends on how big the pull-up resistor is and how fast you want to go with I2C. If Beaglebone designates those pins as usable for I2C, the internal pull-up resistor is most likely sufficient.
Generally, the smaller the pull-up resistor, the faster is the rise of the signal to
1, but when driving a
0, there is also higher consumption. To understand this better, think about the extremes; what would be the behavior if the pull-up resistor is 0? How about infinite?
To be perfectly sure, you need an oscilloscope. With the frequency at which you want to communicate over I2C, drive a square wave over the pin configured with pull-up and check to see if the signal rises "fast enough".