Introduction Overview Hardware Software
Results Conclusions Code Schematic
Photos Costs Roles References


Once the functional requirements of the board was identified (see overview), hardware schematics were drafted. The initial design consisted of 3 functional circuits, which are very close to the boards used on the existing PCB.

The circuit that simulates the the kill switch and flight pin is shown above. The design of this circuit is very straightforward: Power Board Connector B has GND, VBatt and select lines on it. When the Flight Pin select line is connected to VBatt and either one or both of the kill switches are connected to VBatt, the satellite will turn on. Since the select lines are inputs to Mosfet gates on the power board, there is little to no current draw and the use of the Multiplexer as shown in the above schematic makes sense.

However, we did run into some voltage issues: The DIP package of the multiplexer that we used works correctly when sending 12V through it, while the SMT component will flake out, usually permanently at larger voltages. This caused severe inconsistencies during testing of our prototype and PCB circuitries. Unfortunately, we have determined this limitation ultimately keeps our maximum MUX voltages to around 3V for all circuits and prevents us from sending VBatt (12V) through to demonstrate integrated functionality of the Power Board and Diagnostics Board. This demonstration of proper functionality has further ramifications in other circuits as they too were prototyped with the DIP package and break in similar ways.

This issue can be easily resolved with these higher voltage multiplexers. Unfortunately, our board does not have a compatible pin out with these components & can therefore should not be hooked up to the power board directly. Initially, the multiplexer was chosen because of its availability and cost. Our first choice was a MAXIM chip that ran off of any voltage between 5 and 36V and allowed for any value between Vcc+.5 and Vee - .5 to pass. This part was unavailable at the time and was a bit too expensive to use in each of the circuits as required.

Once the circuit to test "power on" was created and tested, a regulator measurement circuit was created (above). The regulator expands in complexity compared to the Kill Switch & Flight Pin simulation circuit. This circuit uses 2 8:1 demuxes to allow the Diagnostics board to select one regulated input, pass the current through a common RSense resistor and Voltage divider and finally selecting which of 4 power resistor loads to use. The first MUX chooses the input to measure. The demultiplexer has 5V as a single input and 8 outputs that are connected to the gates of transistors (all of which have pull downs for when they are not being selected). This allows us to select which one transistor to turn on. The transistor that turns on, passes its input voltage from source to drain. Once through the transistor, the signal passes through a .1 Ohm sense resistor. A MAX4372 is used to measure the voltage on either side of the sense resistor, which then provides the ADC with a voltage that represents the current based on the knowledge that there was a .1 ohm resistor there. Once through the sense resistor, a voltage divider sends 1/3 of the voltage to the MCU to allow it to take measurements up to about 15V. At this point, another MUX is controlled by the MCU, which selects the appropriate power resistor to load the regulator signals with in the same way the first MUX selected the transistor. This design ensures that only one of the regulator outputs be loaded at a time. Additionally, when voltages are being read, the second mux is disabled to get an accurate voltage reading. This is consistent with the power test document as well as the projects goals.

Simply selecting the appropriate regulator to load is not sufficient as they won't be on by default. To turn the circuits on, a voltage must be applied by the MCU to the select line going into the power board this voltage comes from PORTB.4-7 and PORTC.0-5. In future revisions, this may be removed due to the active effort to make the power board control its own hardware and depend on MCU communications rather than voltage levels, which will add reliability as well as reduce I/O requirements.

The torque coils test circuit is the most complicated of the 3 and we were prepared to see issues with it due to its bidirectional nature. This circuit is similar to the 8:1 MUX circuit. However, it uses 2:1 MUXes and is repeated 3 times (once for each axis). The select lines of the multiplexers are tied together. When a select line is asserted, one direction for the axis is selected on one side and the opposite direction is selected on the other. This effectively reverses the H-bridge bi directional effect and allow the current sensors to deal with just one direction of current. Unfortunately, we did not hook the MUX enable lines up to port pins for this circuit. Doing so would create a much more accurate Voltage reading as the last transistor essentially becomes an open circuit and the voltage divider is much more useful.

There are various capacitors, resistors, crystals, headers, etc. that connect to the ZIF socket. If interested in recreating a 128L board, use the ExpressPCB file for reference. Please see PCB errors in Schematics.

MEGA128 Port Assignments

 PORT Designations:
 PORTA = LCD Driver
 PORTB = voltage mux(0), select lines(4-7)
 PORTC = Coils select lines(0-5), coils mux(6-7)
 PORTD = LEDs (0-1), Serial Comm1 (2-3), current mux(4-7)
 PORTE = serial Comm0 & Programming (0-1), fpks mux(2-4), voltage mux(5-7)
 PORTG = LED's (0-1), coils mux(2), Not used(3-4)


Our project was laid out by hand in ExpressPCB. The layout took at least 75 hours combined. The board is relatively large, especially when compared to the power board. Fortunately, our careful layout paid off. Upon population of about 162 components, the MCU immediately worked, with the exception of a quirky & inconsistent Serial0 receive issue upon reset. Other errors were found, but largely the board layout was fine.

PCB Features Include

  • The PCB is a 4 layer board
  • Middle 2 layers are ground plane and a +5V rail
  • Programming header for use with STK500
  • Successfully runs code on a Mega 128L @ 8MHz, 5V.
  • (2) RS-232 connections
  • On / Off switch
  • 4 Digit 7-Segment Display w/ 1 Port Driver
  • 2 MCU Controllable Red/Orange/Green LEDs
  • 12V Regulator 2A Circuit Breaker
  • 12V Short Status LED.
  • ZIF Socket for TQFP64
  • 1:1 Power board connectors for easy diagnostics

MCU Selection

The processor itself supports dual serial communications and has 7 Ports. Aside from being free, these are the two main reasons for MCU selection. The dual serial ports connect to a MAX232 surface mount IC. Serial0 is accessible through the 9 Pin serial connector while Serial1 is accessible through either the second port or the power board MOLEX connector, which is set by a jumper.

Hardware Design Issues

Once populated, we ran into problems detecting voltages and current changes above around 3V. This was quickly found to be a transistor biasing problem. In order to detect voltage drops, our design requires us to operate in the triode region through 12V. However, due to the 3V restriction on Vgs due to the MUX limitation, we end up saturating early and the current becomes limited but this more to do with being on the wrong Vgs curve as opposed to being in the saturation regime. Since the transistors are not biased appropriately, they don't behave like an on off switch as intended, but this should become significantly better with a higher Vgs. If the same design is kept in the future, the following inequality must hold true: Vds < Vgs - Vtn

We have a good idea regarding a fix and many suggestions have been given to us, but they all require drastic hardware changes. The following are the best candidates thus far and will be considered for future revisions.

  • Instead of reusing circuit paths, use one current sensor and voltage divider per component - then use MUX for MCU ADC signals.
  • Use MUX and FET that when combined can still bias Vgs much higher to keep power FET in the ohmic regime for all measurements

Another issue is the current is most likely being limited through the transistor at time, more testing should be done to correlate the amount of current drawn by this board, during manual power board testing and during flight operations.


Cornell University - ECE 476 Final Project
Bryan Doyle & Michael Austin - Spring 2005