Mostrando entradas con la etiqueta AVR. Mostrar todas las entradas
Mostrando entradas con la etiqueta AVR. Mostrar todas las entradas

lunes, 4 de mayo de 2009

Arduinome phase 4: Making the enclosure (II): front panel update


As I mentioned in my previous post, lately I have not been able to post or work on DIY stuff. However, since we had a long weekend last week and the weather was amazing in Madrid, I spent most of my sunday working on some of my unfinished projects, including my monome enclosure. The picture above shows the current status of my wooden faceplate. My plan is to put 4 potentiometers in the area on the right. The PCBs will also go underneeth that area, hopefully reducing the height of the whole thing (compared with the usual placement underneath the buttonpad).

Still missing the lateral panels, more sawing, more sanding and more varnishing. Now that days are long and the weather is nice, I should be able to finish soon, but who knows... "Salir de Cañas" in Madrid in the summer is too tempting...

domingo, 1 de marzo de 2009

Arduinome phase 4: Making the enclosure (I)


My first choice for my Arduinome enclosure was to go for the MachineCollective faceplates with a custom made box. While waiting for a reply from the MachineCollective people, I decided to start building the case, so I went to my local DIY department store. I bought there a Mitre Box, a saw, some screws, white glue... For the sides of the box, I was going to buy wood lath. Looking at choices of wood lath, I found a 9mm x 9mm square section wood lath, 2.4m long which I thought that could be used for the faceplate, since 9mm is exactly the distance between two buttons. After many hours of sawing, sanding and glueing, the result is the following:


Regarding the faceplate it still requires filling in some gaps with wood putty, some more sanding and varnishing.

For the rest of the box I also plan to use the same wood lath, so that means more sawing, more sanding and more varnishing... It is still going to take some time to have it finished, but I will get there.

domingo, 15 de febrero de 2009

Arduinome/Monome + Polygome + Ableton Live, instructions and video

I am going to explain in this post how to run Arduinome/Monome with Polygome triggering sounds from Ableton Live in a PC with Windows Vista (it should be quite easy to translate these instructions to any other midi sequencer or similar OS). Polygome is IMO one of the coolest apps for monome.

I am assuming you have already installed your monome and now all the basics about it (monomeserial, setting the right prefix, etc...).

First thing you need to do is to install Midi Yoke. At the time of writing this post, there was no Vista version for Midi Yoke, but the XP/NT version happens to work if you disable Windows Vista User account control (Control Panel=>User Accounts=>Disable User account control). You need to disable the user account control both when installing Midi Yoke and when using it. If anyone knows an alternative for Midi Yoke that works with Vista, please let me know.

Once Midi Yoke is installed, open Ableton Live "Midi Sync" configurations (in options=>preferences) and Enable the "track" and "Sync" from "In From Midi Yoke: 1" and from "Out To Midi Yoke: 2". Add your synth of choice to a Midi channel and arm it. Press the Play button (this is necessary to generate the sync clock).

In Polygome:
  1. Select "Out To Midi Yoke 1" as midi output destination
  2. Select in the clock options "beat clock" as clock source.
  3. Disable the internal clock
  4. Set the "Send beat clock to" to "Out To Midi Yoke 1"
  5. Set the "Receive beat clock from" to "In From Midi Yoke 2"

Pressing any Monome button should trigger the predefined patterns and start making sounds.

Here is a video I made using Polygome:



The drum sounds are the same I used for my AVR synth demo here. The synth sound is one of the synths available in Ableton Live. Eveything was configured as explained above. Sorry about the poor video and audio quality (and my lack of skills with Monome, I need to practice more).

More arduinome stuff here

jueves, 12 de febrero de 2009

Arduinome phase 3: programming Arduino

Once the Hardware is completely done, the next step is to program the FTDI chip with the correct device name and the Arduino with the Arduinome firmware.

Programming the FTDI chip

The FTDI chip in arduino is the chip responsible for doing the USB connection between the PC and the microcontroller in the Arduino board. The idea of programming the FTDI chip with a different device name than the default is for the "Arduinome serial" application to recognize the device as an Arduinome. Follow these steps to program the FTDI chip:

  1. Download an install the D2XX drivers and the MProg application (in that order)
  2. Connect your arduino to the PC and run MProg.
  3. Select Device => Scan from the Menu. You should get a message like the following in the box bellow:

    Number Of Blank Devices = 0
    Number Of Programmed Devices = 1

  4. Select from the menu "Tools" => "Read and Parse".
  5. At this point I saved the configuration I did "File" => "save as". This is not really needed, but I did it just in case I happen to screw up later on, to be able to recover the original configuration.
  6. Check the “use fixed serial number” box and change the serial number value. Your board should have a serial with this shape: a40h-xxx (I'm using : a40h-des)
  7. Save the configuration ("File" => "save as")
  8. Once saved, program the FTDI by clicking on the flash icon (or doing "device" => "program").
  9. Unplug / plug back your board from the usb port.
  10. Download and install Arduinome serial.
  11. Run Arduinomeserial, you should see a device with the name you gave your arduinoe in step 6.

Programming the Arduinome Firmware
This step is quite simple if you have a relatively new Arduino board (the NGs with Atmega168, Diecimila, Duemilanove and any other newer boards). The steps to follow to program the arduinome firmware are the following:
  1. Download the latest arduino software (if you have not already).
  2. Follow the instructions from the Arduino website to figure out how to install and use the Arduino.
  3. Download the Arduinome firmware.
  4. Open the pde file in the arduinome firmware with the arduino application, verify and then "upload to the I/O board".
That's it!!! You can now connect your Arduino to the arduinome shield and the button pad, connect arduino to the PC, start Arduinome serial... and enjoy.

My particular case was not so easy... I was using an old arduino board, an NG with Atmega8 instead of Atmega168, which was not compatible with the available firmware. I could have just bought a preprogrammed Atmega168 for a few dollars, but that was too easy and would have taken a few more days to get my monome working, so I had to analyze the problem deeply and try to find a solution. The incompatibilities with the firmware were because the firmware was using TIMSK0, TIMSK1 and TIMSK2 registers to configure the timers and those registers are not available in Atmega8, the Atmega8 uses only the register TIMSK instead. After reading through the datasheets of both the Atmega8 and the Atmega168, I found the solution. Here you can find my modified version of the firmware, supporting both the newer board (with Atmega168) and the older NGs (with the Atmega8).

So I had the arduino ready to be used. I plugged it in and unfortunately my 74164 was connected backwards in the socket (ouch) and nothing was working. The 74164 got damaged and when plugged it correctly, each button press was being detected as if the whole line of buttons were pressed. Replacing the 74164 fixed this issue. LEDs were working correctly at first try, except for some (7) of the LEDs that apparently got burned when soldering them. I had to remove the damaged LEDs and solder new ones.

And that's it, that is how I got my arduinome working!!!
The next step is to do the enclosure for the arduinome, which I still need to figure how, although I already have some ideas.

I will have a video soon (whenever I manage to improve my "monoming" skills).

Check out the whole Arduinome build log here.

martes, 10 de febrero de 2009

Arduinome phase 2: soldering components (and II)

After soldering all the diodes and LEDs, I worked on my personal approach to the Arduinome Shield. Instead of buying the shield in the monome blog I decided to make my own using a stripboard. There are frequent group buys of the arduinome shield in the monome forum and it is not particularly expensive, so if you are not experienced in electronics, I recommend you go for that option.

I use sockets for all the chips, it is safer since the heat of the soldering iron does sometimes burn them. This is how my stripboard looked like:
Once the stripboard had all the components soldered, I soldered wires to connect the stripboard to arduino. This is how the stripboard looks when connected to the Arduino:


The last step was to connect the button pad to the shield. This is probably the step where it is easier to make a mistake and where you can probably benefit more from using the "official" Arduinome shield. This is how it looks like at this step:

Frontside:


Backside:

So I am done with the soldering iron (unless I made a mistake in this whole phase).

I got the schematic for this phase from Julien Bayle's webpage here, but there are other sources.

This phase is over now. The next phase consists on programming the Arduino.

Check out the whole Arduinome build log here.

martes, 3 de febrero de 2009

Arduinome phase 2: soldering components (I)

I started this second phase of my Arduinome build process by soldering the 1N4148 diodes in the SparkFun button pad. The diodes are a two terminal device that normally have a mark in one of the terminals. The mark on the terminal should match the marks in the diode pads in the backside of the SparkFun Buttonpad, as can be seen here:


This is how the 4 boards look with all the diodes mounted:


I soldered the diodes on the botton side of the board, which is not the usual (normally you would solder the component in the oposite side of the board where you placed it). The reason for doing that is to avoid the solder and the small part of the terminal left over damage the silicone.

This is how it looks with all dioses soldered and terminals cut:



The next step was to solder the LEDs. The first thing was to place the LEDs on the top side of the SparkFun Button Pad PCB:



The LEDs do also have two terminals (it is not surprising since they are also diodes). The pad marked in the PCB for the LEDs have a circle with a flat side. The flat side is where the terminal named cathode should be soldered. The cathode is also the shortest terminal of the LED. More info about the LEDs in this wikipedia page.

This is how the boards with the diodes and LEDs soldered looks like:



The next thing I did was to glue the four boards together and to solder wires connecting all the grounds in columns and all the switches and LEDs connections in rows. This is the result:




There are better Arduinome building instructions in bricktable's webpage.

And that is all for now. Still missing from this phase:

- Making the Arduinome Shield (I am brewing my own instead of buying the PCB)
- Making the connections between Arduino and the Arduinome Shield.
- Making the connections between the Button Pad and the shield.

Check out the whole Arduinome build log here.

viernes, 30 de enero de 2009

Arduinome phase 1: getting the parts (and IV)

This is the last section of this phase, I got all the parts for my Arduinome!!!


I went to my local electronic shop in Madrid and got:
64x1N4148
10x10KOhm resistors (I got normal resistors instead of a resistor network, since they did not have resistor networks in stock)
1x74164+socket
1x74165+socket
2xMale connectors for Arduino shields

That was 8 euros total.

I am only missing some other random stuff (connectors, cables, screws and nuts...), but all this should be enough to get me started.

Summarizing, the total cost so far is:

€68.93 - SparkFun Buttons and Button pads (including S&H to california, not spain)
€25 - Arduino board
€9.6 - Green LEDs
€8 - other components

These numbers are based on current exchange ratio.

Check out the whole Arduinome build log here.

domingo, 25 de enero de 2009

Arduinome phase 1: getting the parts (III)

The ultrabright green LEDs for my arduinome arrived last week from Hong Kong:


I bought them through eBay to an eBay store named “Amigo-of-China”. The transaction was perfect; the items were shipped very quickly and arrived in perfect condition. Will definitely buy from him if I need LEDs again, I have now an “Amigo” in Hong Kong!!!.

These are the LEDs:



And this is how it looks like with the SparkFun buttons:

Check out also this video I made with the SparkFun buttons. The keypad shortcuts the LEDs pins switching the LED on and off:



I need to think what to do with the remaining 36 LEDs and the 100 resistors provided. Suggestions are welcome.

On the arduinome project, the parts I am still missing are:
- Diodes
- 74165
- 74164
- Resistor network
- Screws and nuts

Check out the whole Arduinome build log here.

viernes, 26 de diciembre de 2008

Arduinome phase 1: getting the parts (II)

I just got my MAX7219 as a christmas present from Maxim. Remember it is this maxim, not this other one... I know the second one is more interesting and they also use sillicon, although in different ways.

The parts I am missing are:
- LEDs
- Diodes
- 74165
- 74164
- Resistor network
- Screws and nuts

Check out the whole Arduinome build log here.

miércoles, 10 de diciembre de 2008

Arduinome phase 1: getting the parts (I)

While in my US exile, I got today a parcel coming from Colorado. Here is the box:


Any guess of what could be inside?

well, it contains the first step for building an Arduinome, a monome based on the Arduino hardware.

Check it out:


If you recall my previous post about the arduinome, you might remember what I said, quote:

"I am not planning to buy the sparkfun buttonpads so the first step will be to find some cool buttons."

Well, I thought it was going to be easier to find some cool buttons to use or that I could make my own, but after a lot of research and considering that I was going to travel to the US before the end of the year, I decided to go for the real stuff and bought the sparkfun buttons. Doing business with Sparkfun is painless and their service and products are great. It is the third time I buy stuff from them and would probably continue doing so.

My other option for monome buttons was seeedstudio. I was considering these ones, but they are not that cheap after all and definitely not as cool as the sparkfun buttons. I might still be getting parts from seeedstudio, they got decent prices.

I have to decide now the color of the LEDs... white, red, green... hmmm.... so many options...

Check out the whole Arduinome build log here.

domingo, 2 de noviembre de 2008

Arduinome

Long time no see... I know... too much work, too little time... sorry about that.

I have been craving for a Monome since I first saw them a while ago and now I see an oportunity. I bought an Arduino sometime ago, but have not really used it much... now I know what to do with it, I am going to build an Arduinome, an arduino based monome. I am not planning to buy the sparkfun buttonpads so the first step will be to find some cool buttons.

Check out the whole Arduinome build log here.

domingo, 13 de enero de 2008

AVR Synth update

I have just uploaded a sample of how the AVR synth sounds like here:


The Drum sound comes from a PC sequencer, which is also generating the arpeggio that repeats again and again (and again and again and again...) while I change the AVR Synth settings. Not very musical sample, but a good way to show what the AVR Synth can do.

sábado, 12 de enero de 2008

New case for my AVR Synth

I had some trouble painting my Big Muff Pi clones so, while waiting for the paint to dry, I decided to finish recasing my AVR synth. Since I bought the PCB from Elby Designs, it had been living in many different temporal cases (all of them made of cardboard), so it was about time to get it a new stable home. Enough writting, check out the pictures (click the images for a bigger view):


A closer look:


And now the guts:


For those of you who have not heard about the AVR Synth before, it is a monophonic virtual analog MIDI synth based on an AVR Atmega16 Microprocessor, check the link above for more info. I did not put any labels on knobs or switches, because I plan to use the AVR Synth as an open platform in which to test my AVR assembler programming skills.

Check this post for a sound sample.