Books – Op Amp Applications Handbook and other updates

Op Amp Applications HandbookMan, so I “accidentally” purchased this book last night on my Kindle, so I guess I’ll be working on some op amp projects.  If you have any cool project ideas/recommendations, I’d like to hear them.

At any rate, I started reading the sample and thought it looked pretty good.  It is enormous (896 pages) and has several “books within a book” that look pretty interesting.  I already know the basics of op amps (or used to), but this seems to be a great text reference with a wealth of detail.  I’ve been reading it on my PC since it is easier to see the details of the figures provided.  So, maybe ebook is not the preferred format.  Then again, considering the size, maybe it is.

KiCad Screenshot
KiCad Screenshot

I also need to do some PCB layout work, so I went to launch EagleCAD and found i hadn’t yet installed it on this new machine.  So, I’m downloading KiCad now and am going to give it a try.

I’ve been working in-office a lot lately so I haven’t had much time to create videos and other online content.  I did recently create a GitHub account and will start posting some code out there hopefully with some regularity.

The weather is getting good too, so I’m looking forward to more woodworking this spring.  Ah, lots to do as usual, but I’m having fun.

Books – The Adventures of Tom Sawyer (Twain)

Tom Sawyer

Okay, okay…I never read this.  I wasn’t a “reader” back in Middle School or High School for that matter.  So, I’m catching up on old homework.

When I was a kid, my mother tried to suggest I read this and other classics, but I wasn’t having any of that.  As an adult, I actually quite enjoyed this one.  I’ve only gotten into reading fiction in the last 5 years or so.  Before that, I pretty much read technical materials exclusively.  I thought fiction was a waste of time.  I still do, but it is an enjoyable waste of time.  :)

Boss Button

Here’s my version of the Boss Button. I’ve been working through the AVR Programming book for fun and here’s my version of the “Boss Button” which is covered in chapter 6. This was a fun little project to troubleshoot. Turns out I spent a few cycles programming the simulator instead of the MCU and had fun trying to figure out why my serial communication wasn’t working. :)

Books – ‘World War Z’ (Brooks) Completed

World War ZI completed reading this one last night.  Not really that great in my opinion.  There was no real plot and it just went from one brief interview to the next.  I enjoyed it a little bit but wasn’t really my taste.  I think if you are someone who likes to pick up something and read short bits at a time, this might be agreeable.  That and if you are into zombies.

I’m back to classics now – reading The Adventures of Tom Sawyer.  I’ve seen the play numerous times but never read the book, so this is like catching up on 6th grade homework.  :)

Electronics – Simple AVR Debouncing In C

Building on the previous post, you can add a basic debouncing process by adding a small delay after the initial pin read and follow that delay with a second read using nested If statements. Here’s a code snippit:

if ((PIND & (1 << PD2)) != 0) {		
	_delay_ms(100);								if ((PIND & (1 << PD2)) !=0) {					   PORTB = 0b00011000;

You should experiment with the delay time and find the millisecond value that works best for your circuit.  For mine, 100ms is a good choice.

Electronics – ATMEGA328P Digital Read Code Sample

20140401_192102Here’s a  code sample in C for executing a digital read on the ATMEGA328P.  This is the standard push button example.  The code watches for a change in state of the push button and executes a routine depending on the input pings High/Low state.

Sample Code:

 * Experiment328p.c
 * Created: 3/30/2014 11:41:37 AM
 *  Author: mwittmer
 * simple digital read with push button example code
 * in this sample, an ATMEL328P is used in the following configuration
 * push button installed on PD2
 * back side of switch is connected to ground
 * PD2 set to input with internal resistor enabled
 * 8 LEDs are connected to PORTB with current limiting resistors to ground


int main(void)
	/*	Inits */
	PORTD |= (1 << PD2);			// initialize pull-up resistor on PD2 pin
	DDRB = 0xff;					// set all PORT pins for output

			if ((PIND & (1 << PD2)) != 0) {	// if a low state is detected on PD2 (button pressed)
				PORTB = 0b00011000;			// display this
			else {							// if a high state is detected on PD2
				PORTB = 0b11111111;			// display this

Here’s a little video showing the code in action.

Computer / IT – AVRISP MKII Doesn’t Work With Windows 8.1 OOB

I found that my AVRISP MKII didn’t plug and play with Window 8.1 on the first go.  Windows couldn’t automatically fix the issue, so I had to download and install an updated driver from ATMEL.  Here’s the link I used.

I didn’t have to uninstall anything or delete any files before running the above package.

make it or break it

%d bloggers like this: