My how much you've grown, senior Pegasus!
I always love unwrapping a new PCB!
I always love unwrapping a new PCB!
if( isKeyOnNow(void) == KEY_IS_ON) { immediatelyExitBootloader(); }
else { waitOneSecondForNewFirmware(); }
That layout is absolutely better in every way. Ha, that's so many ground vias.Ah, yeah, you are right about the scope bandwidth. I don't have a better scope to look with unfortunately.
That USB story is wild, hah. I guess you do what you have to do to get things working. Classic example of using software to fix a hardware problem.
Here's the best layout I could come up with, what do you think?
![]()
That's a great scope! My daily driver at NI was a 2 GHz ABW Tek DPO. Whenever we needed more bandwidth we'd typically just rent test equipment.I do now.
Tektronix DPO7104, 1GHz bandwidth and 20GS/s. Used eBay scopes are awesome, this was about 1/5 the price of an equivalent modern scope. It won't perform as well as a new scope of the same caliber, but it still has excellent specifications and features.
Each active probe I used at NI cost more than the entire scope setup I use now. Honestly the real-world analog performance is almost entirely a function of your input probes.I'm just waiting on some 500MHz passive probes, a 1GHz active probe, and a 30A, 120MHz current probe to arrive. All also secondhand off eBay for 1/4 price or less.
Are you using the base firmware you previously wrote for the old hardware?For Pegasus, I've been slowly performing various tests that will make sure every functional aspect of the board is working properly. Then I will start writing the bootloader, then finally the firmware!
I already have 40-50 various changes I want to make, but nothing too major. So far everything has been working great, for the most part!
IIRC, previously Pegasus was powered from the +12V rail on the OBDII port? Why the change? Does the new power harness require soldering?I also installed the power harness (required) and the signal harness (optional) in my test cluster, of course to test that functionality as well.
I agree you have enough bandwidth for pretty much any non-RF home project. Don't forget that overall system bandwidth is typically square root of sum of squares for each analog part in the chain (i.e. probe + scope).Even these second-hand probes can be thousands of dollars! It's crazy. Thankfully the older but still capable models are "only" hundreds of dollars.
And definitely. I mis-typed, It's actually a 1.5GHz active probe, so I know the probe shouldn't be the limiting factor with this scope at least.
I'm in a similar boat over even just the last 18 months... each time I change older LiBCM code sections, I'm ending up rewriting them.Naw, new microcontroller, entirely new hardware and pinout, and the HAL library even has different functions. Not to mention my coding skills have increased so much since I wrote the initial firmware, I'd want to rewrite it all anyway. Certainly a few things can be reused, though.
Sounds like a well thought out change. I've designed quite a few isolated DCDC converters, but in your case I agree it's cleaner to just tap the existing cluster voltage.If I powered Pegasus from the OBDII port, there would be a ground loop. Pegasus is grounded to the cluster PCB, which is grounded to the car. The OBDII port is of course also grounded to the car. If I left off the OBDII ground it would eliminate the ground loop, but K/H line signal integrity and 12V power delivery would probably be quite bad. Leaving the ground loop could cause current to flow through the cluster where it shouldn't, and pick up a lot of noise.
My original plan was to have an isolated DC/DC converter and isolated data inside the OBDII plug. This solution is large, expensive, more difficult to design, not as performant as a non-isolated buck, and has higher quiescent current. I'd also need large protection components to protect from voltage spikes on the raw 12V bus.
If I power Pegasus from the cluster, I don't need nearly as comprehensive input protection since the cluster already has beefy protection. And the Pegasus buck regulator can be small, cheap, and efficient. Now I only need to isolate data within the OBDII plug, which is small and easy. The tradeoff is requiring a single two-wire harness to be soldered in the cluster, to some fairly large and easy solder points. I think it's the right choice.