MEAM.Design - MEAM 410/510 - L4 (Orchestra)

Congratulations! You've just been accepted into the highly prestigious MEAM410/510 mechatronic orchestra! To participate, you must design and construct a battery-powered, GF1004-based instrument capable of playing a tone for a specified duration when requested via an mRF wireless command.

Instrument Selection

If you would like to select the "instrument" (general range of frequencies) that you are going to play, send an email to entitled 510-L4-instrument containing an ordered list of your top three choices from: Bass (60-110 Hz), Baritone (110-180 Hz), Tenor (180-300 Hz), Alto (300-440 Hz), Mezzo-Soprano (440-650 Hz), and Soprano (650-950 Hz). This email must be received before 9:00 p.m. on Tuesday, October 11th, after which time you will otherwise be randomly assigned. We will work to balance the orchestra and inform you of your actual instrument shortly thereafter.

Part A - Driver Design
1 - Unipolar Drive: Given a unipolar (GND and V+) benchtop power supply and a low-current function generator output, build a circuit to drive your speaker. Experiment with various input waveforms and listen for the changes in the output sound. Because the unipolar drive will have a non-zero DC component (which will heat up the speaker coil), do not excite the speaker (especially a higher volumes) for more than a few seconds. Include a schematic of your driver design and briefly describe the results of your experiments with the various waveforms.

2 - Bipolar Drive: Redesign your drive circuitry to use a bipolar (V-, GND, V+) power source. Experiment with various AC drive signals (zero DC component) from the function generator. Include a schematic of your driver design and briefly describe the results of your experiments, including a comparison between the unipolar and bipolar modes.

3 - Microcontroller Function Generation: Design a system and write the necessary M2 code to produce a reasonable sinusoidal AC output over your instrument's frequency range. Describe your methodology, and submit a copy of your (obviously well commented) code.

Due Friday!

Part B: Exploring Wireless Communications

1 - Read through the instructions for using the mBUS peripheral interface and the mRF wireless module.

2 - Find a partner, and improve your understanding of the wireless communication system. Program each microcontroller to send a single-byte packet to the other when an external button is pressed. When the microcontroller receives a packet, it should flash the red onboard LED the number of times specified by the value of the packet. To avoid collisions, you should use the addresses described under Address and Instrument Table below.

Part C: Play Music!

Configure your system to listen for incoming packets from the conductor. These packets will consist of three bytes as follows:

char packet[3] = {0xFL, 0xFH, 0xDD};

Where the first two bytes (0xFL & 0xFH) are a split 16-bit value corresponding to the tone frequency in deciHertz (1/10 of a Hertz), and the last byte (0xDD) corresponds to the sound duration in centiseconds (1/100 of a second). Once received, your system should immediately play the specified tone for the desired duration.

Note - Output frequency will be found using 0xFL and 0xFH together. If you find your instrument is slightly out-of-tune during testing, the class slides on pointers might guide you toward a solution.

Part D: Design and Build Your Instrument
Your instrument, which you will bring to class for demonstration, must:

  1. Be battery powered.
  2. Contain at least one easily-visible LED which will illuminate when the tone is being played.
  3. Include a knob or slider to control the output volume.
  4. Be contained within an MDF or acrylic body.
    (Creative enclosures using other materials are considered on a case-by-case basis. Ask on Piazza!)
  5. Be labeled with your name, wireless ID, and instrument type (Bass, Baritone, etc.).


1 - Leave your instrument in the lab after class.

2 - Send your well-commented and human-readable source code to with subject "510-L4code".

Address Table
You will have a unique wireless address (hex value 0xXX) on RF Channel 1, as listed in the table below.

NameWireless ID (XX)Instrument
Arya, Prashant0x 36bass
Cai, Myles0x 37bass
Cook, Liam N0x 38bass
Freifelder, David L0x 39bass
Hernandez, David E0x 3Abass
Huang, Yingfeng0x 3Bbass
Kneier, Nicholas Ewald0x 3Cbass
Li, Guanrui0x 3Dbass
Ling, Wudao0x 3Ebass
Liu, Zeshen0x 3Fbass
Lu, Kevin0x 40bass
Nam, Brian S0x 41bass
Patel, Raj Nanalal0x 42bass
Qian, Lei0x 43bass
Sanna, Kellen J0x 44bass
Trivelis, Nicholas Dimitri0x 45bass
Zahra, Ahmed A0x 46bass
Zhou, Xuanyu0x 47bass
Bensing, Zachary Sander0x 23baritone
Chen, Gongyao0x 24baritone
Cooley, Michael Renee0x 25baritone
Gaardsmoe, Samuel A0x 26baritone
Herlihy, Alexander S0x 27baritone
Jafferjee, Adnan0x 28baritone
Ko, Hung-Tang0x 29baritone
Kramer, Benjamin T0x 2Abaritone
Lu, Yabin0x 2Bbaritone
Narula, Maanav0x 2Cbaritone
Oslin, Matthew A0x 2Dbaritone
Paul, Sandeep0x 2Ebaritone
Shamsah, Abdulaziz0x 2Fbaritone
Talbott, Lincoln R0x 30baritone
Weintraub, Samuel P0x 31baritone
Wu, Yixin0x 32baritone
Xu, Zi Liang0x 33baritone
Zembroski, Kevin J0x 34baritone
Bernstein, Benjamin V0x 6Ftenor
Borja, Gabriel B0x 70tenor
Chase, Elyse D0x 71tenor
Collins, Spencer P0x 72tenor
Dimwamwa, Elaida D0x 73tenor
Galginaitis, Jason Gordon0x 74tenor
Harris, Daniel C0x 75tenor
Karunanithi, Divya Lakshmi0x 76tenor
Krishnan, Nikhil0x 77tenor
Maheshwari, Jalaj Rahul0x 78tenor
Majithia, Sumil Praful0x 79tenor
Needhammer, Craig James0x 7Atenor
Pritt, Marshall E0x 7Btenor
Sannino, James0x 7Ctenor
Shin, Young J0x 7Dtenor
Wang, Jiawei0x 7Etenor
Wang, Shichao0x 7Ftenor
Zou, En Hui0x 80tenor
Brink, Evan W0x 10alto
Dorward, Brian0x 11alto
Ginsberg, Reed E0x 12alto
Ji, Cheng0x 13alto
Kaushik, Anirudh Venkatesh0x 14alto
Lee, Giyun0x 15alto
Lee, Seungha0x 16alto
Luong, Kim Nguyen0x 17alto
Marcus, Alexandra J0x 18alto
Oquendo, Yousi A0x 19alto
Puranik, Shreyas Shriram0x 1Aalto
Shoer, Maxwell C0x 1Balto
Smith, Joana M0x 1Calto
Subramanyam, Anirudh L0x 1Dalto
Vankadari, Vishwanth Kumar0x 1Ealto
Verheye, Achille0x 1Falto
Yang, Ni0x 20alto
Zhu, Haomin0x 21alto
Abramowitz, Rebecca E0x 49mezzo
Bui, Kevin0x 4Amezzo
Drewery, James Lewis0x 4Bmezzo
Fine, Jake0x 4Cmezzo
Gottlieb, Eli J0x 4Dmezzo
Kearns, Alexander William0x 4Emezzo
Lin, Julia L0x 4Fmezzo
Liu, Hantian0x 50mezzo
Mendivil, Matthew S0x 51mezzo
Owusu, Anthony M0x 52mezzo
Ravishankar, Nupura0x 53mezzo
Soe, Jessica0x 54mezzo
Wang, Dufeng0x 56mezzo
Welde, John L0x 57mezzo
Yee, Catherine F0x 58mezzo
Yuan, Liangzhe0x 59mezzo
Zhang, Mutian0x 5Amezzo
Zhou, Zhou0x 5Bmezzo
Caporale, Juan Diego0x 5Dsoprano
Frank, Andrea E0x 5Esoprano
Gu, Tongda0x 5Fsoprano
Killoran, John J0x 60soprano
Liu, Lin0x 61soprano
Michalowski, Stephen P0x 62soprano
Panyi, David0x 63soprano
Robberts, Juhanna T0x 64soprano
Stockburger, Daniel P0x 65soprano
Weinstein, Evan R0x 66soprano
Wenger, Garrett John0x 67soprano
Wiig Nordby, Gaute0x 68soprano
Xu, Yifan0x 69soprano
Yie, Hai Min0x 6Asoprano
Yu, Jinglei0x 6Bsoprano
Zawacki, Christopher C0x 6Csoprano
Zhang, Chi0x 6Dsoprano
Zheng, Siyu0x 6Esoprano