Ben's Super Probe
Alternative software for the Superprobe.
About
This is code that can run on the Superprobe hardware. It is based on the 16F876A rather than the original 16F870, provides different modes to the original and is written in C rather than assembly.
My aim was to tailor the software for my own needs, which meant removing the modes I wouldn't use and adding modes I would. To make this easier I switched to C, which produces far larger code (when using the free HI-TECH compiler) than hand-written assembly. The result is something that's easier to customise, but with fewer modes of operation (even with a PIC with more program space).
I strongly recommend using the original software rather than this variation as it has been better tested and provides more functions. However, I'm making this code available in case someone is interested in it, as it may be easier to follow than the assembly source code of the original.
Accuracy is not guaranteed; please do not rely on the readings taken or output generated by this code!
General Usage
Hold button 2 and tap button 1 to switch between modes. Release both buttons to use the currently displayed mode. The mode in use is saved and will be automatically selected when you switch the probe off then on again.
Modes
- Prob – Logic probe. The detected logic level is displayed in the first column as a L (logic low), H (logic high) or - (high impedance/floating). When a change of logic level is detected the second column displays a P temporarily, which can be useful to spot very short pulses.
- Puls – Logic pulser. The detected logic level is displayed in the first column with the bottom segment (logic low) or top segment (logic high) illuminated. When button 1 is held brief pulses in the opposite direction are output and the central segment is lit. The frequency of the pulses is displayed on the right of the display, and can be set between 0.5Hz and 1Khz by pressing button 2.
- Freq – Frequency counter. The detected frequency is displayed with an SI prefix on the right if required (e.g. 10.0M for 10MHz). Hold button 1 or button 2 to hide the SI prefix and show an additional decimal point.
- Cnt – Event counter. This counts input pulses. Press button 1 to show the four most significant digits of the count and button 2 to reset the counter.
- Volt – Voltmeter. This is a simple 0V~5V voltmeter. Do not connect the probe to signals exceeding this range.
- Diod – Diode junction voltage. This is the same as the above voltmeter mode, but includes a 10K pullup resistor on the probe tip. This can be used to measure the voltage drop of a diode, for example.
- Cap – Capacitance meter. Connect a capacitor between the probe tip and ground and press button 1 to take a reading. The result is displayed with an SI prefix (e.g. 10.0u for a 10µF capacitor); hold button 2 to hide this to display an additional decimal point.
- Res – Resistance meter. Connect a resistor between the probe tip and ground to measure it. This is not very accurate, especially with smaller resistors so this is only useful for very rough measurements. The result is displayed with an SI prefix (e.g. 4.70K for a 4.7KΩ resistor); hold button 2 to hide this to display an additional decimal point.
- Sqr – Square wave output. This generates a square wave at the displayed frequency (1Hz–9999Hz). Press button 1 to increase the frequency, button 2 to decrease the frequency.
- 1Wid – 1-Wire ROM ID. Touch the probe tip to the data pin of a 1-Wire device to read its 56-bit ROM ID (with 8-bit CRC). Press button 1 to step through the four screens of hex digits; the decimal point at the bottom of the display indicates which of the four screens you're looking at.
- Temp – Read the temperature from a DS18B20 1-Wire thermometer. The temperature is displayed in degrees Celcius and constantly updates. If you suspect that you are getting bogus data, try connecting the thermometer's VDD pin to a suitable power supply rather than rely on parasitic power.