Monday, January 28, 2008

Keeping myself going

(Reposted from old blog)

A common problem amongst people of my mindset is they never finish a project unless it has an actual concrete deadline. And unless the agreement imposing said deadline also imposes routine maintenance, many of those projects get shelved shortly thereafter.

I have a problem that is similar is presentation but otherwise entirely different. I can’t finish projects, deadlines or not, because I have serious motivational issues. Now before you start jumping to conclusions, it’s not depression or anything weird like that. I’m totally happy, and I’m not stressed, not struggling with school (any further), relationships in life are all awesome. Literally, nothing to be torqued up about. I just can’t finish things. I often sit down at my workstation and just kind of stare at it. Check my email a few times, write some notes down, maybe IM someone. Go to the bathroom, eat a snack, build an ark….you know how it goes, anything but whats at hand. And it’s not even that I’m not interested in it. I am actually more apt to do my homework than my personal projects, now tell me that isn’t weird…

So, I’ve of course analyzed this to death and I think I’ve got a few leads on the cause:

  • Diminishing returns, the projects get steadily complicated until it becomes an uphill battle to progress, and the frustration and lack of progress makes me not want to keep trying it, even though it’s still interesting
  • Fear of “big” steps in the development cycle, worried it’s going to consume my entire day and not get finished.
  • Fear of failure, as long as I can recite my planned work in my head, I feel like I’m smart and have a handle on it, it’s kind of ego-deflating to get stuck, which is a common occurrence when my projects leave the (relatively small) realm of my personal skills.

So, here’s what I got for combating it:

  • Don’t work alone, cause I know I feel damned stupid staring at it doing nothing with someone watching me. Even if the person comes along just to watch me and not help me, it’s still better than being alone. I don’t feel so welcome to procrastinate with someone watching me.
  • Do it in discrete chunks and when they’re done, stop. Get the LCD wired up. Stop there, eat a snack, then move on to next item at convenient pace. The chunking seems most effective, because I can go on little spurts of motivation to complete the project. Though it seems to be terribly impairing the speed at which I work.
  • Read as much as I can before doing it, so I am as familiar as I can be, with a good plan for how to proceed. Making sure to have all available parts is nice, it also prevents me from half-assing other parts of the projects
  • Start early in the day so I can build up momentum without running out of time.

Baja Prototype, Day 1

(Reposted from old blog)

Well, after a day or so of work on the prototype, I have some fun stories….

Starting with forgetting to connect the negative lead of the power supply to the chip on the protoboard, which led to about 2 hours trying to figure out why the chip worked on the devboard (STK500) but not on my breadboard. The ‘obvious’ culprit, term used loosely, was the chips clock source had been set to an external clock, which the STK500 supplies, my breadboard does not. I was convinced it had to be somewhat complicated and never thought to check something as simple as the power connection. Yeah. I feel dumb. I’m so oblivious that I tried a factory fresh chip and when it exhibited the same problem, decided they must have made a mistake there. That’s my ego for you.

Next, you may notice a blue-backed LED backlight 2×20 character LCD module in that picture, I’m trying to reconnect that and make it work with the new version of my LCD driver code. Well I fail at counting, reading or something else because tonight I couldn’t even get it to power up. Not a big deal, I got the compiler/flashing circuitry running, power supply is up, heart is beating, and I can hook up the LCD next weekend, or during the week if I find time…

So, to sum this up, here’s what I accomplished:

  • 5V Power Supply Working, but they need filtering capacitors
  • Off-board programming of the chip, so I don’t need to swap it back and forth constantly
  • AVR-GCC w/ avr-libc configured on the Baja T30, avrdude configured to flash through the STK500
  • Project imported from Subversion and debugged to point of compiling and starting.
  • Initial firmware is booted and running, though there’s no sensors or display to see it with.

Here’s what I plan to do in the next few sessions:

  • Get the LCD module wired up and running, this is pretty much the only path forward from here, any other option will be exceedingly difficult without this real time feedback.
  • Get the 3.3V power supply and Dataflash online, start recoding and debugging the driver code for that.
  • Get the serial port up and running, and start receiving/decoding NMEA packets from the eTek GPS Receiver.
  • Get the tachometer/inductor working with the interrupts.
  • Get the thermal sensors online with the ADC
  • Put all of this on a nice, shiny, Printed Circuit Board.

And obviously, with the exception of the first one, this are in pretty arbitrary order. Now, for those that stuck with me through this whole post, a list of the days screwups:

  • The aforementioned lack of connecting Ground wiring to the processor.
  • Reversing MISO/MOSI (The input and output) data lines on the programming circuit jumpers to the prototype board.
  • Forgetting to install all the base code chunks the compiler uses (avr-libc).
  • Shocking myself countless times on the wall power pack.
  • Touching the regulator when its been active all day (Ow!)
  • Reversing the ribbon cabling adapter for the LCD (Twice)
  • Not remembering to enable the interrupt for the timer and having the processor do a whole lotta nothin’
  • Eating at Ro-Bro before starting.

That’s all for now, enjoy the attached photos of the work space and keep an eye out for further updates.

Photos:

Prototype, Day 1, Photo 1

Prototype, Day 1, Photo 2

Prototype, Day 1, Photo 3

Prototype, Day 1, Photo 4