I2C Pancake (deprecated)

Overview

The intended function of the I2C Pancake board is to monitor pressure transducer and strain gauge readings from within towerside RLCS to track the loading of nitrous oxide into the rocket during a fill operation. 

 

PCB Designs: https://github.com/waterloo-rocketry/daq/tree/master/design/I2C_Pancake

Firmware: https://github.com/waterloo-rocketry/rlcs/tree/i2c_pancake_sw/src/i2c_pancake_pic

Photo:

Technical Description

This board is intended to be mounted inside the RLCS towerside box and connected to the other RLCS boards using the 5-wire I2C daisy-chain ribbon. The mounting holes on the I2C Pancake board are in the same positions as for the I2C Relay board, which allows the I2C Pancake board to be easily mounted in the RLCS towerside box. The I2C Pancake board supports up to 3 strain gauges and up to 2 pressure transducers (PTs). The heart of this board is a PIC16F 8-bit microcontroller. The purpose of the strain gauge is to measure the mass of the oxidizer tank or of the rocket; the measured mass is used to estimate the amount of nitrous oxide in the tank. The purpose of the PT is to measure the pressure of nitrous oxide in the fill plumbing. The measurements taken by the I2C Pancake board are sent to the I2C bus master (Arduino Mega in the RLCS towerside box) and ultimately passed down to the human RLCS operator so that the operator can continuously monitor the state of the system during a fill operation.

 

The I2C Pancake board has an on-board 10 V linear regulator. The 10 V output of this regulator is provided to each of the sensor connectors as a biasing voltage. 

 

The strain gauge connectors have 4 terminals: +10V, GND, ST+ and ST-. The first two terminals supply DC power to the sensor. The ST+/- terminals connect to the output of the strain gauge; an instrumentation amplifier measures the differential analog voltage of these terminals. Internally, the strain gauge contains a resistor bridge that generates a differential analog voltage that is proportional to the amount of force applied to the gauge. The instrumentation amplifier has a programmable gain that is determined by the value of a feedback resistor connected to the amplifier. The amplifier output is connected to an ADC input pin on the microcontroller through a low pass filter.

 

The PT connectors have 3 terminals: +10V, GND and PRES. The first two terminals supply DC power to the sensor. The PRES terminal connects to the output of the PT. The PT output is connected to an ADC input pin on the microcontroller through a low pass filter.

 

Both the 5 V and 12 V power supply connections are protected by polyfuses.

Firmware

The analog data measured on each of these sensors is reported using the I2C interface. The I2C address of the I2C Pancake board is set by the gang of 4 dip switches at the bottom of the board; the firmware continuously polls these switch states and updates the I2C address accordingly. This dynamic addressing system allows multiple I2C Pancake boards to be connected to the same I2C bus without an address conflict. The I2C Pancake fulfills I2C slave read requests. For example, the I2C bus master (Arduino Mega) will send an I2C read request to a given I2C Pancake board by specifying its unique I2C address, and the I2C Pancake board will comply with this request, returning a set of 5 8-bit integers representing the sampled values of the 5 sensors. 

 

Current Status

This board was designed in October 2020 (COVID-19 dark ages), and the RLCS/DAQ architecture has evolved significantly since that time. In recent revisions of the RLCS/DAQ architecture, the I2C Pancake board has been made mostly obsolete by the sensing capabilities of the new DAQ system and the data monitoring functions of Omnibus.

 

All the features of the board have been tested using “dummy” sensors. Specifically, a pocket-sized 10 kg load cell was used to test the strain gauge measurement and a 10 kOhm potentiometer was used to test the PT measurement. The I2C Pancake board has not been tested with real sensors. Furthermore, it has been noted that some types of strain gauges and PTs require different supply voltages than the 10 V provided by the I2C Pancake board. 

 

The current firmware for the I2C Pancake board is quite old. The RLCS firmware has been changed significantly since the I2C Pancake board firmware was written and the I2C Pancake board has never been integration tested within the RLCS towerside box. 

 

Some of the feedback resistors for the instrumentation amplifiers have not been mounted. This was done deliberately since the required amplifier gain was not known at the time these boards were assembled.