You are browsing the archive for arduino.

Recent progress

September 6, 2010 in General, arduino, electronics, synthesizers by glacial23

Some projects I’ve been working on of late:

  • Made some progress on the MIDIbox SID – I did some more work on getting the enclosure(an old 2U satellite receiver) ready and figured out the next batch of parts necessary to get it completed.
  • Did a serious revamp on the Arduino Sequencer last night – it now has a power switch, start/stop switch, and two indicator LEDs (built into the start/stop switch). I also attacked the code pretty extensively to account for these new features. It still needs some tweaks, but once they’re done I’ll post the code here.
  • More-or-less finished the Arduinome I’ve been poking at since January (longer if you include parts accumulation- I got the unsped shield & MAX7219 over a year ago). It still needs a little mechanical work- it as yet has no base, and no hole for the USB cable, but it’s pretty much together and usable.

Still plenty of other backlog to clear, and reissues to reissue.

I leave you with a video of the Arduinome in action:

RPM Challenge – my personal 2010 rules.

January 30, 2010 in General, arduino by glacial23

As I’ve sort of mentioned before, I’m taking a ’sabbatical’ from most of my DIY activity next month in order to record an album for the RPM Challenge(my third). It won’t be completely ‘cold turkey’, so don’t worry about me – I will allow myself a little hack time at the project nights popping up with the Cleveland Hackerspace community that’s starting to come to fruition. But no PCB soldering – that’s right out…

Rules for the album that I will be recording:
1) Basically all DIY gear. That means built, repaired, or modified by me. Since I’ve fixed my DR-110 and my MG-1, they’re fair game. The DR202, which has had nothing done to it, isn’t, so I can’t use it.
1a) Non-DIY microphones are allowed this time. Signal Intercept only used a DIY’d contact microphone for bizarre reverb purposes, but I’m going to allow real mics this time, if for no other reason than to use my newly finished PAiA Tube Mic Pres…
1b) I will allow myself the use of one MIDI controller keyboard – the Alpha Juno-1, and only used for MIDI notes – not as a synth.
1c) computer-based patch editing on the MIDIBox SID is allowed, since I don’t have a control surface for that done yet.
1d) computer-based recording is allowed, if for no other reason than digging up blank tapes for the four track is a pain. I’ve also built my own USB interface, so that’s a good reason too. No plugins though. Just use the computer as a straight-ahead multitrack recorder.
2) Since I have a DIY sampler now (the WTPA), in theory I could just sample a non-DIY instrument and call it a day. I think that for non-DIY instruments or samples from somewhere random, that the sample shall have to be captured into the sampler using a microphone, just to add some complexity. Sampling the modular or a DIY instrument can be done direct.

Any other rules I should impose upon myself?

And finally, in other news, the Arduino module I’ve been prototyping for a few weeks is now somewhat operational – in a “still on the breadboard, getting power from the laptop” kind of way – but operational enough to use it next month.

Arduino Trigger-to-MIDI converter

December 17, 2009 in Software, arduino, electronics, synthesizers by glacial23

OK, the trigger-to-MIDI clock converter seems relatively happy (though I think the MIDI in on my AN200 isn’t? That’s going to require some more tests…).

I hacked on it a bit tonight trying to determine how drifty the generated MIDI clock was relative to the incoming trigger pulses from the DR-110.  At first it was pretty ugly. I then added some compensation to the clocking to account for all of the work the Arduino is doing. After some trial-and-error, it’s relatively tight – total drift by my rough calculations was something like 10 milliseconds over a five minute period. Compare that to an earlier drift of 120 ms in a minute…

Here’s the code: trigger2midisync.pde

Hardware-wise, there’s a trigger input on pin 2 (use a zener if you’re worried about blowing stuff up…), and the MIDI out is the standard (TX, GND, and 5V through a 220 ohm resistor going to the pins of the MIDI port).

You may want to configure some of the #define statements in the code. STOP_TIMEOUT is the amount of time that needed without triggers needed for the converter to decide to stop. I’m using 2 seconds.  Changing DIVIDE_SLICE would be important if your trigger source is something other than 4ppqn, and CODE_OVERHEAD_TIME is used to adjust drift in your deployment – 10 worked really well for me in my tests tonight, but it could be anything for others.

Once it’s hooked up and connected to your MIDI source and your trigger source, start sending a series of pulses to pin 2. On the first pulse, MIDI Clock start should get sent, and by the third pulse or so the sync will be “synced” – there will be an offset, but it should remain fairly constant. Now, once the pulses stop, clock will continue to be sent until STOP_TIMEOUT milliseconds have passed.

Next test will be syncing the DR-110 to the very-nearly-finished x0xb0x to see how well that keeps up – I did all my tests tonight with a Yamaha RY10, with both it and the DR110 just playing a “four on the floor” kick pattern.

Questions? Comments? Improvements?

Building building building…

December 14, 2009 in General, arduino, electronics, synthesizers by glacial23

Been a while since there was an update, so let’s see what’s on the bench of late:

  • x0xb0x – Yeah, I took the plunge and self-sourced a kit (not that hard since there’s a guy on the forums selling the rare parts kit for a reasonably fair price). It’s soldered up and mostly working, except for an extremely weird intermittent problem I haven’t completely solved yet. It’s unclear what the actual problem is, but I think I have a pretty good workaround ready to go.  I also had issues with the USB chip early on, and then pulled since it was highly suspect when I first started having trouble. Now I’ll have to try to re-solder it again…
  • Haible varislope filter/phaser – Pretty much done! I think I need to reverse some of the pots and adjust some things, but it’s working reasonably well.
  • A trigger-to-MIDI Sync converter – Decided to do this with an Arduino so that I could at least clumsily sync my DR-110 to other stuff (x0xb0x, AN200, etc.). Code will be posted soon, once I add in start/stop functionality and test it a bit more thoroughly.
  • MIDIBox SID – I’ve got the CORE, SID, LCD, and a pair of Banksticks up and running.  Worked great under computer/MIDI control, though I think a noise gate will be necessary for the bad 6581 VCA. Waiting for DINx4 and DOUTx4 boards, and then I’ll have to figure out the control surface – it will be more complicated than the basic one, but less complicated than the “full control surface”.

Whenever the PCBs  show up, I also plan on building a pair of XR2206 VCO modules, as well as a few other modules on the horizon. Gotta start thinking about a new rack as well. I’ve got the first pair of Vector rails, but lining it all up is going to be careful work.

Also coming soon: A pair of PAiA Tube Mic preamps- the phantom on my mixer died (just as I got some condenser mics! curses!), so these are going to replace that functionality. I’m going to hotrod them a bit with better parts and some ECC83 tubes to replace the 12AX7s it ships with. Ordered some pedal PCBs as well – a Big Muff Pi clone, and a Rebote 2.5 delay.

I think I’m also going to have to move the electronics area to a bigger room with bigger tables, but that’s probably at least a  month or two out.

post-weekend project update

March 10, 2009 in arduino, electronics, synthesizers by glacial23

Well, since issuing my March Manifesto, I think I’ve managed to break both rules so far. Excellent! Bear in mind, the parts were semi-unobtanium for cheap (CD4006’s and a 74C922  – fifty cents apiece!), and the new project is something that isn’t going to happen any time soon (an Arduinome – I ordered the shield PCB, and I have a MAX7219. That’s going to be the extent of its progress for quite a while. Must. Clear. Module. Backlog. First.)

I did make some progress on the USB audio interface, but at the moment, it’s only usable as an incredibly expensive  USB-powered LED. Not Good. I’ve painstakingly continuity-tested all the traces on the PCB to pins on the PCM2902, and those all check out, but there may be a bridge or something along those lines, or I fried the chip.  But so far, it’s getting power from USB, the LDO voltage regulator is working, and maybe the IC is doing something? I’m seeing Vccci/2 on the Vcom pin, but the board isn’t getting recognized by either of the computers I’ve attached it to. Frustrating.

In a worst-case scenario, I do have another PCB (cost me just as much to get two as it would have one), and another PCM2902 (yay pairs of samples!). So I can either build a second one, try  the other chip in this one, or some strange combination.

In preparation for whatever I decide to do, I was looking around the Curious Inventor site at some of the surface-mount soldering tutorials, when I found this. I then ended up running out to my local fabric store and finding a slightly different model (a Darice Craft Heat Tool, which is from an Ohio-based company, and the unit is made in Taiwan, in case anyone is looking and wants to know such things.) I haven’t tried using it to solder anything yet, but I did desolder some surface mount parts from a scrap PCB, and it worked really nicely.

I also attempted to get some aluminum panels for various projects, but failed – the posted hours for my local Metal Supermarket didn’t match reality. I will be going back on Friday.

And lastly, I came up with some more ideas I’m not implementing any time soon – a smallish “Analog Computer” module (say 4 op-amp’s worth, think this but way simpler), and a rather crazy Lunetta panel (not sure if I’ll fully do it the way I envisioned – maybe if I can find an ALU chip (74181 or the like) for cheap…)

The effects processor I’m not building this month.

March 6, 2009 in arduino, electronics by glacial23

In my last post, I mentioned that I had a good idea shortly after declaring “no new projects for a little while.”

Doesn’t mean I can’t talk about it. And hey, maybe one of you readers will take up the torch and design the schematic, PCB and/or firmware for me, so that when I clear my project backlog, it’s ready to go!

I’ve gotten really interested in the Spin Semiconductor FV-1 effects processor IC. It’s got built-in ADCs and DACs (so it’s a one-chip solution unlike some others), and if I’m reading the information on the web correctly, they almost seem to be encouraging the equivalent of a ‘clock bend’. I’m sort of curious as to how slowly it can be clocked – their examples don’t go below 20 kHz, but I wonder how lo-fi one could get it. I should ask on the messageboard…

Here’s kind of the feature set I was imagining:

  • Switchable clock rate, between a fixed clock (at the suggested 32768 kHz or maybe better if you’re some kind of audiophile type), and the variable schmitt trigger clock outlined on the website, possibly tweaked to go lower if that’s technically feasible. Hot-switching between modes need not be required- I’d be cool with having to power-cycle it when changing clock mode from fixed to variable.
  • The FV-1 on its own supports the use of a Serial EEPROM for additional effects programs. Change this to some kind of bank-switching multiplexing arrangement to allow multiple Serial EEPROMs to be used.
  • Front panel/microcontroller. Use something like an ATMega168 (preferably with Arduino-type bootloader so upgrades to the firmware are easy, and include the headers for an FTDI programming cable!)  to control a 2×20 character LCD panel, and set the bank/program numbers. If you need more inputs, outputs or memory, feel free to use something bigger (ATMega644p in a Sanguino arrangement, etc.) Don’t worry about program names for the external banks. “BANK 3, PROGRAM 4″ is fine. Feel free to use whatever menu navigating mechanism you want (buttons, pots, etc.)
  • Additional features would be up to you. If you can add a simple mechanism for uploading new effects programs to the Serial EEPROMs (especially from Mac OS X), that would win, but I’ll live with the possibility of using a separate EEPROM writer and removing/inserting the ICs.

A starting point for looking into might be this one, but I think I want mine in a 1U rack form factor – I’ve got too many desktop doodads already, and it’s time to get vertical. This post also has some tantalizing ideas (Arduino as EEPROM writer! Write your DSP code  in Java!) but they’re not released yet.

So, there’s my idea.

More hack potential than previously thought…

February 13, 2009 in arduino, electronics, future projects by glacial23

A couple of weeks ago, I picked up one of these on a whim – it’s got an LCD display, a little keyboard, a card reader, and other crazy things – why not? I wasn’t terribly interested in having to deal with 8051/8031 series programming, however.

A couple of Google searches later, I’m happy to discover that none other than the Atmel ATMega32 (as well as a bunch of other Atmel microcontrollers) is more-or-less pin-compatible with the 8051.

And hey, various and sundry Atmel microcontrollers like the ATMega32 have some compatibility with the Arduino environment I’m familiar with.

Now, obviously, this is all still a bit of a thought experiment at this point – I would need to get an ATMega32 (I’ve had AVRSyn on my to-do list for a while now, so I was going to get one eventually) and some sort of programmer to go further, but it seems like this crazy plan will work with some hacking involved (i.e. the clock crystal would likely have to be replaced too – I’ll have to look at the schematics).

Time for a mixdown

December 20, 2008 in New Stuff, arduino, electronics, synthesizers by glacial23

ready for mixdown

I’ve got things more or less ready for mixdown on this thing I’ve been poking at for the last few months. Here’s a little excerpt of a track: teaser1.mp3

What’s all that you say? Well, going from left-to-right on the 4-track: track 1 is  shortwave radio, track 2 is my cigarbox Lunetta, track 3 is Sound Lab, and track 4 is percussion (ADV-Bass for bass drum, Realistic MG-1 for snare, and the  Sound Lab is doing the hi-hats. BD & snare triggered by Arduino Sequencer, and Sound Lab triggered by its own S&H and not really synced)

Not bad for a pile of gear I either built or repaired myself, eh?

Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. Download the latest version here. You also need to have JavaScript enabled in your browser.

The Lowest-Fi Digital Delay

December 20, 2008 in Software, arduino by glacial23

A little while ago, I built my own Lo-fi Arduino Guitar Pedal. I’m even using a similar enclosure – work tossed out a couple of thinwire->twisted pair converters that I snapped up. I think the only major deviation is that mine only has one output at present- I could add a second later, though.

I got to thinking last week that a digital delay would be an interesting idea – I had no notion that this would compete with anything in the quality department- a very short, crunchy delay – I just wanted to try it out.

So I wrote a little program and originally used an array of 512 values, and cycled through them, while recording point i, and playing point (i+1) (with edge checks and things like that, of course)

It turned out that 512 shorts of storage must have overflowed available program memory and caused general non-functionality. Changed the delay to 256 shorts. That at least got me up and running.

And it gave me about a second of delay time – kind of unexpected (that makes the sample rate, what, a few hundred Hertz?). It also doesn’t give a very accurate representation of the input. A test went something like this: snare (pause) krrrzzk.

audio: ArduinoDDL1.mp3

Once I commented out the #define DEBUG 1 line, it seems a lot happier ;-) There isn’t very much delay time, and it still gets really weird on occasion, but it does kind of do something to the input.

Here’s an example of it, with adjustments to the amount of delay and effect mix: ArduinoDDL2.mp3 – note that it gets loud and obnoxious in places.

Maybe better than the crappy plate reverb of a few weeks ago? Really, hotrodding my Realistic would be the best way to go for the all-DIY album. Probably not enough time for that, though – I’d really like to get it done soon.

If you’ve built a Lo-fi Arduino Guitar Pedal, get the code here: ArduinoDDL.zip. Knob A controls the delay time, and Knob B, when set to zero, should flush the audio buffer and blink the blue light while it’s doing it. Or it’ll just do weird stuff. YMMV – mine certainly does.

Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. Download the latest version here. You also need to have JavaScript enabled in your browser.

Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. Download the latest version here. You also need to have JavaScript enabled in your browser.

a cold wave demo on a cold day

November 21, 2008 in General, New Stuff, arduino, electronics, future projects, synthesizers by glacial23

Here’s a little something from the whatever it is that I’m working on: thingdemo.mp3

Bass Drum: ADV-Bass

Bassline: Sound Lab Minisynth

(both controlled by the Arduino Sequencer in Drum Mode)

FM-y noises: Arduino Pocket Piano

The mix really isn’t properly done. I just wanted to get something out there. Have fun!

Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. Download the latest version here. You also need to have JavaScript enabled in your browser.