Super Bass Booster

Here’s a simple circuit you can use to boost more bass from your music. It can be powered by 9V battery or a 12V DC adapter. Take note that this is just basically a 1 band tone control with +- 17dB range at 60Hz bass frequency. You need it to connect before the amplifier input. This can’t be connected directly to speaker. The output of this circuit will be connected to the input of your amplifier and the input of this circuit will be connected to your audio source(i.e. mp3 player).

Continue reading “Super Bass Booster”

Simple Guitar Headphone amplifier with overdrive and aux input

Here’s a simple guitar headphone guitar amplifier project that you can use for practicing. The headphone amplifier uses a LM386 that can be able output up to 0.7W than can be use also for small speakers. It also has an auxiliary input that can be used to connect your phone or an MP3 player for you to jam and play along with the song you are playing. It has a simple built-in overdrive channel.

 

Continue reading “Simple Guitar Headphone amplifier with overdrive and aux input”

Alexan Overdrive FX kit review

So I purchased a guitar overdrive effects kit from Alexan just for fun. If you are looking for a cheap DIY effects for your guitar, this one is for you.

Schematic

The design is not a true-bypass configuration, meaning the signal is still passing on the buffer circuit in bypass mode. What is bad about that? Well the buffer circuit cuts of some of the low frequencies of your signal and it also adds some noise to it.

At bypass mode, the low frequency cut off is just small and negligible. It cuts -3dB at around 30Hz.

Tone Control Response

Below is the simulation I made and compared it to Ibanez Tube Screamer FX pedal. Volume and gain set to maximum and the tone control set to 0%, 50% and 100%. As you can see, gain on the alexan overdrive is lower due to passive tone control design used. It also has more aggressive low frequency roll-off, which mean the alexan has thinner sound.

On the other hand, alexan has more gain on the overdrive circuit because it uses a 1M gain potentiometer rather than the 500k used in ibanez tube screamer. But do you need that high gain? I don’t think so, higher gain means higher noise.

Mic Preamp With bass treble Tone Control for videoke

If you are looking for a mic preamp with bass and treble control, you may consider this one. I designed it for my future mixer build. I am planning to build one someday when I am not too busy.

ABOUT THE CIRCUIT

The circuit is only on design stage, not yet done any prototype but it is working on my simulation. This is an improved version of the preamp on my audio mixer design I posted.

The rolloff on the 10k-20kHz range is caused by the capacitor C8. This is done to make sure the system will not allow any radio frequency to pass especially AM radio signals. If you want that roll-off to be more aggressive, you can increase it. Treble frequency is set by C3 and C4 while C2 is for setting the bass frequency. Increasing those capacitor values will decrease the frequency. For instance you want the bass to have more boost on the lower end frequency, just increase the value of C2.

Gain is set by R1, if you want more gain, increase R1 value. Potentiometer used are 100k, using 50k or lower will decrease the boost and cut range by around 3dB.

Simulation Results

All range: bass and treble at 0%, 50% and 100%

 

Bass control (0%-100% at 10% increment)

 

Treble control (0%-100% at 10% increment)

 

Arduino Clock with 16×2 LCD and Rotary Encoder without RTC

Here a simple arduino code for clock function without using RTC. If you only want to display the time and not the date, you do not need an RTC. The built-in crystal oscillator of the arduino is accurate enough for time displaying function.

Schematic Diagram

This is simple to build.

Code

[code lang=”c”]
// 1602 clock by tataylino.com
#include <LiquidCrystal.h>

LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
int x = 0;
int minute = 1;
int hour = 12;
int sec = 0;
int am = 0; //1 = morning
bool up = false;
bool down = false;
bool display_update = true;
bool amtopm = false;

int backled = 9;
int button = 13;
int val = 0;
int aState;
int aLastState;

void setup() {
pinMode(button, INPUT);
pinMode(A2, INPUT);
pinMode(A3, INPUT);
// pinMode(13, OUTPUT);
pinMode(backled, OUTPUT);
analogWrite(backled, 255);
// set up the LCD’s number of columns and rows:
lcd.begin(16, 2);
lcd.setCursor(0, 0);
lcd.print(“Orasan”);

//set timer1 interrupt at 1Hz
TCCR1A = 0;// set entire TCCR1A register to 0
TCCR1B = 0;// same for TCCR1B
TCNT1 = 0;//initialize counter value to 0
// set compare match register for 1hz increments
OCR1A = 15624;// = (16*10^6) / (1*1024) – 1 (must be <65536)
// turn on CTC mode
TCCR1B |= (1 << WGM12);
// Set CS10 and CS12 bits for 1024 prescaler
TCCR1B |= (1 << CS12) | (1 << CS10);
// enable timer compare interrupt
TIMSK1 |= (1 << OCIE1A);
sei();//allow interrupts
}
void display() {
if(hour >= 10) {
lcd.setCursor(0, 2);
lcd.print(hour);
} else {
lcd.setCursor(0, 2);
lcd.print(“0”);
lcd.setCursor(1, 2);
lcd.print(hour);
}

lcd.setCursor(2, 2);
lcd.print(“:”);

if(minute >= 10) {
lcd.setCursor(3, 2);
lcd.print(minute);
} else {
lcd.setCursor(3, 2);
lcd.print(“0”);
lcd.setCursor(4, 2);
lcd.print(minute);
}

lcd.setCursor(5, 2);
lcd.print(“:”);
if(sec >= 10){
lcd.setCursor(6, 2);
lcd.print(sec);
} else {
lcd.setCursor(6, 2);
lcd.print(“0”);
lcd.setCursor(7, 2);
lcd.print(sec);
}
if(am == 1){
lcd.setCursor(8, 2);
lcd.print(“am”);
} else {
lcd.setCursor(8, 2);
lcd.print(“pm”);
}
}

void counting_time(){
if(minute < 0 ) {
minute = 59;
hour–;
}
if(hour < 1){ hour = 12; } if (sec >= 60) {
sec = 0;
minute++;
}
if (minute >= 60) {
hour++;
minute = 0;
}
if (hour >=13) {
hour = 1;
}
if(hour == 12 && minute == 0) { // to make sure only 1 am to pm transition
if(amtopm == true) {
amtopm = false;
if(am == 1){
am = 0;
} else {
am = 1;
}
}
}else{
amtopm = true;
}
}

ISR(TIMER1_COMPA_vect){//timer1 interrupt 1Hz
sec++;
counting_time();
if(display_update) {
display();
}
}

void loop() {
val = digitalRead(button); // read button
if (val == HIGH) {
//lcd.setCursor(0, 0);
//lcd.print(“o”);
//minute++;
//delay(500);
}
aState = digitalRead(A3);
if (aState != aLastState){
// If the outputB state is different to the outputA state, that means the encoder is rotating clockwise
if (digitalRead(A2) != aState) {
display_update = false;
minute ++;
counting_time();
if(minute >= 10) {
lcd.setCursor(3, 2);
lcd.print(minute);
} else {
lcd.setCursor(3, 2);
lcd.print(“0”);
lcd.setCursor(4, 2);
lcd.print(minute);
}
display_update = true;
} else {
display_update = false;
minute –;
counting_time();
if(minute >= 10) {
lcd.setCursor(3, 2);
lcd.print(minute);
} else {
lcd.setCursor(3, 2);
lcd.print(“0”);
lcd.setCursor(4, 2);
lcd.print(minute);
}
display_update = true;
}
}
aLastState = aState; //
}

[/code]