Shaun Greene's Lab Notebook

Back to Main Page

Week 00

August 3, 2009 Mon (1 hour):
Met with product marketing manager for LabVIEW for ARM with National Instruments to discuss NI potential sponsoring providing development software and hardware for the team. National Instruments agreed to provide software and loan hardware for the semester (LM3S8962 eval board and uLink2 programmer/debugger). The LabVIEW for ARM is a very powerful programming environment because of the graphical programming, project file management with auto-linker, and engineering support from NI in the development process.

WEEK 00 SUMMARY
Accomplishments: Recieved approval for sponsorship from National Instruments with the LabVIEW for ARM development package.
Weekly Work Total: 1 hour
Project Work Total: 1 hour

Week 01

August 25, 2009 Tue (1 hour):
Met as a team after class to discuss preliminary project proposal. Discussed the idea of how to make the mechanical portion of a motorized golf bag that would follow a golfer using an RF beacon. Also discussed methods of using RF to determine golfer position. Angle to beacon is plausible, but distance to beacon is more complicated using RF. This will need to be investigated farther.

August 27, 2009 Thur (3 hours):
Met as a team after class to finish writing preliminary project proposal and find mechanical parts for motorized golf bag. Looked at using pre-built "vehicles" such as shopping carts and electric razor® scooters or electric go-karts. Team determined the golf bag was too mechanically intensive and switched idea to Persistence of Vision (POV) machine similar to the one made on this webpage:

PIC Clock from MetricMind.com

August 28, 2009 Fri (2 hours):
Met as a team to discus general block diagram and theories behind POV machine. Original block diagram Discussed potential concerns and road blocks, as well as what information was needed to begin the design process. Need to determine mechanical dimensions, physical structure design, rough parts list, and data rate requirement for known parts.

WEEK 01 SUMMARY
Accomplishments: Submitted preliminary project proposal.
Weekly Work Total: 6 hours
Project Work Total: 7 hours

Week 02

August 31, 2009 Mon (3 hours):
Wrote simple LabVIEW program to calculate required data rates and times required for POV machine.
The front panel of the LabVIEW VI that was used to calculate data rates. The block diagram of the LabVIEW VI used to calculate data rates. This is one of the LabVIEW 2009 snippet features. You can drag this PNG image directly into the block daigram of a new LabVIEW 2009 VI and the code will automatically work.
Also drew a connection diagram to get an idea of how all the parts of the POV machine would connect to each other and began to look into timing, voltage, data rate, and power requirements of each component. See picture below.

September 1, 2009 Tue (2 hours):
Met as a team to formulate PSSC for presentation in class on September 2. Also drew a different version of the previous diagram to illustrate how the top spinning disk and the bottom stationary microcontroller would connect to each other and what components they would contain. See picture below.

September 2, 2009 Wed (4 hours):
After giving the PSSC presentations as a team, had a team meeting to discus feedback from presentation as well as written feedback from Preliminary project proposal. At the team meeting, the attached hardware connection diagram was discussed, and then the team went to the lab to meet Chuck and pick up the tablet PC.

September 3, 2009 Thur (3 hours):
Met as a team to discuss a plan of attack for which topics each team member needs to focus on. While at the meeting, the team made a few important discoveries/decisions.

• The PWM cannot be connected to the OE pin of the shift register to control individual pixel color intensity. This would only allow the color intensity of an entire column to be adjusted, not giving the desired performance. Revisited the idea of the color depth of the POV display and decided on using 3 bit color (black, red, green, blue, cyan, magenta, yellow, white).

• With the new color depth decision, the team came up with a new way to store and address the image data so that the data transfer and the on chip micro memory can both be reduced, therefore widening the design margins.

Since the LEDs will be 3.2V or less and will be 30 mA max current, it would be best to run the shift register at 3.3V instead of 5V to lower power dissipation. Most Shift registers can source or sink 500mW MAX and in order to drive 8 LEDs per shift register, a MOSFET will have to be placed between the shift register and each LED if the 500mW will be exceeded. This will be important for the design constraint.

After the team meeting, Shaun designed a circuit to use with the IR sensor. See attached schematic.

September 4, 2009 Fri (4 hours):
Received the LM3S8962 ARM development board and ulink2 JTAG programmer in the mail, soldered headers to it and labeled the wires on the header. After testing the soldering and wiring, will post final connection diagram for Eval Board. Also found a good reference document on Phototransistor Switches.

Also, here is a link to the LM3S8962 Evaluation Board Datasheet (to download, right-click link and choose "Save Link As...").

WEEK 02 SUMMARY
Accomplishments: PSSC and project proposal finalized as well as starting the hardware design and component selection process.
Weekly Work Total: 16 hours
Project Work Total: 30 hours

Week 03

September 7, 2009 Mon (5 hours):
Met as a team to assign deliverables and order of deliverables to begin making progress without overlapping roles. Russell emailed a transcript of the meeting and it is attached. Also began working on writing the code for the LM3S to work with the IR sensor to measure the RPM of a box fan to determine if it will be suitable for the motor in the project. Eric also designed a preliminary software flowchart.

September 8, 2009 Tue (5 hours):
Met as a team and discussed how the RF positioning will work and what hardware is required and what resolution is achievable. After that, wrote .m file to calculate the timing margins and data rates for the system. This is similar to the DataRate LabVIEW vi, but more exhaustive.

The data and units are shown here:

RPM = 1800
NumColumns = 96
NumberLEDperColumn = 32
ColorsPerLED = 3
Diameter = 0.3000 meters
DesiredDisplayWidth = 0.5000 (half a circle)
LEDspacing = 0.0050 meters
spiRate = 12500000 Mbits/s
circumference = 0.9425 meters
DisplayWidth = 0.4800 arc length in meters
DisplayWidthFrac = 0.5093 (fraction of total circle)
DisplayWidthDeg = 183.3465 degrees
RPS = 30 rev/s
TimePerRev = 0.0333 seconds
DisplayTime = 0.0170 seconds (fraction of total revolution time that the display will be updating)
TimePerColumn = 1.7684e-004 seconds
bitsPerColumn = 96 bits
Time2ShiftColumn = 7.6800e-006 seconds
ShiftMargin = 0.0434 (4.34 %)
DegreesPerColumn = 1.9099 degrees
DataPerRev = 9216 bits
DataRatePerRev = 276480 bits/second
DataRatePerRevByte = 34560 bytes/second
VideoDataRate = 8294400 bits/second
VideoDataRateByte = 1036800 bytes/second
secondsPerDegreeOffset = 9.2593e-005 seconds
TimePer10deg = 9.2593e-004 seconds
resolution = 3072 pixels (32 x 96)
bitsPerImage = 9216 bits
BytesPerImage = 1152 bytes
VideoSize = 34560 bytes/second (assumming 30 fps)

The .m file used to generate the data can be found here.

IR Test Circuit
Picture 1 Picture 2 Picture 3


Picture 1 shows the test setup that was used to test the IR speed feedback sensor and measure the speed of the fan motor as well. The circuit board on the bottom left is the LM3S8962 eval board connected to the computer with the ULink2 JTAG debugger. The breadboard has the IR sensor circuit discussed in Thursday September 3 notebook entry. The R2 was changed from 2.7K to 10K to compensate for the 3.3V of the ARM as opposed to the 5V of the test circuit. The box fan has an IR LED and phototransistor pair mounted on either side of the blade to count the "pulses" the moving blades create. Picture 2 is a screenshot of the LM3S8962 board with the program running on the OLED screen. This gave feedback on the fan speed. Picture 3 is a shot of the IR LED pair that measured the fan speed and is using the same circuit that will be used in the final design.

The output from the OLED of the micro said the fan was running between 900 and 1700 RPM. This variance seems to be due to the angle of the fan blade with respect to the IR led, which seems like the white is reflecting the IR back to the phototransistor even when the blade should be blocking the beam. Yellow duct tape was used to attempt to correct this, and had little effect.

Below is a snippet of the LabVIEW code that was running on the ARM microcontroller. The code displays the total number of interrupts generated by the phototransistor, the second line is a seconds counter just to show the user that the micro is running, and the third line is a one-second moving average of the fan motor shaft RPM (total number of pulses divided by 5 because of the 5 blade fan).

September 9, 2009 Wed (09.09.09!) (3 hours):
Met as a team to discus the user interface of the final project. The LM3S8962 eval board has an OLED screen and 5 push buttons. These can be used as a user interface, but could be small and tedious. Investigated other potential options such as character LCD screens and keypads. The largest determining factor will be whether or not the eval board can be used in the final project or must be recreated on the PCB.

The team decided that using 5 pushbuttons to navigate an on-screen menu will be the easiest way to interface with the device. This will allow for software updates to change the program flow and adaptability with no hardware changes.

September 10, 2009 Thur (7 hours):
Learned how to run the ARM eval board "headless." In order to program the ARM, there is a JTAG connector with a Keil uLink2 programmer/debugger that is has a USB interface to the Keil programming software. The LabVIEW for ARM package generates the C code that is imported into Keil's uVision3 software that targets the Luminary micro. On first try, the software for the RPM speed feedback would work, but only when the debugger was connected. After emailing NI for help, found that there is a software option to "disable debugging" which will allow the micro to run without the debugger connected. Limited debugging is still available through the included USB and ethernet ports on the eval board.

Met as a team to discuss part selection and design priorities. Shaun was assigned the following parts to select:
     1. Motor selection
     2. Batteries and Type
     3. Shift Registers
     4. BJTs

The current fan motor (permanent split capacitor 4-pole induction motor from box fan) has a 3/8" flatted shaft with ball bearings. This will provide a fair amount of support for the upper rotating disc, but will be tough to make a connector that will guarentee concentricity of the disc. A threaded shaft and nut would hold the disc better than a slip collar on the flatted shaft. In order to get the best support possible from this motor, a shaft adapter will be constructed that converts the 3/8" flatted shaft to a 3/8"-16 threaded bolt.

September 11, 2009 Fri (6 hours):
After much research, could not find shift registers that could supply 3.3V @ 20 mA on all 8 output pins at the same time (160 mA and 528 mW). Many surface mount shift registers are capable of sourcing the 500 mW and 30 mA per pin, but have a "catch" in the datasheet further down that states "total output current on all pins must not exceed 75 mA total." While it is not often that all pins of the shift register will be "on" at once, the circuit needs to be capable of handling the condition if it does. Because of this, our circuit will have to use a BJT drive circuit to source the extra current to each LED pin. Since the LED is a common cathode, the circuit will need to be a PNP BJT or P-channel MOSFET. Since the BJTs are much cheaper, this will be the choice. A test circuit is shown below that will allow the shift registers to use an active-low output to control the RGB leads of the LEDs. This circuit worked at 3.3V when tested in the lab with a standard Yellow LED from the ECE270 parts kit.

Assistance for this circuit came from this page by Mike Martell.

Ordered samples of SMPS voltage regulators from Linear Technology. One model is the 3.3V fixed output voltage with 3 Amp internal switch, so it needs very few external components. It is model number LT1765EFE-3.3#PBF. The other regulator is a variable voltage 3V to 25V output at 3A model number LT1765ES8#PBF. They have the same Linear Technology Datasheet.

Tested the IR sensor (used for speed feedback) on the oscilloscope in Lab. The output was a very sharp cornered square wave with negligable rise and fall times and high noise immunity to outside light. The expected interrupt rate for the final circuit is a 30 Hz pulse from the 1800 RPM motor. Tested the circuit up to 150 Hz and output was just as clean. The circuit tested was the one designed and posted on Sep 8th.

The software algorithm to take the interrupt from the IR sensor and calculate motor speed worked well with the debugger disconected.

Used the IR sensor and oscilloscope to measure fan speed and confirmed the 900 RPM with Fan load measurement from Sep 8th test setup. The 4-pole motor has a synchronous speed of 1800 RPMs with zero slip. Normal induction motors have around 100-350 RPM slip, and the expected speed with a fan load was around 1600 RPM. Either the motor has 50% slip from synchronous when the fan is connected, or the motor is not the 4-pole induction motor that it is thought to be. This could cause problems with the final design because all the calculations were based on having a 30 fps update and this motor will only allow a 15 fps update. The project will still work, but the image will not be as clear and the individual revolutions could possibly be noticable. Will look into other motors to power the machine.

WEEK 03 SUMMARY Finished design limitations calculations for data rate and physical time constraints, designed and tested speed feedback circuit and LED drive circuit.
Accomplishments: Data rate and time analysis, speed feedback and LED drive circuits finished
Weekly Work Total: 26 hours
Project Work Total: 56 hours

Week 04

September 14, 2009 Mon (3 hours):
Met as a team to discuss upcoming Design Constraint analysis homework. Chose a shift register that will change the software model slightly. The TI 54AHC594 shift register with storage register will allow the data to be clocked in without effecting the LEDs connected to the pins. This allows the SPI rate of the shift registers to be slowed from 8Mbps to 500kbps. but adds an extra pin requirement to the micro #3.

Chose a suitable BJT to use in the LED drive circuit -- the Fairchild FMB3906 has two BJTs per SOT-6 package. Also Eric added a datasheets tab to the Group 7 Homepage for quick reference, as opposed to scanning through the lab notebooks all the time. Emailed Advanced Circuits sales representative about size and design requirements for the student discount PCB from www.4PCB.com and learned that the maximum board size is 60 sq. in. with two layers. Multiple separate circuits may be put on a single PCB, but Advanced circuits will ship them on a single board and they will have to be cut apart after shipping, otherwise each PCB is an additional cost. Started protyping a slip ring for supplying power to the upper disc that would get rid of the need for using/replacing batteries on the upper board. See picture below for a rough sketch of concenpt.

Will keep working on slipring design, but still planning on using batteries at this point. Batteries are much more likely to work at this point. If the slip rings prove more feasible at any point, the team will reevalutate the use of batteries vs. slip rings.

September 15, 2009 Tue (4 hours):
Met as a team to discuss upcoming Design Constraint analysis homework.

    Would batteries be necessary for the Base PCB to maintain time on the clock?

After analyzing the data timing requirements and RF transceiver IC datasheet the POV machine will not be able to do full 30 fps video at 1800 RPM motor speed. This would require around 270 kbps RF transfer speeds. The uMiRF transceiver from Sparkfun Electronics has a 250kbps data rate, but must also send checksums and channel information for the packets which lowers the actual data rate the upper disc will see. Need to investigate possible alternatives to RF transceiver such as IR link.

Found AVAGO Technologies HFBR-2402Z fiber optic receiver that meets data rate requirements, but would be complicated to aim IR led into the receiver input w/out fiber optic cable. Also the Vishay TSHF5410 is a high speed IR LED capable of 12MHz operation.

Original design used two microcontrollers -- one on the stationary base, and one on the spinning disc. This is possible except that the spinning disc has two equal priority, asynchronous, time critical loops. The spinning disc must accept data from the RF transceiver whenever it is ready, but it also must shift out data to the shift registers at precise times. If the RF transceiver is ignored data will be lost. If the shift registers are late or early the image will be skewed. The best way around this is to use two smaller microcontrollers as opposed to a single more powerful one. This will allow the two CPUs to run asynchronously yet still be cost effective.

September 16, 2009 Wed (3 hours):
Met as a team to discuss upcoming Design Constraint analysis homework. Picked out micros and made PowerPoint for TCSP presentation. Also worked on constructing slip ring prototype design.

September 17, 2009 Thu (6 hours):
Met as a team to discuss upcoming Design Constraint analysis homework. Finished the Design Constraint Analysis homework as a team. This included selecting a few new parts for the design and double checking the analysis of the power, voltage, and timing requirements.

September 18, 2009 Fri (3 hours):
Worked on slip ring prototype and built the rings. The mounts for the carbon brushes are causing mechanical issues. Getting 27W output motor donated by GE Motors to test with design. Will work on the slip rings after the new motor is received in case the shaft is a different size.

WEEK 04 SUMMARY
Accomplishments: Finished Design Constraint analysis, selected more parts, investedgated alternative mechanical packaging designs
Weekly Work Total: 19
Project Work Total: 75 hours

Week 05

September 20, 2009 Sun (3 hours):
Transferred labnotebook sketches and notes from paper to web. Also found a similar LED POV design from http://nazarifar.com/images/spinning-led-globe.jpg. Need to look into using SIP resistor package to cut down on PCB size for LED drive circuits.

September 21, 2009 Mon (4 hours):
Made notes an drawings on the tablet PC. The pdf of the notes are here.

September 22, 2009 Tue (4 hours):
Made notes an drawings on the tablet PC. The pdf of the notes are here.

The Linear Technolog 3.3V buck regulator takes quite a few external components and has very specific directions for laying out the PCB for proper performance and heat dissapation. This is not a terrible issue, but the TI 3.3V Buck regulator requires only 6 capacitors, 2 resistors, and an inductor for proper performance over 2 Amps. The inductor is a commonly stocked part at Mouser.com making the regulator much easier to impliment. This will be used on the power rail for the LEDs on the LED post.

September 23, 2009 Wed (4 hours):
After Packaging review presentation, team met to work on Packaging Specifications and Design document. In the Packaging presentation many good questions were brought and addressed. Here are some of the imporant ones:

  • Would it be possible to use a DC generator instead of a battery on the top disc?
   - Yes it would be possible. Currently Shaun is prototyping a carbon brush slip ring that could be used to carry power to the top disc.

  • Is 1800 RPMs really necessary for a clear image output?
   - 1800 RPM is not an ABSOLUTELY critical number. This is based on the idea that persistence of vision is more effetive at higher frame rates. The team currently has two AC motors to use: one is 900 RPM and the other is 1500 RPM. Neither of these are the 1800 RPM motors we used in the design constraint analysis. 1800 RPMs is the synchronous speed of a 4 pole AC motor in a 60 Hz electrical system. An induction motor has to have some slip (the rotor actually spins slower than the synchronous speed) in order to produce torque. The design constrain analysis choise of 1800 RPM was a worst case number, in terms of data rates, and is used as the ceiling in the calculations.

  • Does the team plan on sheilding the spinning assembly for safety?
   - The team hadn't planned on it up to this point. The original idea was to place a caution sticker similar to what you would see on the deck of a lawn mower to warn about spinning objects. The post will only be about 6" tall and the base will be fairly large in comparison. If safety remains an issue, the team will find some type of protective cover for the spinning disc.

 • Why does the project need a stationary microcontroller?
   - One of the great features about the POV machine is that it will be able to track an RF beacon and adjust the offset angle of the LED display to always face the beacon. In order to detect position the position detection circuit must remain stationary. The project will also accept user input while in use, so the pushbuttons and OLED screen need to be connected to a stationary microcontroller.

 • Why is your team using shift registers and BJTs instead of an LED driver?
   - The main reason was due to the RGB LEDs that were going to be used. They were common cathode LEDs and most LED drivers are made for common anode. The LED drivers that supported common cathode did not offer support for SPI data transfer and multiple LED control. Steve found better surface mount common anode RGB LEDs a few days ago and it never occured to the team to change the schematic. Thanks to this question, the team has now switched to a TI LED driver that can drive 16 LED pins. This will drastically simplify the PCB layout and soldering demands for construction. As well, the TI chip is a constant current LED driver which will help ensure that each color of the RGB is mixed evenly to get secondary colors.

At the team meeting, it was confirmed that the enclosure of the stationary base will be made out of wood. Drawings for this can be seen in the Packaging Specifications and Design document.

The team would like to give a big thanks to Wayne Hughes of GE Motors for donating an AC induction motor for use in the project. This motor will be used to turn the spinning disc.

September 24, 2009 Thu (5 hours):
Met as a team to work on layout and packaging design.

The GE motor is a 4-pole shaded pole motor that runs around 1500 RPM with a 27 W mechanical load connected and around 1748 RPM with no load. This motor has a longer shaft than the fan motor and will be easier to mount the upper disc to and has more room to develop slip rings. The motor is a 5KSM92HFL0010S motor made by GE Motors. The datasheet tab on the Group 7 homepage has the mechanical dimensions and performance.

The following pictures show the 5KSM motor as well as the threaded shaft, the t-nut mount for the top disc, and the first slip ring prototype.

5KSM92HFL0010S Motor Top view of motor with 5/16" T-nut on shaft Side view of motor with 5/16" T-nut on shaft
Threaded shaft end 5/16-18 Shaft Threader  
 
Slip Ring Prototype Carbon Brush for Slip Ring  
 


   The t-nut that screws onto the end of the now-threaded shaft will be used to attach the top spinning disc. This t-nut will be securly fastened to the shaft with epoxy once the design is closer to finalized. During construction, the threading makes it very simple to add and remove the top disc.
   The slip ring prototype has two isoloted brass rings that will spin on a 3/8" shaft. The stationary carbon brushes will rub against the side of the spinning brass rings in order to send power to the top rotating disc. These will be electrically noisy (possibly audibly noisy as well), so it will be necessary to filter the power on top of the disc. Currently the design of the power supply is using a 5V 800 mA wall wart from the ECE270 parts kit to give the DC power in the POV machine. If the slip rings are successful, this idea will have to be revisited because the slip rings will be capable of drawing 2.5 A if all LEDs are turned on white at the same time. The team will either have to find a larger wall wart (5V 3A) or build a transformer/rectifier circuit. This will take up considerably more PCB real estate than originally thought. The carbon brushes also have a decent resistance and could have a significant voltage drop. This voltage drop, along with the noise amplitude, will determine what voltage needs to be sent through the sliprings.
   Hardware stores do not carry the flanged nylon bushing in a 5/16" inner diameter. The prototype uses a 3/8" nylon bushing that will be adapted to fit the 5/16" shaft.

September 25, 2009 Fri (4 hours):
   Met with Patrick Morrison at the Purdue Mechanical Engineering Technology Acoustics Lab (METAL) and used the laser to cut out acrylic discs to use as mounts for the brush brackets in the slip ring assemblies. The mounting discs are 4" diameter 1/8" thick acrylic.
   With help from Jessica Dircksen (Purdue BFA '09 Jewelry & Metal Smithing) designed and built copper brackets that would hold the carbon brushes for the sliprings.
   Worked with Russell to insert nylon spacers into 3/8" nylon bushing to fit onto the shaft of the 5KSM motor. We tried to use a drill press to bore out the spacer, but could not maintain concentricity. The slip rings would vibrate too much on the shaft and make too much noise.

September 26, 2009 Sat (6 hours):
   Tested the bored-out nylon spacer against two layers of heat shrink tubing to see which would make a better shaft adapter. They both worked, but the heat shrink tubing was very uniform and cause the least vibration. This was chosen as the preferred material for the shaft adapter. The heatshrink could be attached to the nylon flange and to the shaft with super glue. This was the last step in completing the slip ring assemblies. There are two brushes per ring in the slip ring assembly. This is to lower the noise in the circuit and also to balance the forces on the motor shaft to lower vibration. See the pictures below for what the slip ring assemblies look like.

Slip ring assembly on motor Close up view of the top of a slip ring plate. Notice how the copper brackets hold the carbon brushes while also making the electrical connection. Side view of the slip ring assembly. There are two slip ring plates-- one for the positive and one for the negative.
Side view of motor with slip ring assemblies installed Top view of motor with slip ring assemblies installed The red and black wires on the side of the motor are the stationary connection to the slip rings. Red is positive and black is ground. The red and black wires on the shaft are connected together to the slip rings are essentially shorted together. This is for testing only.


   After the slip ring assemblies were installed in the motor a test was performed to measure the electrical and audible performance and noise on the assembly. The following circuit was used to test the slip rings.

In the circuit above, the resistor R1 was a 4.170 Ω power resistor and capacitor C1 was varied in attempts to reduce noise in the circuit. In the initial resistance measurement (Positive terminal of the Ohmmeter was placed at Vin+ and Negative terminal was placed at Vo+ and the power supply and load resistor were disconnected to measure just the resitance of the brush assemblies) the brush assemblies were between 8.5 Ω and 670 Ω. This was a 661.5 Ω variance in one revolution. When the motor was running with no load the brush resistance was between 90 Ω and 160 Ω.

Electrical Load Test Results

Test 1 -
  Vin = 6.184 V   Iin = 0.80 A
  Vo = 3.362 VDC   Vin Noise = 2.38 Vp-p
  C1 = 0 µF   no capacitors

Test 2 - (Oscilloscope Plot here)
  Vin = 6.190 V   Iin = 0.70 A
  Vo = 3.073 VDC   Vin Noise = 1.09 Vp-p
  C1 = 220 µF   single 10 V electrolytic


Test 3 - (Oscilloscope Plot here)
  Vin = 6.187 V   Iin = 0.80 A
  Vo = 3.206 VDC   Vin Noise = 1.00 Vp-p
  C1 = 680 µF   single 100 V electrolytic


Test 4 - (Oscilloscope Plot here)
  Vin = 6.190 V   Iin = 0.81 A
  Vo = 3.297 VDC   Vin Noise = 1.09 Vp-p
  C1 = 680.1 µF   680 µF 100 V electrolytic in parallel
with 0.1 µF ceramic disc


Test 5 - (Oscilloscope Plot here)
  Vin = 6.194 V   Iin = 0.80 A
  Vo = 3.226 VDC   Vin Noise = 2.38 Vp-p
  C1 = 0 µF   no capacitor
Noise freq = 3.23 Hz


   The electrical noise is fairly large (33% of output voltage) and the audible noise is tolerable. Most of the audible noise is due to the negative slip ring assembly. This is likely because the brass ring used on the slip ring is out-of-round. The electrical noise is due to the varying resistance of the slip ring asembly as the brush turns. This could possibly be due to the varying surfaces on the brass rings of the slip rings. In the future, sanding the brass rings to remove oxidation and dirt could improve noise performance. Output was 100% of the triple output power supply power capability, so the next test will need a more powerful power source.
   One other possible complication of the slip ring was the temperature of the motor. The motor is designed for use in refrigeration fan application and therefore is an impedance protected continuous air over rating. The team will likely have to put a cooling fan in the packaging for this reason.

WEEK 05 SUMMARY
Accomplishments: The team picked out many project compontents, finished the packaging design, changed the schematic for the LED drive circuit, started the schematic layout in PADS, built the motor mount for the top spinning disc, and built and tested the slip ring assembly.
Weekly Work Total: 30 hours
Project Work Total: 105 hours

Week 06

September 28, 2009 Mon (4 hours):
Further Tested slip ring design. The same circuit setup was used as in Saturday September 26, except that the Agilient power supply was replaced with a 12V 30A switch mode power supply. The circuit was tested with different loads and filter capacitors in order to determine whether the electrical noise from the slip rings was mainly driven by Voltage, current, power, or both. AFTER TAKING THESE RESULTS, THE TEAM REALIZED THAT THE VERTICAL AND HORIZONTAL SETTING ON THE OSCILLOSCOPE WERE NOT ADEQUATE AND THE NOISE MEASUREMENTS ARE NOT ACCURATE.
Test
Number
Vin (Vdc) Vout (Vdc) noise (Vrms) Io (A) Rbrush Ω C1 µF R1 Ω
1 13.728 10.8 0.450 2.59 0.702 0 4.170
2 6.010 3.2 1.0 0.82 3.42 0 4.170
3 6.014 3.0 0.900 1.9 1.586 0 1.6
4 13.57 10.0 0.700 6.67 2.23 0 1.6
5 6.013 5.9 0.100 0.006 18.8 0 1000
6 6.106 6.09 0.060 0.007 2.63 6800 1000
7 5.00 5.026 0.090 n/a error 6800 1000
8 3.3 3.32 0.090 0.0032 31.3 6800 1000
9 6.012 3.10 0.130 0.75 3.92 6800 4.170
10 6.011 3.2 0.400 0.767 3.66 680 4.170
11 6.006 3.2 1 .767 3.66 680 + 33mH inductor in series with load 4.170


The noise from this test was most likely invalid due to the oscilloscope settings, so the test will need to be redone. One test #7 the output voltage was larger than the input voltage. This is due to the large filter cap (6800 µF) and light load (1KΩ) so the output voltage was due to left over charge on the filter capacitor and the measurement was taken to quickly. Another explaintion is the noise in the circuit added enough error when the oscilloscope calculated average DC output, the number was inflated due to noise. Test #11 had a 33mH inductor in series with the load and seems to have increased noise as opposed to filtering it. At the daily team meeting, the team discussed the schematic and what parts still needed to be selected. The selection of parts for the power supply cannot be selected until the noise from the slip rings can be quantified.

September 29, 2009 Tue (4 hours):
Picked parts for power supplies and tested transformer


Test
Number
Vrectified Min (Vdc) Vrectified Max (Vdc) Vrectified ripple (Vrms) Vtop Min (Vdc) Vtop Max (Vdc) Vtop Average (Vdc) Vtop noise (Vrms) Rload (Ω) Cbulk (µF) Cfilter (µF)
1 13.62 15.31 1.69 9.53 12.34 10.9 2.81 5.6 6800 1000
2 18.50 18.81 0.313 17.66 18.44 17.82 0.780 1000 6800 680
3 18.87 19.18 0.313 18.12 19.06 18.41 0.940 11,000 6800 680
4 12.46 14.15 1.688 9.06 11.09 9.86 2.03 4.170 6800 680


September 30, 2009 Wed (8 hours):
Picked out all parts for buck converter, power supplies, and IR feedback. Worked on the schematic and picked up a PIC 24F development board for code testing. The PIC24F development board has a PIC24F128GA010 which is similar to the PIC24F32GA002 that our team is using. As long as the code is written in C and not assembly, the code from the PIC24F128 can be recompiled to run on the PIC24F32 with no issues.

Team met to work on schematic as a group.

October 01, 2009 Thur (12 hours):
   Met as a group to work on schematic. The RF transmitter runs on 5V logic and needs to have power. Linear Technology makes a power IC that will take the output from 2 AA NiMH rechargables and boosts it to 5V up to 200 mA. The total power need of the transmitter is around 80 mA so this IC will be perfect.
   The ARM recommends sourcing no more than 2 mA from any port pin of the LM3S8962 microcontroller so an NPN transistor will be used to amplify the signal from the port pin to be able to drive the opto-isolator which takes 20mA.
   The PIC24F has a parallel master port (PMP) that is used for data transfer between other PIC24F controllers. This seems like a good feature but this requires a master-slave configuration, and both microcontrollers are also processing time-critical tasks of controller the RF transceiver and shifting data to the LEDs. This does not work well with the master-slave configuration of the PMP. The software will have to control the data on the bus without using a built in peripheral. There are two options for controlling the data with 2 control pins. First option: Micro2 has an output pin that says, "I have data ready" into an input on Micro3 and Micro3 has an output to Micro2 that says, "Thanks, i have read the data." The other control option is so have Micro3 have an output into Micro2 that says, "I'm ready to read data" and Micro2 will have an output to Micro3 that says, "The data is ready."
user manual of the PIC listed the functions and what pin each was available on, but did not list each pin and what it was capable of. The Spreadsheet is available here.

WEEK 06 SUMMARY
Accomplishments: Finished first draft of Schematic, Finalized all power supply design, part selection and testing.
Weekly Work Total: 28 hours
Project Work Total: 133 hours

Week 07

October 5, 2009 Mon (6 hours):
The completed homework assignments were finally returned to day and the team discussed the comments and how to fix/improve the project from them. Safety of our project is a recurring theme in the packaging design and needs to be addressed. The team is making significant changes to the packaging to improve the safety. The first change will be to mount to rotating LED post sandwiched in between two discs. The discs have no sharp edges so they are much safer than the rectangle the post was going to mount to.

David Collins questioned our team why we are using two microcontrollers on the upper spinning disc. Originially this was because there were two equal priority time-critical and asynchronous funtions of the top disc-- receive data from the RF transceiver and send data to the LEDs. Since the design recently changed to using LED drivers instead of shift registers, the amount of the CPU time required to send data to the is now much lower. The PIC24F has 8 interrupt priority levels and a 32MHz clock speed which means that each clock cycle is 31.25 nS and a simple 8 instruction interrupt could be serviced in as little as 250 nS. The RF transceiver can send data at up to 1Mbps which means that a byte will transfer every 8 µS. At 1800 RPM and a radius of 15 cm for the LED post, displaying 96 columns in 180° means that each column of display will last for 174 µS. The spinning upper disc will take 92.6 µS to move 1°. The position sensor has a target accuracy of ±5°

October 6, 2009 Tue (8 hours):
Need to calculate the force on the LEDs on the spinning post and address safety concerns.

Mass of 8 LEDs = 0.29 grams measures on a My Weigh MX-50 digital scale 0.01 gram accuracy
      Mass of single LED = 0.29 / 8 = 0.036 grams per LED

Met as a group to work on PCB layout.

October 7, 2009 Wed (8 hours):
Double checked schematic for top post-- No errors found. The schematic file is here.

Russell came up with the idea for a mounting post that would hold the two plexiglass discs in place. A hand sketch can be found here. The middle of this block could be slimmed down to remove weight. This would result in a hour glass or sewing bobbin type shape for the final bracket.

The plexiglass discs were originally going to be made out of 1/4" acrylic, but this would make mounting the LED post and balancing the assembly a more of a challenge than if 2 sheets of 1/8" plexiglass were laminated together. This would allow for "slots" to be cut in one layer of acrylic and the other layer be left solid so that the post would not slide through the disc. This will add more structural support and also improve the safety of the spinning assembly of the project.

The PIC24F has a fail safe clock mode (FSCM) that will detect if the signal from the external crystal is bad and enter an error handling routine. Our team should make use of this feature and put an External Oscillator Error code into the software and give it an LED Blink error. Also need to pick set delay for the SYSTEM CLOCK stabilization. This delay will be how long the PIC24F waits for the external oscillator to stabilize before entering the FSCM error mode.

October 8, 2009 Thur (13 hours):
Met as a group to finish PCB layout and work on PCB Layout homework. Used the trace width calculator found at http://desmith.net/NMdS/Electronics/TraceWidth.html to find the proper trace sizes to use for proper power handling. The largest current that any trace will carry is 3 amps and the largest voltage is 20 Vdc. This is on the lower PCB and only for a short distance. The preliminary PCB layouts do not have a copper fill yet, as this will just have to be removed if any changes need to be made. The copper fill will be the last step the PCB layouts.

October 9, 2009 Fri (1 hour):
Posted the Homework #6 PCB Layout homework document.

WEEK 07 SUMMARY
Accomplishments: Finished preliminary PCB layouts, finalized some schematics, switched from 2 PIC microcontrollers to just one, and designed the mounting bracket for the spinning assembly.
Weekly Work Total: 30 hours
Project Work Total: 163 hours

Week 08

October 14, 2009 Wed ( 13 hours):
Met as a group to finish Design Review PowerPoint Presentation and rehearse. Here is the Design Review Presentation.

PDFs of the schematics are here:
  • Lower Board Rev 2
  • Upper Board Rev 3
  • LED Post Rev 2
  • Transmitter with WJA amplifier

October 15, 2009 Thu ( 3 hours):
After design review, met as a team to discuss questions and comments and capture all the new information that was presented and questioned. Here is a list of the comments made after our Design Review presentation.

   1) Use wider power traces to DC barrel connectors.
     - the thin traces are ground which should be covered when the PCB is flooded. The team will make larger traces to make sure the power handling is adequate.

   2) Make sure the programming pins are brought out to a header!
     - This seems to be a complete oversight of not labeling the programming pins. The team will correct this before continuing with any other design.

   3) Would it be possible/make sense to chamfer the corners of the RF transmission line traces?
     - It would be a good idea to make sure the trace widths allow for a 50Ω characteristic impedance. Chamfering the edges should be simple enough because there is plenty of PCB real estate around the transmission lines.

   4) Put 120V and relay on separate Perf Board (as opposed to integrated into the Lower PCB).
     - The is will be a simple fix and increase the safety of the project. The perf board can then be wrapped in electrical tape to make sure that no team members can hurt themselves while working on the project.

   5) Could the carbon brushes be sanded with a Dremel® to make them better seated on the brass slip ring?
     - This would be an excellent way to lower the brush resistance and also reduce the brush arcing.

   6) Will the transient impulses from slip ring arcing cause stiblity problems with the switching regulators or general noise throughout the circuit?
     - This is possible. The primary noise frequency of the slip rings is around 30 Hz, but the impulse from the arc will have harmonics at many frequencies (due to Fourier transform of impulse) and could cause interference. Seating the brushes will help with this. Further measurements will have to be made.

   7) It would be a good idea to bring out all pins to debug headers, even if the headers aren't populated.
     - This should be easy to add to the PCB layout.

October 17, 2009 Sat ( 5 hours):
Worked on writing LabVIEW code for the ARM Microcontroller. Wrote many low level functions for the final project including functions to take an array and output them to the OLED screen on the ARM eval board.

This main function is a function that will take an array (a 2-D array where each value represents the color value of the pixels of an image) and output that array to the OLED screen.


This is the sub VI that the previous Main VI references. The Draw Picture VI does most of the work from the Main VI


This is the sub VI that the previous Draw Picture VI references. The Number2RGBgray VI takes the element of the array and converts that 4-bit grayscale value to a 8-bit RGB value.


This VI will accept an angle (integer value between 360° and -360°) and output a circle on the OLED screen with a line drawn at that angle. It will also display the angle in integer degrees in the lower right corner of the display.


The AngleTest VI calls this VI, CircleAngle. The CircleAngle VI generates the circle and line display on the OLED screen.


WEEK 08 SUMMARY
Accomplishments: Finished design review and continued work on the ARM software.
Weekly Work Total: 21 hours
Project Work Total: 184 hours

Week 09

October 19, 2009 Mon ( 10 hours):
Met as a team to work on PCB Layout.

October 20, 2009 Tue ( 10 hours):
Met as a team to work on PCB layout.

October 21, 2009 Wed ( 13 hours):
Met as a team to work on PCB layout. Made bill of materials for all 4 PCBs. The bill of materials can be found here.

October 22, 2009 Thu ( 9 hours):
Met as a team to work on PCB layout and verify proof of parts and parts fit.

October 22, 2009 Fri ( 5 hours):
Met as a team to finish the PCB layout and finish homework 7 and the PCB submission.

PICTURES OF THE LOWER BOARD (PCB 1 OF 4)

Lower Board - Top Side Solder Mask and Silk Screen Lower Board - Bottom Side Solder Mask and Silk Screen
Lower Board - Top Side Copper Lower Board - Bottom Side Copper


PICTURES OF THE UPPER BOARD (PCB 2 OF 4)

Upper Board - Top Side Solder Mask and Silk Screen Upper Board - Bottom Side Solder Mask and Silk Screen
Upper Board - Top Side Copper Upper Board - Bottom Side Copper


PICTURES OF THE TRANSMITTER BOARD (PCB 3 OF 4)

Transmitter Board - Top Side Solder Mask and Silk Screen Transmitter Board - Bottom Side Solder Mask and Silk Screen
Transmitter Board - Top Side Copper Transmitter Board - Bottom Side Copper


PICTURES OF THE LED POST (PCB 4 OF 4)

LED Post - Top Side Solder Mask and Silk Screen LED Post - Bottom Side Solder Mask and Silk Screen
LED Post - Top Side Copper LED Post - Bottom Side Copper


WEEK 09 SUMMARY
Accomplishments: Made and submitted all 4 PCB's, the bill of materials, updated the schematics finished the proof of parts.
Weekly Work Total: 47 hours
Project Work Total: 231 hours

Week 10

October 26, 2009 Mon ( 2 hours):
Met as a team and started working on the software block diagrams for the ARM and the PIC microcontrollers. Also discussed packaging options for mounting the motor and acrylic discs.

October 27, 2009 Tue ( 4 hours):
Met as a team to discuss the software narrative presentation. The team discussed how the programs will be structured. The PIC will be primarily interrupt driven and a tiny polling main loop and the ARM will be a polling state machine with a few interrupts (timer for certain "states" and for button press sensing).

When writing test code in the LabVIEW for ARM package it has been common to run out of space in the heap of the ARM. When LabVIEW compiles the code to C which is then compiled by µVision into machine code, LabVIEW makes extensive use of the heap. This is largely due to the fact that some LabVIEW functions are much more complex than what is needed in this project. A workaround for this is the "inline C node" in LabVIEW or a C function call. µVision will be able to write much cleaner machine code from the hand- written C code as opposed to the LabVIEW code. The LabVIEW for ARM software package does allow for C function calls and this will be used extensively for many of the simple functions the ARM needs to perform.

October 28, 2009 Wed ( 5 hours):
Met as a team to finalize the software narrative presentation. The presentation can be found here.
Block Diagram/Flow Chart of the ARM software Block Diagram/Flow Chart of a menu function on the ARM
Block Diagram/Flow Chart of the PIC software List of Interrupts for the PIC
• EINT – 0° pulse from IR sensor
   - reads running timer (TIM1/2) and calculates motor speed
   - enables "delay" interrupt
• TIM3 - "delay" timer to generate angle offset
   - enable column timer
• TIM4 - column timer
   - Pulse the latch of the LED Driver
• SPI1 - read data from transceiver and store it

October 29, 2009 Thu ( 8 hours):
Met as a team to discuss the Software Narrative paper. One of the issues the team discovered is the configuration of the LEDs and LED drivers on the LED Post. The original idea was for the LED drivers to be configured with the data line in serial so the 6 LED drivers would be in serial and look like a 96 bit shift register. Each LED driver is capable of driving a 16 single color LEDs, since we have 32 RGB LEDs this would work fine. The idea was the LED Drivers 1 and 2 would drive the Blue LEDs, LED Drivers 3 and 4 would drive the Green LEDs, and LED Drivers 5 and 6 would drive the Red LEDs. In wiring the LED post this proved very complicated and the order was changed. LED Driver 1 drives RED of LEDs 0-15. LED Driver 2 drives Green of LEDs 0-15. LED Driver 3 drives Blue of LEDs 0-15. LED Driver 4 drives Red of LEDs 16-31. LED Driver 5 drives Green of LEDs 16-31. LED Driver 6 Drives Blue of LEDs 16- 31. This makes the data handling for the software a little trickier than if the data should be shifted out with the colors segregated.

LabVIEW for ARM compiles the LabVIEW code into C which is imported into Keil µVision which then compiles and programs the ARM microcontroller. The LabVIEW code is very large and only allows millisecond precision on the ARM which is not accurate enough for our use. Therefore, a hybrid of LabVIEW and C code will have to be used program the ARM microcontroller. LabVIEW has a C function call that can be used and entire subVI's can be written completely in C. This works out nicely because µVision has many drivers written in C for the Luminary Micro LM3S8962 ARM Cortex M3 microcontroller that our team is using. These will be extensively used for the image processsing and interrupt functions on the ARM.

The Keil µVision software comes with a Blinky.C example code that has drivers for the push buttons, Timer interrupt, SPI, and OLED screen. The main program Blinky.C is here in PDF format. The driver rit128x96x4.C is here in PDF form. The last bit of code needed to run the Blinky example is the Startup.s is here and written in assembly that is the initialization code for the micro.

October 30, 2009 Fri ( 4 hours):
Finished the Software Software Design Considerations, Narrative, and Documentation paper that discusses the selection and rational for the software architecture (interrupt, polling, or statemachine). This includes discussion on what peripherals will be used and a flow chart of the main program. Most all of the required main fuctions for the ARM and many of the functions for the PIC are outlined in detail and are ready to be written and tested.

WEEK 10 SUMMARY
Accomplishments: Started writing the software for the project and completed the software outline and flow. Also started the psuedo-code for most functions in software for the ARM and the PIC.
Weekly Work Total: 23 hours
Project Work Total: 254 hours

Week 11

November 2, 2009 Mon ( 5 hours):
Wrote the code for to test the SPI port of the ARM eval board. A code snippet is shown below.


The previous VI caused an error while compiling. Since the OLED is multiplexed with the other SPI outputs, the Blinky.C code was ran and the SSI port outputs were measured with an Agilent 54624A Oscilloscope. The output plots are shown below.





November 3, 2009 Tue ( 5 hours):
Met as a team to discus the code structure for handling the pixel map generation. Details are posted on Russell's lab notebook.

November 4, 2009 Wed ( 0 hours):
Did not make any progress on the project as I was out of town at a job interview. The team presented the Patent Liability Analysis Presentation .

November 5, 2009 Thu ( 0 hours):
Did not make any progress on the project as I was out of town at a job interview.

November 6, 2009 Fri ( 0 hours):
Did not make any progress on the project as I was out of town at a job interview. The team completed the Patent Liability Analysis document.

WEEK 11 SUMMARY
Accomplishments: Continued writing software for testing the ARM microcontroller and analized the logic output of the SPI (SSI) port.
Weekly Work Total: 10 hours
Project Work Total: 264 hours

Week 12

November 9, 2009 Mon ( 3 hours):
Met as a team to work on soldering and debugging the circuit boards for the project. The LED post is completely soldered and a video of it working is shown below.



The LED post uses TI tlc59025 constant current LED drivers. These are latched shift registers that accept an SPI input into the memory of the shift registers and have a latch to control the output pins of the LED drivers. Each LED driver can drive 16 single color LEDs. There are 32 RGB LEDs, so that requires 6 LED drivers.

November 10, 2009 Tue ( 5 hours):
Met as a team to discuss issues with the power supply on the upper board. The 5 V switching regulator is capable of holding a 5.01 V average output, but there is a 50 MHz 0.70 Vp-p undersdamped oscillation. This occurs twice every switching period, when the MOSFET turns on and off. This oscillation is due to the underdamped RLC circuit in the output of the buck converter. This is most likely due to much larger capacitor ESR than the TI tps54357 synchronous 3.0A fixed output 5V regulator. The regulator runs at a 500 KHz nominal switching frequency. After testing the circuit the actual switching frequency is around 490 KHz.

November 11, 2009 Wed ( 0 hours):
Did not make any progress on the project as I had a job interview out of town. The team presented the Reliability and Safety Presentation.

November 12, 2009 Thu ( 5 hours):
Met as a team to discuss the software and the power supply issues. Russell discovered that the ESR of the first of the 3 output capacitors of the 5V Buck regulator is much too large and is creating an unstable condition in the deadtime portion of the control loop. This can be adjusted by using a smaller output capacitance with lower ESR and by putting multiple low ESR capacitors in parallel to lower the resistence even more. Worked on the user menu for the ARM microcontroller in LabVIEW for ARM.

List of VI's

- Main
    Top Level VI that calls all the sub VIs.
   

- Clear Screen
    Clears the OLED screen to be all black.
   

- Blank Screen Memory
    Clears the memory of the OLED screen without clearing the display.
   

- Draw String
    Draws a string on the OLED given a line 0-7.
   

- LineNumber2XY
    Given a line number (0-7) generates the pixel location on the OLED.
   

- Draw Rectangle
    Draws the gray rectangle behind a single line of text.
   

- Scan Buttons
    Scans all the input buttons and outputs button states.
   

- Interrupt Handler
    Timer Interrupt that blinks the status LED to know the code is working.
   

- Main Menu
    Displays the main user menu on the OLED.
   

- Options Menu
    Displays the options menu on the OLED.
   

November 13, 2009 Fri ( 5 hours):
Met as a team to discuss our current progress and prioritize what tasks are left to complete the project. Coding is the most important issue on hand, and second is the hardware soldering and testing. Shaun and Steve went to the METALs lab to work with Patrick Morrison to use the Epilog laser to cut out one of the plexiglass discs for the upper rotating assembly. The disc is 13" in diameter and cut from 1/4" acrylic. A 0.08" wide x 2.05" long x 0.1" deep groove was cut for the LED post to fit securely in.

Submitted the Reliability and Safety Report.

Code left to write:
- Individual functions
- SPI sub VIs
- A/D to Angle VI
- Custom text input menu
- Debug functions
- Pixel map generation function

WEEK 12 SUMMARY
Accomplishments: Finished and tested the LED post and its completed. Wrote many of the Sub VI's for the ARM and the User Menu. Also cut the first of two discs for rotating assembly.
Weekly Work Total: 18 hours
Project Work Total: 282 hours

Week 13

November 16, 2009 Mon ( 5 hours):
Tested the power supply on the upper board with the new capactor values.

    C7 = 33uF electrolytic cap (AFK336M10C12T)
    C8 = 47uF ceramic cap (JMK316BJ476ML-T)
    C9 = 0.1uF bypass ceramic cap

The picture below is the output of the PSU on the upper board using a 510Ω load resistor. The top signal with the cursors around it are the 5V output. the bottom signal is the 3.3V output from the LDO.


November 17, 2009 Tue ( 11 hours):
Tested the 5V switching regulator on a different oscilloscope with a different probe and the ripple was only 200 mV worst case. This was clean enough power to run the circuit without digital glitches, so the rest of the board can now be populated and tested.

November 18, 2009 Wed ( 11 hours):
Continued populated the PCB and testing each component as it was populated.

November 19, 2009 Thu ( 1 hours):
Worked on designing the new mouting assembly for the motor and disc. Since the old motor has a bent shaft, the original fan motor ("recycled" from a Lasko Box fan) will be used. It has a 3/8" flatted shaft that works well with the 3/8" slip rings.

November 20, 2009 Fri ( 0 hours):
No significant progress was made due to an out of town interview.

WEEK 13 SUMMARY
Accomplishments: "Fixed" power supply and continued soldering the PCBs. Also worked on integrating all the components together.
Weekly Work Total: 28 hours
Project Work Total: 310 hours

Week 14

November 23, 2009 Mon ( 3 hours):
Worked on finishing the rest of the PCBs and starting the packaging for the POV Machine.

November 24, 2009 Tue ( 3 hours):
Met as a team to discuss what the best approach was to finish building the project. There are hangups with the ARM code being very bulky when generated by LabVIEW, and the details on the packaging aren't finalized. Went to the MET Acoustics Lab (METAL) with Steve to work with Patrick Morrison to cut a new acrylic disc for the new shaft size.

November 27, 2009 Fri ( 3 hours):
Worked with Jessica Dircksen (BFA Metalsmithing Purdue 2009) to help resolder the broken slip ring brush holders.

WEEK 14 SUMMARY
Accomplishments: Worked on packaging and ARM software.
Weekly Work Total: 9 hours
Project Work Total: 319 hours

Week 15

November 30, 2009 Mon ( 5 hours):
Worked with team on packaging. Mounted the motor inside the box.

December 1, 2009 Tue ( 10 hours):
Worked on constructing the packaging of the project and trying to get all of the pieces working together. Assembled the slip rings and got power to the upper board through the slip rings.

December 2, 2009 Wed ( 12 hours):
The code for the ARM microcontroller is behind schedule, but I am still making progress. There are two major hangups for this delay. The first major problem has been interfacing to the ARM using the SPI port. The evaluation board has an onboard OLED which by default in LabVIEW for ARM, has control of the SPI. Using the SPI port was not very well documented, but I got excellent support from the National Instruments engineers. The initialization of the SPI will in LabVIEW will allow for the user to create a new chip select pin for the SPI port. The SPI port must be re-initialized everytime a different device is used on the SPI port. The following LabVIEW VI was created by a PSE and NI and shows how to "multiplex" the SPI port by initializing a new CS pin.



The other issue with programming the ARM is using bitwise functions or array functions to process the pixel maps in the LabVIEW for ARM program. The beauty of LabVIEW is that it makes realatively complex functions and embedded processes simple to code, but you lose the low level control. The low level control is possible, but it takes much more effort.

December 3, 2009 Thu ( 12 hours):
On this day, some of the toils of our labor came to fruition and the first sign of meaningful light was emitted from the POV machine. The YouTube video shown below is a video of the first complete test of the LED display mounted to the rotating disc in the box. The video shows a picture of a smiley face, but a picture of an American flag and Canadian flag were also tested.


The images were pre-loaded into the flash memory of the PIC microcontroller on the rotating assembly. The code for the PIC also did not use dynamic speed feedback in generating the image. The next step in the code is to add feedback so that the image offset and image width will be independent of motor speed.

Another issue that the POV machine is having is balance. Due to the imbalance of the disc, the motor cannot reach full speed. The team has a balancing tool that will be used to fix this issue.

December 4, 2009 Fri ( 7 hours):
While attempting to balance the disc, the team discovered that there was a problem with the balancing assumptions. The team assumed that balancing the disc while stationary (static) would translate to balancing the disc while rotating. This was based on the assumption that the majority of the mass was in the same plane as the rotating acrylic disc. Due to the 5" height of the LED post and mounting bracket, there is a large mass in a plane above the plane of the rotating acrylic disc. This causes an outward force creating a moment about the axis and makes a vibration. In order balance the disc, the moment of the counter balance must be equal and opposite to the moment of the LED post.

Balancing tool for the disc Two parts of the balancing tool Disc with counter balance post


As you can see from the third picture in the series, the counter balance mass had to be above the plane of the disc in order to cancel out the moment created by the LED post. The disc is marginally balanced up to 600 RPM and it vibrates too much after that speed. The original speed for the project was expected to be 1800 RPM so that the image would not "flash" so much, but we are not being graded very much on the mechanical systems of our project, so 600 RPMs will be fine.

December 5, 2009 Sat ( 9 hours):
Made the final edits to the LabVIEW for ARM code and also worked on the code for the LabVIEW Paint.vi that was writted so that the pixel maps for the POV machine could be drawn in a program similar to microsoft paint. The program outputs the bitstream that our PIC microcontroller shifts out to the LED post. This file is 1152 bytes in size. The program outputs a .txt file that can be copy-pasted into the .C file for the PIC24F and a .bmp file that can be used to keep track of the pixel maps.

WEEK 15 SUMMARY
Accomplishments: Completed much of the software and successfully ran the first test run of the machine by displaying a smiley face.
Weekly Work Total: 55 hours
Project Work Total: 374 hours

Week 16

December 6, 2009 Sun ( 7 hours):
Worked on packaging, programing the PIC24F and the ARM. While programming the ARM in LabVIEW for ARM, we ran out of RAM on chip. The LabVIEW for ARM software loads all data into RAM before using it, so all constants take up RAM as well as Flash. The LM3S8962 has 64K of on chip RAM. The software will have to be rewritten to save memory. I wrote an email to support at National Instruments for tips on ways to save memory.

December 7, 2009 Mon ( 13 hours):
Worked on packing the unit and finishing the software on the PIC24F on the upper board. Since communicating with the RF transceiver with the SPI on the ARM would be incredibly challenging so an extra PIC24F was used to interface between the ARM and the &mirco;MiRF transceiver. They were connected with a 6-bit interface that was manually written to send information on preset pixel maps and angle offsets. The bits are a binary representation of a base 10 number between 0 and 63. The numbers are represented as follows:

0 - blank display
1:15 - preset image
16 - custom image
17:54 - angle offsets between 0 and 350° in 10° incriments
55:63 - unused

NI support replied on great ways to save memory. It is possible to write functions in C and add them to the LabVIEW project or just use an inline C node. This way I could define constants in flash and then call them in C so that they are not loaded into RAM. The other tip was to edit the startup.s file in the µVision project because the operating system loaded onto the ARM to handle the threading in LabVIEW uses a fixed amount of RAM, whether it is necessary or not. By default the Heap for the OS is 0x8000. It is possible to lower this amount of memory used, but there is no guarentee that the system won't crash.

December 8, 2009 Tue ( 12 hours):
The team worked to finish building the wooden box and test the device. The team got the system working and generated a few pixel maps. Pictures of the new pixel maps on the working POV machine are shown below.

Picture of the American Flag Team 7 logo
(Yes, the "e" is backwards on purpose)


December 9, 2009 Wed ( 6 hours):
Put the finishing touches on the POV machine before the PSSC demonstration in TCSP. Updated the code on the lower PIC so that the offset on the OLED would match the offset on the POV display. The natural 0° of the POV display is offset about 210° offset from the 0° of the unit circle. Also had David check off 4 of the 5 PSSCs (1,2,4, & 5). PSSC 3 - "An ability to track the angle of arrival of an RF beacon" is much harder and will not be feasible by the end of the semester. After TCSP, the team asked Dr. Meyer if we could change that PSSC to an attainable one and he agreed. The team started sanding and prepping the box of the POV machine for painting in preparation for the presentations to ECE362 and ECE270 on Friday.

December 10, 2009 Thu ( 9 hours):
Painted the box of the POV machine and added the software to include animations of a stick figure throwing a grenade and a walking dinosaur. The animations were drawn by hand in the LabVIEW Paint.vi Each picture of the animation had to be drawn individually. The program on the PIC24F scrolls through the pictures. Also made the presentation for the ECE362 class.

The animation of the stick figure throwing a grenade is shown below.



The animation of the dino-saurus is shown below.



Also made a video segment used in the ECE362 Presentation. The YouTube clip is shown below.

December 11, 2009 Fri ( 11 hours):
Just past midnight while testing the POV machine, the motor overheated and something inside the packaging started smoking. The team quickly disassembled the package to find what had broken and the only component that was hot was the motor that turn the rotating assembly. When the motor had cooled the power was restored and the motor would not turn back on. The windings of the motor looked normal, and the switch and relay were in complete working order, so it was determined that the 4µF run capacitor on the permanent split capacitor motor from a box fan motor. We did not have a replacement capacitor, so the motor from another box fan was replaced. The new box fan motor had a 5micro; F capacitor. Since the two motors had a different value of capacitance, the entire motors were swapped as opposed to just the capacitor. This was finished just in time for the ECE362 presentation. The project is completely working and is documented in our final presentation and project video.



Merry Christmas!

WEEK 16 SUMMARY
Accomplishments: Completed all 5 PSSCs and finished the final packaging of the project. Presented the POV machine to the TCSP and the ECE362 class.
Weekly Work Total: 58 hours
Project Work Total: 432 hours