Magical AC Remotes - A little journey

There are so many topics I’m interested in, around the Flipper Zero. But as so much is under development right now, I try to get in touch with everything. Exiting times!

Today I worked in an office with AC. The remote was beside my laptop …


… the Flipper on the other side, charging …
image

I known some basics about ‘AC Remote’ vs ‘TV Remote’ from Taking over TVs with Flipper Zero Infrared Port an I really want to explore this in the real world.
So I put them together. On the Flipper ‘Infrared - Learn New Remote’ after pressing every button, I’ve got an .ir file …

Filetype: IR signals file
Version: 1
# 
name: Auto
type: raw
frequency: 38000
duty_cycle: 0.330000
data: 449 422 450 420 452 418 444 426 446 424 448 25226 3497 1726 445 1295 450 420 452 418 444 426 446 1294 451 419 443 428 444 425 447 423 449 1291 443 427 445 1294 451 1289 445 425 447 1293 452 1288 446 1294 451 1289 445 1295 450 421 451 446 416 1297 448 422 450 420 452 418 444 426 446 451 421 422 450 419 443 427 445 452 420 423 449 420 452 418 444 426 446 424 448 422 450 419 443 427 445 425 447 1320 425 418 444 426 446 424 448 422 450 419 443 427 445 452 420 450 422 421 451 1288 446 1293 452 419 443 1297 448 422 450 447 425 445 417 426 446 424 448 422 450 419 443 428 444 425 447 450 422 421 451 418 444 426 446 424 448 1292 443 1297 448 423 449 421 451 445 417 426 446 424 448 422 450 447 415 455 417 453 419 423 449 421 451 446 416 427 445 452 420 450 422 447 425 418 444 426 446 424 448 422 450 419 443 428 444 425 447 423 449 421 451 418 444 427 445 424 448 422 450 420 442 428 444 426 446 423 449 421 451 419 443 427 445 425 447 422 450 420 452 445 417 453 419 424 448 421 451 419 443 427 445 425 447 422 450 420 452 418 444 453 419 1321 424 446 416 1297 448 422 450 420 452 418 444 1296 449 1291 443 427 445 425 447 423 449 421 451 419 443 427 445 425 447 449 423 420 452 418 444 453 419 423 449 421 451 419 443 427 445 452 420 422 450 420 442 1298 447 423 449 1290 444 1296 449 449 423 420 452
# 
name: Off
type: raw
frequency: 38000
duty_cycle: 0.330000
data: 449 421 451 419 443 427 445 425 447 423 449 25225 3498 1724 447 1293 452 418 444 427 445 424 448 1292 442 428 444 425 447 423 449 421 451 1289 445 424 448 1292 442 1298 447 423 449 1291 444 1296 449 1292 443 1297 448 1293 452 418 444 426 446 1294 451 419 443 427 445 425 447 423 449 421 451 419 443 427 445 452 420 422 450 420 442 428 444 426 446 423 449 421 451 446 416 427 445 425 447 449 423 420 442 428 444 426 446 423 449 421 451 419 443 427 445 452 420 422 450 420 442 1298 447 1293 452 418 444 1296 449 421 451 419 443 427 445 425 447 423 449 420 452 418 444 426 446 424 448 422 450 419 443 427 445 452 420 450 422 1290 444 1296 449 421 451 419 443 427 445 424 448 422 450 420 442 428 444 426 446 423 449 421 451 419 443 427 445 424 448 449 423 447 415 428 444 425 447 423 449 421 451 419 443 426 446 424 448 422 450 420 442 428 444 425 447 423 449 420 452 418 444 426 446 424 448 422 450 419 443 427 445 425 447 423 449 420 452 418 444 426 446 424 448 422 450 419 443 427 445 425 447 423 449 420 452 418 444 426 446 424 448 422 450 1289 445 425 447 1293 452 418 444 426 446 424 448 1292 443 1298 447 423 449 420 452 418 444 426 446 424 448 422 450 1290 445 425 447 423 449 420 452 418 444 426 446 424 448 422 450 419 443 427 445 1295 450 1290 444 426 446 424 448 1292 443 1297 448 1293 452 418 444
# 

So much numbers. How to analyze? Excel isn’t helpful. A text editor neither …
But than I’ve remembered two guys who had visualized .sub files to analyse restaurant pagers: GitHub - ShotokanZH/flipper_sub_plotters_comparers: Flipper SUB Plotters / comparers!
I can use it, perfect!

$ git clone https://github.com/ShotokanZH/flipper_sub_plotters_comparers
$ cd flipper_sub_plotters_comparers
$ sed -i 's/RAW_Data:/data:/g' *.py

(I’m honest … I’ve changed it in Notepad++, not with a cool sed-line. Right now I am working in a pretty tangled Win10-WSL2-Linux setup)

Now check the file:
$ python3 -BO plot/plotall.py Daikin_ACR480A11.ir --outfile Daikine_all.html
Okay, not very helpful, even zoomed in:

But wait, isn’t it? Spikes at 25000 in every block. highs around 1300 and lows a little over 400 … Lets see what we get:
$ python3 -BO plot/plot_delimiter.py Daikin_ACR480A11.ir --delimiter 25000 --one 1300 --zero 450 --outfile Daikine.htm

Now we are talking!

But the picture isn’t the most interesting part. The script also generates console output:

Sequence 0: 10100000001000000000100010100010101010100000100000000000000000000000000000000000001000000000000000000010100010000000000000000000000000000010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100010000000101000000000000000000000000000000000000010001010000000000000000
Sequence 1: 10100000001000000000100010100010101010100000100000000000000000000000000000000000000000000000000000000010100010000000000000000000000000000010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100010000000101000000000000010000000000000000000101000001010100000000000000
Sequence 2: 10100000001000000000100010100010101010100000100000000000000000000000000000000000001000000010100000000010100010000000000000000000000000000010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100010000000101000000000000000000000000000000000000010000010100000000000000
Sequence 3: 0100000001000000000100010100010101010100000100000000000000000000000000000000000001000000000100000000000000000101000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100010000000101000000000000000000000000000000000000000101000100000000000000

You can copy and paste it into a text file, create own breaks and import in Excel

[A quick Excel course: Data - Get & Transform - From Text/CVS, Delimiter: space (in my case) - Transform - Change the Data Type from ‘Any’ to ‘Text’ (else a lot of 0 will be lost)] …

… and search for pattern.

To be honest, I’ve thought it is easier at first. I don’t know how to find a protocol out of these data.
If I’d started all over, I would dump the whole display at every press. And do some double checks. But it isn’t helpful to be a smart ass afterwards. I don’t have access to the remote anymore.

3 Likes

And now I understand why I can’t any further… My assumptions where completely wrong.
Okay, the scripts are useful to see the difference, bit they need to read different.

It seams a raw dump from a flipper means ‘high low high low high low …’ and the value is the time.
Today I found My Flipper and it is a different from my plot.

In fact it should be much more easy this way… Unfortunately this weekend i’ve spend too much time in a hospital for more useful information, than ‘I was wrong, before’.