Sunday, March 9, 2014

Adventures with DHL

So. It was mid December. I was working on the next version of the prototype brain/digi-board for my groovebox. I had put lots of time and effort trying to figure out the requirements for the PCB. What would I want to plug into it? What tasks would the microcontroller have to handle?

I divided the groovebox into three different modules:

1. Digital "brain" which contains the microcontroller and the MIDI I/O.
2. Audio generation module, which handles the analog part of the audio synthesis.
3. User interface or the "UI".

Each of these modules would be on a separate PCB. The brain module would be connected to the UI and audio generation boards. The UI and audio generation board would not be directly connected to each other.

The advantage of this is that if I decided to modify - say - the user interface, I wouldn't necessarily need to change other parts of the groovebox. I would just need to update the UI circuit board and the two other circuit boards would stay the same. This modular approach saves lots of time and money if I don't have to touch all the boards every time I update one of them.

So, to make the above even remotely possible, I would need to come up with some realistic specifications for the UI and the analog synthesis boards. What kind of signals/data would need to flow between the boards? How much data per second is needed? Are there some signals which need extra protection from interference? Damn, I would actually need to design most of the functionalities of the user interface to figure all this out!

I decided to use couple of I2C and SPI buses between the brain and the UI modules. I also added five extra data lines for possible interrupts. These should enable me to create a proper UI with a small screen, lots of buttons, some rotary encodes and even some potentiometers.

I did a similar plan for the audio generation module, but it proved to be a much more complicated task. Eventually I decided to put "a little bit of everything" into it. This should keep me going for a few weeks before I had figured out a more appropriate set of signals needed to do the job.

So each day - for over a week - I worked into the early hours of the morning before I had the signals figured out. It was one of these evenings I finally got the brain PCB designed. It was 2 AM and I spent last of my brain power making sure there were no bugs. After I felt confident the PCB should work just fine, I ordered the board from Seeedstudio.com and went to sleep.

Then the trouble started. After about 1.5 weeks DHL brought the package into the customs, but for some weird reason they didn't contact me about it. After the package had stayed in the customs for almost 2 weeks (that's 3 weeks of waiting already), Seeedstudio contacted me. They were worried and informed me that that if don't get the delivered package from the customs, they're going to send it back and I have to pay also for that shipping. I grabbed the phone and called DHL right away. A nice lady answered the phone, checked the status of the package and said: "Weird. The package should be ready if you just pay the customs fee. I've no idea why you haven't been contacted yet. Sorry about this." So I got their bank account number and paid the customs fee. I felt really irritated about the fact that I had waited for two weeks for nothing.

Next day the DHL delivery guy called me. He was lost and couldn't find my address. I described what's in front of my house and asked if he could see any of the land marks. He did. I explained him in detail how to find the front door (which isn't hidden but right along the main street). I don't know if there had been a wild pot party at the DHL office right before the delivery or what was going on, but it took him almost 10 good minutes before the guy figured out which was the right door. At this point I was cursing the DHL into the deepest pits of engineering hell…

Finally the guy arrived at my door and delivered the new PCBs. I felt really irritated and was cursing to myself that the only thing missing was that the god damn PCBs wouldn't even work. I went to my small electronics lab and checked the PCBs. I was delighted to see that they were of good quality. Check the image on the right to see what the PCB looked like.

Finally! Here's the long awaited PCB. I cleaned the board with alcohol and turned on the soldering station. Once the soldering station blinked to indicate it was warm enough for work, I started placing the microcontroller on the PCB. This is when I was greeted with this sight:



Motherfucker! Over three weeks of waiting, fucked up DHL and I had rendered the PCB completely useless by accidentally putting trace protecting solder mask over the 100 microcontroller pins during the design process!

Well… Atleast the nearby pub was open…

Moral of the story is that you should never EVER:
1. Inspect the PCB for bugs 2 AM in the morning.
2. Order the PCB from the factory 2 AM in the morning.

No comments:

Post a Comment