It seems that I was a bit pessimistic when I said that the USB stack would need rewriting for the PyPPMv2. With one extra flipped bit in an AVR register, the PyPPM 2.1 sprang to life over the USB port, and even said its first words:
$ ./ver
VER: 2.1
Aww, how cute!
Of course, while the new hardware is talking over the USB, it's still "broken" with respect to the traditional PyPPM version 1.x host-side software. It's all because of the new pulse programming features that will go into the new designs: while previous versions of PyPPM had a canned, hard-coded sequence of operations that was followed for every experiment, the v2 will be much more flexible, taking any user-defined sequence of commands and executing them. So, instead of having a short list of acquisition parameters, the board will take instructions that contain the required parameters.
The fun part? The host-side software wasn't written that way. At all. To remedy this, I plan on back-porting the pulse programming features of PyPPM 2.1 into the older firmware source trees, effectively doing away with acquisition parameters on all PyPPM devices and ushering in pulse programs for everyone!
It's definitely a long-term goal, and not something I plan to accomplish before the prize deadline. But still post-worthy, eh?
On that note, I'm planning on putting out a Part 2 video on PPM/NMR concepts this weekend, and also a final 'working product' video of PyPPM 1.3 that includes a complete screen cast of the host computer during the experiment.
~ Brad.
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.