-
Notifications
You must be signed in to change notification settings - Fork 836
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
WowWee protocol (for Roboraptor) #1938
Comments
Have you successfully been able to control the device by replaying the Raw IR messages back to the device? |
Ah yes, the problem is that the whole reason I wanted to make this "upgrade" was that my Roboraptor stopped working. But I'll see if I can get some sort of response out of it tomorrow. I do not have any spare IR LED's, so I will have to hijack one of the ones in the nose and then hold up a piece of paper in front. The speaker still works and so if I get it to make certain noises then I'll know the original circuit board successfully received them. |
I'm working on that right now. Please tell me whether my code is correct before I waste any more time trying to debug my wiring. click to show code#include <IRremoteESP8266.h>
#include <IRsend.h>
IRsend irsend(4);
void setup() {
Serial.begin(115200); // Note the high baud rate
irsend.enableIROut(38);
}
#define commandLength 25
const uint16_t hunting[commandLength] = {6670, 718, 914, 750, 916, 720, 918, 3246, 868, 3266, 846, 794, 916, 3246, 866, 3268, 868, 732, 916, 3244, 916, 712, 916, 760, 920};
const uint16_t happy[commandLength] = {6698, 712, 916, 710, 916, 762, 894, 3268, 870, 3266, 844, 758, 892, 3306, 870, 3266, 868, 732, 892, 760, 894, 3280, 844, 3304, 844};
const uint16_t cautious[commandLength] = {6696, 714, 912, 752, 918, 720, 918, 3244, 914, 3222, 916, 722, 918, 3244, 868, 3266, 870, 772, 914, 734, 918, 3220, 888, 752, 916};
const uint16_t guard[commandLength] = {6546, 722, 890, 736, 920, 758, 920, 3244, 868, 3266, 846, 756, 894, 3270, 914, 3220, 892, 748, 920, 732, 918, 748, 920, 718, 920};
const uint16_t stopcommand[commandLength] = {6224, 724, 916, 750, 918, 698, 944, 3246, 872, 3268, 868, 770, 916, 712, 942, 710, 916, 3274, 870, 3254, 844, 3294, 868, 748, 938};
void loop() {
yield();
if (Serial.available() > 0) {
char c = Serial.read();
switch(c) {
case 'h':
Serial.print("Sending HUNTING MOOD command");
irsend.sendRaw(hunting, commandLength, 38);
break;
case 'a':
Serial.print("Sending HAPPY MOOD command");
irsend.sendRaw(happy, commandLength, 38);
break;
case 'c':
Serial.print("Sending CAUTIOUS MOOD command");
irsend.sendRaw(cautious, commandLength, 38);
break;
case 'g':
Serial.print("Sending GUARD MODE command");
irsend.sendRaw(guard, commandLength, 38);
break;
case '\r':
case '\n':
// ignore
break;
default:
Serial.printf("Didn't understand '%c' - Sending STOP command", c);
irsend.sendRaw(stopcommand, commandLength, 38);
break;
}
Serial.flush();
Serial.write('\n');
}
} I connected the LED between pin 4 and 3V3, and nothing. I swapped it out for a red LED and only got a feeble dim glow constantly on that only went away when I held down the reset button. Does it look like a hardware problem or a software problem? |
auto_analyse_raw_data.py
)* Basic `sendWowwee()` & decodeWowwee()` routines. * Unit test coverage including decoding of two different captured messages from a real remote. Fixes #1938
Replace that with |
Please download & try out branch: https://github.com/crankyoldgit/IRremoteESP8266/tree/WowWee / PR #1939 irsend.sendWowwee(code); // e.g. 0x180 for "Left" etc Please let me know how it goes. |
Oops, forgot about that! Thank you! I didn't have a regular bipolar NPN transistor so I used an N-channel MOSFET (2N7000). Ad it works!! I swapped out the
I would also suggest either adding an enum with these codes in the code, or referring users to this comment in the documentation. |
* Basic `sendWowwee()` & decodeWowwee()` routines. * Unit test coverage including decoding of two different captured messages from a real remote. * Add reference for available/known RoboRaptor-X codes. Fixes #1938
_v2.8.5 (20230305)_ **[Bug Fixes]** - Missing argument in use of midea function (#1959 #1958) - IRMQTTServer: Improve HA MQTT climate handling. (#1911) - SEND_SANYO_AC88: Fix poor cut-n-paste error (#1905 #1897) **[Features]** - IRMQTTServer: SHT-3x Temperature Sensor Support (#1951) - IRMQTTServer: HA multi output discovery (#1947) - IRMQTTServer: extended with new A/C common fields (#1940) - IRMQTTServer: Sync the on state to power from mode for HA (#1946) - Experimental basic support for Carrier 84-bit protocol. (#1945 #1943) - Add support the WowWee 11-Bit RoboRaptor-X protocol. (#1939 #1938) - Added 'sensorTemperature' and 'iFeel' to IRac (common) (#1928) - Added extra 'mid' option for Fan & SwingV to IRac (#1929) - Added "commandType" to IRAc (#1921) - Added support for Argo WREM-3 A/C remote protocol [part1] (#1920) - Added Dutch (nl-NL) translation (#1907) - ARGO: Improve code & add support for decoding 32bit sensor msgs. (#1906 #1859) - Added support for Gorenje cooker hood IR protocol (#1888 #1887) **[Misc]** - Update `XMP` status to Stable (#1944) - upgrade to a later version of `googletest` (#1936) - MITSUBISHI128: Added model to supported protocol (#1924) - Added Dutch (nl-NL) README (#1908) - Added GMock to UT Makefile (#1902) - Update HA example config for HA 2022.6+ (#1901 #1900)
_v2.8.5 (20230508)_ **[Bug Fixes]** - Fix a bug where we never detached the timer interrupt on ESP32s. (#1984 #1983) - Missing argument in use of midea function (#1959 #1958) - IRMQTTServer: Improve HA MQTT climate handling. (#1911) - SEND_SANYO_AC88: Fix poor cut-n-paste error (#1905 #1897) **[Features]** - Add support for a 40bit variant of the standard Panasonic protocol (#1977 @1976) - Initial support for York AC protocol (#1889) - IRMQTTServer: SHT-3x Temperature Sensor Support (#1951) - IRMQTTServer: HA multi output discovery (#1947) - IRMQTTServer: extended with new A/C common fields (#1940) - IRMQTTServer: Sync the on state to power from mode for HA (#1946) - Experimental basic support for Carrier 84-bit protocol. (#1945 #1943) - Add support the WowWee 11-Bit RoboRaptor-X protocol. (#1939 #1938) - Added 'sensorTemperature' and 'iFeel' to IRac (common) (#1928) - Added extra 'mid' option for Fan & SwingV to IRac (#1929) - Added "commandType" to IRAc (#1921) - Added support for Argo WREM-3 A/C remote protocol [part1] (#1920) - Added Dutch (nl-NL) translation (#1907) - ARGO: Improve code & add support for decoding 32bit sensor msgs. (#1906 #1859) - Added support for Gorenje cooker hood IR protocol (#1888 #1887) **[Misc]** - Add Electrolux YKR-H/531E as a supported device (#1981 #1980) - Update `XMP` status to Stable (#1944) - upgrade to a later version of `googletest` (#1936) - MITSUBISHI128: Added model to supported protocol (#1924) - Added Dutch (nl-NL) README (#1908) - Added GMock to UT Makefile (#1902) - Update HA example config for HA 2022.6+ (#1901 #1900) - Add a `d1_mini_noMDNS` build option to `IRMQTTServer`. (#1985)
## _v2.8.5 (20230508)_ **[Bug Fixes]** - Fix a bug where we never detached the timer interrupt on ESP32s. (#1984 #1983) - Missing argument in use of midea function (#1959 #1958) - IRMQTTServer: Improve HA MQTT climate handling. (#1911) - SEND_SANYO_AC88: Fix poor cut-n-paste error (#1905 #1897) **[Features]** - Add support for a 40bit variant of the standard Panasonic protocol (#1977 @1976) - Initial support for York AC protocol (#1889) - IRMQTTServer: SHT-3x Temperature Sensor Support (#1951) - IRMQTTServer: HA multi output discovery (#1947) - IRMQTTServer: extended with new A/C common fields (#1940) - IRMQTTServer: Sync the on state to power from mode for HA (#1946) - Experimental basic support for Carrier 84-bit protocol. (#1945 #1943) - Add support the WowWee 11-Bit RoboRaptor-X protocol. (#1939 #1938) - Added 'sensorTemperature' and 'iFeel' to IRac (common) (#1928) - Added extra 'mid' option for Fan & SwingV to IRac (#1929) - Added "commandType" to IRAc (#1921) - Added support for Argo WREM-3 A/C remote protocol [part1] (#1920) - Added Dutch (nl-NL) translation (#1907) - ARGO: Improve code & add support for decoding 32bit sensor msgs. (#1906 #1859) - Added support for Gorenje cooker hood IR protocol (#1888 #1887) **[Misc]** - Add Electrolux YKR-H/531E as a supported device (#1981 #1980) - Update `XMP` status to Stable (#1944) - upgrade to a later version of `googletest` (#1936) - MITSUBISHI128: Added model to supported protocol (#1924) - Added Dutch (nl-NL) README (#1908) - Added GMock to UT Makefile (#1902) - Update HA example config for HA 2022.6+ (#1901 #1900) - Add a `d1_mini_noMDNS` build option to `IRMQTTServer`. (#1985)
Device: A WowWee Roboraptor X (https://wowwee.com/roboraptor-x) -- the similar Roboraptor Blue is probably the same in terms of IR protocol.
Remote is the one in the box with it, and is the focus of this issue.
Manual can be found readily online. Just google "wowwee roboraptor manual", it should be towards the top.
I am using the internal IR recievers in the Roboraptor itself to capture the packets. Because why not. (I am trying to reverse-engineer it and do some "upgrades", of which this is the first.)
Micrcontroller: Sparkfun ESP32 Thing Plus
Wiring: Open up Roboraptor. Note 2 largest plugs containing individual thin wires leading into neck. Unplug them both and look at labels on circuit board.
As these are really just direct connections to a demodulator IC in the head, IRrecvDumpV2 worked mostly flawlessly.
The IR recievers are a little finicky (not just with the ESP32, they were always finicky since the day I unboxed my Roboraptor), so any dump outputs that do not say
13 bits
and/or do not start with a firstrawData
array entry in the 6xxx range can probably just be thrown out as gibberish.Obviously it prints
UNKNOWN
for all of the codes, because, well, this is a new protocol. Here are some of the timing arrays for different buttons on the remote:uint16_t rawData[25] = {6684, 740, 918, 724, 942, 724, 918, 3250, 870, 3268, 872, 770, 940, 690, 942, 688, 942, 738, 942, 3250, 868, 3268, 872, 732, 918}; // UNKNOWN 7469BF81
uint16_t rawData[25] = {6684, 714, 894, 774, 894, 750, 894, 3310, 870, 3270, 870, 732, 894, 762, 894, 772, 894, 748, 894, 3272, 872, 3270, 872, 3280, 872}; // UNKNOWN 7569C112
uint16_t rawData[25] = {6630, 764, 868, 762, 892, 788, 866, 3324, 792, 3348, 818, 760, 866, 788, 894, 772, 892, 750, 870, 786, 920, 750, 864, 776, 868}; // UNKNOWN 28A1120F
uint16_t rawData[25] = {6630, 702, 866, 800, 842, 800, 868, 3322, 844, 3272, 818, 846, 842, 814, 816, 814, 868, 3324, 818, 774, 890, 776, 868, 774, 868}; // UNKNOWN 139C80D1
uint16_t rawData[25] = {6224, 724, 916, 750, 918, 698, 944, 3246, 872, 3268, 868, 770, 916, 712, 942, 710, 916, 3274, 870, 3254, 844, 3294, 868, 748, 938}; // UNKNOWN ECB3BDC9
auto_analyse_raw_data.py
said (of the "Forward" code):I deleted the first two entries (so it is now
uint16_t rawData[23] = {918, 724, 942, 724, 918, 3250, 870, 3268, 872, 770, 940, 690, 942, 688, 942, 738, 942, 3250, 868, 3268, 872, 732, 918};
and it produced this output:Click to show lots of output
Should I do more codes?
I also found https://github.com/kelliott121/roboraptor/blob/master/RoboRaptor_Remote/RoboRaptor_Remote.ino, which seems to implement this protocol.
auto_analyse_raw_data.py
's above guess at the "Forward" code lines up with @kelliott121's code there. Maybe that would help.The text was updated successfully, but these errors were encountered: