Morning all,


Just a thought that I had.  It seems like the only real motivation that I have at this point for upgrading to APM2 is the new barometer with its 10cm resolution.  I know APM2 has more processing power etc etc more space and so on, but it would be great just for the additional resolution.  I would definitely upgrade mine.


Why not provide us a tiny upgrade daughter board that we can solder onto our current apm1 boards to allow us the awesomeness of the new sensor.  In APM under the configuration tab, allow us to select the upgraded baro.  We could possibly use one of those spare serial ports or something...


Seems like a good idea...




Views: 2053

Reply to This

Replies to This Discussion


Final Bump - Then purchasing APM2

I'll wait for the half price APM1 to appear in buy sell trade :-D

"Then purchasing APM2"

That's the idea. :)

Unless you have some skills and buy this:

and then modify the code to use the new sensor(s).

BTW this uses the same (almost) sensors of the new APM2 :

MPU6050 (similar to the MPU6000 but only I2C and not SPI)


and finally the MS5611 barometer.

If you manage to do that you will have some followers for sure.




Hi Emile, thanks for the link. I ordered one, hooked it up to the I2C translator on the APM1 and made some mods to AP_Baro_MS5611.cpp to have it talk to the baro in I2C (SPI was too buggy, competing with Dataflash chip).

In APM_Config.h I added #define CONFIG_BARO     AP_BARO_MS5611

That's it! Just came back from the maiden-ms5611-flight and must admid that I'm very impressed :-)

Anyone interested in details like the code change to AP_Baro_MS5611.cpp ?

Greetings, Frank

Anyone interested in details like the code change to AP_Baro_MS5611.cpp ?

Yep, me. Did you also have the magnetometer installed on the APM ? Any issues with that, taking into account that both are i2c peripherals ? Or maybe I'm reading wrong what you mean by i2c translator ? 

I'd be interested too.

What about the on-board sensor, does it need disabling ?

Yes, I use a magnetometer too. No problems, it keeps working correctly.

Only sometimes the baro gives a false reading (very high).
These values are discarded in the changed module.

Connect the MS5611 to the levelconverter like in the pictures. If you use another breakout board then the config is:
- no pull-ups needed
- put the chip in I2C mode
- set address to 0x76 by connecting CSB to 3.3V; needed because otherwise it's the same as Bosch baro

Connect the MS5611 to GND and 3.3V from the APM.
Replace the /libraries/AP_Baro/AP_Baro_MS5611.cpp with the one attached.
Add to /ArduCopter/APM_Config.h : #define CONFIG_BARO     AP_BARO_MS5611

There is no need to disable the old Bosch baro.

Ready, don't forget to extensively test it. Let the new set standing on your bench for at least an hour, making sure the APM keeps working.

The software works up to Arducopter version 2.8.1. With every new version I check if the original cpp file has changed.
If not, there's a good change this changed version will work, but again, test it!

Have fun,

Regards, Frank


Very impressive, thanks for that !

A few more questions if you dont mind:

-Why connect CSB to 3.3V ? Can't simply set address with the jumper ?

-What's a good place to get 3.3V from APM1 ?

Again, thanks for sharing ;)

Dimitri, you're welcome!

Connecting CSB to 3.3 is the same as using the jumper for 0x076. That remark was for users NOT using a breakout board. So: use the jumper. If you try hard you can see even it on one of the pictures (well no jumper, but solder-pad in my case).

Please view attached picture for the place to connect to 3.3V. It´s the red spot.


Great ! Many thanks !

Will report progress when I have the breakout board and level shifter :)

Reply to Discussion


© 2020   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service