-
Notifications
You must be signed in to change notification settings - Fork 73
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
Feature Request: 433 Mhz tx/rx support #68
Comments
I'm not going to do this work, but hopefully someone will want to take it on. The one action item for me however is to write up guidelines for how to develop 3rd party Firmata modules. An example module is here, but it's not well documented: https://github.com/firmata/FirmataEncoder. |
An implementation is available under https://github.com/git-developer/RCSwitchFirmata |
@git-developer I could assigned this feature a dedicated ID (rather than having to use 0x00). One other change I'd suggest is removing the RC_SEND and RC_RECEIVE pin modes since I'm planning to deprecated pin modes for non-HW pin modes, also the values assigned would conflict with pin modes already in use. I've ordered some radio modules so this is something I could also help out with over the upcoming holiday break. |
Sounds good. I would favor to see RCSwitchFirmata integrated. I remember that I tried in 2014, found an ancient pull request and the repos protocol and arduino forked. But it's been a long time since I developed the library, so I'll have to get my mind back into it. When the pin modes are removed, what will be the replacement? Two distinct IDs? |
This is the proposal for replacing the use of pin modes as a feature query: firmata/protocol#91. So in the case of RCSwitchFirmata we'd either need 2 IDs (1 for input and 1 for output), or combine input and output into a single class and use a single ID. |
I've reviewed a lot this week, found
It's quite hard for me to follow all this. I'm still trying to find out what of all this is relevant to RCSwitchFirmata. Let me sum up what I think now:
If all of this is correct, I suppose to use one feature ID for The next steps would be per feature:
Open questions:
|
In response to your assumptions above:
Since this feature will most likely land before the feature query is implemented (since I'm debating whether to include the new feature query it in the near future or defer it to Firmata 3.0), if you need pin modes for discovery purposes then we'll have to add them. If however the pin modes aren't absolutely necessary then simply return
I'm not exactly sure what you mean. Individual features are either included or not included in the sketch at compile time. You could add |
Once upon a time, when I wrote RCSwitchFirmata, my understanding was:
I understand that this does not scale well. After your explanations, my understanding is now:
Did I get it right now? |
Yes that sound right. It also makes me realize I should define a recommendation for use of enable/disable and/or attach/detach. Attach/detach is a common Arduino pattern. |
Some features such as AccelStepperFirmata define enable/disable as a reflection of the enable/disable functionality of a motor driver board (see Stepper enable in the AccelStepperFirmata protocol definition). So one option would be to use enable/disable when hardware functionality is being enabled/disabled, whereas attach/detach would be used to attach or detach a firmware feature if/when it makes sense to do so (perhaps to temporarily or permanently ignore messages sent to or from a feature and free up or allocate memory if absolutely necessary). |
An implementation (work in progress) can be found under RCSwitchFirmata/dev-2.0.0. |
A couple of suggestions for your implementation:
|
Thanks for your suggestions, I appreciate them and I'm looking forward to further comments. |
I released the implementation as RCSwitchFirmata 2.0.0. |
Great! I'll add it to firmatabuilder. |
RCOutputFirmata and RCInputFirmata are now available as selections in the Contributed features section on firmatabuilder.com. |
There are numerous cheap 433 Mhz receiver and transmitter pairs available on eBay. A common use for them is controlling remote controlled outlets like these ones.
There's a complete library available here which works very well for the Arduino. It would be fantastic to see this implemented in Firmata so we can see it in other platforms.
The text was updated successfully, but these errors were encountered: