Sals Hacker Space

Sal's Hacker Space

Saturday, March 30, 2013

Ham Radio

My mentor is a big ham radio enthusiast. He has finally convinced me to take the plunge.

So I picked this book up. Its amazing. Literally everything you need to know about RF

Thursday, March 28, 2013

Game Dev Story: Sal Style

Mobile phones have opened a new market for developers. The prospect of making apps/games has never been more exciting. The barrier to making your app or game has become so low that almost anyone can do it.

I cant help but feel excited about it too. I have always wanted to get into game development and i am now finally exploring this amazing field. I dont know if ill ever make something commercially available, but the prospect of writing something on my computer and running it on my Galaxy Nexus is very very, and i mean very appealing.

I have been fiddling around with Libgdx and I am currently learning the framework and the nuances of game development. However these activities occur during my spare time which i do not have a lot of, so im afraid the game development posts will not be as frequent as i want them to be. 

But there will be posts. After all, just like everyone else developing, I have a million dollar idea too ;)

No post is complete without a screenshot of what your working on. Here is my first attempt at an educational platformer that i intend on making. It will teach people electronics as they play. 

But thats a while away, right now im just fiddling around with putting things on the screen and animating them. Heres an running animation of me running on a couple of red blocks.

This took a surprising amount of work. The art is the most painful process, since im no artist. But heck, its fricking fun!

Stay posted for more!

Building a 3A Constant Current Load Box on the Fly!

I needed to get one of the boards i made tested by a third party for certification.

I was surprised to find out that the company that was supposed verify that the board meet all the necessary standards did not have a constant current load box. Well, having a constant load was one of the criteria.

Renting one involved long lead times...

So what was the quickest solution? Build one of my own and ship it over! 

Here are the features of the load box that im going to share with you.

1) 3A constant current load.
2) 6.7V UVLO (it will require atleast 6.7V to turn on)
3) Does not require any battery.

To build this load box you will require the following
  • 1x LT1635 (Micropower Rail-to-Rail Op Amp and Reference)
  • 1x 6.2V Zener
  • 1x 12V Zener
  • 1x 4148 Diode
  • 2x MUR460 Diodes
  • 2x 2n3904 NPN Transistors
  • 2x FQA140N10 MOSFET
  • 1x 0.1uF Ceramic Capacitor
  • 4x 100k 1/4W Resistors
  • 1x 130k 1/4W Resistor
  • 4x 10k 1/4W Resistors
  • 2x 1k 1/4W Resistors
  • 2x 10Ohm 1/4W Resistors
  • 1x 1M 1/4W Resistor
  • 8x 470mOhm 1W Resistors
  • 2x Heatsinks atleast 3.1 C/W
Lets get to it!

I will assume that the reader interested in building a load box is familiar with electronics and can read schematics so i wont spend time on that. Instead ill provide you with the schematic and explain how the circuit works.

Be sure to put it in an enclosure. The heat sinks will get pretty hot, so its important that they get adequate cooling, if they stick out of the box like mine do then be sure to be careful around them. 

3A Constant Current Load Box

Our operating voltage is 12V. Q3 and Q4 each have half of the total current flowing through them (1.5A). R14 - R17 are chosen such that the opamp biases the FETs to always have 1.5A flowing through each one of them. 

To set the current in Q3 for example, we set the voltage at the source of Q3 to be 3V. Hence our sense resistors (R14 - R17) should have a total value of 3/1.5 = 2Ohms. Since 1.5A would be flowing through 2Ohms, the total power dissipation would be around 4.5W. So in order to get around that we pick smaller resistors with higher wattage. Four 470mOhm 1W resistors do the job nicely, they add up to 2V and the power dissipation in each resistor is now reduced to (1.5)^2 * (470mOhm) = 1W.

The same strategy is implemented for Q4. 

R8 and R9 provide feedback paths to the inverting terminal of the LT1635. In order for the Opamp to keep the source of these FETs biased to 3V we need to set the non-inverting terminal to 3V as well. This is done by the resistor divider at the output of the reference. If the output of the reference is at 3V, 140k and 10k drop this voltage down to 200mV and feed it to the reference Opamp. This makes the Opamp very happy indeed :)

So we just made a constant current source. However, what we want is a constant current source that needs no external power source except the load and that turns on once the V+ voltage is higher than 6-7V. We achieve this with the help of Q2, and Q1.

Q2 remains on for as long as Q1 stays off. This is due to the pullup resistor R2.  This shorts the supply of the Opamp to GND. As a result the Opamp cannot bias the two MOSFETs and they remain off. Once the voltage at VIN rises above the zener clamp voltage of 6.2V + 0.7V(of D3) the clamp turns on and biases Q1.

Q1 turns on and shorts the base of Q2 to GND. As a result Q2 turns off and a resistive divider between R3, R4 and R5 beings the voltage down to a safe value for the LT1635 to operate at. D2 prevents the input to the LT1635 from rising higher than 12V incase a transient event takes VIN to a high voltage.

R10 and R11 isolate the output of the Opamp from the gate capacitances of the FETs. The reason why those were put there were because i was seeing the op amp oscillate, the loop did not like seeing those capacitances :(

Oh and if your wondering what purpose D3, D4 and D5 serve, they are there to prevent the circuit from frying if you accidentally hook up the load box the wrong way. ;)

And there you have it. Your very own load box! 

I put mine in a plastic case, i think it looks much cooler when you can see the guts of everything. :D

Lets see it in action...

Notice how the current starts flowing after we cross the 6.7V threshold and ramps up till we reach our set voltage of 12V. Increasing the voltage further no longer makes a difference and the current remains constant.

You can always make the load variable by adding 10k potentiometer instead of R6. I plan on implementing that which is why i have the holes drilled in the front.

Friday, March 22, 2013

WallCrawller Update:

I have good news and bad news.

The good news is that the gears arrived and i managed to free some time to continue with the project.

Heres the bad news... the shaft that holds the gears has become loose. So the gears slip now. When the robot starts crawling forward on the whiteboard, the force on the magnetic wheels causes the shaft to bend backwards. This pops the gear teeth to pop out and get stuck and stall the motor.

It seems i will need to order a new Servo...


Sunday, March 3, 2013

Wall Crawler Update: Never use superglue near a servo..

Im pretty annoyed. On thursday i decided to stay late after work and finish up the wallcrawler.

Here is a video of it crawling on the whiteboard on my wall. Keep in mind that the "pulsed" movement is intentional. I want to keep it like that in the beginning as i am unsure about the level of control i will have during turning and following black lines.

Notice how the left wheel is sleeping, this is because the shaft was slipping on the gears i.e the gears were rotating but the shaft was not.

Obviously i needed to fix this. I took out my trusty Krazy Glue and proceeded to glue the shaft more securely to the top gear. There was a piece of solidified glue that was near the end of the tube and it was blocking the way.

You can imagine what happened next. I squeezed harder and ended up squirting super glue all over the gears. They were totally destroyed.

I just re-ordered some new gears and once they arrive we will continue on with the prototyping.

In the mean time ill bounce onto my backup project (more on that later).