16 Channel 12-bit Floating Fine Adjustment DAC

16 Channel 12-bit Floating Fine Adjustment DAC

November 2011-December 2011

Partners: Jeffrey Kittredge, Gaukhar Tergemessova, Mark Horenstein, Kritpasitpong Benjathatchaporn

Artemis Synthesizer v2: Digital Audio Synthesizer Kit

August 2012 - August 2013

The Artemis Synthesizer is a digital audio synthesizer kit developed in my spare time with help from the BU Electronic Design Facility. The kits purpose was to help teach a group of female high school freshmen in the Artemis summer program how to solder. Assembly was designed to take between 2 and 4 hours for a beginner, but should take closer to 30 minutes for someone with prior experience.

The synthesizer utilizes an ATMega328 and a 12-bit DAC to produce the audio, in its default mode you can play 4 different 8 note scales. There is also a sequencer mode and an ability to change the waveform. To load sequences and new waveforms the optoloader interface is used, which uses javascript to blink a black square on a computer screen and a phototransistor to receive this message, which is then decoded on the microcontroller.

Partners: Eric Hazen, Sam Damask

TTT: TTC TTS Tester for CMS & G minus 2

March 2012-July 2013

The TTT is a piece of test equipment design for CMS through the BU Electronic Design Facility (EDF). Its main function is to generate L1A (Level-1 Accept) trigger events and stream them to another piece of equipment and listen to that piece of equipment to see if its buffer is full.

The TTT runs a Xilinx Spartan-6 FPGA, with an Ethernet MAC I wrote, and communicates with a PC using a protocol called IPBus. This allows for configurations to be set, such as, running off of an external clock. The board to board communications are done over a fiber optic interface and the Spartan-6 chip decodes an 80MHz BiPhase Mark Coded datastream which multiplexes two datastreams together.

Eric Hazen wrote the VHDL for the internal trigger simulator and Charlie Hill wrote the initial software for interfacing with the TTT over IPBus from a computer.

Partners: Eric Hazen, Charlie Hill

Monophonic Analog Synthesizer with AR Enveloping

April 2013 - May 2013

This Monophonic Analog Synthesizer was designed by Christopher Woodall and Benjamin Havey. The synthesizer uses a homemade linearly actuated potentiometer as its input, a long with a button for articulation. The potentiometer voltage is fed through a linear to exponential converter and then a voltage controlled oscillator. The output of the VCO is then put through a analog multiplier designed using an opamp and discrete transistors which envelopes the square and triangle wave VCO outputs with a attack release (AR) envelope. The enveloped output is then filtered, amplified and pumped through speakers. Each piece of the synthesizer was simulated in LTSpice and then built on a breadboard.


Object Detecting Laser Turret

April 2013 - May 2013

The Laser Turret uses a webcam to track objects and then shoots a laser in the direction of the tracked object. The goal of is to process the images taken by the webcam and, using the results that comes from processing the images, control the servo motors appropriately to direct the beam of laser at the object. In the time given, we were able to accomplish the goals that we set for ourselves. Using only the gumstix board, we were able to successfully interface with the webcam and process the images taken. We were also able to provide the proper pulse width modulations to the servo motors to correctly aim the laser at the target that the webcam processed.

Partners: Jenny Hoac, Jonah Lou

Firestarter v1: Hybrid Rocket Pressure Monitor & Igniter

Firestarter v1: Hybrid Rocket Pressure Monitor & Igniter

October 2012 - March 2013

Firestarter v1 was designed to open a pyro valve, preheat the fuel grain, and monitor the combustion chamber and N2O tank pressures for the BU Rocket Propulsion Group’s MkIII hybrid rocket engine. The pressure readings are all from full bridge pressure transducers which go through an instrumentation amplifier, 4th order Butterwirth filter and into an ADC. The board communicates to the world through and RS-422 connection and runs on STM32 Cortex-M3 microcontroller. More explicit information is not available due to various restrictions.

A new revision of the board is being worked on by Thomas Nadovich and Dean DiCarli for the MkIV rocket engine.

NES Controller Controlled LED Cube

NES Controller Controlled LED Cube

May 2012

Partners: Kyle Brogle

NOMIS: Simon Memory Game Clone

January 2011

Nomis is a Simon-like memory game for the ATTiny85, which uses the ATTiny85. The game logic in the ATTiny85 was implemented using AVR C and takes up 983 bytes in program memory and 6 bytes in data memory. The implementation size comes in under 1kB, but could most certainly be smaller. The pin usage, however, is very conservative and the games electronics take up a total of 4 of the 6 available pins. The 4 LEDs are controlled on 3 pins using Charlieplexing model (which could easily be extended to 6 LEDs). On the other hand the 4 pushbutton switches are feed into an ADC input through an R2R ladder configuration. I am very happy with the limited pin usage of this project.

Twelve Ounce: A Low-Cost Robot for Experimentation

Februrary 2012

builds.cc v2

August 2013

Simplified X86 Assembler and Emulator

December 2013

While at BU I had an assignment for a class called EC327 which used a 16-bit RISC processor that the professors called “simplified x86”, also referred to as sx86. This was a very basic assembler, and the tool at the time was written in java, but had some issues with copying code in and out of the program requiring that you hand copy the code. To make my debugging easier I implemented an emulator in Javascript (it should be a valid node.js program), and then a front end to view the data. I had also written a python script to assemble and dissassemble these instructions and later integrated a TA for the classes code with mine to create a CGI based set of calls to assemble and dissassemble the code. I learned a whole lot more from this project than I would have otherwise, just converting some machine code by hand and chugging along. This website was used by EC327 for one or two years after the fact (and may still be today, I have no idea).


C4: Connect 4 Android Game

C4: Connect 4 Android Game

November 2011-December 2011

Have you ever wanted to Connect Four red or blue disks on a yellow background? Now is your chance! This implementation of the fun and traditional game utilizes the Android NDK, a C++ backend and the native Java SDK.

Play single player, against a silly AI, or against a Friend in an epic duel of the whits.

Partners: Michael Gurr, Phuong Diep, Robbie Hu