Saturday 21 November 2015

Opinion: Version Control System

When I started my career, most of my works involve usage of various version control systems from CVS,SVN, Git. (And I work on Windows platform most of the time and this is the platform that will be discussed here). I am amused of seeing engineers doing lots of command line to do version control operations. Now, if you are thrown to a different version control, it will take some learning curve to know the commands, etc. But what I feel is that the wisest thing to do is to learn Tortoise-(cvs,svn, or git). Why? because the interface is the same, the learning curve will be lower. In my experience with Tortoise*, all of the basics operations are covered (pulling, pushing to repo, commit, etc).

I was introduced first to SVN, and it was my eye opener into the world of version control. My boss suggested to use TortoiseSVN and after some few tutorials, I was able to grasp the concepts.  Then, I came to another company which uses CVS. My boss gave me a GUI tool for CVS and I struggled. After searching from the internet, I found out that there is TortoiseCVS! Since I have experience with TortoiseSVN, using and learning the TortoiseCVS is a piece of cake. :)

Now I went to another company. They are using Git and I used TortoiseGit. There was a learning curve due to distributed nature of Git, but after some few days, I was able to grasp the concept and efficiently use TortoiseGit. (I can even use my favorite WinMerge to do comparison/code review when viewing logs or before commiting to the local repo)

Tortoise* is a very good platform to unify the look and feel of a version control system. It gives all the basic needs to perform the necessary version control operation for our projects. Although I admire those people who can do version control operations via command line, for sure they can do lots of advanced things but I would personally stick to the important operations offered by Tortoise* in which I can do the things that are important to me: retain the linear history of my commits (no matter if the branching and linearity of the history is ugly or not) and to safely keep my/ or team's source codes.

Thank you to the Tortoise* team. Thanks for providing us this outstanding software tool.

Saturday 14 November 2015

Transparent Boost Pedal

Few years back, I struggled getting a good tone. Whenever I plugged in my guitar's multi-effects (Zoom G2.1NU with Stack Amp/Cab simulation always turned on) into the front of a tube amplifer, I get bad tone most of the time (sometimes very sharp, sometimes I can't cut to the mix). Truthfully, whenever we rent a studio, we have very limited time and we would like to maximize the time by playing with our band rather than setting up/tweaking. To avoid the tube's preamp coloration, I tried to plug my multi-effects into an FX return of a tube amplifier. It sounded very good but it produced a very low volume. With this, I decided to create my own booster with the following criteria:
  • Powered by 9VDC
  • Fixed Gain (20dB)
  • Should be as transparent as possible and no tone shaping (therefore, no tone control)
  • Simple, only one knob
  • Use a good audio op-amp (OPA2134)
With the following criteria, I did the following circuit in LTSpice.


And here is the actual circuit.

 

As you can see from the picture, I reused the silent rehearsal PCB I did on my previous entry on this blog. I can design another PCB, but since I would like to cut some cost, this PCB will do for a prototype. Plus, I also did the 3D printed mini-stand for this (look for the green line at the bottom) :)

This is not really a pedal because this is an always on circuit, and it is ok because this booster was designed to be very transparent and straight to FX return of an amplifier's effects loop and will always be turned on all the time. This is very ideal for someone like me who heavily uses cab/amp simulations.

Saturday 7 November 2015

SilentJam - A Silent Rehearsal Gadget

At first, I was looking for a cheap silent rehearsal gadget device (anything that is equivalent to Jamhub) that can accommodate up to 6 channels (input and output) and I don't need it to be too fancy, I just need it to be simple, no colouration and which can be easily operated even without needing a user's manual . And after reading my electronics books I used previously in my college engineering times, I decided to create my own.

Phase 1 (Planning)
Before I started with the project, I planned and simulated everything first. As I am very aware of project management, I would like to know all the risks, benefits and asses the budget and timeline of the project. Also, I would like to be able to finish the project as efficiently as possible.

The first version of simulation I designed is a mixer circuit with one op-amp to mix multiple inputs and there will be one op-amp per headphone output. Then I realized that it will be costly to have one op-amp per headphone output and I would like to make my PCB size as small as possible. With this, I redesigned my circuit in such a way that I will be able to drive my circuit with just an 8-DIP dual op-amp package.
Earlier version of the simulation

Phase 2 (Experimental design on a Prototype PCB Board)
After designing the circuit, I quickly gathered the majority of the parts from Element14 (with the exception of the potentiometers, 3.5mm audio jack, 6.35mm jack which I ordered from DX.com - although Element14 have those items, it will be cheaper if I will get it from DX.com). I have two op-amps under evaluation, TL072 and OPA2134. This is the result:


I tried it with my W758 roll-up drum kit and my guitar. And it works, but one problem, there's a NOISE!!! From my experience on PCB design, this is attributed by the grounding especially in audio. I decided to design my own PCB to eliminate the noise and grounding problem.

Phase 3 (Schematic design)
After the simulation and experiment, I did the schematic design which will be later translated to the PCB. Along the way, I made some changed which are a little bit different from the simulation at Phase 1 (like enhancements by adding filter caps, LEDs, etc).

Phase 4 (PCB design)
After the schematic, I designed my own PCB and sent it to fabrication. And this is the most time-consuming and most expensive part - both in time and budget - of the process:
  1. I need to design the schematic on PC
  2. Out of the schematic, I need to design the PCB from scratch out of that
  3. The partitioning of the ground plane on the PCB is very important! I can't just slap in the components to the PCB and hope it will work.
  4. Repeatedly and carefully reviewing the circuit.
  5. Sending the files to the PCB manufacturer outside Singapore, then wait for weeks for the PCB to arrive. (The danger here is that if you are not careful with your design, you will end up having useless PCB boards, and these PCB manufacturers have Minimum Order Quantity of at least 10pcs)

Phase 5 (The PCBs arrived and all parts are completed)
The PCBs arrived and I have all the items on my hand. I assembled them and soldered them. To cut the long story, and this is what I've got.




Phase 6 (Testing in actual world scenario)
I tried this with my band. We had great time jamming and they can not even believe about the total cost I spent to create a single SilentJam (which is around less than 25SGD) and even commended the sound quality (I used the superb audio op-amp OPA2134). Some of my friends, even asked me to create one for them. Plus, one of the biggest benefit is that, they can change the op-amp with whatever op-amp they prefer! If they want a cheap one, or a high grade quality one, it just takes up to 5 seconds to change them and this gives them more freedom to experiment. :)

Phase 7 (Direct Recording to SmartPhone)
After that jam, one thing was missing, the ability to record straight to smartphone. With this, I just created a cheap extension cable plugged into one port of silentjam and here is a sample recording using Android Phone. Link
Setup:
Input 1: Guitar (straight connection, no effect pedals, using Dimarzio D'Activator 7 Bridge Pickup)
Input 2:  W758 Roll-up toy drum