I've been pretty busy lately. While we wrap up one large project we are starting to bring up new hardware for the next project. What does that mean? Well, about this time last year I started programming on the project using a hardware emulator that came with Windows CE. That works ok for application programming but doesn't help with drivers and other hardware specific tasks. A few months later we bought a development board: essentially hardware that, while not like the final product, had enough similar components that I could start writing device drivers.
While I was off writing BSPs, OALs, BLs, DLLs, and other acronyms on the development board the hardware guys were pouring over data sheets, schematics, and layout programs to design a custom development system. It's not the final hardware design, but it should be close enough that we can do the majority of the development and testing.
Circuit boards were made, parts acquired, and everything was sent down to a company that specializes in "stuffing" boards. Electronic devices these days predominately use surface mount components, which are about as easy to deal with as individual salt and pepper granules.
Now we have a few of these populated boards and are trying to bring them to life. Lots of things can go wrong. Solder blobs short out connections, parts put in wrong or the wrong part, hardware design problems, layout issues (programs do much of the layout), bad components, and finally all of the goofups by the software guy (me).
It's pretty fun. You don't get the dramatic lightning bolt illuminated "It's Alive!" Frankenstein moment but there is a great sense of accomplishment as each piece comes together and starts working.
That and I've been learning to fly. More later.