Hi!!! I think you have a good shot at BU and Northeastern. I’m not as familiar with a lot of the other schools but I think IU wouldn’t be bad either. CMU, Caltech, MIT - really difficult (lots of super qualified applicants get the smackdown in the running for those three because they’re definitely very quantitatively-inclined schools). Also, just a heads up (I’m a senior who just went through all this and we have a lot of the same stats: almost identical GPA and SAT)… applying as a compeng / robotics engineering major, those were my two listed majors as well, SUCKS. Big public schools like Purdue and Michigan are sooo unnecessarily difficult to stand out to the admissions board as those majors because they get so many brilliant kids. You sound super smart and your (very impressive, by the way) ECs align with computer engineering / engineering, so I wouldn’t say to change your major just for the applications because I think the admissions committee would see through that, but I’m letting you know ahead of time, largely funded public schools have their hooks in engineering and it’s a little crazy. I’d say to check out Ohio State, it’s a bit of an anomaly but still has some great STEM resources, I got into their engineering program recently with a good scholarship and you’d definitely be eligible too! They have an AMAZING engineering lab and they’re looking to grow their program in a way that I don’t think Mich really is.
Anyway, I hear back from Mich soon (and BU, Northeastern, and Cornell later) if you’d like to hear how somebody with similar stats fared! Good luck! Enjoy junior year- I loved it and I miss it a lot now haha.
TL;DR: definitely difficult schools but engineering admissions is weird. Just make sure you have schools all over your range.