Page 1 of 1
DIY Roku Remote (Raspberry Pi Pico) Problem
Posted: Sun Jan 09, 2022 1:45 am
by joeynovak
Hey Guys,
I've been doing a fun project the last few days building a Roku IR remote from a Raspberry Pi Pico and an old remote from a thrift store. I cut a few traces on the remote from the thrift store and soldered on some wires so that I could use it's transistor and IR Led with the Pi Pico. While it's reliably sending NEC IR, and my test receiver is receiving it, the codes aren't doing anything to the ONN Roku tv I'm using (And the Roku remote that was lost IS an IR remote and not a wifi remote).
So... I read ALL 14 pages of the HUGE thread on Roku codes. I am pretty sure I am sending the right stuff out the remote (but obviously I'm not). I have an ESP8266 with a 38khz IR Receiver hooked up and attached to a Salea logic analyzer to verify what I'm sending, as well as printing the hex data received via the NEC(2) protocol.
Unfortunately I don't have a Roku remote (lost during move, I live in Idaho where Amazon takes 6 days to deliver something, and I figured making my own remote would be fun) to just point at my IR receiver and sniff myself what it's sending.
If someone here with more experience than I with NEC (this is my first go) could look at the trace from the Salea...
Also, below is a picture of my breadboard setup.
(The attached trace is sending 234 194 1 ~1 My receiver shows this as: 0xeac201fe)

Posted: Sun Jan 09, 2022 3:23 am
by MaskedMan
That 14 page thread is for stand alone roku like ultra, express, and streambar. Its useless on all Roku tv's. This is thread that deals with roku tv's:
http://www.hifi-remote.com/forums/viewt ... highlight=
Posted: Sun Jan 09, 2022 3:37 am
by MaskedMan
If you have a walmart oir best buy near by you purchase separately the roku voice remote, either the regular one or the rechargeable pro, both will pair to ALL roku tv's.
The Onn Roku tv uses the same IR remote as the tcl, insignia, philips, element, magnavox, westinghouse, jvc, haier, hitachi, and sanyo roku tv do. Just stay away from Hisense & sharp roku tv remotes.
Posted: Sun Jan 09, 2022 2:05 pm
by joeynovak
Woohoo!!!!
Edmund, it works. I wasn't aware they are separate but it makes sense. I changed the sub device id to 199 and my code currently just rotates through all the commands one each second, and like I expected the TV started doing all kinds of stuff... Now for a case, some buttons, and I'll be set!
I haven't celebrated like this in a long time. Yes!!!
Posted: Sun Jan 09, 2022 4:25 pm
by ckeays
joeynovak wrote:Woohoo!!!!
Edmund, it works. I wasn't aware they are separate but it makes sense. I changed the sub device id to 199 and my code currently just rotates through all the commands one each second, and like I expected the TV started doing all kinds of stuff... Now for a case, some buttons, and I'll be set!
I haven't celebrated like this in a long time. Yes!!!
@joeynovak I don't know if you figured out all of the codes yet but this is from one of my Roku remotes. I also have Saleae captures (not jpg's) happy to send, if you are interested, just let me know.
Code: Select all
System1 = EA
System2 = C7 ;
Data1 = 17 ;power
Data2 = E8
System1 = EA
System2 = C7
Data1 = 66 ;back
Data2 = 99
System1 = EA
System2 = C7
Data1 = 03 ;home
Data2 = FC
System1 = EA
System2 = C7
Data1 = 1E ;left arrow
Data2 = E1
System1 = EA
System2 = C7
Data1 = 2D ;right arrow
Data2 = D2
System1 = EA
System2 = C7
Data1 = 19 ;up
Data2 = E6
System1 = EA
System2 = C7
Data1 = 33 ;down
Data2 = CC
System1 = EA
System2 = C7
Data1 = 2A ;OK
Data2 = D5
System1 = EA
System2 = C7
Data1 = 78 ;return
Data2 = 87
System1 = EA
System2 = C7
Data1 = 62 ;sleep (moon icon)
Data2 = 9D
System1 = EA
System2 = C7
Data1 = 61 ;*
Data2 = 9E
System1 = EA
System2 = C7
Data1 = 34 ;rewind
Data2 = CB
System1 = EA
System2 = C7
Data1 = 4C ;play/pause
Data2 = B3
System1 = EA
System2 = C7
Data1 = 55 ;fast forward
Data2 = AA
System1 = EA
System2 = C7
Data1 = D2 ;Netflix
Data2 = 2D
System1 = EA
System2 = C7
Data1 = E8 ;Deezer
Data2 = 17
System1 = EA
System2 = C7
Data1 = 64 ;BEIN sports
Data2 = 9B
System1 = EA
System2 = C7
Data1 = EB ;CBS All Access
Data2 = 14
System1 = EA
System2 = C7
Data1 = 0F ;Vol +
Data2 = F0
System1 = EA
System2 = C7
Data1 = 90 ;Vol -
Data2 = 6F
System1 = EA
System2 = C7
Data1 = 20 ;Mute
Data2 = DF
sometimes mute =
System1 = EA
System2 = C7
Data1 = A0 ;Mute
Data2 = 5F
Success and Source Code
Posted: Sun Jan 09, 2022 5:20 pm
by joeynovak
I just wrapped up the prototype, it's extremely primitive, but it's functional and will do until the new remote arrives... I didn't have a ton of buttons, and didn't want to build a case, so I just used some sticky pads to attach a joystick with click button, the RP2040, and the battery pack to the pcb of the old remote.
UP, DOWN, LEFT, RIGHT, and click are like you would expect. Back is down left, home is down right, volume is up left, and up right, power is up click.
Source code is here:
https://github.com/joeynovak/rp2040-rok ... in/main.py should anyone want it.
Thanks for the help everyone!
Posted: Mon Jan 10, 2022 12:54 am
by joeynovak
Thanks! I got what I needed. What kind of remotes do you use?
ckeays wrote:joeynovak wrote:Woohoo!!!!
Edmund, it works. I wasn't aware they are separate but it makes sense. I changed the sub device id to 199 and my code currently just rotates through all the commands one each second, and like I expected the TV started doing all kinds of stuff... Now for a case, some buttons, and I'll be set!
I haven't celebrated like this in a long time. Yes!!!
@joeynovak I don't know if you figured out all of the codes yet but this is from one of my Roku remotes. I also have Saleae captures (not jpg's) happy to send, if you are interested, just let me know.
Code: Select all
System1 = EA
System2 = C7 ;
Data1 = 17 ;power
Data2 = E8
System1 = EA
System2 = C7
Data1 = 66 ;back
Data2 = 99
System1 = EA
System2 = C7
Data1 = 03 ;home
Data2 = FC
System1 = EA
System2 = C7
Data1 = 1E ;left arrow
Data2 = E1
System1 = EA
System2 = C7
Data1 = 2D ;right arrow
Data2 = D2
System1 = EA
System2 = C7
Data1 = 19 ;up
Data2 = E6
System1 = EA
System2 = C7
Data1 = 33 ;down
Data2 = CC
System1 = EA
System2 = C7
Data1 = 2A ;OK
Data2 = D5
System1 = EA
System2 = C7
Data1 = 78 ;return
Data2 = 87
System1 = EA
System2 = C7
Data1 = 62 ;sleep (moon icon)
Data2 = 9D
System1 = EA
System2 = C7
Data1 = 61 ;*
Data2 = 9E
System1 = EA
System2 = C7
Data1 = 34 ;rewind
Data2 = CB
System1 = EA
System2 = C7
Data1 = 4C ;play/pause
Data2 = B3
System1 = EA
System2 = C7
Data1 = 55 ;fast forward
Data2 = AA
System1 = EA
System2 = C7
Data1 = D2 ;Netflix
Data2 = 2D
System1 = EA
System2 = C7
Data1 = E8 ;Deezer
Data2 = 17
System1 = EA
System2 = C7
Data1 = 64 ;BEIN sports
Data2 = 9B
System1 = EA
System2 = C7
Data1 = EB ;CBS All Access
Data2 = 14
System1 = EA
System2 = C7
Data1 = 0F ;Vol +
Data2 = F0
System1 = EA
System2 = C7
Data1 = 90 ;Vol -
Data2 = 6F
System1 = EA
System2 = C7
Data1 = 20 ;Mute
Data2 = DF
sometimes mute =
System1 = EA
System2 = C7
Data1 = A0 ;Mute
Data2 = 5F
Posted: Wed Jan 26, 2022 7:12 am
by albert90
Neat little project there! Loving the PS2 joystick usage haha. Might I ask how the finished product looks, with the casing on?