This is good stuff. I was working on something very similar with this tekpower bench supply so i could get the firmware off. I could glitch it via shorting a swd pin to ground sometimes- found this out by accident, I actually bypassed their uart command protection for a minute when i had the terminal up and then protection came back on, i will get there but i love projects like this that end up in code usable for everyone. so useful, and awesome work. When you get ready to publish, please let everyone know what conference, if its close I will get there. Cheers and awesome stuff.
i am not sure about where you probing, but i found this to be super helpful when isolating things i want to look at or do analysis on. makerprobes. Lectronz
It does need a good review; while it works for all of the cases and testing Iāve done, I couldāve easily missed something. I also want to be sure my code is compatible with the BP codebase and philosophy in general.
There are a LOT of commits here, including a few times rebasing against the Official repo, but I donāt see any merge conflicts at this point.
I am cleaning up the PR branchās history by cherry picking each commit into my own branch. 8-9 commits is easier to review than the 51-commit original PR. (see github for progressā¦) the goal is that every commit that hits the main branch builds cleanly.
80% through already, and the only things I found were very minor. I have not reviewed for functionality ā¦ only for format specifiers, missing return values from functions, etc. That said, you did a great job figuring all the twists and turns needed to get a new command added + localization changes + ā¦ NICE WORK!
The only downside to my rebaseāing is that I donāt know (yet) how to get the git history to show you made the commit when I cherry pickā¦ I want you to get the credit for this great PR!
When done, I can give you the commands needed to cherry-pick the commits back under your own name, or I can just force-push the changes into your branch. Let me know your preference?
yeah so have you seen some of the work from the guy stephan on hardware io talk? i know chipwhisperer and all those have osciloscopes attached and sort of a one stop board but simple power analysis using a 45 dollar board and an older scope is pretty cool. https://www.tindie.com/stores/stephanelec/
The good news: After rebaseāing the PR, there are only 8 commits.
I also figured out how to lie to the git history, so you will get credit (and blame) for these changes. Please checkout PR #187.
See ā¦ I wanted to make this painless for you, and I think I have!
I will close PR #186 in favor of this rebased PR ā¦ the git history is much cleaner as a result.
Steps to compare your current PR branch vs. the rebase'd PR branch
### ensure my branch is one of your known remotes
git remote add henrygab https://github.com/henrygab/buspirate-firmware
### pull the commits from my remote
git pull --all
### show which _files_ changed between
### your PR #186 branch (07c8c93) and
### my PR #187 branch (416e68e)
git diff --name-only 07c8c93 416e68e
### checkout the full diff ... but note git diff
### has trouble with the auto-generated
### translation files...
git diff 07c8c93 416e68e
If anything was missed or awry, could you please let me know (and I can fix) or submit a new PR with that fix?
Besides level shifters, it has āA newly designed input stage (EXT1 and EXT2) can be used to filter out noise and other disturbances via adjustable Schmitt Triggers. The multiplexing output can be used to quickly switch between up to four different voltage levels and to supply the target board with power.ā
There is also an extension board that will allow pulse shaping in the works. I chatted with Matthias Kesenheimer and he told me the extra board has expensive components, and it might cost 100ā¬. The project is documented here.
I need to be better with handling upstream. I wanted to keep my branch tightly syncād with what was happening with the main project.
Maybe before submitting as a PR, I shouldāve just created a new branch and cherry picked over to that from my dev branch. Also, Iāll should keep in mind that my āpersonalā projects might actually be useful, haha. .
Here are the steps I take while working on a branch (which only I work on).
Just like you, I want to keep my branch really close to upstream/main. For my example here, my working branch will be named bugfix1.
I periodically do the following
WARNING
Use of git push --force can cause problems
because it changes the commit history of the
branch.
Here, itās presumed that youāre the only one
using the branch, and youāre not expecting
to accept PRs into the branch.
# pull latest from upstream (and every other remote)
git pull --all
# ensure upstream/main didn't have breaking changes
# by updating my fork's main using --ff-only
# and push back to my github fork
git switch main
git merge --ff-only upstream/main
git push
# remind myself of all my branch names, so I can update each one
git branch -v
# ################################################################
# For each branch (I'll show `bugfix1` in this example)
# rebase the branch. For conflicts, I prefer VSCode
# for visual conflict resolution, but as kids say, "you do you".
# short version, once you are comfortable
git switch bugfix1
git rebase main
# ... conflict resolution, if any ...
# e.g., edit conflicted files, then `git rebase --continue`, etc.
# force-push the rebase'd branch to github
# (Note above warning)
git push --force
# lather, rinse, repeat for other branches
# ################################################################
The above keeps a nice, clean commit history. Hereās my prefered alias for cmd-line viewing of the history:
Iām sorry. EmmanuelT already mentioned this device. I missed the reference.
BTW, Iām reading the Colin OāFlynn book and he mentions using a MAX4619 Analog switch for fast glitching. It can generate a 20 ns glitch. Alternately, for an easier implementation of a crowbar power glitch using a MOSFET, he suggests a DMN2056U for low power devices and a IRF7807 for high power devices as suitable components.
Oh man, I totally missed the python script! I was updating all of the individual language files manually! That script is so much easier and cleaner.
I missed the whole thread about this; I think by that time I just had my head down and was plowing through. The script is such a better way to handle it all.