Warning: Declaration of action_plugin_include::register(&$controller) should be compatible with DokuWiki_Action_Plugin::register(Doku_Event_Handler $controller) in /home/public/lib/plugins/include/action.php on line 0
Blog [Jim Chen]

Warning: Declaration of syntax_plugin_meta::handle($match, $state, $pos, &$handler) should be compatible with DokuWiki_Syntax_Plugin::handle($match, $state, $pos, Doku_Handler $handler) in /home/public/lib/plugins/meta/syntax.php on line 16

Warning: Declaration of syntax_plugin_meta::render($mode, &$renderer, $data) should be compatible with DokuWiki_Syntax_Plugin::render($format, Doku_Renderer $renderer, $data) in /home/public/lib/plugins/meta/syntax.php on line 16

Cincinnati Maker Faire

This past Saturday I had a great time presenting my project at the Cincinnati Maker Faire. I redesigned my 555 Whack-a-Mole game from two years ago, adding a laser-cut acrylic case, and held a high-score contest in my little booth.

My booth!

It was a cold day and it rained for most of the morning and into the afternoon, but that did not prevent lots of people from coming to the fair. The most satisfying thing for me was the enthusiastic responses, especially from the kids there. Quite a few kids came back to the booth to play the game again after they left. A few of them even said they wanted to make a game just like that, which really showcased one of the main purposes of the Maker Faire – promoting interest in science and engineering. It was truly fantastic for a first-time event, and now I have another project in mind for next year's Maker Faire. Stay tuned!

2^n programmable gain amplifier

I was trying to design a circuit for conditioning a signal from a photodiode. I needed an amplifier to buffer and amplify the signal before sampling it with an ADC. However, the signal from a photodiode can have a high dynamic range, and I wasn't sure if the ADC can cover that. Instead of using a higher resolution ADC, I read about the programmable gain amplifier.

A programmable gain amplifier can be useful when sampling a signal that has a higher dynamic range than the resolution of the ADC allows. It's similar to setting the exposure of a camera when taking a picture; even though the scene can have a higher dynamic range than the camera can capture, the exposure can be set so that the camera does capture the most interesting part. Essentially, the dynamic range of the ADC is “shifted” to cover the full range of the signal.

There are several PGA ICs available, such as Linear LTC6910, Maxim MAX9939, Microchip MCP6S21, and TI PGA112. I figured I could also build one using an ordinary op-amp. Here's an article I found with two reference designs.

I also came up with an alternative arrangement that is capable of 1x to 128x gain in 2^n steps:

2^n PGA schematic

Unlike the circuits in the article above, this PGA design only requires 3 digital signals for gain control, and it only requires three different resistor values. Also, instead of requiring analog switches, this PGA uses only MOSFETs. On the downside, this circuit has a fairly poor bandwidth when the gain is low, due to MOSFET parasitic capacitances.