jowood4 / RHINESTONE

0 stars 1 forks source link

Flaky hardware? #6

Open pedrodude opened 9 years ago

pedrodude commented 9 years ago

Hmm, I'm actually having a devil of a time getting the ADXL to respond without simply giving me the "ooops no adxl345 detected" from the initialization routine. I managed one more run of the RHINESTONE program with a similar output as previous (pasted below), with the exception of 3500 (or so) repeats of a comment I added to the code...

I'm not very experienced with this Arduino hardware, is it usually this flaky? I've done a little PIC development, and I've definitely had issues with temperamental ICSPs (needing 0.25 volts lower than rated and silly things like that) but I didn't expect this with Arduino. I didn't assemble this so I'm having slight doubts about the assembly quality as well...

P

Apparently I'm powered up v4
BOOT ROUTINE
TRANSITION_TO_SLEEP ROUTINE
SLEEP_SIGNAL ROUTINE
MODE_SLEEP ROUTINE
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
I'm alive!
TRANSITION_TO_NORMAL ROUTINE
NORMAL_SIGNAL ROUTINE
MODE_NORMAL ROUTINE
0.00
I'm alive!
TRANSITION_TO_SLEEP ROUTINE
SLEEP_SIGNAL ROUTINE
MODE_SLEEP ROUTINE
I'm alive!
TRANSITION_TO_NORMAL ROUTINE
NORMAL_SIGNAL ROUTINE
MODE_NORMAL ROUTINE
0.00
I'm alive!
TRANSITION_TO_SLEEP ROUTINE
SLEEP_SIGNAL ROUTINE
MODE_SLEEP ROUTINE
I'm alive!
TRANSITION_TO_NORMAL ROUTINE
NORMAL_SIGNAL ROUTINE
MODE_NORMAL ROUTINE
0.00
I'm alive!
TRANSITION_TO_SLEEP ROUTINE
SLEEP_SIGNAL ROUTINE
MODE_SLEEP ROUTINE
I'm alive!
TRANSITION_TO_NORMAL ROUTINE
NORMAL_SIGNAL ROUTINE
MODE_NORMAL ROUTINE
0.00
I'm alive!
TRANSITION_TO_SLEEP ROUTINE
SLEEP_SIGNAL ROUTINE
MODE_SLEEP ROUTINE
I'm alive!
TRANSITION_TO_NORMAL ROUTINE
NORMAL_SIGNAL ROUTINE
MODE_NORMAL ROUTINE
0.00
I'm alive!
TRANSITION_TO_SLEEP ROUTINE
SLEEP_SIGNAL ROUTINE
MODE_SLEEP ROUTINE
I'm alive!
TRANSITION_TO_NORMAL ROUTINE
NORMAL_SIGNAL ROUTINE
MODE_NORMAL ROUTINE
0.00
I'm alive!
TRANSITION_TO_SLEEP ROUTINE
SLEEP_SIGNAL ROUTINE
MODE_SLEEP ROUTINE
I'm alive!
TRANSITION_TO_NORMAL ROUTINE
NORMAL_SIGNAL ROUTINE
MODE_NORMAL ROUTINE
0.00
I'm alive!
TRANSITION_TO_SLEEP ROUTINE
SLEEP_SIGNAL ROUTINE
MODE_SLEEP ROUTINE
I'm alive!
jowood4 commented 9 years ago

Did it magically just start working at the end? Or did you push a button? Get you get my note about trying out the ADXL345 by itself?

pedrodude commented 9 years ago

No that huge string of "I'm alive" output took place over about a second; I didn't touch anything. I'm not sure it's relevant to be honest but I included it in case it was symptomatic of an error you might have seen before.

Got your note, couldn't get past the error message in the initialize routine (the "ooops, check your wiring" message)... On 10 Feb 2015 17:18, "jowood4" notifications@github.com wrote:

Did it magically just start working at the end? Or did you push a button? Get you get my note about trying out the ADXL345 by itself?

— Reply to this email directly or view it on GitHub https://github.com/jowood4/RHINESTONE/issues/6#issuecomment-73741302.

jowood4 commented 9 years ago

In the sensortest sketch, make sure you change the constructor (line 6) to this: Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified(clock, miso, mosi, cs, 12345);

Obviously put this after you declare your pin names (clock, miso, mosi, and cs).

pedrodude commented 9 years ago

Didn’t know about the constructor replacement, thanks. Still the same result unfortunately.

Pins all correct too…

From: jowood4 Sent: ‎Wednesday‎, ‎11‎ ‎February‎ ‎2015 ‎11‎:‎33 To: jowood4/RHINESTONE Cc: pedrodude

In the sensortest sketch, make sure you change the constructor (line 6) to this: Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified(clock, miso, mosi, cs, 12345);

Obviously put this after you declare your pin names (clock, miso, mosi, and cs).

— Reply to this email directly or view it on GitHub.

jowood4 commented 9 years ago

Do you have any way to probe voltages? I find it hard to believe that the sensor just doesn't work. Is it powered with 3.3V? It's difficult to debug flying blind like this. I'm considering buying one of these exact sensors from Adafruit so I can diagnose what is going on. You don't happen to have an extra circuit you could ship me?

pedrodude commented 9 years ago

It's a 5v board, (so that the accel can be run without a voltage regulator).

I don't have an extra circuit, in fact I was considering abandoning this one and asking you if you would assemble a new one for me. At the very least that might eliminate the hardware variable.

Let me have a little play with this. I'm from a software background (databases), so I'm quite willing to entertain the possibility that it's something that I've done... Is ESD a possibility? I've been handling it ungrounded and keeping it unshielded.

P

On 12 February 2015 at 11:38, jowood4 notifications@github.com wrote:

Do you have any way to probe voltages? I find it hard to believe that the sensor just doesn't work. Is it powered with 3.3V? It's difficult to debug flying blind like this. I'm considering buying one of these exact sensors from Adafruit so I can diagnose what is going on. You don't happen to have an extra circuit you could ship me?

— Reply to this email directly or view it on GitHub https://github.com/jowood4/RHINESTONE/issues/6#issuecomment-74057526.

jowood4 commented 9 years ago

Let's start with the 5V board part. What does that mean? Are you using a breakout board like this one from Adafruit (http://www.adafruit.com/product/1231) that has a 5V to 3.3V regulator on it? Looking at the datasheet for the ADXL345 (http://www.analog.com/static/imported-files/data_sheets/ADXL345.pdf), it cannot handle anything above 3.9V on any pin directly. This could totally give you weird results if either the VDD or the SPI logic is 5V instead of 3.3V.

pedrodude commented 9 years ago

Ok, sorry I've been being unclear, and possibly mixing up my terminology. The Pro Micro is a 5v board. (I had a previous prototype that was being powered by 3v which required stepping up)

The specific hardware I have is this: Pro micro - https://www.sparkfun.com/products/12640 ADXL345 breakout - https://www.sparkfun.com/products/9836 as well as a pushbutton and an LED.

I don't happen to have a multimeter unfortunately; not very well set up for diagnosing electronics issues, I'm afraid. But I don't believe that there shouldn't be any issues with power, as it's wired up fine from what I can see. Additional problem is that I don't have a schematic to give you, nor am I a decent enough electrical engineer to diagnose problems without your handholding me.

My objective is to get to a point where we're up and running where I can test the code and tweak the variables to see if this method of detecting deceleration will work. It seems like remote diagnostics is wasting a lot of time, mainly because I lack the information and the ability to be of much help to you. So my feeling is we should cut our losses, abandon this device and go for another device, that you've put together and therefore know everything about it. I'm perfectly happy for you to quote me on a new device as I think it will save far more time in the long run. I like the way you work and I think we can get this sorted if only the hardware worked/was configured correctly.

Unless there's something else we can test that's straightforward, or you spot something obvious from what I've supplied below, I think this should be a good way forward. What do you think?

Regards,

P

Images of the device: p1070553 p1070556

Sensortest code I've been using:

#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_ADXL345_U.h>

uint8_t clock = 15; // aka SCL
uint8_t miso = 16; // aka SDA
uint8_t mosi = 14; // aka SDO
uint8_t cs = 10;

/* Assign a unique ID to this sensor at the same time */
Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified(clock, miso, mosi, cs, 12345);

void displaySensorDetails(void)
{
  sensor_t sensor;
  accel.getSensor(&sensor);
  Serial.println("------------------------------------");
  Serial.print  ("Sensor:       "); Serial.println(sensor.name);
  Serial.print  ("Driver Ver:   "); Serial.println(sensor.version);
  Serial.print  ("Unique ID:    "); Serial.println(sensor.sensor_id);
  Serial.print  ("Max Value:    "); Serial.print(sensor.max_value); Serial.println(" m/s^2");
  Serial.print  ("Min Value:    "); Serial.print(sensor.min_value); Serial.println(" m/s^2");
  Serial.print  ("Resolution:   "); Serial.print(sensor.resolution); Serial.println(" m/s^2");  
  Serial.println("------------------------------------");
  Serial.println("");
  delay(500);
}

void displayDataRate(void)
{
  Serial.print  ("Data Rate:    "); 

  switch(accel.getDataRate())
  {
    case ADXL345_DATARATE_3200_HZ:
      Serial.print  ("3200 "); 
      break;
    case ADXL345_DATARATE_1600_HZ:
      Serial.print  ("1600 "); 
      break;
    case ADXL345_DATARATE_800_HZ:
      Serial.print  ("800 "); 
      break;
    case ADXL345_DATARATE_400_HZ:
      Serial.print  ("400 "); 
      break;
    case ADXL345_DATARATE_200_HZ:
      Serial.print  ("200 "); 
      break;
    case ADXL345_DATARATE_100_HZ:
      Serial.print  ("100 "); 
      break;
    case ADXL345_DATARATE_50_HZ:
      Serial.print  ("50 "); 
      break;
    case ADXL345_DATARATE_25_HZ:
      Serial.print  ("25 "); 
      break;
    case ADXL345_DATARATE_12_5_HZ:
      Serial.print  ("12.5 "); 
      break;
    case ADXL345_DATARATE_6_25HZ:
      Serial.print  ("6.25 "); 
      break;
    case ADXL345_DATARATE_3_13_HZ:
      Serial.print  ("3.13 "); 
      break;
    case ADXL345_DATARATE_1_56_HZ:
      Serial.print  ("1.56 "); 
      break;
    case ADXL345_DATARATE_0_78_HZ:
      Serial.print  ("0.78 "); 
      break;
    case ADXL345_DATARATE_0_39_HZ:
      Serial.print  ("0.39 "); 
      break;
    case ADXL345_DATARATE_0_20_HZ:
      Serial.print  ("0.20 "); 
      break;
    case ADXL345_DATARATE_0_10_HZ:
      Serial.print  ("0.10 "); 
      break;
    default:
      Serial.print  ("???? "); 
      break;
  }  
  Serial.println(" Hz");  
}

void displayRange(void)
{
  Serial.print  ("Range:         +/- "); 

  switch(accel.getRange())
  {
    case ADXL345_RANGE_16_G:
      Serial.print  ("16 "); 
      break;
    case ADXL345_RANGE_8_G:
      Serial.print  ("8 "); 
      break;
    case ADXL345_RANGE_4_G:
      Serial.print  ("4 "); 
      break;
    case ADXL345_RANGE_2_G:
      Serial.print  ("2 "); 
      break;
    default:
      Serial.print  ("?? "); 
      break;
  }  
  Serial.println(" g");  
}

void setup(void) 
{
  Serial.begin(9600);
  while(!Serial);
  Serial.println("Accelerometer Test1"); Serial.println("");

  /* Initialise the sensor */
  if(!accel.begin())
  {
    /* There was a problem detecting the ADXL345 ... check your connections */
    Serial.println("Ooops, no ADXL345 detected ... Check your wiring!");
    while(1);
  }

  /* Set the range to whatever is appropriate for your project */
  accel.setRange(ADXL345_RANGE_16_G);
  // displaySetRange(ADXL345_RANGE_8_G);
  // displaySetRange(ADXL345_RANGE_4_G);
  // displaySetRange(ADXL345_RANGE_2_G);

  /* Display some basic information on this sensor */
  displaySensorDetails();

  /* Display additional settings (outside the scope of sensor_t) */
  displayDataRate();
  displayRange();
  Serial.println("");
}

void loop(void) 
{
  /* Get a new sensor event */ 
  sensors_event_t event; 
  accel.getEvent(&event);

  /* Display the results (acceleration is measured in m/s^2) */
  Serial.print("X: "); Serial.print(event.acceleration.x); Serial.print("  ");
  Serial.print("Y: "); Serial.print(event.acceleration.y); Serial.print("  ");
  Serial.print("Z: "); Serial.print(event.acceleration.z); Serial.print("  ");Serial.println("m/s^2 ");
  delay(500);
}
jowood4 commented 9 years ago

I just saw something worth trying. I believe that SDA on the accelerometer should go with MOSI (master out, slave in) and SDO should be MISO. Try switching those in the code and see what happens. Otherwise, we can work on another solution.

Joe On Feb 15, 2015 1:14 PM, "pedrodude" notifications@github.com wrote:

Ok, sorry I've been being unclear, and possibly mixing up my terminology. The Pro Micro is a 5v board. (I had a previous prototype that was being powered by 3v which required stepping up)

The specific hardware I have is this: Pro micro - https://www.sparkfun.com/products/12640 ADXL345 breakout - https://www.sparkfun.com/products/9836 as well as a pushbutton and an LED.

I don't happen to have a multimeter unfortunately; not very well set up for diagnosing electronics issues, I'm afraid. But I don't believe that there shouldn't be any issues with power, as it's wired up fine from what I can see. Additional problem is that I don't have a schematic to give you, nor am I a decent enough electrical engineer to diagnose problems without your handholding me.

My objective is to get to a point where we're up and running where I can test the code and tweak the variables to see if this method of detecting deceleration will work. It seems like remote diagnostics is wasting a lot of time, mainly because I lack the information and the ability to be of much help to you. So my feeling is we should cut our losses, abandon this device and go for another device, that you've put together and therefore know everything about it. I'm perfectly happy for you to quote me on a new device as I think it will save far more time in the long run. I like the way you work and I think we can get this sorted if only the hardware worked/was configured correctly.

Unless there's something else we can test that's straightforward, or you spot something obvious from what I've supplied below, I think this should be a good way forward. What do you think?

Regards,

P

Images of the device: [image: p1070553] https://cloud.githubusercontent.com/assets/5306903/6204258/5d91d824-b53c-11e4-97c1-9c2b27c50d92.JPG [image: p1070556] https://cloud.githubusercontent.com/assets/5306903/6204260/68d2c3ce-b53c-11e4-9e17-dc16c3f7e4bf.JPG

Sensortest code I've been using:

include

include

include

uint8_t clock = 15; // aka SCL uint8_t miso = 16; // aka SDA uint8_t mosi = 14; // aka SDO uint8_t cs = 10;

/* Assign a unique ID to this sensor at the same time */ Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified(clock, miso, mosi, cs, 12345);

void displaySensorDetails(void) { sensor_t sensor; accel.getSensor(&sensor); Serial.println("------------------------------------"); Serial.print ("Sensor: "); Serial.println(sensor.name); Serial.print ("Driver Ver: "); Serial.println(sensor.version); Serial.print ("Unique ID: "); Serial.println(sensor.sensor_id); Serial.print ("Max Value: "); Serial.print(sensor.max_value); Serial.println(" m/s^2"); Serial.print ("Min Value: "); Serial.print(sensor.min_value); Serial.println(" m/s^2"); Serial.print ("Resolution: "); Serial.print(sensor.resolution); Serial.println(" m/s^2"); Serial.println("------------------------------------"); Serial.println(""); delay(500); }

void displayDataRate(void) { Serial.print ("Data Rate: ");

switch(accel.getDataRate()) { case ADXL345_DATARATE_3200_HZ: Serial.print ("3200 "); break; case ADXL345_DATARATE_1600_HZ: Serial.print ("1600 "); break; case ADXL345_DATARATE_800_HZ: Serial.print ("800 "); break; case ADXL345_DATARATE_400_HZ: Serial.print ("400 "); break; case ADXL345_DATARATE_200_HZ: Serial.print ("200 "); break; case ADXL345_DATARATE_100_HZ: Serial.print ("100 "); break; case ADXL345_DATARATE_50_HZ: Serial.print ("50 "); break; case ADXL345_DATARATE_25_HZ: Serial.print ("25 "); break; case ADXL345_DATARATE_12_5_HZ: Serial.print ("12.5 "); break; case ADXL345_DATARATE_6_25HZ: Serial.print ("6.25 "); break; case ADXL345_DATARATE_3_13_HZ: Serial.print ("3.13 "); break; case ADXL345_DATARATE_1_56_HZ: Serial.print ("1.56 "); break; case ADXL345_DATARATE_0_78_HZ: Serial.print ("0.78 "); break; case ADXL345_DATARATE_0_39_HZ: Serial.print ("0.39 "); break; case ADXL345_DATARATE_0_20_HZ: Serial.print ("0.20 "); break; case ADXL345_DATARATE_0_10_HZ: Serial.print ("0.10 "); break; default: Serial.print ("???? "); break; } Serial.println(" Hz"); }

void displayRange(void) { Serial.print ("Range: +/- ");

switch(accel.getRange()) { case ADXL345_RANGE_16_G: Serial.print ("16 "); break; case ADXL345_RANGE_8_G: Serial.print ("8 "); break; case ADXL345_RANGE_4_G: Serial.print ("4 "); break; case ADXL345_RANGE_2_G: Serial.print ("2 "); break; default: Serial.print ("?? "); break; } Serial.println(" g"); }

void setup(void) { Serial.begin(9600); while(!Serial); Serial.println("Accelerometer Test1"); Serial.println("");

/* Initialise the sensor / if(!accel.begin()) { / There was a problem detecting the ADXL345 ... check your connections */ Serial.println("Ooops, no ADXL345 detected ... Check your wiring!"); while(1); }

/* Set the range to whatever is appropriate for your project */ accel.setRange(ADXL345_RANGE_16_G); // displaySetRange(ADXL345_RANGE_8_G); // displaySetRange(ADXL345_RANGE_4_G); // displaySetRange(ADXL345_RANGE_2_G);

/* Display some basic information on this sensor */ displaySensorDetails();

/* Display additional settings (outside the scope of sensor_t) */ displayDataRate(); displayRange(); Serial.println(""); }

void loop(void) { /* Get a new sensor event */ sensors_event_t event; accel.getEvent(&event);

/* Display the results (acceleration is measured in m/s^2) */ Serial.print("X: "); Serial.print(event.acceleration.x); Serial.print(" "); Serial.print("Y: "); Serial.print(event.acceleration.y); Serial.print(" "); Serial.print("Z: "); Serial.print(event.acceleration.z); Serial.print(" ");Serial.println("m/s^2 "); delay(500); }

— Reply to this email directly or view it on GitHub https://github.com/jowood4/RHINESTONE/issues/6#issuecomment-74428968.

pedrodude commented 9 years ago

Wow. That worked. I might have known it would have been down to my assigning the wrong damn pin numbers (it seems this reference I used: https://www.sparkfun.com/tutorials/240#comment-535c3831ce395f47568b4567 was wrong…) Good call.

It appears to be activating just fine and transitioning to normal and sleep modes on the button presses. I’m getting a nan output for the acceleration but it’s a big step forward. I’ll play with it some more and see what I can get out of it and probably get back to you again tomorrow.

Appreciate it.

P

From: jowood4 Sent: ‎Sunday‎, ‎15‎ ‎February‎ ‎2015 ‎18‎:‎37 To: jowood4/RHINESTONE Cc: pedrodude

I just saw something worth trying. I believe that SDA on the accelerometer should go with MOSI (master out, slave in) and SDO should be MISO. Try switching those in the code and see what happens. Otherwise, we can work on another solution.

Joe On Feb 15, 2015 1:14 PM, "pedrodude" notifications@github.com wrote:

Ok, sorry I've been being unclear, and possibly mixing up my terminology. The Pro Micro is a 5v board. (I had a previous prototype that was being powered by 3v which required stepping up)

The specific hardware I have is this: Pro micro - https://www.sparkfun.com/products/12640 ADXL345 breakout - https://www.sparkfun.com/products/9836 as well as a pushbutton and an LED.

I don't happen to have a multimeter unfortunately; not very well set up for diagnosing electronics issues, I'm afraid. But I don't believe that there shouldn't be any issues with power, as it's wired up fine from what I can see. Additional problem is that I don't have a schematic to give you, nor am I a decent enough electrical engineer to diagnose problems without your handholding me.

My objective is to get to a point where we're up and running where I can test the code and tweak the variables to see if this method of detecting deceleration will work. It seems like remote diagnostics is wasting a lot of time, mainly because I lack the information and the ability to be of much help to you. So my feeling is we should cut our losses, abandon this device and go for another device, that you've put together and therefore know everything about it. I'm perfectly happy for you to quote me on a new device as I think it will save far more time in the long run. I like the way you work and I think we can get this sorted if only the hardware worked/was configured correctly.

Unless there's something else we can test that's straightforward, or you spot something obvious from what I've supplied below, I think this should be a good way forward. What do you think?

Regards,

P

Images of the device: [image: p1070553] https://cloud.githubusercontent.com/assets/5306903/6204258/5d91d824-b53c-11e4-97c1-9c2b27c50d92.JPG [image: p1070556] https://cloud.githubusercontent.com/assets/5306903/6204260/68d2c3ce-b53c-11e4-9e17-dc16c3f7e4bf.JPG

Sensortest code I've been using:

include

include

include

uint8_t clock = 15; // aka SCL uint8_t miso = 16; // aka SDA uint8_t mosi = 14; // aka SDO uint8_t cs = 10;

/* Assign a unique ID to this sensor at the same time */ Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified(clock, miso, mosi, cs, 12345);

void displaySensorDetails(void) { sensor_t sensor; accel.getSensor(&sensor); Serial.println("------------------------------------"); Serial.print ("Sensor: "); Serial.println(sensor.name); Serial.print ("Driver Ver: "); Serial.println(sensor.version); Serial.print ("Unique ID: "); Serial.println(sensor.sensor_id); Serial.print ("Max Value: "); Serial.print(sensor.max_value); Serial.println(" m/s^2"); Serial.print ("Min Value: "); Serial.print(sensor.min_value); Serial.println(" m/s^2"); Serial.print ("Resolution: "); Serial.print(sensor.resolution); Serial.println(" m/s^2"); Serial.println("------------------------------------"); Serial.println(""); delay(500); }

void displayDataRate(void) { Serial.print ("Data Rate: ");

switch(accel.getDataRate()) { case ADXL345_DATARATE_3200_HZ: Serial.print ("3200 "); break; case ADXL345_DATARATE_1600_HZ: Serial.print ("1600 "); break; case ADXL345_DATARATE_800_HZ: Serial.print ("800 "); break; case ADXL345_DATARATE_400_HZ: Serial.print ("400 "); break; case ADXL345_DATARATE_200_HZ: Serial.print ("200 "); break; case ADXL345_DATARATE_100_HZ: Serial.print ("100 "); break; case ADXL345_DATARATE_50_HZ: Serial.print ("50 "); break; case ADXL345_DATARATE_25_HZ: Serial.print ("25 "); break; case ADXL345_DATARATE_12_5_HZ: Serial.print ("12.5 "); break; case ADXL345_DATARATE_6_25HZ: Serial.print ("6.25 "); break; case ADXL345_DATARATE_3_13_HZ: Serial.print ("3.13 "); break; case ADXL345_DATARATE_1_56_HZ: Serial.print ("1.56 "); break; case ADXL345_DATARATE_0_78_HZ: Serial.print ("0.78 "); break; case ADXL345_DATARATE_0_39_HZ: Serial.print ("0.39 "); break; case ADXL345_DATARATE_0_20_HZ: Serial.print ("0.20 "); break; case ADXL345_DATARATE_0_10_HZ: Serial.print ("0.10 "); break; default: Serial.print ("???? "); break; } Serial.println(" Hz"); }

void displayRange(void) { Serial.print ("Range: +/- ");

switch(accel.getRange()) { case ADXL345_RANGE_16_G: Serial.print ("16 "); break; case ADXL345_RANGE_8_G: Serial.print ("8 "); break; case ADXL345_RANGE_4_G: Serial.print ("4 "); break; case ADXL345_RANGE_2_G: Serial.print ("2 "); break; default: Serial.print ("?? "); break; } Serial.println(" g"); }

void setup(void) { Serial.begin(9600); while(!Serial); Serial.println("Accelerometer Test1"); Serial.println("");

/* Initialise the sensor / if(!accel.begin()) { / There was a problem detecting the ADXL345 ... check your connections */ Serial.println("Ooops, no ADXL345 detected ... Check your wiring!"); while(1); }

/* Set the range to whatever is appropriate for your project */ accel.setRange(ADXL345_RANGE_16_G); // displaySetRange(ADXL345_RANGE_8_G); // displaySetRange(ADXL345_RANGE_4_G); // displaySetRange(ADXL345_RANGE_2_G);

/* Display some basic information on this sensor */ displaySensorDetails();

/* Display additional settings (outside the scope of sensor_t) */ displayDataRate(); displayRange(); Serial.println(""); }

void loop(void) { /* Get a new sensor event */ sensors_event_t event; accel.getEvent(&event);

/* Display the results (acceleration is measured in m/s^2) */ Serial.print("X: "); Serial.print(event.acceleration.x); Serial.print(" "); Serial.print("Y: "); Serial.print(event.acceleration.y); Serial.print(" "); Serial.print("Z: "); Serial.print(event.acceleration.z); Serial.print(" ");Serial.println("m/s^2 "); delay(500); }

— Reply to this email directly or view it on GitHub https://github.com/jowood4/RHINESTONE/issues/6#issuecomment-74428968.

— Reply to this email directly or view it on GitHub.

pedrodude commented 9 years ago

Ok, making a lot of progress here. The latest pull request I've submitted corrects the sensing loop, which was sampling the acceleration once and pushing that same value to all elements of the queue array. I also added a fair few comments to help with debugging.

I think there are now 3 main issues to be solved:

  1. The current queue loop execution order means that the loop samples 5 times, then calculates either the pitch angle or the acceleration based on that. This means it's not really working as a FIFO queue; the code needs to be tweaked so that the calculation is happening after each and every sample. So when it's first switched on:
    • the first sample is taken
    • the queue has 1 element, so the range is 0 and the average is equal to the element
    • calculations happen based on that
    • then the second sample is taken
    • the queue now has 2 elements, so the range is the range and the average is the average
    • et cetera until the queue reads it's 6th element (or rather, its "VARIABLE_QUEUE_DECELERATION_SIZE+1th" element), at which point that replaces the oldest element in the queue
    • The braking signal can be triggered on but it misses out on being shut off; just goes straight to recalculating the pitch angle. It appears that the acceleration changes too sharply in the current configuration; I think the previous change in ought to alleviate this. I've put another data dump (with the new verbosity) below so you can see what's going on. (I've truncated the thousands of lines of looping and waiting for the switch input)
    • I believe the math is broadly correct, but the arcsine is operating frequently on values greater than 1, which is causing the nan values. If I've understood my own math correctly, this shouldn't really happen unless the device is exceeding +/- 45 deg pitch [from the horizontal plane]. I think maybe my arithmetic or some of the constant defaults need looking at again; I've not had time to look tonight, but I'll check them out tomorrow. But I'd appreciate if you happen to spot anything there, as this seems harder to fix.

Btw, I think once point 1 and 2 are complete, I'll be happy to consider the code working as designed and will release the second tranche.

Regards,

P

Monitoring for UCS
Monitoring for UCS
Monitoring for UCS
Monitoring for UCS
Monitoring for UCS
Monitoring for UCS
Monitoring for UCS
TRANSITION_TO_NORMAL ROUTINE
NORMAL_SIGNAL ROUTINE
MODE_NORMAL ROUTINE
Uncompensated acceleration reading: 1.49
Uncompensated acceleration reading: 1.77
Uncompensated acceleration reading: 1.22
Uncompensated acceleration reading: 1.53
Uncompensated acceleration reading: 1.49
Queue mean: 1.50
Queue range: 0.55
Straight and level range (from Constant): 0.50
Queue range indicates significant deceleration, calculating compensated deceleration
Compensated deceleration: 1.50
Upward
TRANSITION_ACTIVATE_ACTUATOR_SL ROUTINE
BRAKING_SIGNAL_ON ROUTINE
Monitoring for UCS
MODE_NORMAL ROUTINE
Uncompensated acceleration reading: 2.59
Uncompensated acceleration reading: 2.86
Uncompensated acceleration reading: 3.02
Uncompensated acceleration reading: 3.06
Uncompensated acceleration reading: 2.71
Queue mean: 2.85
Queue range: 0.47
Straight and level range (from Constant): 0.50
Queue range indicates insignificant deceleration, updating pitch angle
Pitch Angle: nan
Monitoring for UCS
MODE_NORMAL ROUTINE
Uncompensated acceleration reading: 1.49
Uncompensated acceleration reading: 2.12
Uncompensated acceleration reading: 2.24
Uncompensated acceleration reading: 2.16
Uncompensated acceleration reading: 2.24
Queue mean: 2.05
Queue range: 0.75
Straight and level range (from Constant): 0.50
Queue range indicates significant deceleration, calculating compensated deceleration
Compensated deceleration: nan
Monitoring for UCS
MODE_NORMAL ROUTINE
Uncompensated acceleration reading: 2.12
Uncompensated acceleration reading: 2.04
Uncompensated acceleration reading: 2.08
Uncompensated acceleration reading: 2.12
Uncompensated acceleration reading: 2.20
Queue mean: 2.11
Queue range: 0.16
Straight and level range (from Constant): 0.50
Queue range indicates insignificant deceleration, updating pitch angle
Pitch Angle: nan
Monitoring for UCS
MODE_NORMAL ROUTINE
Uncompensated acceleration reading: 4.35
Uncompensated acceleration reading: 4.43
Uncompensated acceleration reading: 4.43
Uncompensated acceleration reading: 4.43
Uncompensated acceleration reading: 4.51
Queue mean: 4.43
Queue range: 0.16
Straight and level range (from Constant): 0.50
Queue range indicates insignificant deceleration, updating pitch angle
Pitch Angle: nan
Monitoring for UCS
MODE_NORMAL ROUTINE
Uncompensated acceleration reading: 5.10
Uncompensated acceleration reading: 5.10
Uncompensated acceleration reading: 5.10
Uncompensated acceleration reading: 5.10
Uncompensated acceleration reading: 5.10
Queue mean: 5.10
Queue range: 0.00
Straight and level range (from Constant): 0.50
Queue range indicates insignificant deceleration, updating pitch angle
Pitch Angle: nan
Monitoring for UCS
MODE_NORMAL ROUTINE
Uncompensated acceleration reading: -2.82
Uncompensated acceleration reading: -2.67
Uncompensated acceleration reading: -2.90
Uncompensated acceleration reading: -2.86
Uncompensated acceleration reading: -2.86
Queue mean: -2.82
Queue range: 0.24
Straight and level range (from Constant): 0.50
Queue range indicates insignificant deceleration, updating pitch angle
Pitch Angle: nan
Monitoring for UCS
MODE_NORMAL ROUTINE
Uncompensated acceleration reading: -3.06
Uncompensated acceleration reading: -3.26
Uncompensated acceleration reading: -3.10
Uncompensated acceleration reading: -3.22
Uncompensated acceleration reading: -3.10
Queue mean: -3.15
Queue range: 0.20
Straight and level range (from Constant): 0.50
Queue range indicates insignificant deceleration, updating pitch angle
Pitch Angle: nan
Monitoring for UCS
MODE_NORMAL ROUTINE
Uncompensated acceleration reading: 3.41
Uncompensated acceleration reading: 3.88
Uncompensated acceleration reading: 4.43
Uncompensated acceleration reading: 4.75
Uncompensated acceleration reading: 5.22
Queue mean: 4.34
Queue range: 1.80
Straight and level range (from Constant): 0.50
Queue range indicates significant deceleration, calculating compensated deceleration
Compensated deceleration: nan
Monitoring for UCS
MODE_NORMAL ROUTINE
Uncompensated acceleration reading: 10.04
Uncompensated acceleration reading: 9.77
Uncompensated acceleration reading: 9.77
Uncompensated acceleration reading: 9.77
Uncompensated acceleration reading: 9.92
Queue mean: 9.85
Queue range: 0.27
Straight and level range (from Constant): 0.50
Queue range indicates insignificant deceleration, updating pitch angle
Pitch Angle: nan
Monitoring for UCS
MODE_NORMAL ROUTINE
Uncompensated acceleration reading: 1.65
Uncompensated acceleration reading: 1.77
Uncompensated acceleration reading: 1.57
Uncompensated acceleration reading: 1.57
Uncompensated acceleration reading: 1.77
Queue mean: 1.66
Queue range: 0.20
Straight and level range (from Constant): 0.50
Queue range indicates insignificant deceleration, updating pitch angle
Pitch Angle: nan
Monitoring for UCS
MODE_NORMAL ROUTINE
Uncompensated acceleration reading: 0.63
Uncompensated acceleration reading: 0.63
Uncompensated acceleration reading: 0.63
Uncompensated acceleration reading: 0.59
Uncompensated acceleration reading: 0.63
Queue mean: 0.62
Queue range: 0.04
Straight and level range (from Constant): 0.50
Queue range indicates insignificant deceleration, updating pitch angle
Pitch Angle: nan
Monitoring for UCS
MODE_NORMAL ROUTINE
Uncompensated acceleration reading: 0.39
Uncompensated acceleration reading: 0.39
Uncompensated acceleration reading: 0.35
Uncompensated acceleration reading: 0.27
Uncompensated acceleration reading: 0.27
Queue mean: 0.34
Queue range: 0.12
Straight and level range (from Constant): 0.50
Queue range indicates insignificant deceleration, updating pitch angle
Pitch Angle: nan
Monitoring for UCS
MODE_NORMAL ROUTINE
Uncompensated acceleration reading: 0.24
Uncompensated acceleration reading: 0.31
Uncompensated acceleration reading: 0.31
Uncompensated acceleration reading: 0.35
Uncompensated acceleration reading: 0.24
Queue mean: 0.29
Queue range: 0.12
Straight and level range (from Constant): 0.50
Queue range indicates insignificant deceleration, updating pitch angle
Pitch Angle: 1.32
Monitoring for UCS
MODE_NORMAL ROUTINE
Uncompensated acceleration reading: 0.16
Uncompensated acceleration reading: 0.20
Uncompensated acceleration reading: 0.20
Uncompensated acceleration reading: 0.20
Uncompensated acceleration reading: 0.16
Queue mean: 0.18
Queue range: 0.04
Straight and level range (from Constant): 0.50
Queue range indicates insignificant deceleration, updating pitch angle
Pitch Angle: 0.65
Monitoring for UCS
MODE_NORMAL ROUTINE
Uncompensated acceleration reading: -0.12
Uncompensated acceleration reading: -0.90
Uncompensated acceleration reading: -0.59
Uncompensated acceleration reading: -0.55
Uncompensated acceleration reading: -0.86
Queue mean: -0.60
Queue range: 0.78
Straight and level range (from Constant): 0.50
Queue range indicates significant deceleration, calculating compensated deceleration
Compensated deceleration: 0.63
Downward
TRANSITION_DEACTIVATE_ACTUATOR_SL ROUTINE
BRAKING_SIGNAL_OFF ROUTINE
Monitoring for UCS
MODE_NORMAL ROUTINE
Uncompensated acceleration reading: 0.55
Uncompensated acceleration reading: 0.55
Uncompensated acceleration reading: 0.63
Uncompensated acceleration reading: 0.59
Uncompensated acceleration reading: 0.59
Queue mean: 0.58
Queue range: 0.08
Straight and level range (from Constant): 0.50
Queue range indicates insignificant deceleration, updating pitch angle
Pitch Angle: nan
jowood4 commented 9 years ago

Thanks for the thorough explanation. I edited the code to be more like a FIFO instead of just collecting 5 samples each time. I needed to introduce a new global variable, FIFO_STATUS, to keep track of how full the FIFO is in order to handle where new data is saved and how to calculate range and mean.

Let me know if this works better.

jowood4 commented 9 years ago

OK, I merged in your changes. Where are we now? It sounded like several of the issues were related to the FIFO. Is that stuff working better now? What is left to do?

pedrodude commented 9 years ago

I think we're there with the code. It achieves all of the functionality of the pseudocode. To that end I've released the final payment. I'm really pleased and I appreciate your attention to detail and your helping to hold my hand with some of this.

Future steps:

Also, if you could make use of a letter of recommendation or testimonial for your work, I'd be happy to provide one. Just let me know.

Regards,

P

On 18 February 2015 at 02:44, jowood4 notifications@github.com wrote:

OK, I merged in your changes. Where are we now? It sounded like several of the issues were related to the FIFO. Is that stuff working better now? What is left to do?

— Reply to this email directly or view it on GitHub https://github.com/jowood4/RHINESTONE/issues/6#issuecomment-74801443.

jowood4 commented 9 years ago

Great! I'm glad everything seems to be working out. I thought your pseudocode was very descriptive and thorough, and since it seems to be working, I wouldn't change it. I also do PCB design and would be happy to help... I'm a bit busy at the moment, but things could easily change in 4 weeks. Just let me know. It's been great working with you.