qbcan modular

From Open Cosmos :: Documentation
Revision as of 09:19, 28 October 2016 by Jordi (Talk | contribs) (Getting started)

Jump to: navigation, search


This document is the qbcan modular user manual. It describes the qbcan CanSat kit, the soldering and assembly process and the software setup. It provides a step-by-step guide to help the user go through the development process, from the opening of the qbcan kit to transmitting data from one qbcan to another.

The qbcan kit has been developed by Open Cosmos. Open Cosmos is a start-up willing to use nano-satellites to provide simple and affordable access to space to organisations ranging from SMEs and research institutions to space agencies in developing countries.

Click here to download the Qbcan library


In case you have any problem during the assembly or operations please post your questions into the Open Cosmos community so all the users can benefit from the content.

Sensors terminology

BMP180 Pressure and temperature sensor
LLC Low Level Converter
RFM69 433 MHz transceiver

System description

The qbcan bus provides all the required capabilities of a standard CanSat mission: radio communications, a temperature and pressure sensor and a computing platform with a wide range of interfaces. The user can then add extra functionalities (adding sensors and actuators via the provided interfaces) and develop more complex systems.

The main components of the qbcan are:

  • Arduino Pro Micro microcontroller.
  • RFM69HW 433MHz transceiver.
  • BMP180 pressure and temperature sensor.
  • Low Level Converter.
  • Antenna/Yagi antenna connector.
  • Printed circuit board (PCB) that integrates the previous components.
  • Rapid-development software library that interfaces with the transceiver and the pressure and temperature sensor.
  • 9V battery (not included).

The small qbcan footprint, the exposed Arduino Pro Micro pins and its mounting holes allow the qbcan to be flexible with respect its mounting location, allowing CanSat developers to mount it wherever is more convenient.

The qbcan (hardware and software) is open-source and users are encouraged to modify it and re-distribute their work.


Figure 1: Arduino Pro Micro pinout

The core of the qbcan is an Arduino Pro Micro microcontroller. The microcontroller provides the required computing power to the CanSat. The big number of interfaces provided by the Arduino Pro Micro allows the user to develop more complex CanSat missions by integrating additional peripherals. The main features of the Arduino Pro Micro are:

  • ATmega32U4 running at 5V/16MHz.
  • Easy to program using the Arduino integrated development environment.
  • On-Board micro-USB connector for programming/provide power.
  • I2C, SPI and UART serial communication ports.
  • 4 channels to read analogue signals using a 10-bit analogue to digital converter.
  • 5 Pulse Width Modulated output pins.
  • 12 Digital Input Output pins.
  • Tiny footprint: 33.0 x 17.8 mm.

The pinout of the Arduino Pro Micro can be seen in Figure 1:

All these pins and communication interfaces are available to the user except pin 7, 10, 16, 14 and 15 which are used to communicate with the transceiver. The I2C interfaces are shared with the pressure and temperature sensors, but are also available to the user.


A RFM69HW 433 MHz transceiver is included to provide long range communication capabilities to the qbcan. The main features of the transceiver are:

  • +20 dBm - 100 mW power output capability.
  • High sensitivity: down to -120 dBm at 1.2 kbps.
  • Programmable output power: -18 to +20 dBm in 1 dB steps.
  • Fully integrated synthesiser with a resolution of 61 Hz.
  • Frequency selectable by software over 256 different channels.
  • 255 possible nodes in every channel.
  • FSK, GFSK, MSK, GMSK and OOK modulations.
  • Hardware 128 bit AES encryption.
  • Over 400+ meters range using whip antennas and several km range using a Yagi antenna on the receiving end.

The transceiver communicates with the Arduino over the SPI interface and uses the pin 10 of the Arduino as the Slave Select (that is why this pin is reserved). The transceiver software, included with the qbcan, is interrupt driven (asynchronous response to incoming communications) and uses the Arduino pin 7 to provide this interrupt. Hence pin 7 is not available to the user. The antenna of the transceiver is a simple quarter wavelength monopole antenna. Using this transceiver, a qbcan can be used in a CanSat while another qbcan is used as ground station, receiving telemetry from the CanSat (and sending it to a PC via the USB port) and sending commands to the CanSat.

Temperature and pressure control

The qbcan includes a BMP180 barometric pressure and temperature sensor. This sensor communicates over I2C and provides:

  • Pressure sensing range: 300-1100 hPa (9000m to -500m above and below sea level).
  • Up to 0.02 hPa / 0.17m altitude resolution.
  • -40 to +85°C operational range, +-2°C temperature accuracy.


The qbcan can be powered by a standard 9V battery (not included) or a power supply from 5V to 9V. The user has the following power buses available from qbcan:

  • 5V regulated power
  • 3.3V regulated power

qbcan compact can supply a total max 500 mA from all regulated buses (current from 5V + current from 3.3V <= 500mA). If more than a total of 500 mA are planned to be used (adding the 5V and 3.3V buses) it is recommended to use the raw battery voltage with its dedicated voltage regulator.


A qbcan software library is included. It provides an easy-to-use interface with the transceiver and pressure and temperature sensors. An example code is provided to speed up the development of the CanSat mission. The library includes a CanSat example and a ground station example.

Getting started

The qbcan is distributed as a kit and hence it needs to be assembled. In order to develop software for the Arduino Pro Micro and use the provided qbcan library, the development computer needs to be properly configured. The following section (Assembly) covers the physical assembly of the qbcan and the one after that (Software Installation) provides a step by step guide to set up the development environment.

In order to complete the software installation, one assembled qbcan is required. However, the software installation steps will only require having the Arduino Pro Micro and so they can be done before starting the assembly.

By following these guidelines you will assemble a reversible configuration qbcan module to be finally used as a ground station. This will result in a module suitable for prototyping and testing as any component can be easily replaced if damaged. Once you have familiarized yourself with the reversible configuration, it is highly recommended to assemble the second qbcan module in an irreversible configuration by soldering directly all the components using the pitch headers provided in each component bag (without using any female headers). Please note that the irreversible configuration won't allow the option to remove and replace all the components, but it will be more compact and withstand the forces during the launch and landing.


The assembly of the qbcan is relatively simple and only requires basic soldering skills. If you don't have any experience with soldering, the process will take approximately 3 hours, but it should take less than 2 hours if you have soldering experience. Consult the suggested tutorials to familiarise yourself with soldering in case needed.

Figure 2: Example of "third hand" / "helping hands"

The tools required to assemble a qbcan are those required for soldering hobby electronics. We recommend to have the following equipment with you during the assembly process:

  • Pliers and/or tweezers.
  • Soldering iron and solder. It is important that the solder contains a flux core (this will facilitate the soldering).
  • Optional but recommended - Flux remover (to clean flux residue). It is important to use a remover for the specific flux formulation of your solder. Some flux formulations do not require to clean the residue afterwards. If you do not have a specific flux remover at hand, Isopropyl alcohol or acetone could help remove most of the residue.
  • Optional - A third hand (see Figure 2) is very convenient when you are alone while doing the assembly.
  • Optional - A solder wick remover in case you make a mistake and want to unsolder the components.
  • Optional - Extra flux (e.g. in a pen dispenser). This element is optional but can help soldering the voltage regulator, which is surface mounted.

To assemble the qbcan board you just need to follow the following steps:

Clean the board

With a pair of pliers remove imperfections (if any) from the board. These are leftovers from the fabrication process.

Solder the pin headers onto the Logic Level Converter and the BMP180 sensor

The first soldering steps are easy. We will be soldering the headers onto the Logic Level Converter (LLC) and the BMP180 sensor. Use the short 0.1" (2.54 mm) pitch headers included in each of the sensor plastic bags for this. You will have to cut in half the array of pins for the LLC. Place the shorter part of the headers through the bottom part of the sensor board, initial configuration shown in Figure 3. Start soldering the pins in the corners and follow with the rest as shown in Figure 4.

TIP: Make sure that the headers are perpendicular to the board surface, a crocodile clip fixing the centre area of both parts could be very helpful.
     The final result for the Logic Level Converter is shown in Figure 5.

We will be using the same headers for the BMP180 sensor. Solder the header into the BMP180 board. The final result is shown in Figure 6.

Inspect the soldier and make sure that you have good quality connections with each of the pins isolated. Before continuing, remove any flux residue.

Figure 3: Pin orientation, place the shorter part of the short 2.54 mm-pitch pins through the sensor board

Solder pin headers to the Arduino Pro Micro

Now that you have some practice in soldering headers, solder the headers of the Arduino Pro Micro included separately from the Arduino Pro Micro bag. The procedure is exactly the same but using the long 0.1" (2.54 mm) pitch headers that have to be cut apart in 2 blocks of 12 pins each. The plastic header needs to be moved so that the length of the pin in each side of the plastic header is between 6 and 7 mm, for the short part, and approximately 8 mm for the long part (see Figure 7). Do this by introducing the long part of the pin in the female header and push the plastic holder down until it is in contact with the female header. See Figure 8. It is important to hold the female header against a hard surface as shown in Figure 8 to avoid breaking it. Repeat it for each of the pins.

The long part of the pins need to be placed through the Arduino Pro Micro board. The final results should look like Figure 9.

The long pins will enable your peripherals (GPS, actuators or other sensors) to be connected to any pins of the Arduino by using female headers or female jumper wires (see Figure 10).

Before continuing, inspect the connections and clean any flux residue.

Figure 10:Left - Female headers. Right - Female jumper wires.

Solder the headers to the RFM69

Solder the 2 mm-pitch pins header to the RFM69 with the short part of the pin through the board, as shown in Figure 11. You will have to cut 2 blocks of 8 pins each from the spare 2 mm-pitch pin array that comes separately. Start soldering the two end pins of the header to fix it to the board, and then solder the ones in between. The final result should look like in Figure 12.

Solder voltage regulator to the board

This first component that we will solder on the qbcan board is the voltage regulator (see Figure 13). Due to the small size of this component, this is going to be one of the difficult parts to be soldered onto the board. Be patient, do not rush. Consult the suggested tutorials and familiarise yourself with Surface Mount Soldering (SMD) before attempting to solder this component. Use a pair of fine tweezers or pliers to place the component in the correct position. Solder the wide leg first and once this is done, continue with the three smaller parallel legs as shown in Figure 14.

Figure 13: Voltage regulator
Figure 14

Assembly of the components onto the board - solder the pin headers

In order to assemble the components onto the board there are two different approaches to be followed. The first one, described in this manual, is to solder female header to the board so that the components can be easily plugged and removed if necessary. The second one, is to solder the components directly to the board. This approach leads to a quicker implementation and a more compact qbcan which may be needed for very volume-constrained CanSats.

Begin soldering the 2.54 mm-pitch female header for the Arduino (#1 in Figure 15) and follow with the rest of the headers. You will have to cut one block of 12 female headers from the array that comes separately. Solder the pin in one end of the header to fix one side and then the other end (see Figure 16). Once this is done, proceed to solder the pins in the middle.

Continue with the same type of headers for the BMP180 sensor and the LLC. Solder headers #2, #3 and #4 as shown in Figure 17. You will have to cut 2 blocks of 6 female headers and one block of 5 female headers from the array that comes separately. Clean the side of the header from cutting imperfections, this is important to make sure that the header #3 fits in its place next to #2. Do not worry if some pins are broken when cutting as there are some spares provided.

Follow with the 2 mm-pitch female headers for the RFM 69 (#5 and #6 in Figure 15 - right), you will have to cut 2 blocks of 8 female headers from the 2 mm-pitch female headers array that comes separately. Finish by soldering the second 2.54 mm-pitch female header for the Arduino (#7 in Figure 15 left). The final result should look like in Figure 18.

Figure 15: Different size headers are soldered on both sides of the qbcan board. The numbers represent the recommended soldering order. Left - Arduino 2.54 mm female headers. Right - 2.54 mm-pitch female headers for BMP180 and LLC (2, 3 and 4) and 2 mm-pitch female headers for RFM69 (5 and 6).

Figure 16: Solder the pin in one end of the header to fix one side and then the other end

Figure 17: Solder headers #2, #3 and #4

Figure 18: Female headers soldered on the board.

Solder the battery connector to the board

The next component to be soldered onto the board is the battery connector. This is also a tricky step since the board hole is bigger than the metal conductor of the battery connector. Use a third hand (or ask somebody to help you) so that you are able to place everything in the right position and solder. Be careful not to burn your assistant with the soldering iron! It is also important that you solder the red wire to the positive (+) terminal and the black wire to the negative (-) terminal, as marked on the board. After soldering you will have something similar to Figure 19.

Figure 19: Battery connector soldered to the board

After finishing the soldering clean the connection, plug a standard 9V battery (not included) and check that the regulator output voltage is as expected using a voltmeter.

Solder the antenna to the board

The RFM69 is a 433 MHz transceiver which we will use with a wire monopole antenna. This is the simplest type of antenna consisting of a piece of wire with the length of a quarter of wavelength. For a frequency of 433 MHz the length of the antenna can be easily computed using the following equation


The speed of light is represented by the term c=299792458 m/s. For 433 MHz, l = 17.3 cm. A wire already cut to the specified length is already provided, pass it through the board hole and solder it to the dedicated pin hole, as shown in Figure 20. It is important for the antenna to be as straight as possible. If it is curved or bent, the performance and the range will decrease.

In case the qbcan is going to be used as ground station, a Yagi antenna connector can be soldered instead to gain extra range. There are four surface soldering ground points, two on the top side of the PCB and two on the bottom, as well as one in the middle that can be soldered either on top or bellow. The position in which this adapter shall be soldered is shown in Figure 21.

Connect the components to the board

Once all the headers are soldered to the qbcan board, the components can be connected to them by plugging each component into its specific location.

Connect Logic Level Converter and the BMP180 to the board

Connect the components to their respective positions. For the Logic Level Converter, check that the High Voltage (HV) and Low Voltage (LV) sides are oriented correctly by looking at the board marks. The BMP180 needs to fit within the board limits (see the board marks for the outline of where the BMP180 should go). The final result after this step is shown in Figure 22.

Figure 22: Logic Level Converter and BMP180 solder into the board
Connect the RFM69 headers into the board

The next step will be connecting the RFM69 onto the board. On the board the antenna pinhole is marked with ANA. Make sure to connect the RFM69 board in such a way that the pin marked with ANA on the back of the RFM69 board matches with the one on the qbcan board (see Figure 23).

Figure 23: Connect the RFM69 matching the ANA pin in the RFM69 with the ANA pinhole of the board
Connect the Arduino to the board

The next step is to connect the Arduino Pro Micro to the board. This should not be difficult. Refer to the marking on the board to know how the Arduino should be oriented. Figure 24 shows how the board looks like after completing this step.

Figure 24: Arduino assembled to the qbcan board

Powering qbcan up

qbcan modular can be powered using the USB, the 5V-9V power IN or both.

Uploading software to qbcan

  • Connect qbcan to USB.
  • Select Sparkfun Pro micro in Tools > Board.
  • Select ATmega32U4 (5V, 16MHz) in Tools > Processor.
  • Click verify to compile the code.
  • Click upload.

Resetting qbcan

If when plugging qbcan or the Arduino Pro Micro, the Arduino IDE does not detect the port and the USB appears as not recognised, the Pro Micro board needs to be resetted and the bootloader refreshed.

This happens if for instance the wrong board or processor is selected in the Arduino IDE or if the upload of the software is interrupted midway for whatever reason. Please double check that the correct board (Sparkfun Pro Micro Leonardo, ATmega32U4 (5V, 16MHz)) is always selected in the Arduino IDE.

This can be done via a simple and safe process. Please read the full procedure first to familiarise yourself.

  • Create a new empty sketch without any functions:
  2. void setup() {
  3. }
  5. void loop() {
  6. }
  • Select Sparkfun Pro micro in Tools > Board.
  • Select ATmega32U4 (5V, 16MHz) in Tools > Processor.
  • Click verify to compile the code.
  • Connect the reset pin to ground, twice, to any ground in the board. Twice meaning: connect the reset pin to ground, disconnect it, connect it and disconnect it, sequentially without waiting between each sequence. This makes qbcan enter bootloader mode. At this point, Arduino IDE will detect the COM port and should connect to it automatically.
  • If COM port is not connected automatically in Arduino IDE, you will need to manually select it.
  • Immediately click upload the empty code while qbcan is in bootloader mode. It stays in bootloader mode for 8 seconds so you might need to repeat the process in order to be fast enough to reprogram the bootloader before it times out.

If you don't manage to get the timing right, you can click upload, and then reset twice qbcan while Arduino IDE is compiling the code. qbcan will enter bootloader mode when Ardunio IDE is starting the upload.

After this process, the qbcan should appear as Sparkfun Pro Micro when connected to the computer and you should be able to upload software nominally.

Software Installation

The following page: qbcan software installation provides a step by step guide to set up the development environment.


You can find the schematics of qbcan modular in the following link