Tuesday, March 3, 2009

My first SMT build

I saw a PIC Logic Tester kit being offered by JayCar which uses SMDs. I built a TTL/CMOS probe in my previous life as a hardware designer in the 70s but hadn't updated to the new lower power technologies. I need a logic probe so this was a good start.

Kit arrived this afternoon and I nearly died when I saw how small the components really are. But under the magnifying lamp I could read their values or markings and the PCB looked a lot clearer. So I fired up my new soldering iron and commenced work.

Six hours later it's finished. Lots of problems encountered and overcome. The worst was when I squeezed too hard on the tweezers and a capacitor shot out and I have no idea where in the room it landed. I spent 15 minutes looking but couldn't find it, so decided to proceed without it, hoping it wasn't too critical. But then I found it under the board itself. 0603 components are the worst for hand assembly.

I also discovered I probably had the iron too cold initially. I started with 350C but moved it to 375C and joins seemed a lot quicker and 'wetter'.

Now I've realised I don't have a circuit to test it on so my next project will be to use the FreeScale sample chip I got a while ago to build a simple counter or whatever and I can check my new logic probe on that.

I was delighted to run the 'blinktest' demo program on my S40C18 and display a 291Hz square wave from one of the pins on my new oscilloscope.

Relearning and retraining

I walked away from a high-paying contract into the middle of an economic downturn/recession/depression/meltdown/end_of_the_world_as_we_know_it. I keep asking myself is it really better to starve for one's beliefs? I just couldn't take the client's money anymore when I knew I wasn't doing anything useful for the client, I hated what I was doing and I realised that I was even losing skills in areas I wanted to work in (e.g. Perl and web development).

So here we are three months later and not a nibble for any of the jobs I've applied for and most of those jobs don't look all that interesting.

So in the meantime I've started self-educating in a completely different area of IT from how I've earned my living for the past 20 years: embedded microcontrollers.

I've been quite overwhelmed by the amount of learning I will have to undertake to program the SEAForth chip I bought. Obviously there's Forth and Intellasys's version of it,VentureForth. Then there's the SEAForth chip itself which is a Forth machine (in fact there's 40 cores, i.e. 40 Forth machines.) Three of the cores have an ADC and DAC each and so I'll need to know more about digital filtering.

The S40C18 doesn't come with much of a library (so far) and there is no USB, HTTP, Bluetooth or WiFi stack in the current version. So presumably I will have to implement my own if I want to use the chip for any sort of comms app.

My initial idea of implementing a wireless microphone adapter has gone through a lot of ups and downs as various chips and articles in magazines look almost to have done what I want but (so far) there is always one or more of my requirements missing.

My initial optimism that the S40C18 would be able to handle the whole task in a single chip has been dashed when I learned that although the individual cores run at approx. 900MHz, the DAC isn't fast enough to run at these speeds. So my design needs some sort of additional chip if I want to use Bluetooth or WiFi. But USB-WiFi adapters are less than $10 so that's not a big issue.

It occurred to me that all the ideas I've had so far for the S40C18 are all variations on the same set of functions. In addition to a wireless microphone, I've thought of implementing a software-defined radio, a guitar-effects stompbox and a digital oscilloscope/logic analyser. All of these use basically the same parts: a signal digitiser (ADC), some filters and a USB or HTTP or WiFI output.

Another area of study was prompted by holding the S40C18 eval board in my hand. I could barely see most of the components let alone work out what they are. Surface-mount devices are obviously where it's at these days. So this prompted me to embark on a hasty update to my hardware assembly skills. I emailed a friend who I know has done some SMT work asking for help for what equipment I need to build SMT circuits and he replied with a multi-page article which he ought to publish, it is so useful.

So I bought a DMM/Oscilloscope, a new soldering station with really fine bits for SMT work, a magnifying lamp, some breadboards, solder, hookup wire and some other bits I've forgotten already.

And so the great hardware adventure begins...

Tuesday, January 6, 2009

A WiFi microphone adapter Part 1

I assisted with recording a Christmas Eve carol performance. All the usual guff: set up microphones, set up mixer, connect cables, patch into PA system in building, level check, attach recorder, check record levels, record performance. Then take it all apart at end.

The single most annoying part of this procedure is laying out the cables and duct-taping them to the floor so audience doesn't trip over them. It got me thinking. Why not use radio mikes?

Obviously the quick solution was to replace the six microphones with radio mikes. Did a quick check and realised this would not be cheap. So replacement ruled out.

What about a radio adapter for the mikes? No, still hundreds of dollars per mike.

The other painful part for me at least because of the duplication of effort was the mixer and recording process. Once the performance was over I had to transfer the recording to my MacBook and process all the audio once again. And then I realised how badly mixed the audio was and it was almost unusable. Despite being complimented by one of the audience about how good the PA was, I had really messed up the mix for the recorder. My efforts at re-mixing are here: http://www.stmaryssingers.com/recordings/

If I had been able to plug the mikes into a WiFi adapter and feed the resultant packets straight into a digital audio workstation (DAW), thus recording each mike individually, and then mix the mikes and feed the resultant mix to the PA, I would have then had the luxury of a proper (re-)mix for the website recordings.

The idea of building my own WiFi mike adapter was prompted by the SEAforth 40C18 chip sitting next to my laptop. Why not use it for this? The blurb says the chip is ideal for audio and wireless applications.

My first thought was to program a fully self-contained audio to WiFi adapter. Surely it would be a simple matter to pipe audio to one of the ADCs and program the rest of the cores to send the digital packets out over a WiFi socket to my awaiting MacBook? A closer reading of the specs and blurb reveals that the chip isn't fast enough to synthesise WiFi frequencies directly and the designers expect one to use the chip to control an RF chip of some sort. I also remembered that radio is a PITA, even a moving foot or hand can have sufficient capacitance to throw off the signal. I started investigating prices of radio modules.

My initial thought was to use WiFi but I remembered there are two other protocols in the 2.4GHz band: Bluetooth and Zigbee (formerly Home RF). Zigbee was quickly ruled out because it is aimed at quite low data rates, basically for remote device data transfer and control. I also initially ruled out Bluetooth because the 10 meter range was not enough for a remote microphone. I later realised that I was reading the early Bluetooth spec and the more recent version probably has the same range as WiFi.

The other requirement for a mike adapter is battery operation which means low power consumption. Once again I thought I was home and hosed when I found an article in Elektor December 2008 for a wireless headphone kit. But the power consumption is over 100mA for transmitter module which is used. The modules are otherwise perfect for my requirements. Except for price! They are a couple of hundred dollars each.

So once again, I looked for other possibilities. I found a link to a Sony PSP being used to transmit audio over HTTP but it turned out to be a PSP with a WiFi dongle attached to the USB port.

And then it hit me how silly I had been. Bluetooth and WiFi dongles are less than $10 these days. So all I have to do is output data packets to the USB bus and the dongle can take care of the RF problems.

I was still undecided whether to use Bluetooth or WiFi. Revised Bluetooth has almost the same range as WiFi but BT is intended to run at much lower power levels so BT should be lighter on the batteries. But I found an article in Circuit Cellar Jan 2009 for an audio over Internet adapter. It sends streamed audio packets using UDP protocol over Ethernet. It's almost what I want. Most relevantly it gives full details of how to program the PC side of the system. The author, Valens, turns the audio stream into a VSTi virtual instrument and nearly all DAWs can handle VSTi these days.

So I have the C source for Valens' adapter and the C++ source for a VSTi plugin to handle the adapter. Not sure how much extra circuitry will be needed to handle the audio input. I will use one of my NT5 condenser mikes for audio input but it needs 48V phantom power. I vaguely remember an article in one of the electronics hobbyist mags for an audio mixer so presumably I can find 'phantom power' circuitry somewhere in that. Actually a phantom power XLR audio socket is the last thing I need to worry about. Any random audio input would be OK. And in fact even that isn't needed till the end. I could probably allocate a couple of the cores to generate a 440Hz sine wave and use that till the WiFi section is sorted out.

Note to self: having an internally generated audio signal could be very useful when the adapter is actually being used on a sound stage or whatever. Setting each adapter to a different note could also be useful. Each adapter will need a unique identifier for its data so can use the same ID to set audio note. (C-scale or 12 chromatics perhaps.)

Saturday, January 3, 2009

Techie vs diplomat

Overheard a conversation between a Physics major and an "International Relations" major:

Techie: "I know how to calculate the volume of oil going through a pipeline of a given volume for a given period".

Diplomat: "And I know who to ask when I need to know the volume of oil etc."