Skip to content
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

add "concept" car #4

Merged
merged 2 commits into from
Mar 1, 2023
Merged

add "concept" car #4

merged 2 commits into from
Mar 1, 2023

Conversation

alexbilevskiy
Copy link
Contributor

Presenting you the concept car!

Inspired by https://xakcop.com/post/re-2.4ghz/

It is very similar to dickie car both in exterior and functionality, only difference is protocol.

image
image

Signal analysis

Car's remote is labeled as 2.4G, so whe know where to start with.
To find exact frequency we need to position controller near the hackrf antenna and use any sdr visualizer, with gain and amplifiers tuned to minimum.
image

When exact frequency is found (2.417G) the next step is to decode signal. My go-tool for signal analysis is universal radio hacker.
This is overall picture after setting correct signal parameters:
image

The remote is sending signal in batches of 4 packets of 164 bits. When remote is idle it repeatedly sends one batch of 4 "sync" packets.
image

When button is pressed, remote starts sending batches of another 4 packets, and after releasing the button remote continues to send sync packets.

Two-way communication

When the remote is switched on, it starts flashing with red indicator until car is turned on, after which indicator turns solid red. However, i coundn't find how it works, no packets are being transmitted. Maybe it's in another frequency. Car works fine anyway. It works even without sync packets, just control packets are enough UPDATE: yes, it's another frequency. When switched on, remote starts transmitting similar batches of 4 packets on 2.405G, only with longer pause between them, after receiving response from car it switches to 2.417G. Maybe it's some kind of strange channel negotiation... Anyway, car is working even without it.

Problems

  • A bit laggy reaction of the car to commands
  • No constant transmission of sync packets
    It is unnecessary, but probably that is the reason of laggy reaction.
  • Main purpose of this research is that car moves too quickly. I wanted to implement some kind of PWM to slow it down, for example send "forward" command every 2nd or 3rd packet. This is yet to be done.

@rgerganov
Copy link
Owner

Great work! I am very happy to see other people contributing to this project!

About the lag reaction -- I remember I had the same problem with my car and I fixed it by sending stop_bits after each command. The stop_bits pattern must have the same common prefix as other bit patterns, just padded with some random bits at the end. Can you try and see if this works for you?

@rgerganov
Copy link
Owner

Is it OK to merge this PR (it is currently marked as "draft")? I think it is a great contribution to the project.

@alexbilevskiy
Copy link
Contributor Author

@rgerganov sorry for delay, i'm gonna check in the next couple days if sending stop_bits fixes laggy reaction and then convert draft to normal PR

@alexbilevskiy
Copy link
Contributor Author

Yep, now it works fine.

I also accidentaly copied fwd bits as sync, fixed it too.

@alexbilevskiy alexbilevskiy marked this pull request as ready for review February 28, 2023 20:12
@rgerganov rgerganov merged commit ca69d6d into rgerganov:master Mar 1, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants