qbcan compact

From Open Cosmos :: Documentation
Revision as of 13:24, 4 May 2017 by Jordi (Talk | contribs) (System description)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Qbcan compact image 1.jpg

This document is the qbcan compact user manual. It describes the qbcan compact CanSat kit 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 for the users that want to have a working solution out of the box avoiding the assembly of the parts and soldering and hence focus the efforts on the payload.


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 Leonardo compatible microcontroller.
  • RFM69HW 433MHz transceiver.
  • BMP180 pressure and temperature sensor.
  • Low Level Converter.
  • qbcan option with Antenna/Yagi antenna SMA 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.
  • 3d printed structure for you to modify and print.

The qbcan compact is the smallest qbcan kit with all the components integrated into the same board. This enables the users to maximise payload volume and mass and to be mounted in most convenient section of the CanSat main body. The 0.1 inch header allows easy interface with the CanSat payload.

The qbcan is compatible with the Arduino programming interface which is open-source and users are encouraged to share their creations and distribute their work with the Open Cosmos community.

qbcan compact versions

qbcan is produced in 2 versions:

qbcan compact (right) with soldered monopole antenna and qbcan compact GS option (left) with included monopole removable antenna
  • qbcan compact: qbcan compact default board, which includes a monopole antenna soldered on the PCB.
  • qbcan compact GS: SMA connector option or Ground station (GS) option. Same as the other version with the difference that the PCB has a SMA connector soldered in order to interface to an external monopole antenna (included) or any other antenna, such as a Yagi antenna, to extend the range of the ground station.

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.

qbcan assembly, structure

Here you can find a CAD model of an example structure for a CanSat for you to get started, create your CanSat assembly, modify it, add your logo...

Open Cosmos qbcan structure with qbcan compact CAD step file.

This structure has been designed to be 3d printed. The CanSat structure is formed by two halves so only 1 design is needed to make a whole CanSat.

The structure can be kept together by running 3mm bars through it and adding nuts at the ends.

Open Cosmos qbcan structure image.JPG
Open Cosmos qbcan CAD model.JPG

qbcan compact board mechanical interfaces

qbcan compact has been designed mostly with two configurations in mind:

  • Central interface: Hole at the centre of the board that enables to wrap components around a central pillar in the CanSat, giving easy accessibility to the external faces.
  • Three peripheral interfaces: three holes at the edge of the board. This solution is more robust but the three pillars reduce the accessibility of payloads to the external faces.

The board has four holes suitable for rods/bars/fasteners up to 3mm in diameter. It is recommended to secure the qbcan board in a way that the mechanical constraints do not impart unequal forces along the board, trying to twist it or bend it, as this could cause failure of some of the solder joints or components. It is also recommended not to load the board supporting any external components, for example batteries or other electronics, part from the specified four loading points. Other components should have their own mechanical support in order to avoid damaging qbcan.

A step and DXF files have been produced in order to aid the development of structures and accessories for the qbcan compact. Please keep 3 mm at least from the top layer and bottom layer of the boards to clear components in them.

qbcan electrical interfaces

The qbcan compact contains a wide range of interfaces:

  • Micro-USB connector programming interface
  • Monopole 433 MHz antenna on qbcan option
  • SMA female connector for external antenna on qbcan GS option
  • 32 pin 0.1 inch (2.54mm) header:
    • 6 analogue inputs with 10-bit ADCS
    • 14 Digital I/O pins
    • 3 PWM output pins
    • 5V and 3.3V power outputs
    • 5- 12V power input
    • I2C, SPI, UART serial communication ports

The pinout of the qbcan compact 32 pin header can be seen in table and figure below (pin numbers are printed in qbcan PCB):

32 pin header pin out
Pin number Function Comment Pin number Function Comment
1 D1 / TXO UART transmit line 2 RAW 5V min 12 V max power input
3 D0 / RXI UART receive line 4 GND Ground
5 GND Ground 6 RESET Reset pin, connect to ground to reset qbcan microcontroller
7 GND Ground 8 VCC5 5V regulated power output
9 D2 / SDA I2C data 10 A3 Analog input pin or digital I/O pin
11 D3 / SCL I2C clock 12 A2 Analog input pin or digital I/O pin
13 D4 Digital I/O pin 14 A1 Analog input pin or digital I/O pin
15 D5 PWM or digital I/O pin 16 A0 Analog input pin or digital I/O pin
17 D6 PWM or digital I/O pin 18 D15 / SCK SPI clock
19 No functionality 20 D14 / MISO SPI master input
21 D8 Digital I/O pin 22 D16 / MOSI SPI master output
23 D9 PWM or digital I/O pin 24 A4 Analog input pin or digital I/O pin
25 D11 Digital I/O pin 26 D12 Digital I/O pin
27 D13 Digital I/O pin 28 A5 Analog input pin or digital I/O pin
29 GND Ground 30 VCC5 5V regulated power output
31 GND Ground 32 VCC3.3 3.3V regulated power output

The I2C interfaces are shared with the pressure and temperature sensors, but are also available to the user.

Reset interface

It is recommended to keep the reset interface accessible in order to be able to reset the microcontroller if needed once the board is assembled in the CanSat. To reset the qbcan, the reset pin needs to be connected to ground. Several options can be implemented then:

  • Physical button that when pressed connects reset pin to ground.
  • Reset connection accessible to manually connect to ground with a wire/jumper.

Power buses

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

  • 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.


The core of the qbcan is an ATmega32U4 running at 5V/16MH. The microcontroller provides the required computing power to the CanSat and is easy to program using the Arduino integrated development environment.

Transceiver and antenna

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 software, included with the qbcan, is interrupt driven (asynchronous response to incoming communications). The antenna of the qbcan compact acting as Cansat is a simple quarter wavelength monopole antenna. The qbcan compact ground station version includes a SMA adaptor in order to connect Yagi antennas in order to improve range and quality of the radio link.

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.


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.

Click here to download the qbcan library

Getting started and operation

Software installation and qbcan library details

In order to develop software for the qbcan and use the provided qbcan library, the development computer needs to be properly configured.

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

In order to complete the software installation, one qbcan is required.

Powering qbcan up

qbcan compact can be powered via USB, 5V-12V power IN or both at the same time. Once power is provided, qbcan compact will start running the software on board automatically.

Uploading software to qbcan

qbcan compact uses Arduino Leonardo architecture and hence it slightly differs from Arduino Uno. Please read the following link (Go to-->please read... section) for particularities, specially the way it interfaces via USB to the computer: Leonardo particularities

  • Connect qbcan to USB.
  • Select Arduino Leonardo in Tools > Board.
  • Click verify to compile the code.
  • Click upload.

Resetting qbcan

If when plugging qbcan, the Arduino IDE does not detect the port and the USB appears as not recognised, the qbcan needs to be reset.

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 (Arduino Leonardo) 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 Arduino Leonardo in Tools > board
  • Click verify to compile the code.
  • Connect the reset pin to any ground in the board, twice. 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 Arduino Leonardo when connected to the computer and you should be able to upload software nominally.

qbcan shop

Click on the following link to visit the qbcan shop.