You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'd like to add a class to support traditional hobby RC receivers to control nodebots. I happen to have a Spektrum radio and compatible receivers, but other popular Tx/Rx (transmitter/receiver - common abbreviations in RC world) combinations should be supported, too.
I'm not sure we need Transmitter? Seems like that's on "the other end" that we don't care about. At least I can't think of a use case. We just need to know the value the transmitter sends, via the receiver.
I'll need to think through the channels property, to make sure that makes sense for PPM as well. (I think so, but want to think it through.)
I like the idea of defining our own I2C backpacked peripheral, because we can control every aspect. I've come to realize that the design decisions made by many (not all) hardware creators is generally not very compatible with our async goals.
I assembled this gizmo as a basic "backpack" starting point. In the photos below, you'll notice that the intention is to plug this thing directly into the receiver unit's channel pins. The fritzing shows everything facing forward, but that's just only for illustrative purposes (and a limitation of fritzing)
G: Ground
V: VCC
C: Channel
I haven't added a label for channels, because my actual receiver won't arrive until later today, so I'm not sure which direction the channels are in.
The second one I built significantly reduced materials:
FYI, the typical method for connecting such a receiver to your RC project (drone, truck, etc) is with a breakout cable, such as this Naze32 one: http://www.readymaderc.com/store/index.php?main_page=product_info&products_id=3062
That also gives you more flexibility in positioning components on your build. I'll probably make my backpack to accept something similar to that.
But you won't be able to use such a thing if you're trying to read the pulse values from the receiver—right? You're effectively replacing this thing and adding a "middle man" to intercept the pulses to do something else with them.
Looks like I was away for a few days and missed some fun discussion.
Regarding that Naze cable:
But you won't be able to use such a thing if you're trying to read the pulse values from the receiver—right? You're effectively replacing this thing and adding a "middle man" to intercept the pulses to do something else with them.
I really only meant that I'll probably have male pins on my backpack so I could use such a cable since you can get something similar for most receivers. Then you don't have to worry about having female headers shaped a specific way to fit a particular receiver onto a backpack.
I'm working on cleaning up the J5 issues list (it was getting kind of hairy). I've identified a subset of issues that are requests for new classes, devices or features and have added them to an index of requested features. Hopefully it will be a place where motivated contributors can find cool things to work on.
This request is listed under the new "Receiver" class.
Activity
rwaldron commentedon Mar 28, 2016
I've been casually thinking about this for about a year and the basic sketch I always return to is:
Receiverclasschannelsproperty, that's an array and the values are the most recently received valueTransmitterclassThat's about as far as I usually get. It's critically important that these are designed with the controller pattern.
Resseguie commentedon Mar 28, 2016
I'm not sure we need
Transmitter? Seems like that's on "the other end" that we don't care about. At least I can't think of a use case. We just need to know the value the transmitter sends, via the receiver.I'll need to think through the
channelsproperty, to make sure that makes sense for PPM as well. (I think so, but want to think it through.)rwaldron commentedon Mar 29, 2016
That may very well be the case, I just figured I'd put it there and we can let the junk shake out :)
rwaldron commentedon Mar 30, 2016
I just purchased these, should receive them tomorrow
rwaldron commentedon Mar 30, 2016
The major issue we face is that
pulseInis process blocking. Some things to consider:I like the idea of defining our own I2C backpacked peripheral, because we can control every aspect. I've come to realize that the design decisions made by many (not all) hardware creators is generally not very compatible with our async goals.
henricavalcante commentedon Mar 31, 2016
Is there a way to handle PPM signal over firmata?
rwaldron commentedon Mar 31, 2016
@henricavalcante no, but it can be made available via I2C
rwaldron commentedon Mar 31, 2016
@Resseguie
I assembled this gizmo as a basic "backpack" starting point. In the photos below, you'll notice that the intention is to plug this thing directly into the receiver unit's channel pins. The fritzing shows everything facing forward, but that's just only for illustrative purposes (and a limitation of fritzing)
G: Ground
V: VCC
C: Channel
I haven't added a label for channels, because my actual receiver won't arrive until later today, so I'm not sure which direction the channels are in.
Resseguie commentedon Mar 31, 2016
Nice. I'll try to build something similar.
rwaldron commentedon Mar 31, 2016
Welllllllll my receiver just arrived and unfortunately the one I ordered has notches
rwaldron commentedon Apr 1, 2016
I cut them out and made it fit. Then I made a newer, less messy backpack. Pictures later
Resseguie commentedon Apr 3, 2016
That's the same Rx I have. FYI, the typical method for connecting such a receiver to your RC project (drone, truck, etc) is with a breakout cable, such as this Naze32 one: http://www.readymaderc.com/store/index.php?main_page=product_info&products_id=3062
That also gives you more flexibility in positioning components on your build. I'll probably make my backpack to accept something similar to that.
Note that weight is also a factor for many uses of this, so I'd like to investigate the minimum backpack necessary once we get the design working.
rwaldron commentedon Apr 4, 2016
The second one I built significantly reduced materials:
But you won't be able to use such a thing if you're trying to read the pulse values from the receiver—right? You're effectively replacing this thing and adding a "middle man" to intercept the pulses to do something else with them.
31 remaining items
henricavalcante commentedon Apr 6, 2016
@rwaldron have you tried like this:
rwaldron commentedon Apr 6, 2016
I thought I did and I thought I saw it crashing. It's not crashing now.
rwaldron commentedon Apr 6, 2016
I'm signing off for a bit.
rwaldron commentedon Apr 6, 2016
Presently, this is not crashing:
henricavalcante commentedon Apr 6, 2016
It's not crashing here too, which node code are you using in tessel 2 to get values from I2C?
rwaldron commentedon Apr 6, 2016
I've been working on a plugin component
Receiverclass all day, I will push it out tomorrow. I have to leave my computer for the rest of the day.henricavalcante commentedon Apr 6, 2016
ok I'll wait until tomorrow ;)
I was trying something like this without success:
Resseguie commentedon Apr 7, 2016
Looks like I was away for a few days and missed some fun discussion.
Regarding that Naze cable:
I really only meant that I'll probably have male pins on my backpack so I could use such a cable since you can get something similar for most receivers. Then you don't have to worry about having female headers shaped a specific way to fit a particular receiver onto a backpack.
rwaldron commentedon Apr 8, 2016
@Resseguie got it!
rwaldron commentedon Apr 8, 2016
@henricavalcante @Resseguie here's what I've got so far... https://github.com/rwaldron/j5-rc-receiver
henricavalcante commentedon Apr 8, 2016
I'll test asap. btw great work. =)
rwaldron commentedon Apr 9, 2016
Thanks! It's pretty fun :D
dtex commentedon Jan 8, 2018
This just landed in configurableFirmata https://github.com/git-developer/RCSwitchFirmata Seemed relevant.
dtex commentedon Jan 11, 2018
Hi @Resseguie,
I'm working on cleaning up the J5 issues list (it was getting kind of hairy). I've identified a subset of issues that are requests for new classes, devices or features and have added them to an index of requested features. Hopefully it will be a place where motivated contributors can find cool things to work on.
This request is listed under the new "Receiver" class.