Thanks for the comment. I'll use your suggestion for schematics in the future.
With regard to the zener: I'll need to study your comments. You are correct that the output voltage of the NE555 running at 5.2v is lower than Vcc. I manually measured it at 4.x with my voltmeter. However, I did test this circuit. As a first step, I manually measured the output voltage with my voltmeter again and saw that it was 3.3v (the zener voltage).
I then ran my code to capture MCP3008 values. It:
1. Sets up GPIO and I2c.
2. Closes relay for 5 seconds.
3. While relay is closed, measures MCP3008 Ch0 in a loop with small delay between measurements. Timestamp and voltage Measurements are captured to an array.
4. Once the time is up, it writes the array to a file.
My manual measurements were with an inexpensive digital multimeter. The point of the manual tests were to make sure I do not damage my rpi nor my other devices. This is also why I use the relay: so that the circuit is never on for very long.
What I do not understand is that if 5v is presented to the ch0 via the 10k resistor, why do I get readings from the MCP3008 corresponding to 3.3v?
My explanation to myself was that the zener drained off voltages above 3.3v and only left 3.3v for MCP3008 ch0 but perhaps I am not thinking about this correctly.
Anyway, I recently purchased an Arduino which is capable of reading 5vdc. I plan to use UUGear Daemon in the rpi to control voltage measurements with the Arduino Nano. See
http://www.uugear.com/uugear-rpi-arduino-solution/ At the moment, I am embroiled in issues running the Arduino IDE from raspberry pi.
With that, I should be able to get measurements of the output of the NE555 without the need for a divider nor for the zener.
By the way, when I tried a voltage divider, I did not get as clean a graph as I did with the zener. I used a 20k and a 10k resistor to take the output of the NE555 to 2/3 to get it into the right range for an MCP3008 running at 3.3v. Do you think 20k/10k resistors were an ok choice?