Design, Construction & Test is an extension of the first-year module ‘Engineering Design’. The module is assessed via two technical reports, detailing the design, construction and testing of a system which records weather data and sonifies said data.
The following is my individual report, which details my contributions to the project, the system as a whole is not outlined in this report. The system consisted of two sensors attached to a development board based on the STM32F407VGT6 from ST Microelectronics. The processor would then output Midi messages to a Pure Data patch, which sonified the data. Finally, the sonified data would be played through the headphone jack to some custom amplification and speaker circuitry.
I took up two roles for this project, the Team Leader and Leader of the Hardware Team. As Team Leader, I had responsibilities including organising group meetings, effectively delegating work, coordinating between the hardware & software teams and monitoring group-members’ progress. As a member of the hardware team, my responsibilities were designing, building, testing and producing documentation for sensors and all custom circuitry within the project. Leading the hardware team also required me to work closely with members of the software team in interfacing the hardware and software. This included making sure that all sensor outputs were within the range of the ADCs used and that all digital hardware components had clear documentation for associated software required.
List of Contributions to the Project
As Hardware Team Leader and Team Leader:
- Scaling of windspeed sensor output
- Production of documentation for windspeed sensor
- Design of quadraphonic audio output system
- Testing of quadraphonic audio output
- Production of schematic and documentation for quadraphonic audio output
- The Delegation of work amongst hardware team members
- Communication between group members and sub-teams
- The Organisation of meetings outside laboratory sessions
Technical Detail of Individual Contributions
My first contribution was testing and documenting the Weather Station Assembly. While there was already documentation for this, the documentation assumed the assembly would be part of a divider with a 5 Volt supply, giving an output of 0.32 – 4.62 Volts, but the ADC we used is rated for 0 – 3 Volts. This meant the output had to be scaled, would have to be scaled. Also, other groups had mentioned that not all 16 positions advertised were actually functional, so I investigated this. The easiest way to scale the output was to use a 3 Volt supply in place of the 5 Volt supply. I calculated the theoretical Voltage output from the Weather Station Assembly from a 3 and 5 Volt supply before constructing the divider with a 3 Volt supply and measuring the actual results. From this, I calculated the deviation of each measured from the theoretical result. This was repeated across several assemblies and documented in a spreadsheet shared with the software team, to give them all the information necessary to determine the program specifications.
Through testing the output voltage from each position, I came to deduce that all 16 positions are fully functional, though the 8 positions of highest granularity have a very narrow ‘on’ position, requiring fine precision to trigger them by hand, causing the wind direction to almost never settle in one of these positions.
After that, I began working on designing a quadraphonic audio output for our system. We decided for our project that the direction of the wind would be used to pan the audio across 4 directions, with the sound ultimately coming from the same direction as the wind. It was suggested that this could be done entirely in software using two computers, both with stereo outputs, but our software team already had enough work to do and there was little hardware, so I delegated the subsystem to the hardware team.
The final circuit I designed for this a mono audio output from a PC, through a unity-gain op-amp as a buffer, a digipot to reduce the signal and another buffer to reduce the output impedance, allowing for better interfacing with the active speakers we used, as they expect a line-level input. Since these stages were required four times over, once for each speaker, a quad op-amp package was used to save space on the board, as op-amps are used in two stages, four in each stage.
Like the Weather Station Assembly, the op-amps and digipots are powered from a single-sided 3 Volts supply. To achieve maximum swing, the input signal was placed on a bias of 1.5 Volts, achieved by using the circuit shown in Appendix X, and chose a rail-to-rail op-amp capable of drawing power from a source as low as 3 Volts. The op-amp chosen, as it was the only applicable op-amp available, was the MCP6024. The bias circuit used was chosen over a simple potential divider as it features a bias capacitor will filter out power supply noise.
There were two types of digipot which we could choose from, with interfacing methods being the main difference between the types. A simple up/down protocol digipot was chosen over an SPI protocol digipot to reduce the workload for the software team and eliminate dependence on software for testing. Since the digipot used an up/down protocol, Will Showler and I were able to test it with only hardware, using a PTM switch and pull-down resistor to trigger the increment pin, changing the resistance and an SPDT switch to toggle between incrementing and decrementing the resistance.
I feel that I could have devised a more robust and scientific testing methodology for the quadraphonic audio system. As it stands, there is no software to control the digipots, so testing was performed using a momentary switch to increment and decrement the resistance of the digipot, making it very difficult to accurately quantify by how many steps the resistance is changed per button press. This meant that, in our testing, we weren’t able to accurately quantify any data in terms of the current step, which is the variable we were changing.
We were, however, able to test if we had achieved basic functionality and we were able to confirm that the system was capable of taking a mono output from a PC and splitting it into 4 audio channels. As well as this, the system could both increase and decrease the volume of this audio. So, we could prove that the system functioned but with no detailed data about its actual performance. This is, of course, not good enough and while I’m glad we could prove it functions, I regret that we have no tangible data as to the detailed response of the system.
Given all the issues, I am happy with the final result we achieved, given that the majority of the project was made by two people, with the Pd patch coming later and being mainly constructed by another one person. I feel it’s reasonable to be pleased with two fully implemented sensors, a Pd synthesiser and sequencer, an LCD screen and audio output.
If we had more time, I would have liked for the digipots to be addressed by the main program from the board. I had supplied the software team with a pinout for the specific IC used and a clear description of the program required but with all the programming being done by just one group member, he had understandably prioritised interfacing with the Pd patch via midi. This would have also allowed for more detailed and more accurate testing of the system, as we could produce steps of exactly one change in resistance, rather than simply recording outputs for the highest volume, lowest volume and somewhere in-between.
Wind Direction Sensor specification
Quadraphonic Audio Circuit Diagram and realisation
Shown above is the schematic for the Quadraphonic audio splitting circuit, where Vss is a 3V supply from the board, the 1V AC source is the mono output from the PC, connections to (currently unassigned) pins are labelled as such and, for the sake of simplicity, the connections shown will accommodate one channel of audio. The system is capable of four channels, though three more DS1804 chips will be required and all four op-amps in each of the MCP6024 quad-op-amp packages will need to be connected as the first of each is.