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
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?
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.
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.
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.
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.
“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
“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 ) 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.
“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().
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.