Hello, Okay. So, I will go and research this idea more. I have been reading at python.org under classes so far. I just found the w3schools.com page for Python.
I will try this page online and return service if things are getting too odd for me. Seth P.S. Thank you. On Tuesday, May 5, 2020 at 5:22:17 PM UTC-5, jonnymo wrote: > > When you call the methods in the Pca9685 you need to pass the appropriate > parameters. > > Ex: > read_reg( self, reg ) > > You need to pass a reg value to this. > > * reg_val = some_reg_val* > > * read_result = x.read_reg(reg_val) * > > * print(read_result)* > > > I can't see the rest of your code so I am not sure if it will work or not. > > Search the web for Python3 tutorials. > > Jon > > On Tue, May 5, 2020 at 3:01 PM Mala Dies <[email protected] <javascript:>> > wrote: > >> Hello, >> >> Okay. >> >> So, I am using smbus2 in python3 for the communication of the i2c >> interface on the ServoCape (PCA9685). >> >> So: >> >> from smbus2 import SMBus >> from ServoLib import Pca9685 >> from time import sleep >> >> >> i2c2 = SMBus("/dev/i2c-2") >> x = Pca9685(i2c2, 0b111111) >> >> So, everything under this first section of my python source should work >> as described: >> >> x.__init__ >> x.read_reg >> x.write_reg >> x.read_regs >> x.write_regs >> x.get_pwm >> x.set_pwm >> >> >> Is this correct? >> >> Seth >> >> >> >> On Tuesday, May 5, 2020 at 4:09:33 PM UTC-5, jonnymo wrote: >>> >>> If you provide a link to the source of this that would help. >>> >>> But, basically in your own Python code you would first import the class >>> >>> Ex: >>> * from source_file import Pca9685* >>> >>> The you could create an instance of this like: >>> >>> * my_servo_control = Pca9685(bus_num, addr_val)* >>> >>> You could need to know the value of bus_num and addr_val to set these. >>> >>> Then you could call the methods as such: >>> *my_servo_control.read_reg(reg_val)* >>> >>> Again, you would need to know what the value of reg_val is to set the >>> 'reg' parameter for the 'read_reg' method. >>> >>> You still need to know where it is getting the '*write_i2c_block_data*' >>> and *'read_i2c_block_data*' methods from though. >>> Perhaps 'import smbus' is missing? >>> >>> https://learn.sparkfun.com/tutorials/python-programming-tutorial-getting-started-with-the-raspberry-pi/experiment-4-i2c-temperature-sensor >>> >>> >>> A course in Python wouldn't hurt. >>> >>> >>> Cheers, >>> >>> Jon >>> >>> >>> On Tue, May 5, 2020 at 1:29 PM Mala Dies <[email protected]> wrote: >>> >>>> Hello, >>>> >>>> I have a, to me, piece of complicated text in Python3 format. >>>> >>>> Anyway... >>>> >>>> I have been unable to make the conversion of the wrapper to another >>>> Python3 file. >>>> >>>> So, here is the source in case you are interested: >>>> >>>> from time import sleep >>>> >>>> # relevant registers >>>> MODE1 = 0x00 >>>> MODE2 = 0x01 >>>> LED = 0x06 >>>> ALL_LED = 0xFA >>>> PRE_SCALE = 0xFE >>>> >>>> class Pca9685: >>>> def __init__( self, bus, addr ): >>>> self.addr = 0b10000000 | addr >>>> self.bus = bus >>>> self.write_reg( MODE1, 1 << 5 ) # initialize MODE1 register >>>> sleep( 500e-6 ) # wait 500us to allow oscillator to power up >>>> >>>> def read_reg( self, reg ) >>>> return self.read_regs( reg, 1 )[0] >>>> >>>> def write_reg( self, reg, value ): >>>> return self.write_regs( reg, [ value ] ) >>>> >>>> def read_regs( self, reg, count ): >>>> assert reg in range( 0, 256 ) >>>> assert count in range( 1, 257-reg ) >>>> return self.bus.read_i2c_block_data( self.addr, reg, count ) >>>> >>>> def write_regs( self, reg, values ): >>>> assert reg in range( 0, 256 ) >>>> return self.bus.write_i2c_block_data( self.addr, reg, values ) >>>> >>>> def get_pwm( self, output ): >>>> assert output in range( 0, 16 ) >>>> reg = LED + 4 * output >>>> >>>> [ on_l, on_h, off_l, off_h ] = self.read_regs( reg, 4 ) >>>> on = on_l | on_h << 8 >>>> off = off_l | off_h << 8 >>>> >>>> phase = on >>>> duty = ( off - on ) & 0xfff >>>> if off & 0x1000: >>>> duty = 0 >>>> elif on & 0x1000: >>>> duty = 4096 >>>> >>>> return ( duty, phase ) >>>> >>>> def set_pwm( self, output, duty, phase=0 ): >>>> assert duty in range( 0, 4097 ) >>>> assert phase in range( 0, 4096 ) >>>> >>>> if output == 'all': >>>> reg = ALL_LED >>>> else: >>>> assert output in range( 0, 16 ) >>>> reg = LED + 4 * output >>>> >>>> on = phase >>>> off = ( duty + phase ) & 0xfff >>>> if duty == 0: >>>> off |= 0x1000 >>>> elif duty == 4096: >>>> on |= 0x1000 >>>> >>>> on_l = on & 0xff >>>> on_h = on >> 8 >>>> off_l = off & 0xff >>>> off_h = off >> 8 >>>> self.write_regs( reg, [ on_l, on_h, off_l, off_h ] ) >>>> >>>> Now... >>>> >>>> How would I actually use this source to promote a servo movement with >>>> the ServoCape? >>>> >>>> I have tried particular source from different tutorials, the python.org >>>> site, and examples of classes online. >>>> >>>> None really cover the BBB and expansion Capes like this source is >>>> listed. Anyway... >>>> >>>> What steps if any would you take to make a servo move w/ this Cape and >>>> source? >>>> >>>> >>>> - Would I need a Adafruit_BBIO library for GPIO/PWM or a similar >>>> library? >>>> >>>> Seth >>>> >>>> -- >>>> For more options, visit http://beagleboard.org/discuss >>>> --- >>>> You received this message because you are subscribed to the Google >>>> Groups "BeagleBoard" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> To view this discussion on the web visit >>>> https://groups.google.com/d/msgid/beagleboard/5e42131b-733f-413d-91e9-eb204e204f84%40googlegroups.com >>>> >>>> <https://groups.google.com/d/msgid/beagleboard/5e42131b-733f-413d-91e9-eb204e204f84%40googlegroups.com?utm_medium=email&utm_source=footer> >>>> . >>>> >>> >> On Tuesday, May 5, 2020 at 4:09:33 PM UTC-5, jonnymo wrote: >>> >>> If you provide a link to the source of this that would help. >>> >>> But, basically in your own Python code you would first import the class >>> >>> Ex: >>> * from source_file import Pca9685* >>> >>> The you could create an instance of this like: >>> >>> * my_servo_control = Pca9685(bus_num, addr_val)* >>> >>> You could need to know the value of bus_num and addr_val to set these. >>> >>> Then you could call the methods as such: >>> *my_servo_control.read_reg(reg_val)* >>> >>> Again, you would need to know what the value of reg_val is to set the >>> 'reg' parameter for the 'read_reg' method. >>> >>> You still need to know where it is getting the '*write_i2c_block_data*' >>> and *'read_i2c_block_data*' methods from though. >>> Perhaps 'import smbus' is missing? >>> >>> https://learn.sparkfun.com/tutorials/python-programming-tutorial-getting-started-with-the-raspberry-pi/experiment-4-i2c-temperature-sensor >>> >>> >>> A course in Python wouldn't hurt. >>> >>> >>> Cheers, >>> >>> Jon >>> >>> >>> On Tue, May 5, 2020 at 1:29 PM Mala Dies <[email protected]> wrote: >>> >>>> Hello, >>>> >>>> I have a, to me, piece of complicated text in Python3 format. >>>> >>>> Anyway... >>>> >>>> I have been unable to make the conversion of the wrapper to another >>>> Python3 file. >>>> >>>> So, here is the source in case you are interested: >>>> >>>> from time import sleep >>>> >>>> # relevant registers >>>> MODE1 = 0x00 >>>> MODE2 = 0x01 >>>> LED = 0x06 >>>> ALL_LED = 0xFA >>>> PRE_SCALE = 0xFE >>>> >>>> class Pca9685: >>>> def __init__( self, bus, addr ): >>>> self.addr = 0b10000000 | addr >>>> self.bus = bus >>>> self.write_reg( MODE1, 1 << 5 ) # initialize MODE1 register >>>> sleep( 500e-6 ) # wait 500us to allow oscillator to power up >>>> >>>> def read_reg( self, reg ) >>>> return self.read_regs( reg, 1 )[0] >>>> >>>> def write_reg( self, reg, value ): >>>> return self.write_regs( reg, [ value ] ) >>>> >>>> def read_regs( self, reg, count ): >>>> assert reg in range( 0, 256 ) >>>> assert count in range( 1, 257-reg ) >>>> return self.bus.read_i2c_block_data( self.addr, reg, count ) >>>> >>>> def write_regs( self, reg, values ): >>>> assert reg in range( 0, 256 ) >>>> return self.bus.write_i2c_block_data( self.addr, reg, values ) >>>> >>>> def get_pwm( self, output ): >>>> assert output in range( 0, 16 ) >>>> reg = LED + 4 * output >>>> >>>> [ on_l, on_h, off_l, off_h ] = self.read_regs( reg, 4 ) >>>> on = on_l | on_h << 8 >>>> off = off_l | off_h << 8 >>>> >>>> phase = on >>>> duty = ( off - on ) & 0xfff >>>> if off & 0x1000: >>>> duty = 0 >>>> elif on & 0x1000: >>>> duty = 4096 >>>> >>>> return ( duty, phase ) >>>> >>>> def set_pwm( self, output, duty, phase=0 ): >>>> assert duty in range( 0, 4097 ) >>>> assert phase in range( 0, 4096 ) >>>> >>>> if output == 'all': >>>> reg = ALL_LED >>>> else: >>>> assert output in range( 0, 16 ) >>>> reg = LED + 4 * output >>>> >>>> on = phase >>>> off = ( duty + phase ) & 0xfff >>>> if duty == 0: >>>> off |= 0x1000 >>>> elif duty == 4096: >>>> on |= 0x1000 >>>> >>>> on_l = on & 0xff >>>> on_h = on >> 8 >>>> off_l = off & 0xff >>>> off_h = off >> 8 >>>> self.write_regs( reg, [ on_l, on_h, off_l, off_h ] ) >>>> >>>> Now... >>>> >>>> How would I actually use this source to promote a servo movement with >>>> the ServoCape? >>>> >>>> I have tried particular source from different tutorials, the python.org >>>> site, and examples of classes online. >>>> >>>> None really cover the BBB and expansion Capes like this source is >>>> listed. Anyway... >>>> >>>> What steps if any would you take to make a servo move w/ this Cape and >>>> source? >>>> >>>> >>>> - Would I need a Adafruit_BBIO library for GPIO/PWM or a similar >>>> library? >>>> >>>> Seth >>>> >>>> -- >>>> For more options, visit http://beagleboard.org/discuss >>>> --- >>>> You received this message because you are subscribed to the Google >>>> Groups "BeagleBoard" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> To view this discussion on the web visit >>>> https://groups.google.com/d/msgid/beagleboard/5e42131b-733f-413d-91e9-eb204e204f84%40googlegroups.com >>>> >>>> <https://groups.google.com/d/msgid/beagleboard/5e42131b-733f-413d-91e9-eb204e204f84%40googlegroups.com?utm_medium=email&utm_source=footer> >>>> . >>>> >>> -- >> For more options, visit http://beagleboard.org/discuss >> --- >> You received this message because you are subscribed to the Google Groups >> "BeagleBoard" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/beagleboard/0a7798ae-13f3-453b-9963-78290a9c005f%40googlegroups.com >> >> <https://groups.google.com/d/msgid/beagleboard/0a7798ae-13f3-453b-9963-78290a9c005f%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> > On Tuesday, May 5, 2020 at 5:22:17 PM UTC-5, jonnymo wrote: > > When you call the methods in the Pca9685 you need to pass the appropriate > parameters. > > Ex: > read_reg( self, reg ) > > You need to pass a reg value to this. > > * reg_val = some_reg_val* > > * read_result = x.read_reg(reg_val) * > > * print(read_result)* > > > I can't see the rest of your code so I am not sure if it will work or not. > > Search the web for Python3 tutorials. > > Jon > > On Tue, May 5, 2020 at 3:01 PM Mala Dies <[email protected] <javascript:>> > wrote: > >> Hello, >> >> Okay. >> >> So, I am using smbus2 in python3 for the communication of the i2c >> interface on the ServoCape (PCA9685). >> >> So: >> >> from smbus2 import SMBus >> from ServoLib import Pca9685 >> from time import sleep >> >> >> i2c2 = SMBus("/dev/i2c-2") >> x = Pca9685(i2c2, 0b111111) >> >> So, everything under this first section of my python source should work >> as described: >> >> x.__init__ >> x.read_reg >> x.write_reg >> x.read_regs >> x.write_regs >> x.get_pwm >> x.set_pwm >> >> >> Is this correct? >> >> Seth >> >> >> >> On Tuesday, May 5, 2020 at 4:09:33 PM UTC-5, jonnymo wrote: >>> >>> If you provide a link to the source of this that would help. >>> >>> But, basically in your own Python code you would first import the class >>> >>> Ex: >>> * from source_file import Pca9685* >>> >>> The you could create an instance of this like: >>> >>> * my_servo_control = Pca9685(bus_num, addr_val)* >>> >>> You could need to know the value of bus_num and addr_val to set these. >>> >>> Then you could call the methods as such: >>> *my_servo_control.read_reg(reg_val)* >>> >>> Again, you would need to know what the value of reg_val is to set the >>> 'reg' parameter for the 'read_reg' method. >>> >>> You still need to know where it is getting the '*write_i2c_block_data*' >>> and *'read_i2c_block_data*' methods from though. >>> Perhaps 'import smbus' is missing? >>> >>> https://learn.sparkfun.com/tutorials/python-programming-tutorial-getting-started-with-the-raspberry-pi/experiment-4-i2c-temperature-sensor >>> >>> >>> A course in Python wouldn't hurt. >>> >>> >>> Cheers, >>> >>> Jon >>> >>> >>> On Tue, May 5, 2020 at 1:29 PM Mala Dies <[email protected]> wrote: >>> >>>> Hello, >>>> >>>> I have a, to me, piece of complicated text in Python3 format. >>>> >>>> Anyway... >>>> >>>> I have been unable to make the conversion of the wrapper to another >>>> Python3 file. >>>> >>>> So, here is the source in case you are interested: >>>> >>>> from time import sleep >>>> >>>> # relevant registers >>>> MODE1 = 0x00 >>>> MODE2 = 0x01 >>>> LED = 0x06 >>>> ALL_LED = 0xFA >>>> PRE_SCALE = 0xFE >>>> >>>> class Pca9685: >>>> def __init__( self, bus, addr ): >>>> self.addr = 0b10000000 | addr >>>> self.bus = bus >>>> self.write_reg( MODE1, 1 << 5 ) # initialize MODE1 register >>>> sleep( 500e-6 ) # wait 500us to allow oscillator to power up >>>> >>>> def read_reg( self, reg ) >>>> return self.read_regs( reg, 1 )[0] >>>> >>>> def write_reg( self, reg, value ): >>>> return self.write_regs( reg, [ value ] ) >>>> >>>> def read_regs( self, reg, count ): >>>> assert reg in range( 0, 256 ) >>>> assert count in range( 1, 257-reg ) >>>> return self.bus.read_i2c_block_data( self.addr, reg, count ) >>>> >>>> def write_regs( self, reg, values ): >>>> assert reg in range( 0, 256 ) >>>> return self.bus.write_i2c_block_data( self.addr, reg, values ) >>>> >>>> def get_pwm( self, output ): >>>> assert output in range( 0, 16 ) >>>> reg = LED + 4 * output >>>> >>>> [ on_l, on_h, off_l, off_h ] = self.read_regs( reg, 4 ) >>>> on = on_l | on_h << 8 >>>> off = off_l | off_h << 8 >>>> >>>> phase = on >>>> duty = ( off - on ) & 0xfff >>>> if off & 0x1000: >>>> duty = 0 >>>> elif on & 0x1000: >>>> duty = 4096 >>>> >>>> return ( duty, phase ) >>>> >>>> def set_pwm( self, output, duty, phase=0 ): >>>> assert duty in range( 0, 4097 ) >>>> assert phase in range( 0, 4096 ) >>>> >>>> if output == 'all': >>>> reg = ALL_LED >>>> else: >>>> assert output in range( 0, 16 ) >>>> reg = LED + 4 * output >>>> >>>> on = phase >>>> off = ( duty + phase ) & 0xfff >>>> if duty == 0: >>>> off |= 0x1000 >>>> elif duty == 4096: >>>> on |= 0x1000 >>>> >>>> on_l = on & 0xff >>>> on_h = on >> 8 >>>> off_l = off & 0xff >>>> off_h = off >> 8 >>>> self.write_regs( reg, [ on_l, on_h, off_l, off_h ] ) >>>> >>>> Now... >>>> >>>> How would I actually use this source to promote a servo movement with >>>> the ServoCape? >>>> >>>> I have tried particular source from different tutorials, the python.org >>>> site, and examples of classes online. >>>> >>>> None really cover the BBB and expansion Capes like this source is >>>> listed. Anyway... >>>> >>>> What steps if any would you take to make a servo move w/ this Cape and >>>> source? >>>> >>>> >>>> - Would I need a Adafruit_BBIO library for GPIO/PWM or a similar >>>> library? >>>> >>>> Seth >>>> >>>> -- >>>> For more options, visit http://beagleboard.org/discuss >>>> --- >>>> You received this message because you are subscribed to the Google >>>> Groups "BeagleBoard" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> To view this discussion on the web visit >>>> https://groups.google.com/d/msgid/beagleboard/5e42131b-733f-413d-91e9-eb204e204f84%40googlegroups.com >>>> >>>> <https://groups.google.com/d/msgid/beagleboard/5e42131b-733f-413d-91e9-eb204e204f84%40googlegroups.com?utm_medium=email&utm_source=footer> >>>> . >>>> >>> >> On Tuesday, May 5, 2020 at 4:09:33 PM UTC-5, jonnymo wrote: >>> >>> If you provide a link to the source of this that would help. >>> >>> But, basically in your own Python code you would first import the class >>> >>> Ex: >>> * from source_file import Pca9685* >>> >>> The you could create an instance of this like: >>> >>> * my_servo_control = Pca9685(bus_num, addr_val)* >>> >>> You could need to know the value of bus_num and addr_val to set these. >>> >>> Then you could call the methods as such: >>> *my_servo_control.read_reg(reg_val)* >>> >>> Again, you would need to know what the value of reg_val is to set the >>> 'reg' parameter for the 'read_reg' method. >>> >>> You still need to know where it is getting the '*write_i2c_block_data*' >>> and *'read_i2c_block_data*' methods from though. >>> Perhaps 'import smbus' is missing? >>> >>> https://learn.sparkfun.com/tutorials/python-programming-tutorial-getting-started-with-the-raspberry-pi/experiment-4-i2c-temperature-sensor >>> >>> >>> A course in Python wouldn't hurt. >>> >>> >>> Cheers, >>> >>> Jon >>> >>> >>> On Tue, May 5, 2020 at 1:29 PM Mala Dies <[email protected]> wrote: >>> >>>> Hello, >>>> >>>> I have a, to me, piece of complicated text in Python3 format. >>>> >>>> Anyway... >>>> >>>> I have been unable to make the conversion of the wrapper to another >>>> Python3 file. >>>> >>>> So, here is the source in case you are interested: >>>> >>>> from time import sleep >>>> >>>> # relevant registers >>>> MODE1 = 0x00 >>>> MODE2 = 0x01 >>>> LED = 0x06 >>>> ALL_LED = 0xFA >>>> PRE_SCALE = 0xFE >>>> >>>> class Pca9685: >>>> def __init__( self, bus, addr ): >>>> self.addr = 0b10000000 | addr >>>> self.bus = bus >>>> self.write_reg( MODE1, 1 << 5 ) # initialize MODE1 register >>>> sleep( 500e-6 ) # wait 500us to allow oscillator to power up >>>> >>>> def read_reg( self, reg ) >>>> return self.read_regs( reg, 1 )[0] >>>> >>>> def write_reg( self, reg, value ): >>>> return self.write_regs( reg, [ value ] ) >>>> >>>> def read_regs( self, reg, count ): >>>> assert reg in range( 0, 256 ) >>>> assert count in range( 1, 257-reg ) >>>> return self.bus.read_i2c_block_data( self.addr, reg, count ) >>>> >>>> def write_regs( self, reg, values ): >>>> assert reg in range( 0, 256 ) >>>> return self.bus.write_i2c_block_data( self.addr, reg, values ) >>>> >>>> def get_pwm( self, output ): >>>> assert output in range( 0, 16 ) >>>> reg = LED + 4 * output >>>> >>>> [ on_l, on_h, off_l, off_h ] = self.read_regs( reg, 4 ) >>>> on = on_l | on_h << 8 >>>> off = off_l | off_h << 8 >>>> >>>> phase = on >>>> duty = ( off - on ) & 0xfff >>>> if off & 0x1000: >>>> duty = 0 >>>> elif on & 0x1000: >>>> duty = 4096 >>>> >>>> return ( duty, phase ) >>>> >>>> def set_pwm( self, output, duty, phase=0 ): >>>> assert duty in range( 0, 4097 ) >>>> assert phase in range( 0, 4096 ) >>>> >>>> if output == 'all': >>>> reg = ALL_LED >>>> else: >>>> assert output in range( 0, 16 ) >>>> reg = LED + 4 * output >>>> >>>> on = phase >>>> off = ( duty + phase ) & 0xfff >>>> if duty == 0: >>>> off |= 0x1000 >>>> elif duty == 4096: >>>> on |= 0x1000 >>>> >>>> on_l = on & 0xff >>>> on_h = on >> 8 >>>> off_l = off & 0xff >>>> off_h = off >> 8 >>>> self.write_regs( reg, [ on_l, on_h, off_l, off_h ] ) >>>> >>>> Now... >>>> >>>> How would I actually use this source to promote a servo movement with >>>> the ServoCape? >>>> >>>> I have tried particular source from different tutorials, the python.org >>>> site, and examples of classes online. >>>> >>>> None really cover the BBB and expansion Capes like this source is >>>> listed. Anyway... >>>> >>>> What steps if any would you take to make a servo move w/ this Cape and >>>> source? >>>> >>>> >>>> - Would I need a Adafruit_BBIO library for GPIO/PWM or a similar >>>> library? >>>> >>>> Seth >>>> >>>> -- >>>> For more options, visit http://beagleboard.org/discuss >>>> --- >>>> You received this message because you are subscribed to the Google >>>> Groups "BeagleBoard" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> To view this discussion on the web visit >>>> https://groups.google.com/d/msgid/beagleboard/5e42131b-733f-413d-91e9-eb204e204f84%40googlegroups.com >>>> >>>> <https://groups.google.com/d/msgid/beagleboard/5e42131b-733f-413d-91e9-eb204e204f84%40googlegroups.com?utm_medium=email&utm_source=footer> >>>> . >>>> >>> -- >> For more options, visit http://beagleboard.org/discuss >> --- >> You received this message because you are subscribed to the Google Groups >> "BeagleBoard" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/beagleboard/0a7798ae-13f3-453b-9963-78290a9c005f%40googlegroups.com >> >> <https://groups.google.com/d/msgid/beagleboard/0a7798ae-13f3-453b-9963-78290a9c005f%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> > -- For more options, visit http://beagleboard.org/discuss --- You received this message because you are subscribed to the Google Groups "BeagleBoard" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/beagleboard/b2c36b1b-a3b6-4d43-bc3e-66a2cd47bb96%40googlegroups.com.
