BookBeaming

From OLPC
Revision as of 17:57, 17 March 2008 by Danielfuhry (talk | contribs) (Description & Goals)
Jump to: navigation, search
Xo s.png
pre-alpha

Description & Goals

Summary

BookBeaming receives static content using a conventional World Space satellite radio.

Status

SERVICE NOT AVAILABLE

The prototyp works with the TONGSHI DAMB-R Radio and the Africa Learning Channel. As of 26.01.08 any active audio stream can be tapped and recorded. This was however not the original purpose. Since January the prototyp is broken due to changes in the codewords used. Specifications appear to be nonpublic.

First Voice International is now looping an announcement on the ALC frequency.

First Voice International regrets any inconvenience caused to Africa Learning Channel Listeners in West Africa by the December first 2007 cessation of programming as we are upgrading our broadcast services.

We expect to resume broadcasting again soon.

Please rescan your receivers to find the new spot on the dial for the Africa Learning Channel starting next month.

We apologise again for the disruption of your African Learning Channel listening this may have caused.

Goals

Access to a wide range of content from the weather report to health care.available content (archive.org)

Collaboration

Sharing one satellite radio could bypass satellite radio shortage in an particular areas.

other ideas

Some of the receivers are equipped with a FM transmitter. (frequencies 87.7, 88.1, 87.9, 107.5, 107.7, 107.9) Not working on either battery or USB power. Othere issues signal is too weak (theoretically it could be possible to increase the signal strenght in a firmware or hardware modification)

example source code for audio

Records the current channel via usb. Requires pyusb. It is possible to use this for recording data transmissions. (data still needs to be reformated according to codewords)

import usb
import struct
def opendevice(idVendor, idProduct):
   devices=[]
   for b in usb.busses():
       for d in b.devices:
           if d.idVendor==idVendor and d.idProduct==idProduct:
               devices.append(d)
   if len(devices)==1:
       device=devices[0]
       return device
   elif not devices:
       raise "Device not found"
   else:
       raise "More than one device found"
def read(dh):
 try:
        r = dh.bulkRead(0x00000082,0x40,10)
 except:
        return read(dh)
 return struct.pack(64*'b',*r)
if __name__=="__main__":
   device1=opendevice(0x174e, 0x5357)
   dh=device1.open()
   dh.claimInterface(0)
   flob=open('out.mp3','wb')
   while 1==1:
                buffer1 = read(dh)
                buffer2 = read(dh)
                d = "".join([buffer1, buffer2])
                #print repr(d) console out
                flob.write(d)
   fileobj.close()

See also

Peripherals/Satellite_Broadcasting