Mr.RC-Cam

DiY Walkera Rodeo 150 Baro Sensor Installation

25 posts in this topic

The Walkera Rodeo 150 is a backyard "racing" mini Quadcopter / drone that's a blast to fly. Mine has been hacked and upgraded with a minimOSD and addressable RGB LED's.

But wait, there's more. Now it has Altitude Hold thanks to a cheap barometric sensor module. With the flick of a switch the Rodeo will remain at the current altitude. I also see the realtime altitude data (AGL feet) in my goggles via the minimOSD.

GY63_Wiring3_800.jpg

I will admit that all the extra features I've added are useless for a serious FPV Racing drone. But I don't consider the Walkera Rodeo to be a professional race machine. It's a FPV backyard speeder that is equally ready for some casual exploring. Given it's dual personality I see nothing wrong with adding some bells and whistles to it.

Besides, adding altitude hold to the Rodeo 150 seemed like a interesting challenge. And now that mine has it, I can report that it works great. I'll show how I did it.

The Fine Print: It's not a beginner's mod. But simple enough for someone with good fine-pitch soldering skills to do without too much trouble.

1 person likes this

Share this post


Link to post
Share on other sites

You'll need only two items. Total cost is approximately $20 USD.

MS5611 GY-63 Module: eBay or Banggood
JST 1.25mm 6-Pin Cable: eBay
 

Remove two (2) unwanted resistors from the MS5611 Baro module as shown below:

GY63_Res_Mod1_800.jpg

Do NOT skip this step. The two resistors must be removed!

 

Solder four wires on the JST 6P cable to the module like this:

GY63_Plug_Wiring1_800.jpg

As you can see I removed the two center wires on the JST plug (they are not used). The colors on my cable will be different from yours too. That's because I moved the wires around so the colors more accurately represented the signals; I like V+ to be Red and Gnd to be Black. So either move your JST plug's wire positions to look like mine or ignore the colors and pay attention to where they go at each end.

Share this post


Link to post
Share on other sites

The Baro Sensor plugs into the empty 6-Pin connector on the Rodeo's flight controller. See photo below.

GY63_Wiring1_800.jpg

 

It's now a good time to test the wiring. As follows:

1. Launch the Cleanflight Configurator software.

2. With the USB cable removed, Plug in the Rodeo's flight battery.
Note: The baro sensor is NOT powered by USB voltage. It requires the external battery to be installed first. When using the CleanFlight Configurator it is VERY important to install the flight battery BEFORE attaching the USB cable.

3. Plug in the USB cable and click the Cleanflight connect button.

4. At the top of the screen are icons that show the working sensors. Confirm the Baro Sensor is green. See screenshot below.

Rodeo_Sensors2_1000.jpg

If the baro sensor is not enabled (gray color) then check your wiring.

Share this post


Link to post
Share on other sites

I decided to mount the module on the outside of the Rodeo's canopy. I initially had mixed feelings about the location. It seemed better than inside the canopy because the internal temperatures are crazy hot. But the outside location puts the sensor near the prop wash. But it is working well so I recommend putting it there.

I used my 3D printer and created a plastic chassis / case for the module. But you can simply use some shrink tubing to protect it.

GY63_Wiring2_800.jpg


Indirect airflow is needed to the baro sensor chip. It's the tiny metal can on the module's PCB. Notice it has two holes in it. They are the air inlet.

But the baro module's installation must not permit any light to leak on the sensor chip. My 3D printed case is somewhat translucent so I had to line the inside surfaces with heavy card stock.

IMPORTANT: You must NOT allow any light to be seen by the baro sensor chip. That's because the sensor is photo electric and any light leakage will bias the sensor data.

To test for light leakage I launched the CleanFlight configurator software and used a high powered flashlight. The flashlight was aimed directly at the installed baro module, from several different angles, while I watched the plotted sensor data. The data must not show any disturbances due to the light. See below:

Rodeo_Sensors1_1000.jpg

Share this post


Link to post
Share on other sites

Next I assigned a switch on the Devo 7 radio to control the altitude hold function. I used the Gear Switch that is setup to use the AUX2 channel. Gear UP is Altitude Hold Off and Gear DOWN is Altitude Hold On.

You will need to add BARO (AUX2) to the Cleanflight Configurator's "Modes" page. See below:

Rodeo_Modes1_1000.jpg

Don't forget to click the save button (bottom right corner)!

The last step is to update the PID Tuning settings for Altitude Hold. You can try out mine and then tweak to your satisfaction. See ALT entries in the screenshot below.

Rodeo_PID_Tuning1_1000.jpg

 

Now go out and test fly it. Get a few meters off the ground and turn on Altitude Hold. Your Rodeo should remain at altitude, with minor variation (±1 meter) in height. Of course the model will drift, especially if there is a breeze, because it does not have a GPS to hold position. So your pitch and roll thumbs will be needed, but your throttle stick should be able to remain untouched as you hover around.

Go ahead and experiment with the PID settings if you need more accurate altitude hold. Be sure to post your favorite values so others can try them. 

Share this post


Link to post
Share on other sites
On 8/10/2016 at 4:41 PM, Mr.RC-Cam said:

Remove two (2) unwanted resistors from the MS5611 Baro module as shown below:

GY63_Res_Mod1_800.jpg

Do NOT skip this step. The two resistors must be removed!

Hi. First of all, first post here for me, thanks a lot for sharing such great content RC. I got the Rodeo 150 a couple of weeks ago and you got me hacking on it sooner than I had expected, thanks to your pictures and very well written instructions. So far, I did the Micro minimOSD mod, but also swapped to vTx to another one I had bought before the Rodeo (it is a very tight fit, I had a "high-voltage" version that needed 7.4V and Walkera left a spare pin on the PDB so I used that and now the presumably cleaner regulators on the vTx are powering the camera and the OSD). I am looking at upgrading the camera (I have it on the bench, but didn't execute yet).

The Rodeo 150 is very fun to fly.

To make the story short, the Barometer mod -- did you try fitting it inside the Rodeo, at the sides with maybe a small hole to let it breath: would that be enough?

I searched a bit and couldn't find the reasoning behind removing those two resistors on the MS5611 board (I haven't received mine yet). Would you mind giving me a clue? Are they pull-up/down in the I2C bus?

Share this post


Link to post
Share on other sites
Quote

To make the story short, the Barometer mod -- did you try fitting it inside the Rodeo,

There would have been enough room if I hadn't installed the RGB LED voltage regulator inside the canopy. But keep in mind that the Rodeo's internal temperatures will change a lot during flight. Most of the temperature increase is due to the stock vTx, so if your replacement vTx runs cool then maybe this isn't a big thing in your case.

But why care about the temperature in there? As learned from a code review, Cleanflight reads the baro sensor's compensation temperature at sensor detection/initialization and uses this value until the next power up cycle. So the baro readings may drift as things heat up during flight. I have no idea how much impact it would have on sensor accuracy. So this unknown risk is one of the reasons for mounting the sensor outside the hot-house canopy.

BTW, I found that the MS5611 works great on the Rodeo. The baro hold mode works decent and the reported OSD altitude value is consistent throughout a flight (no observed drift). 

 

Quote

I searched a bit and couldn't find the reasoning behind removing those two resistors on the MS5611 board (I haven't received mine yet). Would you mind giving me a clue? Are they pull-up/down in the I2C bus?

They are weak i2c pullups. They would be useful for a 5V Arduino project. But undesirable in our situation due to the FC's 3.3V buss.

1 person likes this

Share this post


Link to post
Share on other sites
1 hour ago, Mr.RC-Cam said:

But why care about the temperature in there? As learned from a code review, Cleanflight reads the baro sensor's compensation temperature at sensor detection/initialization and uses this value until the next power up cycle. So the baro readings may drift as things heat up during flight. I have no idea how much impact it would have on sensor accuracy. So this unknown risk is one of the reasons for mounting the sensor outside the hot-house canopy.

They are weak i2c pullups. They would be useful for a 5V Arduino project. But undesirable in our situation due to the FC's 3.3V buss.

Perfect, thanks. I just received the baro module today, I'll see if it fits on the sides (inserted from below). The new vTx I have put in runs almost as hot as the stock one, but I am thinking it doesn't get that hot on the sides (the top is another ball game, I agree).

Another path would be to see if there is any reason why CF does not read the baro compensation every X cycles to recalibrate in flight -- maybe that is too scary to do in the air and I'd still prefer a one-time init while close to ground, true indeed. 

Share this post


Link to post
Share on other sites

Keep in mind that for textbook pressure sensing accuracy the calculation should use the temperature of the outside air rather than the internal operating environment. So if Cleanflight uses the canopy's hellish temperature the underlying math may have a biased result. The big question is if the wide variations in internal temperature would affect baro hold performance.

Not wanting to invite any unnecessary demons, I took the low risk solution and mounted the baro sensor externally. Because internal mounting is important to you then perhaps you should just try it out. Maybe you won't notice any issues at all; Won't know unless you try.

 

Share this post


Link to post
Share on other sites

Just to tidy up this subject, I did a primitive temperature test while running the Rodeo on my work bench. A heat gun was used to gently warm up the baro sensor module so that it felt about the same as the plastic canopy's surface temperature. My OSD reported that the altitude was reduced approx 6 feet. Knowing that now, I am satisfied that my external mounting is a better choice (versus internally).

BTW, I looked at the Cleanflight code again and found that the baro temperature is measured in the sensor task scheduler. It is interleaved with the pressure measurements in a ping-pong fashion. So please pardon my earlier claim that it only captured the temperature value during initialization.

Lastly, I also checked to see if my baro's location was affected by prop wash. While holding the Rodeo 150 above my head I found that the OSD's altitude value remained steady during all throttle stick positions.  So this further confirms my chosen spot was a safe place to mount the baro sensor.

Edited by Mr.RC-Cam
Prop wash test.
1 person likes this

Share this post


Link to post
Share on other sites

Hi,

I'm going to try with BMP280 barometer sensor. I've noticed it needs 3.3v, so I need to use vreg (on 6pin jst there is 5v). 

Do I need to do something else? Will I have to unsolder some resistors from BMP280 like you did with MS5611?

Regards

gc

Share this post


Link to post
Share on other sites

The resistor removal hack is not needed if your baro sensor board is designed to run on 3.3V.

Share this post


Link to post
Share on other sites

Hi again,

I am trying to add BMP280. I am using vreg to get 3.3v (BMP works with 3.3v). I2c wires I've connected like you did.

When I conect my Rodeo 150 to Cleanflight (I connected battery first, before I plugged usb cabel), I can see that baro sensor is missing (there is no green icon of barometer). But i2c error counter drop down to 3.

I was trying to use CLI and command set baro_hardware and set mag_hardware (like you described in other post about Rodeo), but those don't change i2c error counter (like you wrote).  

Do you have any idea from this description what I am doing wrong?

I also checked BMP280 sensor with Arduino Uno and it is working. I've heard something about logic level converter. Do I need to use something like this?

Regards

gc

Share this post


Link to post
Share on other sites

Keep in mind I don't use the BMP280 (I have the MS5611 on my Rodeo). But if you booted with the BMP280 installed and confirmed a reduction in the i2c error count then that means it was detected during the Flight Controller's i2c sensor scan. So it is a mystery why it is not working.

Be sure to set the CLI with these settings (default settings):
SET mag_hardware=0
SET baro_hardware=0

Maybe it would be wise to check again. With the default settings mentioned above, what is the i2C error count when the baro is connected versus when it is *disconnected?
*Disconnected = remove SDA and SCL wires from baro, reboot.

Also, does your BMP280 board have SDA & SCL pullup resistors in it? If they are installed, what is the resistor values? Post the schematic if you have it.

 

Share this post


Link to post
Share on other sites

I am using BMP280 board exactly the same as post the image in other post (the purple one). I haven't add any additional resistors.

Does it matter if I add resisitors between i2c wires SCL, SDA and vcc (5v) before vreg, or I must add resistors to vcc (3,3v) after vreg?

Share this post


Link to post
Share on other sites

1. Do you mean you are using this board?

bmp280_pcb1_450.jpg

If it is the one you are using then you must configure it to the correct i2c address. Cleanflight needs it to be address 0x76. That means you have to ground the pad that is labeled SDO.

2. Do not add any other i2c resistors. Do NOT add any pullups that connect to 5V; This installation is 3.3V only.

Share this post


Link to post
Share on other sites

Yes, exactly this one.

I tried your tip, but it didn't help. I also checked i2c address via Arduino Uno, and BMP280 sensor has address 0x76.

I also learnt how to use CLI - before I wasn't saving changes. I disabled mag and baro sensor. So, i2c counter was 0. Then I enabled BMP280 (set baro_hardware=4) and the i2c counter was still 0.

Do I need to enable something via Cleanflight? I have UART2 enabled (like you show in micro OSD post).  

Share this post


Link to post
Share on other sites

Perform this investigation again:

1. With the BMP280 installed, apply power to the Rodeo.
2. In cleanflight, set baro_hardware=0. Save it.
3. Reboot Rodeo (power off, power on).
4. Go back into Cleanflight. What is the i2c error count?
5. Power down. Remove the BMP280.
6. Reboot Rodeo.
7. Go back into Cleanflight. What is the i2c error count?
8. Report back error counts in steps 4 & 7.


edit:

Quote

Do I need to enable something via Cleanflight?

After the baro is working you will assign a R/C channel (toggle switch) to it. But no need to do that yet.

Share this post


Link to post
Share on other sites

I performed the tests.

A. set mag_hardware=1 and set baro_hardware=0: with BMP280 installed i2c error count=1; without BMP280 i2c error count=2

B. set mag_hardware=0 and set baro_hardware=0: with BMP280 installed i2c error count=3; without BMP280 i2c error count=4

The same results I get with grounded SDO and without grounded SDO.

I also noticed that there is very small value of voltage (0,28v) on 6pin jst when I connect Rodeo 150 via USB to PC (without battery attached). I used step up/down vreg. So my BMP280 have 2,8v on input without battery (I get the same results of tests with and without battery attached). Is it possible that the problem i caused by my vreg (it has common ground - I used this vreg http://www.ebay.pl/itm/272202572258?_trksid=p2060353.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT). 

 

  

 

 

Share this post


Link to post
Share on other sites
Quote

A. set mag_hardware=1 and set baro_hardware=0: with BMP280 installed i2c error count=1; without BMP280 i2c error count=2
B. set mag_hardware=0 and set baro_hardware=0: with BMP280 installed i2c error count=3; without BMP280 i2c error count=4

That suggests that the Baro was detected by the hardware scan. But since the baro sensor is always disabled in the cleanflight configurator, I am beginning to suspect there is a BMP280 firmware bug in the Rodeo.

 

Quote

The same results I get with grounded SDO and without grounded SDO

Interesting. But I would expect that shorting out SDO would interfere with the internal sensors (ACC, Gyro) too. That is why it is better to disconnect the SDO from the baro rather than short it to ground.

 

Quote

So my BMP280 have 2,8v on input without battery

The i2c pullups on the Flight Controller will provide the buss voltage on SDO and SCL. So the 2V - 3V is expected.

However, if the Rodeo is powered by USB before the battery is attached then there is a chance that the baro sensor will inadvertently latch-up. So ALWAYS power the Rodeo with the baro sensor & Vreg connected BEFORE connecting the USB cable. This ensures the baro sensor has power before the Flight Controller begins to initialize.

BTW, how long are your wires to the baro sensor? They must be short, perhaps less than 3 inches. Longer wires will affect the i2c signals, especially with the weak 10K ohm pull-ups that are being used.

 

Quote

So my BMP280 have 2,8v on input without battery (I get the same results of tests with and without battery attached).

Wait, what? If you mean you have disconnected the battery (removed power from the baro) and the baro testing i2c error counts you mentioned in your previous post behave the same, then it's game over. This would further convince me that there is a BMP280 firmware bug in the Rodeo.

 

Quote

Is it possible that the problem i caused by my vreg (it has common ground - I used this vreg http://www.ebay.pl/itm/272202572258?_trksid=p2060353.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT). 

Be sure to confirm the Vreg provides 3.3V. FWIW, I don't like a DC-DC supply directly powering the baro sensor because their switching noise may adversely affect the measurements. The MS5611 board I used has a 3.3V Linear VReg on it.

 

Share this post


Link to post
Share on other sites

During tests I was using proper sequence of connecting first battery then USB cabel.

My vreg is step up and down. When battery is attached it has exactly 3.3v (5v from 6pin jst is lowered to 3.3v). When battery is not attached and the USB cabel is plugged then on 6pin jst is 0.28v which my vreg increase to 2.8v. So even without battery BMP280 has power from USB cabel.

Wires are 4cm long (less than 2 inches, about 80%*2 inches).

I've read a little about SP Racing F3 controllers and I've noticed that they offer products with MS5611 and BMP280 (cheaper version). So I understand that your guess is that Rodeo's creators messed up something in Rodeo's version of firmware.

I'm also waiting for the package with MS5611. When it comes I follow Yours solution and we will see. Maybe there is something wrong with my unit or maybe I mess up something that I am not aware at the moment.

Thanks for Your help. I'll write when I get the package and check solution with MS5611

Regards

gc

 

Share this post


Link to post
Share on other sites

It will be interesting to hear how the MS5611 works out for you. It is a better baro sensor (versus the BMP280) and I know it works with the Rodeo.

 

Share this post


Link to post
Share on other sites

Hi,

I've finally recieved package MS5611. So I've mounted it and it works. Cleanflight sees it, but I haven't try it in the air yet.

I've noticed that without unsoldering two resistors (you mentioned) my Rodeo 150 couldn't start - the beep sequence sounded a little different and I couldn't arm it, but I didn't connect it to Cleanflight to check if the i2c counter drops down.

Maybe with BMP280 there is also something with pull up resistors that could be unsoldered?

Have you measured how much time of flight decreased with added micro minim OSD and MS5611?

By the way, have you been trying to do something with microphone on video transmitter?

I'll try to find some time on weekend to test alt hold outside and I let you know how it works.

Regards

gc

Share this post


Link to post
Share on other sites
Quote

I've finally recieved package MS5611. So I've mounted it and it works.

Great!

Quote

I've noticed that without unsoldering two resistors (you mentioned) my Rodeo 150 couldn't start - the beep sequence sounded a little different and I couldn't arm it ...

Those two resistors are 5V i2c pullups. The Rodeo Buss is 3.3V! So to avoid harming the i2c it is wise to remove the two resistors BEFORE installation.

Quote

Have you measured how much time of flight decreased with added micro minim OSD and MS5611?

No noticeable difference in flight time.

Quote

By the way, have you been trying to do something with microphone on video transmitter?

That won't happen until the next time I need to dismantled the Rodeo.

Quote

I'll try to find some time on weekend to test alt hold outside and I let you know how it works.

On the first baro test be prepared for the unexpected. With the factory/stock PID values mine shot up like a rocket when I set the alt-hold switch. So I suggest starting off with reduced settings (or try my posted values) and tweak them until you are happy with the hold performance.

 

Share this post


Link to post
Share on other sites
Quote

By the way, have you been trying to do something with microphone on video transmitter?

I pulled my Rodeo apart and checked out the Microphone problem. From what I can see, Walkera didn't include a preamp on the Electret mic. So the mic's signal doesn't have enough drive. That's why the monitor's audio is barely heard even at maximum volume.

You'll need a amplified Mic that provides a common "line level" signal. For example, upgrade the camera with one that has a Mic in it or use DPCAV's Tiny-Mic. Or build a DiY electret mic using a OpAmp with 5X gain.

Here is where you can find the Audio Input on the vTx PCB:

audio_in1_1000.jpg

The two circled resistor pads are the audio input. They are connected together, so you can use either. But depending on the amplified mic, it may be necessary to remove/discard those two 0402 sized resistors. If not already provided on the Mic, the Mic's audio signal should be AC coupled to the vTx with a cap (0.47uF is fine). The stock mic can stay (just ignore it).

The Walkera's audio RF sub-carrier is 6.5MHz; Your vRx will need to be compatible with it.

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now