Artemis Synthesizer Kit

The Artemis Synthesizer was created as a kit for Boston University’s Artemis Project. This project aims to teach female rising high school freshmen about computer science with hands-on activities. [Chris] based the kit on a ATMEGA328P microcontroller and a MCP4921 digital to analog converter. It can be used in a keyboard mode, where the buttons toggle various notes of the scale, or in a sequencer mode, where the buttons are used to toggle pre-programmed sequences.

[Chris] wanted the kit to be usable by the students after the workshop, so he used an optical link dubbed the “Optoloader” to program new sequences and waveforms into the device. A web based application allows for waveforms and sequences to be built in the browser, then programmed by holding a phototransistor up to a blinking square. The square flashes black and white corresponding to a Biphase Mark Code encoded message. This is decoded by the microcontroller on the synthesizer and stored in memory. As a result, no special hardware is needed to play new waveforms and sequences.

[Chris] has a thorough write up for the project, including feedback surveys from the students. He plans to add more specific information about the Optoloader in the future.

Check out a video of the kit in action after the break.

14 thoughts on “Artemis Synthesizer Kit

  1. Very impressive project!
    I wonder how well the transfer speed could be scaled up. Limiting factor would probably be the monitor refresh rate. A native application that can wait for VSync could probably be a bit faster, but even then the max transfer rate would still be a few bytes per second.

    1. considering it has been around in a watch for quite sometime its apparently not feasible for large amounts of data even in a refined state but still seems a lot more convenient to me i wish more things upgraded/expanded like this… perhaps people have seizures from tech like this

    2. So it does not scale super well with javascript. You introduce a lot of clock jitter, to the point where differentiating your transitions becomes very very difficult. However, you could go rather fast over a direct optical link, or possibly even if you had control of the display directly.

      One major application I can think of is iPhone/Android to embedded device programming/transmission. I believe the Electric Imp uses some similar technology.

      1. For the amount of data transferred here, the javascript code is probably fast enough already. Limiting factor will stay the monitor refresh rate, which is really low.

        An Android/iPhone already has a camera, which would make other methods much more feasible.

        But for sending a little data to a mcu, it is a very good idea. It just won’t scale up well because of the monitor.

        It used to be so that a few generations back almost all laptops came with an IR port, so at least there we could reach modem-era speeds.
        But if i have to get one for my pc, i might as well just plug in the uart or usb or jtag or whatever.

    1. thinking about it further, it’s useless, the monitor refresh rate is just too low. Even 8 channels with 4 levels will still not get you even 100 bytes / sec. Better to go with sound then as the rate is much much higher.

      1. That was my thought as well. From an old MIDI dog, the “wav file thru mini or micro audio jack should do the jerb quite well, although I do like his blinky screen method too. Like others have pointed out, it can be a little unstable. Overall nice job on the build and hope this gets more ladies into science.

      2. @Bill I also thought about that. My boss was really keen on the lights and I recently implemented Biphase Mark Code for a Fiber Optic Link for a CMS test rig, so I took that knowledge and tried to apply it in this cool way. I want to do more work with it, but I have been swamped.

        I have a programmable guitar pedal I want to make that I really want to use an audio jack to program it… Or interconnect pre-written blocks in cool ways, or something.

      3. @cj Good deal. It does give it a neato factor as well as the boss thing ;)

        With the pedals, I can tell ya to keep with your current config (in a way) and go with a normal looking 1/4″ tip and have a tiny led and in the other end the receiver for an opto-isolated data line to avoid ground hum. Could be a neat overall package-guitar2.0 or some such. Again, I borrow this from midi. I dunno you may have some bluetooth dev pedal thingies- I’m just typethinking out loud :) Best to ya.

  2. A better way than the optical link might be to use the soundcard. Even just with a mic on board, and PC speakers, you should be able to get a few hundred bps, much faster than 60-80Hz refresh rate of a monitor.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.