Sunday, 7 June 2015

OzQube-1 CDH Design Complete

I had joked on social media that the CDH had passed the KDR - The Kitchen Design Review. For those not in the know, this is a play on the name of the Critical Design Review (CDR) phase often used in aerospace. In my case, I was being very literal - I reviewed the design in the kitchen! I have settled on a final design for the first revision of the OzQube1 CDH ( Command and Data Handling) board. This is the brains of the satellite. It co-ordinates the recording of data from the various sensors including the camera and the transmission and reception of data from the radio. So what's inside?

The OzQube-1 CDH

The brains of OzQube-1 starts with an Atmel ATmega328P Microcontroller. This is the same microcontroller used in many Arduino boards, and is closest in design to the Arduino Pro Mini 3.3V . It is an 8-bit microcontroller that runs at a leisurely 8 MHz. It has a "massive" 2 Kilobytes of SRAM, and 32 Kilobytes of flash memory. So it's a long way from something like your mobile phone or your computer.

In order to store the image data coming from the camera, a Micro-SD card is also incorporated onto the board. The Micro-SD can also be used to store telemetry data if required.

The next piece is the 9-axis motion tracking IC from Invensense - The MPU-9250. It contains a 3-axis Gyroscope, a 3-axis Accelerometer and 3-axis Compass. This is used to determine the satellites orientation, and the measure the strength of the earth's magnetic field. 

The next critical piece is the RTC (Real Time Clock). This, as the name suggests, is a clock. It can measure time more accurately that the microcontroller can, and uses a lot less power doing it. Unfortunately, because a satellite needs to have all power removed until it is deployed from the launch vehicle, it isn't possible to set the time in advance. It will only start counting once it has been deployed. It is possible to set the time remotely, but as there's no GPS onboard OzQube-1, the time will only be an approximation.
The RTC provides another very useful function, which is a countdown timer. The RTC can alert the microcontroller once a specific period has passed. It is important to do this external to the microcontroller, as microcontroller can sometimes get a bit "distracted" performing other tasks, leading to incorrect time measurements.

The remainder of the CDH is the local power supply arrangement. This includes a Watchdog Timer, which will reset the microcontroller if it hasn't toggled one of its inputs within a specified time. The electronics of the CDH are all 3.3V, but the EPS and Battery have a few different outputs. The EPS provides a regulated 3.3V for the CDH. This is the primary power source. If, for some reason, the 3.3V circuit fails, the CDH has its own circuit to take the battery voltage and regulate it down to the 3.3V required. This isn't as efficient as the EPS, but allows a bit of fault tolerance. Controlling all this is a small control circuit that will automatically switch and prioritise the power source.


The main limit I found was the number of pins available on the microcontroller. The TQFP package of the ATmega328P has 32 pins. While I've managed to squeeze all the functionality into this design, I haven't stuck to the full PQ60 design specification. I'm not able to connect all the GPIO pins on the backplane to the microcontroller. 
One possibility is to replace the ATmega328P with another in the Atmel family - the ATmega1284P. This is the same architecture, but has 44 pins, 4 times the flash memory capacity and 8 times the SRAM capacity. It can also be configured to use the Arduino development environment, so it can be programmed the same way. 
Future satellites could use a different microcontroller architecture, but for OzQube-1 I wanted to stick to something that people are familiar with.

No comments:

Post a Comment