GY-BMP280-3.3 Pressure Sensor Module Arduino Tutorial and Pinout

GY-BMP280-3.3 high precision atmospheric pressure sensor module for Arduino – tutorial on first use and testing of the module as well as GY-BMP280-3.3 pressure sensor module pinout. The same module is sold under different names such as BMP280-3.3 or just BMP280, although BMP280 is the actual pressure sensor chip that can be seen just below the capacitor at the top of the module, as shown in the image below.

GY-BMP280-3.3 Pressure Sensor Module

GY-BMP280-3.3 Pressure Sensor Module

GY-BMP280-3.3 Pressure Sensor Module Basic Information

The least you need to know before using this module is presented below.

What the GY-BMP280-3.3 Pressure Sensor Module Can Measure

It can measure both atmospheric pressure and temperature. Because it can measure atmospheric pressure, it can be used to calculate altitude.

BMP280 Datasheet

The module uses a BMP280 barometric pressure sensor from Bosch. A datasheet on the BMP280 can be found on the BMP280 page on the Bosch website. This datasheet and web page is for the actual BMP280 device found on the GY-BMP280-3.3 module.

Operating Voltage

The GY-BMP280-3.3 operates from 3.3V, so requires 3.3V power and must be driven with 3.3V logic levels. Some modules that use the BMP280 device have a voltage regulator and level shifters so that it can be operated from a 5V controller such as an Arduino Uno. This module does not have any regulator or level shifters.

From the BMP280 datasheet:
Minimum power supply voltage – 1.71V
Maximum power supply voltage – 3.6V
Absolute maximum power supply voltage – 4.25V

Direct connection to a 3.3V Arduino such as an Arduino Due, Arduino Zero, Arduino M0 or Arduino M0 Pro is fine, so long as the pressure sensor is powered from the Arduino 3.3V pin. For 5V Arduinos such as the Arduino Uno or Arduino MEGA, it must be powered from the Arduino 3.3V pin, and must be interface to the Arduino using a level shifter for the data and clock pins.

I have seen videos on YouTube where this module is connected directly to a 5V Arduino and powered from 5V. This is extremely bad engineering practice and could result in severely damaging or destroying the BMP280 device. It is sheer luck if the device actually works and does not blow up.

Interfacing

I2C or SPI can be used to interface or connect the module to an Arduino or other microcontroller. Pin 6 of the module controls the I2C address of the module which can be set to either 0x76 when pin 6 is left unconnected or 0x77 when pin 6 is pulled to Vcc (3.3V).

Wrong Information

The Internet is full of wrong information regarding this sensor module. Tutorials on powering this device from 5V and not using level shifters on the data pins are out there. Or if the advice is to power the module from 3.3V, then the data pins are directly connected to 5V Arduino pins without level shifters.

Another mistake that I have seen is that people do not know that the I2C address can be changed by using pin 6 of the module, as can be seen in the pinout for the module (link in the section below). What they then do is modify the Arduino driver to change its I2C address so that it matches the default I2C address of the module, instead of just pulling pin 6 high so that the module address matches the driver address.

GY-BMP280-3.3 Pressure Sensor Module Pinout

Refer to the GY-BMP280-3.3 pressure sensor module pinout page for the module’s pinout and circuit diagram.

GY-BMP280-3.3 Pressure Sensor Module Tutorial

A tutorial on basic use and testing of the GY-BMP280-3.3 pressure sensor module on the Starting Electronics website shows how to connect the module to both 3.3V and 5V Arduino boards. An Arduino Due is used to demonstrate how to wire the module to a 3.3V Arduino. For 5V Arduino boards, an Arduino Uno is used to demonstrate how to use a transistor level shifter to wire the module for 5V use.

The tutorial also shows how to install drivers for the pressure sensor module and then test the module to make sure that it can read pressure and temperature.

Go to the tutorial now →

Can’t Find Arduino M0 PRO or Zero in IDE

What to do when you can’t find Arduino M0 Pro or Zero in IDE board list. How to install Arduino M0, M0 Pro or Zero software in the Arduino IDE. Arduino boards are selected from the top Arduino IDE menu under Tools → Board, but if the Arduino M0, Arduino M0 PRO or Arduino Genuino Zero boards are not found on the menu, additional software must be installed within the Arduino IDE.

When the software is installed, the following boards will be supported by the Arduino IDE:

  • Arduino/Genuino Zero
  • Arduino/Genuino MKR1000
  • Arduino MKRZERO
  • Arduino MKR FOX 1200
  • Arduino MKR WAN 1300
  • Arduino MKR GSM 1400
  • Arduino M0 Pro
  • Arduino M0
  • Arduino Tian
  • Adafruit Circuit Playground Express

Can’t Find Arduino M0 PRO or Zero on the Menu in the Arduino Software

In the image below, the Arduino M0 Pro, Arduino M0 and Genuino Zero are missing from the Arduino IDE board list menu. The steps below show how to solve the problem and get the additional Arduino boards listed on the menu.

Can't Find Arduino M0 PRO or Zero in IDE - Arduino IDE Board List Missing M0 and Zero

Can’t Find Arduino M0 PRO or Zero in IDE – Arduino IDE Board List Missing M0 and Zero

How to Install Software for the Arduino M0, M0 Pro and Genuino Zero

The following screen captures show how to install software for the Arduino M0, M0 Pro and Genuino Zero boards in the Arduino IDE. Only one package must be installed for all three boards and is done within the Arduino IDE.

After installation, the following boards will be available in the Arduino IDE: Arduino/Genuino Zero, Arduino/Genuino MKR1000, Arduino MKRZERO, Arduino MKR FOX 1200, Arduino MKR WAN 1300, Arduino MKR GSM 1400, Arduino M0 Pro, Arduino M0, Arduino Tian and Adafruit Circuit Playground Express.

1. Open the Boards Manager

From the top Arduino IDE menu, select Tools → Board → Boards Manager… to open the Boards Manager dialog box.

Open the Arduino IDE Boards Manager

Open the Arduino IDE Boards Manager

2. Select Arduino SAMD Boards and Install

In the Boards Manager dialog box, type M0 into the search field to easily find the SAMD package for Cortex-M0+ boards as shown in the image below.

Search for M0 in the Boards Manager Dialog Box

Search for M0 in the Boards Manager Dialog Box

Click anywhere on the Arduino SAMD Boards (32-bits ARM Cortex-M0+) by Arduino item to select it. After selecting it, an Install button will appear as can be seen in the above image. Click the Install button to install the software package. This may take some time, depending on the speed of your Internet connection. Click the Close button in the dialog box after the installation has finished.

3. Find the Arduino Zero and M0 Boards on the Arduino IDE Menu

After the software package has been installed, the new Arduino boards can be seen on the Arduino IDE Board menu found under Tools →Board as shown in the image below.

A new section called Arduino SAMD (32-bits ARM Cortex-M0+) Boards can be seen on the Board menu which contains Arduino M0, M0 Pro, Zero, MKR boards and others.

Arduino M0 and Genuino Zero on the Arduino IDE Board List

Arduino M0 and Genuino Zero on the Arduino IDE Board List

Program the Arduino M0 Pro or Arduino Zero

Select the desired board from the Arduino IDE Board menu and then select the correct Port number from the menu item below Board on the Tools Menu. The Arduino board can now be programmed in the usual manner.

For Arduino boards such as the Zero and M0 that have two USB ports for programming, make sure that the correct board and port is selected from the Board menu – i.e. Programming Port or Native USB Port. This port name must correspond to the port on the board that the cable is plugged into.

For example, a Arduino M0 Pro board is shown below with the USB cable plugged into the programming port. Arduino M0 Pro (Programming Port) must therefore be selected from the Arduino IDE board menu.

Arduino M0 Pro Programming Port

Arduino M0 Pro Programming Port

 

Choosing an Arduino for Beginners

In this blog post we look at how beginners wanting to start with Arduino can choose an Arduino board. Help is provided for beginners choosing an Arduino. The difference between an Arduino and AVR ATmega microcontroller is also covered.

Choosing an Arduino for Beginners

The recommended Arduino for beginners is usually the Arduino Uno. On the Starting Electronics website, the article on choosing an Arduino for beginners provides more information on which Arduino to choose when starting to learn about Arduino and writing sketches.

Difference Between Arduino and AVR

Many Arduino beginners are confused about the difference between Arduino and AVR, or Arduino and ATmega. Difference between Arduino and ATmega328 explains what the ATmega328 microcontroller is and how it relates to the Arduino Uno. The article also explains more about the AVR microcontroller found on most Arduino boards.

Update to Arduino Programming Course

The Arduino programming course originally started in 2014 is being updated and extended. Updates include using the newest version of the Arduino IDE and updating the videos in the course to HD video.

Currently parts 1 to 5 of the course have been updated which cover Arduino sketch structure and flow, Arduino main loop, calling functions, variables, arithmetic operators and relational operators.

Once updates have been completed the course will be extended to include new material and topics. Take a look at the Arduino programming course contents page to see the currently available tutorial parts of the course.

 

ESP8266 ESP-05 WiFi Module – Getting Started

I recently purchased three ESP8266 ESP-05 WiFi modules. These are very cheap WiFi modules costing around $4 USD each, so are ideal for hobbyists, makers and hackers to use in various projects. My idea was to try to get an Arduino web server working on WiFi as a cheap alternative to using an Ethernet shield or WiFi shield.

Although the same module is available from several suppliers, the particular module that I bought was from SainSmart: SainSmart Neu ESP8266 Esp-05 Remote Serial Port WIFI Transceiver Wireless Module AP+STA

ESP8266 ESP-05 WiFi Module

ESP8266 ESP-05 WiFi Module

ESP8266 ESP-05 Pinout and Documentation

The supplier web page for the ESP8266 ESP-05 had no pinout for the module and no documentation. Some of the information on the web page for the module was also completely wrong, for example they state that the module has 5V compatible I/O, however this is wrong. The I/O pins only work with 3.3V logic and are not 5V tolerant.

They also state “on board antennae”, but this module does not have an on board antennae, it has a connector for an external antennae.

ESP8266 ESP-05 Pinout

After some searching on the web I found a pinout diagram for the 5 pin version of the ESP8266 ESP-05. A new article with pinout and power requirements for the ESP-05 is now available on the Starting Electronics website.

ESP8266 Documentation

The manufacturer of the ESP8266EX chip found on the ESP-05 and other modules is the Espressif company. Documentation for the module must be taken from the ESP8266EX datasheets on the Espressif website. Look under Documentation on the ESP8266 resource page where you will find datasheets, user guides, application notes, technical references, etc.

Getting Started with the ESP8266 ESP-05 WiFi Module

You bought a ESP8266 5-pin ESP-05 module, now what? Here are the steps necessary to get the module working for the first time. Once you have a basic understanding of the module and where to find further information you will be able to start your own project development.

Soldering the Header

The module comes with a separate 5-pin header that must be soldered into the module. After the header is soldered to the module it is easy to use the module in a breadboard.

ESP8266 ESP-05 with Header Soldered

ESP8266 ESP-05 with Header Soldered

The following video shows how to solder the header to the module.

 

Aerial / Antennae

I found that the module works fine without an aerial / antennae as long as it is near enough to the WiFi router that it is connecting to. Connecting a wire to the aerial connector does give it more range and picks up the second WiFi router that I have on the other side of the house.

Testing the Module

Use the pinout diagram to correctly connect the ESP8266 module power and UART data pins. An Arduino Due is ideal for testing the module. This is because a Due can supply enough current from its 3.3V pin and works with 3.3V logic. The Arduino Due is therefore completely compatible with the ESP8266 module.

The article on testing the ESP8266 ESP-05 module using an Arduino Due shows how to connect the ESP8266 module to the Due and test it. Use this article to get started with sending AT commands to the WiFi module.

Documentation and Staring your Own Projects

Once you have the ESP8266 module working, it is a matter of sending the correct AT commands to the module to set it up for your project.

Find example AT commands in the ESP8266 AT Command Examples document.

Find all of the AT commands in the ESP8266 Instruction Set document.