model #'s

Dear Roku,
Its really not fair we need to rely on theEndless to answer questions like this. I should be able to look this up and he should be able to spend his time answering important things.
Thank You,
squirreltown

That being said, what exactly will ifdeviceInfo.Getmodel return for these models - the HDMI stick and the TV(s)?
most of the non-legacy models seem to have “X” at the end, not sure about these. Don’t own these so have to ask.
Thanks

If you check out Amazon items, you get a feel for various models out there. I believe the stick is 3500.

Also this wiki page for lots of info including model #s:
http://en.wikipedia.org/wiki/Roku

The letter definitions at the end of model numbers were posted on the General forums a while back:

R means retail
X means online
EU mean Europe (UK, Ireland)

Thus, they can be generally ignored.

C. Shawn Smith

Thanks Komag, but those pages are precisely why I’m asking what the roku itself outputs. For instance I have a roku3 (4200) and an original 2XS (3100)
the devinfo out put for those devices is 4200X and 3100X respectively. I need to know exactly because I have an app that needs to do different things based on the different boxes.
More RAM, openGL, etc.

So I just recently ordered a refurbished Roku 1 2710XB

I assume the B means “refurBished”?

I recently was dealing with that as well, and took EnTerr’s advice and implemented a little performance test:
viewtopic.php?f=34&t=77087

Here is my version:

FUNCTION setGS() ' trig by Main(1) near top
	'gS = 2 ' Base "Game Speed" for slow Rokus
	timer = createObject("roTimespan") ' For measuring performance	
	FOR _ = 1 TO 1e5: END FOR ' Speed test code from EnTerr
	IF timer.TotalMilliseconds() < 30 THEN gS = 1 ELSE gS = 2 ' Roku 2 XS 3100X: 19-21ms. Roku HD N1100: 39-43ms
		' Sometimes I get something higher though, such as Roku 2 XS getting 45 or Roku HD getting 73, dunno why
		' So it's not always perfectly reliable
	di = CreateObject("roDeviceInfo")
	rModel = di.GetModel()
	? rModel " is the model, Game Speed (gS) set to " gS " as timer is " timer.TotalMilliseconds()
	RETURN gS
END FUNCTION

“RokuShawnS” wrote:
The letter definitions at the end of model numbers were posted on the General forums a while back:

R means retail
X means online
EU mean Europe (UK, Ireland)

Thus, they can be generally ignored.

C. Shawn Smith

Are you saying that when I do

if devinfo.GetModel() = “4200X”
and it returns TRUE
the X is being ignored?

“squirreltown” wrote:

“RokuShawnS” wrote:
The letter definitions at the end of model numbers were posted on the General forums a while back:

R means retail
X means online
EU mean Europe (UK, Ireland)

Thus, they can be generally ignored.

C. Shawn Smith

Are you saying that when I do

if devinfo.GetModel() = “4200X”
and it returns TRUE
the X is being ignored?

That I don’t know. But the differences between R and X should make no difference, as they’re the same unit. R/X should only matter to how the device was sold.
(Edit Sorry, wording this wrong … I think you are correct, but it’s been a long time since I asked about this previously, and don’t fully recall the conversation. Joel, Mark, or someone else will have to chime in to ensure I’m accurate)

“Komag” wrote:
So I just recently ordered a refurbished Roku 1 2710XB

I assume the B means “refurBished”?

Er, possibly. I’d have to check into that though, as this is the first I’m hearing of XB.

C. Shawn Smith

Maybe it’s just something Amazon came up with:
http://www.amazon.com/gp/product/B00J7Y … UTF8&psc=1

The “B” seems to indicate a refurbished unit with other model numbers too, 3100XB googled shows refurbed R2 XS units, 2710XB shows refurbed R1 units, 3500XB shows refurbished sticks.

brett

While waiting for someone who knows, I searched the forum and found one reference to 3500X (HDMI stick) and a dialog between theEndless & RokuJoel & EnTerr that seemed to end with the position that all TV’s will (now) return 5000X.
would be really helpful to confirm this.
thank you.

You should compare just the first 4 digits of the model.


if devinfo.GetModel().Left(4) = "4200" then ...

The table in the Developer Guide is supposed to be the source for this, but it hasn’t been updated with the stick yet.

–Mark

“RokuMarkn” wrote:
You should compare just the first 4 digits of the model.

Thank you Mark, can you confirm the TV’s are all 5000 ?

Yes, GetModel() returns 5000X on TVs. GetModelDetails() returns a more specific model number for the TV.

–Mark

“RokuMarkn” wrote:
Yes, GetModel() returns 5000X on TVs. GetModelDetails() returns a more specific model number for the TV.

–Mark

Great! thank you.

but my Roku HD is N1100, so only comparing the first four won’t always work due to the first classic units having the letter first.

Good point. If you do want to specifically detect those models, you can do a special case test for the first letter being “N”. But there are only four models of that type, N1000, N1050, N1100 and N1101. Except for distinguishing the last two, using the first four letters would be fine in these cases too. I doubt there’s any reason to act differently on the N1100 and N1101 anyway.

–Mark

“RokuMarkn” wrote:
Good point. If you do want to specifically detect those models, you can do a special case test for the first letter being “N”. But there are only four models of that type, N1000, N1050, N1100 and N1101. Except for distinguishing the last two, using the first four letters would be fine in these cases too. I doubt there’s any reason to act differently on the N1100 and N1101 anyway.
1101 has USB, 1080p, 802.11 N, extra flash - which 1100 doesn’t. First two may matter, i suppose.

I suggest sanitizing the string down to only the number(s):

BrightScript Debugger> modStr = "N1234X"   'imagine it came from ifdeviceInfo.Getmodel                 
BrightScript Debugger> modStr = createObject("roRegex", "\D", "").replaceAll(modStr, "")
BrightScript Debugger> ? modStr
1234

“RokuShawnS” wrote:

“Komag” wrote:
So I just recently ordered a refurbished Roku 1 2710XB

I assume the B means “refurBished”?
Er, possibly. I’d have to check into that though, as this is the first I’m hearing of XB.
In my experience, regarding refurbs:

  • “B” after model# is used on outside package only of refurbished models in the form 3050X-B or 3050-B (i have seen both kinds)

  • The sticker on the player stays 3050X

  • The player firmware (getModel()) always reports in 3050X format, never B

So “B” is qualifier “external” to the Roku box proper. I suspect the same of “EU”, the difference being a different (external :slightly_smiling_face: ) power adaptor - different prongs at least. The packaging of new players i have seen show model as 3050R- with “R” suffix, to confuse us further. I suspect packaging specialized for some retailers (like Costco, with bonus cables) bear different suffix letter too. My dev. Rx: wholesale ignore the letters, stick with the model number.

“EnTerr” wrote:

“RokuMarkn” wrote:
Good point. If you do want to specifically detect those models, you can do a special case test for the first letter being “N”. But there are only four models of that type, N1000, N1050, N1100 and N1101. Except for distinguishing the last two, using the first four letters would be fine in these cases too. I doubt there’s any reason to act differently on the N1100 and N1101 anyway.
1101 has USB, 1080p, 802.11 N, extra flash - which 1100 doesn’t. First two may matter, i suppose.

If you’re trying to detect USB or 1080p, you should definitely NOT be looking at the model number. You should use roDeviceInfo.HasFeature(), which will work on all models, even on future models that didn’t exist when you wrote the code. I’d actually be interested to know why developers have ever needed to look at model numbers, as a need to do that probably indicates a deficiency in HasFeature().

–Mark

“RokuMarkn” wrote:

“EnTerr” wrote:

“RokuMarkn” wrote:

If you’re trying to detect USB or 1080p, you should definitely NOT be looking at the model number. You should use roDeviceInfo.HasFeature(), which will work on all models, even on future models that didn’t exist when you wrote the code. I’d actually be interested to know why developers have ever needed to look at model numbers, as a need to do that probably indicates a deficiency in HasFeature().

–Mark
Like OpenGL or the amount of memory available to the 2D API fer instance.