Adding XM radio to XBMC
#1
i want to be able to add xm radio support to xbmc. i have all the protocol info for the pcr format of the xm radio receiver/decoder. this will involve getting the xbox to tx/rx through a serial port to this receiver, i am thinking a serial-usb converter. i have a lot of hardware experience, embedded et al, i am not worried about the hardware end of things.

frodo: are you the creator of the frodoplayer?

anyone have any comments?

i have the xbmc sources compiling. i've had a look through the sources and things dont seem to complicated...well organized!
Reply
#2
damn.. sounds like you're trying to do the same thing as i am... except, you actually have some sorta clue as t owhat you're doing...
i have pretty close to no experience with hardware.. but i have a lil with coding... very little although
if i'm thinking right...
the only diff between our projects is that i want to make a usb radio tuner where as you want to add some sorta serial thingy madoodle

you say you have alot of hardware?
maybe you could help me with some hardware stuff
Reply
#3
unless your truely a guru of some sort, and truly a amazing programmer, you should no that writing a driver of usb is dam near impossible. so you should kinda worry bout the hardware side of things.
do a search for "usb" for find out why
read the xbmc online-manual, faq and search the forums before posting! do not e-mail the xbmc-team asking for support!
read/follow the forum rules! note! team-xbmc never have and never will host or distribute ms-xdk binaries/executables!
Reply
#4
i have been programming since grade 3 and doing electronics since grade 6, so i have had some experience. i am 30 now.

i will be using an fpga logic device to implement the hardware. this device will implement usb and contain the serial ports, xm interface, general io, etc. google fpga, then see http://opencores.org, this site contains logic blocks for usb & serial interfaces amongst many other cool things. to start i will use an off the shelf usb-serial converter, the chip i have has full docs.

i am quite familiar with the workings of usb electrically and driver wise. i havent made a windows usb driver before but it cant be that hard considering the xbox main usb code is there (vis keyboard & controller support).

pdg1: i want to put am/fm in it too, i'm keeping my eyes open for an am/fm tuner module with microcontroller interface. i see them in the tv tuner cards so they must be avail. perhaps you could do some research here and find one of these modules.

if anyone has electronics skills i would like to delegate some work, like pcb layout, etc.

i am working on getting an opus 120w dc-dc power supply in my xbox now. this will allow me to efficiently run my xbox off the car battery without an inverter. its not working with my 1.6b xbox. the delta power supply in this version is not easily adapted to atx power. (specifically, the 5v supply must be standby mode power and atx 5v standby cant supply the power.) i am thinking my 1.0v xbox will work though, its main 5v supply is not standby power. will know in the next few days.

will keep my progress updated here.

c
Reply
#5
hey man... i should have gotten an e-mail when you replied but for some silly reason i didn't...
yea, i really want to learn some more about this... i was also thinking that i might be able to go a bit farther with the project(after i get the am/fm tuner working) so that it also includes one of those antenna wachima's so that you could hook up some rabbit ears, cable, satelite or pretty much anything with that connecter. maybe even other consoles. the software that would go with it would be able to record into some sorta format, i haven't looked into this too much because i haven't even gotten the am/fm side of things to work yet... i know this is probably one of those impossible dreams...and i really don't know what the hell i'm getting myself into... or how much work this will be... but i promised myself that i would do this, and i would have fun at it.
so yea, i know this one guy who works @ a college around me, hopefully i'll get to ask him a bunch of questions involving it, maybe even be able to drag him into this

i'm not sure if i completely understand what you're trying to do... what's this about a serial port?
you're changing the port on the xbox to a serial port?
what would be the benefit of this?

if you want to tal more about this e-mail me ryan.pdg1[at]gmail.com
Reply
#6
i would like to keep the discussion on here if possible. i find that there isnt much information on this sort of thing on the internet so hopefully keeping the convo here might draw in more people.

many of the peripherals that i want to add to the xbmc uses a serial interface. such as the xm receiver module & gps receivers. yes, at some point in the future i want to add gps nav. for now, would be happy with the xm radio. the fpga chip can implement both serial and usb interfaces, so i would use the fpga device to implement 3 or so serial ports and then comunicate with the xbox through a controller port (which is usb). th fpga would also act as a usb hub for devices like mouse, keyboard and touch screen. i also want to interface to the car's ecu and get the engine metrics too - re: see need for speed ii movie.

opencores.org has the serial and usb function blocks. these function blocks are essentially a programming language but targeted at programmable logic devices instead of microprocessors. these code files are the same type of files that are used to design asic or logic chips and microprocessor cores. they typically come in one of two standard flavors vhdl or verilog. people are in fact making full blown custom processors out of fpga ics by coding in vhdl and/or verilog. opencores.org has many risc and cisc implementations as well...all open-source/free! put these function blocks together and you have your own custom logic chip that does exactly what you want. need to change the logic? no problem, reburn the fpga. its like having reprogrammable logic circuitry!

this chip is perfect for this design because it can connect directly to the xbox and directly to serial and other usb devices. it can then also provide general io, for say engine metrics or control other remote devices or switch and dial panels like volume, tuning, source, etc. the pcb wouldnt need to change often as the fpga can be reprogrammed to add new functionality. also, people could download different fpga binaries depending on what systems/devices they are going to interface with or what make/model ar they have (for different ecu interfaces).
Reply
#7
this sounds pretty cool. how about sirius radio? would it be compatible with what you're planning? what would need to be done differently for that to work?

i'm willing to help out. i have next to no experience hardware-wise but i can help code.
Reply
#8
wahoo! i just got my version 1.0 xbox to work with my opus 120w dc-dc power supply. i am now running my xbox in my suv directly off the battery - no inverter! unfortunately, the opus power supply will not work with version 1.6/1.6b xbox's as thier power supply is different and requires the main 5v supply to be supplied in off(standby) and on mode. the atx 5v standby power cant supply the current.

fyi: i also did some current measurements. here are the amp/wattage requirements as measured with my amp meter. i attached the amp meter between the battery lines of the opus ps, so measurements are overall current requirements. peak measurements are not true peak, but peaks i noticed on the meter. the input voltage was 19v (my laptop power adapter for testing), thus my wattage calcs were based on that and p(w)=va. i later did hook it up to the car battery --- noticed the opus ps ran cooler off the lower input voltage. (it is a switching power supply though.)

plain motherboard (no hd or dvd-rom plugged in)
2a nominal = 39w

motherboard + hd (no dvd)
2.45a nominal
during hd spinup 3a peak, 57w
during a graphics/cpu intensive game 2.7a peak, 51w

motherboard + hd + dvd-rom
gaming 2.8-3a, 53.2w-57w
playing dvd movie 2.75a, 52.25w
overall nominal power = 57w

i havent broken down the different voltages on the power cable but the opus power supply will supply 8amps to both 3.3v & 5v, and 8 for 12v so obviously enough power there. the opus power supply seems well suited to the task. you might be able to use a lower rating power supply but the one in the xbox is 90w (85 some models) so i wouldnt go below that. i cant measure real peak currents so 57w should be taken as nominal rating and expect some spike demands under certain situations.

i am going to change the hard drive for a small laptop hard drive to further reduce the current requirements and to fit the xbox back together. the opus ps mounts well inside but it doesnt allow the hd rack to fit back in.

two tricks to adapting the opus ps (an atx dc-dc ps). first, i used a 74ls04 hex inverting buffer to invert the ps on line from the xbox mb to the power supply. the xbox supplies 3.3v on ps on (white wire) line to turn on ps, the hex buffer accepts this 3.3v input voltage and outputs 5v signals on the other side to the opus (opus wants inverted signals, i.e. expects gnd to turn on ps).

the second trick was to use a small 3.3v linear regulator (like natsemi lm3940 or ld1117 - i used the tiny sot-223 package) to regulate the 5v standby (from opus supply) to 3.3v and feed this into the 3.3v sb (standby) on xbox mb (brown wire). i measured the current requirements of this 3.3v sb (brown wire) using the standard ps and it was 50ma.

the ps ok line (blue wire) can come directly from the 3.3v line on the opus supply, this 3.3v voltage is only supplied during ps on state, so it is not suitable as a source for the brown wire (3.3v sb) and the reason the 3.3v regulator is required.

i put both of these parts inline with the cable and covered them with shrink tubing. i will post a wiring diagram within a few days as well as a pic of the finished mod'd xbox.

i'm stoked! :-)

colin
Reply
#9
i have no idea how sirius works. i am more motivated to get xm going, but the electronics i have to design (namely the fpga device) could interface to serius too if someone snoops the protocols. the xbmc xm ui code would be almost exactly the same i would think.

c
Reply
#10
also, i had a look at the xbox driver docs...there are none. the xtl (xbox api) does not support usb driver development or usb devices besides voice headsets, light guns and controlers, mem cards. so from here the options are:

linux usb device driver wrapper: port linux usb hci drivers to xbmc from gentoox or xebian. hopefully these drivers are somewhat self contained or easily adapted. i hope they use raw calls to the usb chipset rather than going through any cromwell bios service. xinitdevices() would not be (must not be) called and the keyboard, mouse and xbox controller drivers from xebian would be used as input instead and xbmc modified to take thier input from there (instead of xtl polling). this option has the best future expandability for xbmc since a wrapper for linux usb device drivers would facilitate adding any kind of usb device we want to add to xbmc that has linux support!

get the fpga usb interface to act like a controller, keyboard (using extended codes), or voice headset. wanky, dont like this option, cant gaurantee that i wont run into a roadblock late in the game.

make the fpga look like a usb memory card with the fatx filesystem. functions/devices would look like files on the mem card. this isn't a bad option but puts a lot more logic/mem demands on the fpga as it must implement a fatx filesystem.

for the work, the linux device wrapper seems like the best option. the device driver for the fpga custom card could then be developed and debugged inside of xebian or standard linux installation. also, i know others will want to get xbmc to communicate with other usb devices later like usb cameras, tv tuner cards, etc. i notice the linux library loader is already ported so some work is already done. this usb device wrapper i think is a separate thread then this one.

comments?

c
Reply
#11
the linux device wrapper idea sound great. it would be sweet to be able to use usb tv tuner cards with xbmc in the future..
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.
Reply
#12
well that kinda blows that there aren't any drivers...but then again, i guess ol ms wasn't planning on anyone needing to make any more drivers for the box

ookay... i think i found something that might help

http://www.engr.uconn.edu/ece....ts.html

try that ftdi module

although.. these guys are coding for pc... and they're using hal

and you're not... i think...
but then again, what do i know...
Reply
#13
Exclamation 
(guru @ june 17 2005,17:46 Wrote:linux usb device driver wrapper: port linux usb hci drivers to xbmc from gentoox or xebian. hopefully these drivers are somewhat self contained or easily adapted. i hope they use raw calls to the usb chipset rather than going through any cromwell bios service. xinitdevices() would not be (must not be) called and the keyboard, mouse and xbox controller drivers from xebian would be used as input instead and xbmc modified to take thier input from there (instead of xtl polling). this option has the best future expandability for xbmc since a wrapper for linux usb device drivers would facilitate adding any kind of usb device we want to add to xbmc that has linux support!
i'm not a developer but agree porting usb drivers from linux would be the best way to go (look at xbox-linux and other linux-dist), but also checkout openxdk, free-xdk and sdlx code too
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.
Reply
#14
im no developer either but im pretty sure its impossible to port from linux to run in xbmc. xbmc isnt linux based in any way. it run's completly on the xdk
read the xbmc online-manual, faq and search the forums before posting! do not e-mail the xbmc-team asking for support!
read/follow the forum rules! note! team-xbmc never have and never will host or distribute ms-xdk binaries/executables!
Reply
#15
([email protected] @ june 22 2005,15:54 Wrote:xbmc isnt linux based in any way. it run's completly on the xdk
er, don't you think we know that?, but that doesn't make it impossible, the word "porting" means making something designed for one platform work on a other platform :hmm:
(know xbmc contains much code and libraries that where not meant to work on a win32/directx c++ platform but their code have been ported and is now working just fine)


@guru/greif/pdg1, if you're looking for fm-radio (and/or dab-digital-radio) reciever/tuner chips that can be obtained online checkout philips semiconductors components (link)
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.
Reply

Logout Mark Read Team Forum Stats Members Help
Adding XM radio to XBMC0