Well, I made progress in figuring out the tricks to use my low-end $350 scope to quickly find the communications I’m looking for. That’s good. But I see stuff in the waveforms that don’t correspond to what I’m sending in my C code.
Of course, it’s likely that they do and that the error is in the creator. But I’m so baffled that I’m going to look at the C super close one last time and then start to look at the assembly since I’m not sure I trust it….
Actually, first, I’ll make everything simpler–just one step per operation. No |= or &= or +=. I swear the C, if correctly compiled, would not make the waveforms I’m seeing….
BTW, I don’t know why it took me so long to buy the scope. I could not possibly get this far without it. It is a lifesaver. I knew it going in. Maybe I wasn’t sure I’d get to the point of needing it. But, boy, how I need it. It’s not the best scope I’ve ever used. but it’s pretty good. Just the Rigol 50MHz 2 channel scope. I do recommend it to anyone on a budget. It gets the job done.
Today I was in Digital Lab II, also known as Liberty Bar on 15th in Seattle. It’s a lounge bar in the evening, but a pretty nice cafe in the morning. Pretty nice because it’s quiet, most of the patrons are regulars, many people are working from there because it has rock solid WiFi, and it has the lounge table where I can set up my mobile lab. Most people who work there are using either paper or their laptops. But I think nothing of bringing in my mobile lab in Lululemon bags, and starting to work. I joke that one of these days, I’ll solder there, but I never will.
A guy who had come in for coffee and obviously didn’t know much about how electronics works stopped by because he was quite intrigued by my setup and I explained what I was doing and what the scope does and how to look at the waveforms and I showed him the C and I showed him the waveform and I tried to show him why they didn’t correspond as I expected them to. It’s funny, because, as an electrical engineer, I have very specific definitions for words like “voltage” and “current” and lay people sort of use the terms interchangeably and rely on context to guide their interlocutor to some vague notion of what they are asking.
I am trying to figure out this problem with all this new code that I’m trying to get running for the first time. I went to a number of interviews at companies after having been out of embedded design for 4 years thanks to leukemia and didn’t wow them because it was, frankly, 4 years since I touched this stuff and they have applicants coming from other jobs doing this. But, this project is doing exactly what I’d hoped it would do. It’s getting my mind back in. It’s proving to me that I can still do what I used to be able to do. And do it well. Embedded engineering is hard, but it’s fun. Solving problems is what I do, what I enjoy doing, and what I want to do.
I look forward to getting back into it.