Teardown: Nvidia Shield TV - Page 1
Forum section: electronics / general

author: NiHaoMike
author_rank: Super Contributor
timestamp: December 08, 2015, 08:37:54 am
content: Best Buy had a sale on the new Nvidia Shield TV for $150 including the remote on Black Friday. I managed to get one and it's a pretty interesting device. While not advertised as a PC, it certainly can be used as one and in fact can hold its own against somewhat more expensive x86 systems especially in graphics capability. Like all popular Android devices, there's a DIY community around it at places like XDA. What appears to be missing are some good teardown photos, so let me fix that!Here's the I/O board:Aside from all the connectors, it also has the Ethernet controller and the input voltage regulator.Here's the motherboard:What's interesting is that it looks as if it was designed to go into a small tablet or something and is about the size of a credit card. The connector near the bottom supplies the 5V from the voltage regulator on the I/O board to run it and the array of golden pads are for the data signals. The only other connections are the wireless antennas and the CPU cooling fan.Now time for the controller:This one is really interesting given the mix of parts used. There's an Atmel chip on the main board and two different PICs on the touch button boards.The remote appears to be glued shut so no teardown of that.

author: miguelvp
author_rank: Super Contributor
timestamp: December 08, 2015, 09:52:40 am
content: I have the original Shield (now called Shield portable sporting a Tegra 4) and the Shield TV (with a Tegra X1), I did skip the Shield tablet but I do have a Jetson TK1 (with the Tegra K1 chip).Shield TV is a 8 core in a big.LITTLE configuration with 4 high performance high power cores and 4 low performance low power cores running at about 2GHz. (Edit: forgot, 64 bit cores)It also has 256 CUDA cores using Nvidia's Maxwell architecture running at 1,000 GHz (Edit: maybe 1,600GHz) and can go beyond 1 TeraFlop (F16) using less than 10W.USB 3.0802.11ac 2x2 MIMO 2.4 GHz and 5 GHz Wi-Fi.It's about twice as powerful as an XBox 360 and can do OpenGL 4.4 (not that ES mobile subset, although it does support that as well)Supports GeForce Now so you can stream PC games from Nvidia's servers to your home for $7.95/month, or for free streaming from your PC if it has a GTX650 or better.Can broadcast your gameplay to twitch for native and GeForce Now games.You can make use of the full features of Unreal Engine 4 (not the mobile only, the full thing).If you are interested in developing for it, more info here:https://developer.nvidia.com/develop4shieldNvidia Nshight Tegra allows you to develop using Visual Studio including the free Community Edition.Not sure if they offer CuDNN (deep learning neural network API like OpenNN/OpenDNN) for it but I think it has Physx, bunch of other tools like the Tegra Graphics Debugger, System profiler, CUDA, OpenCVhttps://developer.nvidia.com/codeworks-androidThat thing is a beast, not sure if it still draws 10 Watts while doing heavy graphics, didn't measure the power consumption but just got it last week and I don't own a killawatt to measure it.Also to develop and get most of the tools you gotta register as a developer with Nvidia. So for the people that are very private, forget about itI'm leaving lots out.Edit: leaving out things like 4K output at 60Hz (full HDMI 2.0), 3GB DDR4 with 26GB/s transfer rates, 256KB (average per core high performance have 512KB per core low performance 64KB) L2 cache.Edit2: The SoC chips is not cheap at all, the Tegra K1 I think it goes for about $90 or so in medium quantities, not sure about the X1 since they don't show on mouser and the like.

author: MT
author_rank: Super Contributor
timestamp: December 08, 2015, 05:00:32 pm
content: Heck! this thing runs Linux to! Interesting!

author: miguelvp
author_rank: Super Contributor
timestamp: December 08, 2015, 05:56:47 pm
content: Quote from: MT on December 08, 2015, 05:00:32 pmAndroid as far as I know.There is such a thing as L4T (Linux 4 Tegra) that runs on the Jetson dev kits.Nothing prevents you from porting it and run it on the Shield TV I guess, but I don't think there is going to be any official support for that.Jetson TK1, Jetson TX1: Linux officially supported, Android not supported.Nvidia Shield Tablet (K1) Shield TV (X1): Android officially supported, Linux not supported.Same SoC so it's possible to port one to the other. I think the boot loader is U-Boot for the Jetson.But if you are going to try to run L4T (Ubuntu) on the Shield, make sure you unlock the bootloader so you don't brick your device. I'm not planning to do that since I have a Jetson and a Shield so I don't know how you go about installing L4T on the Shield and still allow you to revert the changes later on.

author: Dongulus
author_rank: Regular Contributor
timestamp: December 08, 2015, 06:39:04 pm
content: Great! Now you can drop your living room out of a plane.

author: miguelvp
author_rank: Super Contributor
timestamp: December 08, 2015, 06:47:50 pm
content: Yeah, marketing wank.For the bad about the Shield TV is that the UI is an Android TV style, so it won't let you install some apps because the thing doesn't have a touch screen.You can still use other apps with the use of the sideloader app, a file manager app and a usb mouse. The shield portable allowed you to use one of the thumb sticks to act as a mouse and of course it did have touchscreen.So it's annoying for simple things like opening a web browser (i.e. chrome) with just the controller or the remote.Also if you have chrome sideloaded it seem the voice search doesn't quite work (but haven't tried clicking on the microphone with the mouse because I didn't hook one up).

author: MT
author_rank: Super Contributor
timestamp: December 08, 2015, 07:31:28 pm
content: Quote from: miguelvp on December 08, 2015, 05:56:47 pmThanks for info!

author: NiHaoMike
author_rank: Super Contributor
timestamp: December 09, 2015, 05:54:09 am
content: What I'm wondering about now is how easy would it be to add a HDD. There is an official version with it but the extra $100 for 500GB is quite a ripoff when 2TB 2.5" HDDs go for about that much. Someone on XDA tried adding one with no luck, so I'm wondering if it's because he didn't add the coupling capacitors or if there's something else going on. Like is that empty spot for a BGA on the back side of the motherboard where the SATA controller would go?

author: miguelvp
author_rank: Super Contributor
timestamp: December 09, 2015, 06:06:02 am
content: Quote from: NiHaoMike on December 09, 2015, 05:54:09 amWhat I recall there is an unpopulated headeron the I/O board next to the power connector (J504 on your picture) that requires a custom flex cable.I found some pictures here:http://forum.xda-developers.com/shield-tv/general/sata-header-16gb-model-internal-hdd-t3137960So if you can find the cable I guess it would be possible.Edit: added the picture since on that link it's pretty small unless you zoom in, also not sure if there are some capacitors there because the image resolution is pretty bad:One thing to take in consideration is that an external USB3.0 drive could be added, but to take full advantage the system should allow installing apps to external storage which is not the case now.I also have the SSD model instead of the HDD one.Edit: I guess purchasing the PRO model would be best and then upgrade the drive, but not sure what that would entail as far as the software install.

author: miguelvp
author_rank: Super Contributor
timestamp: December 09, 2015, 06:20:39 am
content: By looking at the picture I added above, it seems the PRO versions have a serial number on the board as well not shown on your teardown pictures.But yours is revision J and that picture is revision HEdit: but If you just want to add media content (as in videos) and external USB 3.0 drive will do.

author: miguelvp
author_rank: Super Contributor
timestamp: December 09, 2015, 06:59:49 am
content: More images of the PRO from:http://forum.xda-developers.com/shield-tv/help/nvidia-shield-console-android-tv-t3046490/page8Maybe someone in the forum that has an Nvidia Shield PRO can take higher res images.

author: NiHaoMike
author_rank: Super Contributor
timestamp: December 09, 2015, 07:10:57 am
content: There are definitely some capacitors there. It's too bad he doesn't show the back side of the motherboard since maybe there's a SATA controller on the version with the HDD.The external drive is definitely a solution, but it would be neater to have the drive inside the unit. Just part of the fun of hacking stuff, I suppose.

author: miguelvp
author_rank: Super Contributor
timestamp: December 09, 2015, 07:19:30 am
content: As I recall the SoC has SATA capabilities, would tell you more but the information is available for registered developers. Edit: registration is free btw so go at ithttps://developer.nvidia.com/embedded/downloadsTegra X1 (SoC) Data Sheet for Jetson TX1Edit: andTegra X1 (SoC) Technical Reference Manual

author: miguelvp
author_rank: Super Contributor
timestamp: December 10, 2015, 12:50:11 am
content: On the link above you could use the information from the Jetson TX1 carrier board to see what is needed.Check the following document:Jetson TX1 Developer Kit Carrier Board Specificationand get the schematics, gerbers etc from the zip attached to the link named:Jetson TX1 Developer Kit Carrier Board Schematic and Layout FilesOnce extracted look in:P2597_B02_Concept_schematics.pdfP2597_B02_OrCAD_schematics.pdfIf you have an allegro viewer check:P2597_B02_Allegro_layout.brdEdit: "Allegro Free Physical Viewer" from Cadence can open the brd file. SATA connector is in the left of the schematic towards the bottom.Since both the Jetson TX1 and the Nvidia Shield TV use the same SoC, the design should be about the same but you should double check with the Tegra X1 (SoC) Technical Reference Manual document for details, and maybe other docs in the downloads page.For the data lines, they are differential pairs for TX and RX and the caps seem to be 10nF 25V 10% X7R COMMON (no part number on the BOM excel file available also in the downloads link). Those are the 4 unpopulated ones (maybe 0402?)For the power, the concept schematic differs from the OrCad one, and without seeing what is populated on the PRO version because of the poor quality of the image I wouldn't know what you need. But if you get your developer sign-in you should be able to look yourself.I guess you could measure the voltage at the pins to find the 3.3V 5V and 12V. Also I don't know what it would need to put the SATA drive to sleep, but all with all the documents in there I guess you could figure it out.But once you get the drive connected how are you going to transfer the image to it, I guess that would be another hurdle. I think I've seen some posts somewhere on the developer forums about the procedure of initializing and placing the image on the Shield TV Pro. Also the Image might not be in the drive at all and held in the system flash.I'm not prepared to mess with mine, so do the mod at your own riskEdit: also, since the SATA_TX_P/N and the SATA_RX_N/P are differential pairs surrounded by grounds for signal integrity with the negative of the differential in the center of the data connector and separated by a ground pin, it would probably be wise to respect the grounds needed in the connector and probably use some shielded twisted pairs, unless you want to strip a SATA connector to reuse it. On top of that the grounds on the power connector should probably be respected as well to avoid any problems with the power rails.

author: miguelvp
author_rank: Super Contributor
timestamp: December 10, 2015, 01:28:15 am
content: One last thing.A higher resolution image of this area would be helpful to see the traces of the diff pairs:Edit: If I had to guess I would think the connector on the bottom from left to right would be:GND, SATA_TX_P, SATA_TX_N, GND, SATA_RX_N, SATA_RX_P, GND, followed by the SATA power pins and associated grounds, but the footprint has 20 pins and the SATA Data and Power need 22 total, so maybe the SATA power grounds for pins 11-13 are combined into one, but I'm just guessing.And on the PRO image it seems like C525, C532 and C533 are not populated either, but maybe there is a 5th 0402 decoupling 10nF cap populated on the left of the J504 silkscreen label for some power related trace. Then again it could be a 0 Ohm resistor for all we know.

author: NiHaoMike
author_rank: Super Contributor
timestamp: December 23, 2015, 08:25:27 am
content: I finally decided to open up the remote. It took a while to get it apart, but I managed to do it.Interesting to note that the boards are not as dense as might be expected for such a compact device, especially the one with the USB and audio connectors on it. There's a CSR (now part of Qualcomm) Bluetooth SoC, a MAX97220A headphone amplifier with built in charge pump, a Cypress microcontroller, what appears to be some unidentified voltage regulator, and a serial Flash chip for the firmware. No idea what the Cypress chip is doing since the SoC appears to have everything needed.A good part of why I opened the remote was to see if I could fix the noisy audio output that makes it sound like cheap onboard audio. I ended up adding 180R resistors in series with the output and that was enough to make the noise floor not so obvious. I did the same for the game controller (as well as up the coupling caps from 33uF to 100uF) and it made a pretty substantial difference in audio quality. The interesting part is that while the remote uses Bluetooth, Nvidia appears to be using some proprietary protocol for audio that sounds better than ordinary Bluetooth audio. The datasheet for the SoC indicates it can do 96kHz sample rate.

author: miguelvp
author_rank: Super Contributor
timestamp: December 23, 2015, 09:04:10 am
content: Quote from: NiHaoMike on December 23, 2015, 08:25:27 amThat's a PSoC4000, probably doing the capsense for the volume control and button inputs.16MHz CortexM016KB flash2KB SRAMIt also have I2C, one comparator with internal voltage reference to measure voltage and two current DACs (one 7 bit one 8 bit).It also has a 16 bit PWM.http://www.cypress.com/file/139976/downloadMaybe it does some I2C communication and controls some LEDs as well. No programmable digital nor programmable analog either.They are Automotive certified, so since NVidia seems to be targeting the Automotive infotainment sector, its probably one of those chips they just have around so they used it for the remote.It's probably one of the cheapest ones Cypress offers with capsense.Scratch the Automotive rating, it's the same chip but not automotive certified. But they probably have it all figured it out with the Automotive counterpart.

author: AlxDroidDev
author_rank: Frequent Contributor
timestamp: December 23, 2015, 12:30:27 pm
content: Quote from: miguelvp on December 08, 2015, 09:52:40 amSo they do what Steam Link does.Actually, if you have a gaming rig + a notebook, you can do that for free (no additional fees and no additional hardware), streaming games from the gaming rig to the notebook on the living room using Steam. Even my dual GTX480 can do that, w/o the need to upgrade to a GTX600-series. That's how I play on the living room: gaming-console confort with all the benefits of the PC gaming ecosystem (inexpensive games from Steam, high-quality graphics from a SLI setup).Am I correct to suppose this NVidia device only runs Android games? If so, I still prefer Steam Link, simply because of the much higher quality of the games.Now, for everything else other than gaming, this seems like a cool device, and you got it for a great price.

author: miguelvp
author_rank: Super Contributor
timestamp: December 23, 2015, 12:54:23 pm
content: For what is worth it can ran all of the Unreal Engine 4 Demos, like Elements for example and the two guys seemly going to a fight.This thing can do OpenGL 4.5, I'm not talking about the mobile OpenGL ES, but the full thing.But to port games to this platform due to the low power consumption something must give, so you gotta be smarter on your texture bandwidth and don't send huge materials that will never show their full texel size anyways, just because you can and because it's more costly to optimize resources.In any event, Tegra seems to be doubling up every year. Now 256 Maxwell Cuda cores (Unified GPU architecture capable to handle DX12 as well) running at 1GHz on the GPU front with a 64 bit 8 cores CPUs running at 2GHz.Also DDR4 right now and USB 3.0. SATA PCIe, etc all under 10W and all in a semi small System on a Chip.So what's coming?But for streaming games, well.. all the magic happens at the GPU rendering it (at least if using NVidias Grid or GPUs) they can stream video out before it even makes it into the display reducing latency by a lot.Others do video capture adding even more latency, Steam Link probably uses Nvidia's tech, and so it seems is the case with Playstation Now.But yeah, for the receiving end, you just need a TV that can decode H.265 or whatever they are using and a fast interface to the remote controller.Heck now Nvidia has game sharing on beta and you only need a Chrome browser to play remote using your friends computer over the net, or doing co-op.What do they know? well I think if they are pouring all those resources to mobile chips and Epic is supporting the effort, and studies claim that young kids (not teens) tend to prefer mobile devices and the mobile industry for gaming is catching up fast to console on revenue, and... can go on.Anyways, yeah, cool device, don't buy itBut I got it to keep up just in case things shift, since I do console development and in this industry you gotta keep swimming.Will it take over? Not yet, but I do want to be ready when it doesEdit: Heck, Carmack seems to agree, he has been focusing a lot on mobile graphics for the last couple of years, what does he know?He even left to Oculus so he can develop a better mobile engine.

author: NiHaoMike
author_rank: Super Contributor
timestamp: December 23, 2015, 03:50:15 pm
content: Quote from: miguelvp on December 23, 2015, 09:04:10 amOdd since the datasheet for the SoC clearly says that it has capacitive touch.

author: miguelvp
author_rank: Super Contributor
timestamp: December 23, 2015, 04:26:40 pm
content: Maybe when Cypress claims they have "Best in Industry" capsense they really mean itBut of course they all say that phrase all the time.I do like that volume control, they do have good designers for a company that didn't use to make consumer products I'm pretty pleased with their designs.

author: verbosetextfile
author_rank: Newbie
timestamp: May 19, 2016, 06:56:27 pm
content: I know I'm late for this, but in case someone is still interested in using the unpopulated SATA connector in the 16GB version of the shield: I got it workingHowever, I'mnotgoing to test this with Android - I'm too lazy for that(I guess it should work though, at least with rooted Android - I guess it should be easy to format the drive and mount a few partitions somewhere or so.)(I'm sorry for any spelling/grammar/wording mistakes, English is not my first language...)BEFORE TRYING ANYTHING READ THIS COMPLETE POST! I'm not good at telling all the important things in a reasonable order.Obviously you'll loose your warranty, it's easily possible to break your Shield beyond repair (short circuits etc.), you'll have to expect complete data loss, it's probably possible to brick it by flashing something wrong (make sure you can access the bootloader without any OS interaction (e.g. WITHOUT "adb reboot bootloader") - you'll probably need to reflash everything in case something goes wrong and you'll want to use the bootloader for that). Use common sense: You should probably only do that when you have a bit of experience in soldering tiny stuff and you should certainly not try to do this when you never soldered anything before. (And remember: the worst case scenario is that you'll have to buy a new Nvidia Shield.) (I guess you already know this/thought of that but you know, just in case...)I wouldn't recommend doing this though - if you want a SATA port get the PRO version. (I did this because I thought I wouldn't need an SATA connector but after some time it turned out that it would be nice.)(Note: You'll probably need to adjust a few commands.)The four capacitors above the "J504"-label are rated 10nF (that's probably some standard for SATA - I found capacitors with the same capacity on two different motherboards connected to the SATA connector).The pins are (left to right, left being the side where the power pins are): [here are the pins of the power connector], GND, B+ (receive), B- (receive), GND, A- (transmit), A+ (transmit), GND.(naming according to this page:http://pinoutsguide.com/HD/serialATA_pinout.shtml)I connected the SATA solder pads to a SATA connector (taken from an old motherboard) using ~4cm long separated insulated wires without any special measures for high frequency signals (when doing something like this again I was told that twisting the differential pairs wouldn't hurt).(Sidenote: IMHO soldering thingsthatsmall is not fun, but I'm not very good at soldering...)To actually use the SATA connector it's required to tell the kernel that it should be used - you'll need to modify the device tree (or use the device tree for the PRO version, but I was not brave enough for that - more on that later) and flash it. To do that you'll need to decompile the device tree file (in the ROM 3.0.0 which I'm currently using the file is called "tegra210-foster-e-p2530-0930-e02-00.dtb" - you can get it by downloading the recovery images for your device e.g. here:https://developer.nvidia.com/gameworksdownload) using e.g. "dtc" (device-tree-compiler), a program which is available in the Ubuntu repositories. Decompile the device tree ("dtc -I dtb -O dts tegra210-foster-e-p2530-0930-e02-00.dtb -o tegra210-foster-e-p2530-0930-e02-00.dts") and modify it as required:In line 2816 (that's in the 'xusb_padctl'-section (or whatever that's called...)) add 'nvidia,enable-sata-port;' before 'linux,phandle = <0x55>;'. In line 3888 (now 3889) (section 'sata@70020000') change 'status = "disabled";' to 'status = "okay";'. In line 3894 (now 3895) (section 'sata@70020000') add 'nvidia,enable-sata-port;' after 'dvdd_sata_pll-supply = <0x5a>;'.Apart from those differences between the 16GB and the 500GB device tree (called "tegra210-foster-e-hdd-p2530-0932-e02-00.dtb") it seems that a voltage somehow concerning GPIO is set to 3.3V instead of 1.8V at boot - I didn't want to try this and it doesn't seem to be necessary. For a full list of differences you can decompile the device tree from the 16GB and from the 500GB shield and then diff them ("diff tegra210-foster-e-p2530-0930-e02-00.dts tegra210-foster-e-hdd-p2530-0932-e02-00.dts" or so). There's also another dtb file in the PRO recovery ("tegra210-foster-e-hdd-cpc-p2530-0933-e03-00.dtb") but I'm not sure what this is for...After modifying the dts file compile it using "dtc -I dts -O dtb tegra210-foster-e-p2530-0930-e02-00.dts -o tegra210-foster-e-p2530-0930-e02-00.dtb". Then you can flash (heed the warnings at the beginning!) the dts using "fastboot flash dts tegra210-foster-e-p2530-0930-e02-00.dtb" (you may need administrative privileges for flashing).I'm not sure whether the default Shield Android kernel has the SATA drivers included - perhaps it would be possible to flash the Shield PRO kernel?(Sidenote: I compiled the kernel from the official Nvidia Shield sources myself - I wanted to modify a few things. (I'm currently running Ubuntu on it.))After that I was able to access a HDD (powered using an old ATX PSU) as usual (I mounted/unmounted the drive, checked whether the files were there, checked the S.M.A.R.T.-status, suspended the drive using hdparm and checked it's speed using dd (~70MB for sequential reading is quite ok IMHO since it's an old drive)).Notes on the two pictures:On the first picture you can see the original wiring (this is WRONG), but it's the best photo I have from the pins without hot glue over them to prevent that they get loose. (My soldering on the capacitors wasn't good but not as bad as it seems on those photographs either - the flux seems to reflect strangely and the non-optimal photo quality... Ok, I admit it, the soldering isn't good but it works (at the moment).)On the second picture you can see the current wiring (I simply pulled the contacts out of the connector and swapped them as needed after measuring the SATA OOB COMRESET/COMINIT signals in the wrong place).EDIT: I tested an SATA III SSD using dd ("sudo dd if=/dev/sda of=/dev/null bs=1M count=1000") and it seems that the maximum sequential read speed I can get is ~190MB/s (~500MB/s are possible in other computers) when I use the "performance" cpu governor. This could be a result of my suboptimal wiring. (When using the "ondemand" or "interactive" governor I sometimes get results as low as ~25MB/s.)

author: NiHaoMike
author_rank: Super Contributor
timestamp: September 03, 2017, 04:45:24 pm
content: Managed to find a Pro (2015) version for very cheap because "the HDD was broken". Actually turns out the HDD worked fine but needed the bootloader rewritten.I was expecting just a jumper to be in a different position to select SATA boot, but there's actually a number of differences. Most perplexing is the EFM32 on the I/O board that is, for whatever reason, only in the Pro version.

author: cu6apum
author_rank: Newbie
timestamp: January 29, 2018, 06:47:03 pm
content: Quote from: NiHaoMike on September 03, 2017, 04:45:24 pmHey, would you sell me the nonpro board? )) Pleeeze! I was stupid enough to brick the bootloader (yes, I could NEVER imagine that it's so simple with no warning) so I need an image of a live eeprom to resurrect my poor device... Nobody here dares to even touch the board.Thank you.

author: NiHaoMike
author_rank: Super Contributor
timestamp: January 30, 2018, 02:49:40 am
content: I somehow managed to mess up my 16GB board as well. That was part of why I went for a used Pro unit, so I could try to mod the 16GB into a Pro. Sadly, there were too many differences for me to try to figure out what jumper sets SATA boot. The main advantage of the Pro version is that once someone figured out how to reimage the HDD from a PC, it became practically impossible to brick from software.I do live within reasonable distance of the Scanlime lab, so there is some chance I might be able to do a visit and have a real expert have a go at it.

author: Wellby
author_rank: Newbie
timestamp: June 02, 2018, 01:39:57 pm
content: Hello,Can someone measure value of resistance for me on selected components on the picture below?I measure 42 ohm on left and 35 ohm on right and I think that I have short somewhere. But want to be sure.

author: Unknown
author_rank: Unknown
timestamp: January 08, 2020, 02:37:54 pm
content: I have a 2015 Pro model that stopped working after a power outage. I have 2 shields, one pro and one not-pro so I was able to swap the power supply (same part number on both). Both power supplies work on the not-pro unit.I'm hoping to be able to fix this thing. I assume that there is a fuse of some type that is soldered on to one of the boards. I suspect that the fuse/problem is on the IO board but I'm not a novice when it comes to small components.Any idea of where I should start looking?Thanks-G

author: NiHaoMike
author_rank: Super Contributor
timestamp: January 11, 2020, 12:40:18 am
content: For the Pro, try installing a new SSD with the help of the following threads:https://forum.xda-developers.com/shield-tv/development/nvidia-shield-tv-ssd-t3402580https://forum.xda-developers.com/shield-tv/general/guide-migrate-to-ssd-hdd-size-satv-pro-t3440195