Robomaster TT LED and OpenCV Control

I updated the expansion module as instructed in the " Sensor Programming with RoboMaster Tello Talent’s ESP32 Expansion Kit: TROUBLESHOOTING: WiFi Unactive Error Message!" lesson. After doing so, the LED commands and OpenCV commands do not work. Below is the code I tried. The TT takes off from Mission Pad 1 and seems to identify it as shown in the Console. Then it stops at the scroll text command. Eventually, the mission times out and the TT lands on its own but does not complete subsequent steps of the mission. I ran the code twice that’s why the text is shown twice.

When Tello stops at the scroll text step, can you share what is being displayed on the LED module?


Thanks for your reply. Nothing is displayed on the LED.

Thank you for the information. It sounds like the firmware on the module may be corrupt. I would recommend reflashing. I have linked the video that covers firmware update here. The LED module will display a “TT” like below on boot up if the firmware update is successful.

Thanks, I have uploaded twice but I’ll try again. I never saw the “TT” displayed so maybe you’re on to something.

Does Arduino Studio show that the sketch was successfully compiled and uploaded?

Yes, here’s a screen shot.

I do not get the “TT” display after the upload and reset.

Here is the full console compile and upload report:
Sketch uses 1175041 bytes (59%) of program storage space. Maximum is 1966080 bytes.
Global variables use 42436 bytes (12%) of dynamic memory, leaving 285244 bytes for local variables. Maximum is 327680 bytes. v4.5.1
Serial port COM5
Chip is ESP32-D2WD (revision v1.0)
Features: WiFi, BT, Dual Core, Embedded Flash, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: e0:e2:e6:12:ed:e4
Uploading stub…
Running stub…
Stub running…
Changing baud rate to 921600
Configuring flash size…
Flash will be erased from 0x00001000 to 0x00005fff…
Flash will be erased from 0x00008000 to 0x00008fff…
Flash will be erased from 0x0000e000 to 0x0000ffff…
Flash will be erased from 0x00010000 to 0x00130fff…
Compressed 17568 bytes to 12207…
Writing at 0x00001000… (100 %)
Wrote 17568 bytes (12207 compressed) at 0x00001000 in 0.4 seconds (effective 332.4 kbit/s)…
Hash of data verified.
Compressed 3072 bytes to 137…
Writing at 0x00008000… (100 %)
Wrote 3072 bytes (137 compressed) at 0x00008000 in 0.1 seconds (effective 404.0 kbit/s)…
Hash of data verified.
Compressed 8192 bytes to 47…
Writing at 0x0000e000… (100 %)
Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.1 seconds (effective 556.9 kbit/s)…
Hash of data verified.
Compressed 1180784 bytes to 741364…
Writing at 0x00010000… (2 %)
Writing at 0x0001c032… (4 %)
Writing at 0x00027be2… (6 %)
Writing at 0x000378b9… (8 %)
Writing at 0x0003f3f4… (10 %)
Writing at 0x00044fac… (13 %)
Writing at 0x0004ac76… (15 %)
Writing at 0x00050742… (17 %)
Writing at 0x00055dea… (19 %)
Writing at 0x0005b653… (21 %)
Writing at 0x00061128… (23 %)
Writing at 0x00066c72… (26 %)
Writing at 0x0006c3d4… (28 %)
Writing at 0x000716d1… (30 %)
Writing at 0x00076bfc… (32 %)
Writing at 0x0007cf49… (34 %)
Writing at 0x000827d3… (36 %)
Writing at 0x00088124… (39 %)
Writing at 0x0008de5c… (41 %)
Writing at 0x000938e9… (43 %)
Writing at 0x00098f3f… (45 %)
Writing at 0x0009e93a… (47 %)
Writing at 0x000a3fd2… (50 %)
Writing at 0x000a973f… (52 %)
Writing at 0x000af54a… (54 %)
Writing at 0x000b5434… (56 %)
Writing at 0x000bbe4c… (58 %)
Writing at 0x000c1e58… (60 %)
Writing at 0x000c76f2… (63 %)
Writing at 0x000cce4f… (65 %)
Writing at 0x000d23ee… (67 %)
Writing at 0x000d7b58… (69 %)
Writing at 0x000dd0b3… (71 %)
Writing at 0x000e2ed2… (73 %)
Writing at 0x000e9352… (76 %)
Writing at 0x000ef1ce… (78 %)
Writing at 0x000f4b4c… (80 %)
Writing at 0x000fa3ed… (82 %)
Writing at 0x000ffdcd… (84 %)
Writing at 0x001094ca… (86 %)
Writing at 0x0011034a… (89 %)
Writing at 0x00118436… (91 %)
Writing at 0x0011dd5f… (93 %)
Writing at 0x00123bb0… (95 %)
Writing at 0x0012919f… (97 %)
Writing at 0x0012ec5b… (100 %)
Wrote 1180784 bytes (741364 compressed) at 0x00010000 in 9.7 seconds (effective 977.8 kbit/s)…
Hash of data verified.

Hard resetting via RTS pin…

That’s helpful. And when you restart the module is it still saying Wifi Unactive?

No, nothing is displayed. The Top LED flashes and I am able to connect to the Drone and fly. But, I cannot control the Top LED or Matrix LED. Also, the forward mission pad recognition does not seem to work. It recognizes the mission pad number directly below but not in front. Does the Arduino output I posted look correct? Do you see anything peculiar?

I don’t have my module in front of me but on this line:

There is a println statement. See if you can connect Arduino’s serial monitor and see if you observe it. It really sounds like the Sketch is not making it across, but if it was previously saying wifi unactive and now it’s not then you’ve done something right!

This is what I get on the serial monitor.

IIRC the baud rate for the ESP32 is 115200 so much sure you set that in the bottom right of your Arduino serial monitor. Right where it says 9600. Hopefully it will provide less jibberish!

Great Thanks, Here’s the SP Dump. Am I running the right version, esp32v1.0.0.11? It looks like something is reported as corrupted in the middle of the page.

In the same repo there is this sketch:

From what I’m seeing this doesn’t have all the gamesir Bluetooth connectivity stuff. I’m wondering if you can try this sketch and load it? Perhaps this will avoid the core dump. Not 100% sure but just trying to review the code and see what options we have.

Thanks! I loaded the code and still get the same “corruption” message and still can’t scroll text on the LED.


Hello, any more ideas on how to get my RMTT LEDs working?

I’m curious if you have another RMTT expansion module to test with? I wish I had a better suggestion but the next thing I would try is removing some of the code and incrementally building/uploading to see where it fails. There is also some info regarding debugging here:

For example, this code:

You can see that it does the initial Red, Green, Blue LED flash on boot. Do you get to that part or does it fail first?

See if you can step through and figure out at what line the code is failing. Perhaps that will give us some more threads to pull on. But if you have access to another module it would be a good test to run.