Pickup Simulator v3

Design to simulate a pickup coil at different RPM to test CDIs, Tachometers, Power valves and ignition coils.

Range: from  300 to 30000 RPM (V2.x)
Range: from 1000 to 30000 RPM (V3.3)

 

Download.

Simulator v2.3 Software Schematic Parts list Circuit board Eagle files PIC-LCD-DAC
pinouts
PIC 16F628A .HEX .PDF .TXT .PDF
.JPG
.SCH .BRD .TXT

Version 2.3 is free to use, versions 3 are only available for sale.

Checksum v2.3: 400D
Configuration word:
PICKIT3: 2100h (xx1x xxx1 0001 0000b)
ICPROG : 3F10h (0011 1111 0001 0000b)

 

How does it work?

Polarity
When LCD is displaying:
Pickup type : ?
-_     or     _-

then select:

  • Plus button (on the left) = for Positive then Negative like that:

or Press:

  • Minus button = for Negative then Positive:

18 volts peak to peak:

Frequency

When LCD is displaying:
+   RPM= 1000   -
NEG/POS

then Press:

  • Plus button = increase RPM
  • Minus button = decrease RPM
  • Hold on the button to adjust faster

    Perfect accuracy at 30000RPM = 500Hz = 2ms:

Additional features in version 3:
Sweep generator / Manual

When LCD is displaying:
Pickup adjust : ?
SWEEP or MANUAL

then Press:

  • Plus button (on the left) = AUTO mode
    – The simulator will forever sweep the range 1000 to 30000RPM in 30 seconds.
    – You can switch from SWEEP to MANUAL mode anytime by pressing a button.
  • Minus button (on the right) = MANUAL mode
    – You can select RPM manually from 1000 to 30000RPM in a linear range 1000 by 1000rpm.

Memory

  • When both buttons are pressed the same time, the actual RPM is saved in the memory and the simulator will start from this point when restarted.

+   RPM= 6000   -
SAVED

Pictures.

pcb_top simulator_v3_top_populated

A check with a cheap DSO138 oscilloscope that I strongly suggest to buy if you are a bike mechanic.

Videos.

V2.0:

V3.0:

Video of a bench from 1000 to 30000RPM:

V3.2:

First use.

      • Double check your PCB for no shorts or breaks.
      • REMOVE the LCD display and ALL ICs from the board.
      • Connect the 3 power wires: Ground | -9 to -15Vdc | +9 to +15Vdc.
        The power voltage will determine what maximum output range it gives.
      • Check out the tension at the power pins of each IC support:
        PIC: pins 14,5 DAC: 1,3,13,15 AOP: pins 7,4 and LCD support: pins 1,2,15.
      • Adjust R5 to get +10Vdc at pin14 of DAC08 which determine output current to have a full scale output. The DAC can operate from -Vref to +Vref
      • Power off then ONLY insert PIC16F628.
      • Connect a voltmeter to pin13 of the PIC. (or a 330ohm resistor + led)
      • Power on the simulator.
      • RB7 (pin13) goes high (+5v) for 1sec 2 times, then finally remain low meaning the programming is correct.
      • Power off and insert the DAC0800, the AOP and the LCD display.
      • If you don’t have a oscilloscope, you can connect a LED between the output and the ground.
      • Power On. This Led will be off until you have selected the polarity (+/- or -/+) afterward the led slightly bright.
      • A multimeter will still show 0 volt DC between output and gnd.
        Only a oscilloscope can show you the pulses.
      • Enjoy!

PCB

High quality double sided PCB, programmed chips or ready to use device are on sale

Versionning.

      • Version 1.0:
        • Initial release. (235 to 4285rpm)
        • with 16F628A Program memory:3.5Kb, RAM: 224b, EEPROM: 128b,
          Ext clock: 20MHz, Internal clock:4MHz, 18pins
      • Version 2.0:
        • [soft] 235 to 30 000RPM in a logarithm rise. (one step = 1millisecond)
        • [hard] C5 moved on PCB
      • Version 2.2:
        • [soft] Use pin13 as a programming checkup.
      • Version 2.3:
        • [soft] 300 to 30 000RPM in a logarithm scale.
        • [soft] Bug corrected.
        • Free software
      • Version 3.0:
        • [soft] 1000 to 30 000RPM in 1000rpm steps.
        • [soft] Starting RPM can be store in memory
        • PIC to buy.
      • Version 3.1:
        • [soft] Loop range (one step from 30.000 to 1000RPM and vice-versa)
      • Version 3.2:
        • [soft] Sweep function to automaticaly browse the RPM range. (1000 by 1000)
      • Version 3.3:
        • [soft] 1000 to 30000RPM in 1000rpm steps.
        • [soft] A push on any button stop the sweep mode.
      • Version 3.4:
        • [soft] Range: 1000 to 20000RPM in 500rpm steps.
      • Version 3.5:
        • [soft] Range: 1000 to 12500RPM in 250rpm steps.
        • [hard] with 16F1847 Program memory:14Kb, RAM: 1024b, EEPROM: 256b,
          Ext clock: 32MHz, Internal clock:32MHz, 18pins
        • PIC to buy.

16 thoughts on “Pickup Simulator v3”

  1. Building a pickup simulator and in the setup it says one can use 9 to 15 volts (dual supply) so I use 2 x 9v batteries.

    Now in the setup notes it also says “Adjust R5 to get +10Vdc at pin14 of DAC08”

    How can I set this pin to 10v when I only have a maximum of 9?

    1. I tried to clarify that above. The DAC can operate from -Vref to +Vref.
      DAC0800 is a 8bit converter, meaning 256 steps. Each step size is Vref/256.
      When the PIC output is 11111111, the output tension of the simulator is Vref then 10volts.
      If Vref is only 8volts, then 11111111 will give +8V and 00000000 give -8v
      It works, you just have a smaller range of voltage.

  2. Hello.
    I built a pickup simulator.
    The image can not be attached, so the URL to the image is shown below.

    ? https://yahoo.jp/box/swYMrw

    The software is freeware ver 2.2.
    When I press the button and change the rotation speed, it is displayed on the LCD, but the output does not change why.
    The pulse width of the output pin and the pulse width remain about 16 ms.
    There is no problem with the polarity selection of the pickup, and it can be checked with the oscilloscope that the waveform also has the polarity selected.

    I tried various investigations including mistakes in wiring, but I do not know what is wrong.

    I used DAC is DAC0800 , not DAC08EN.
    Is it not working properly unless it is DAC08EN?

    Could you please give me some advice?

    Thank you.

    1. Hello,
      It should work with both!

      It’s curious that DAC always gives 16ms which is 3700RPM
      The wave looks ok on your scope.

      What you can do is :
      – first: remove PIC & DAC and test the continuity of PCB between:
      MSB LSB
      DAC0800 5 6 7 8 9 10 11 12
      16F628 9 8 7 6 13 12 11 10
      MSB LSB

      Also check other pins.

      – second:
      remove DAC
      insert PIC
      Focus on MSB (pin9 of PIC) with the scope looking if period is changing according to the LCD display.

      – Have you check that MSB “blink” when you turn power on (it’s a test that prove programming is correct)
      Th.

      1. Hello,
        Thank you for your reply.
        I checked it again, but the problem was not found.
        Subsequently, I probed the 9 pin of PIC and confirmed that a waveform will be generated after edge selection with the push switch.
        The state of each pin immediately after turning on the power supply is as follows.
        PIC 9 pin … Hi
        PIC 6, 7, 8, 10, 11, 12, 13 … Lo
        When an edge is selected in this state, a waveform appears.

        As a pocket type logic analyzer will arrive today, I will use the analyzer to examine the signal between PIC and DAC.
        I will contact you again.

        Thank you.

        1. > PIC 9 pin … Hi
          pin9 is not supposed to stay HIGH, at least for 1second but on normal working it’s not a steady +5v !!
          Set a 1000rpm you must measure 60ms between 2 pulses going out of pin9 (MSB) then change to say 4000RPM and you must read 15ms on your scope.
          Th.

          1. Hello,
            Thank you for your reply.
            I checked the waveform with a logic analyzer.
            The software is PulseView.
            The snapshot is uploaded to the following URL.

            https://yahoo.jp/box/YEZQOK

            Waveform timing does not change at 1000 RPM and 2000 RPM at all.
            RB 3 (9 pin) of PIC is basically Hi level.
            Wrong writing to PIC?

            As a precaution we had programmed 2 PICs, but the same result.
            PIC is PIC16F628A-I/P.
            The program software is MPLAB IPE v 4.05.

            I am pleased if you give me advice.

            Thank you.

          2. Koshi | 4 March 2018 at 2 h 38 min | Reply (Edit)

            Hello,

            Thank you for your reply.
            I verified ver 2.3.
            The interval between the waveform and the waveform has now changed, but there is still a problem.
            Waveform generation timing is later than specification.
            The faster it gets faster, the greater the deviation.
            I uploaded an additional snapshot.

            https://yahoo.jp/box/YEZQOK

            At 1000 RPM (60mS), the waveform interval is 75mS which is 1.25 times.
            At 2000 RPM (30mS), the waveform interval is 45mS which is 1.5 times.
            At 20000 RPM (3mS), the waveform spacing is 18mS which is 6.0 times.
            At 30000 RPM (2mS), the waveform spacing is 17mS which is 8.5 times.

            Every time the rotation speed increases, it is getting late.
            I think that there is a problem with loop processing in the program.

            Would you please verify the program once more now.

            Thank you.

          3. Exact there was a problem during the loop!!
            Please reload the new v2r3c1 on the web page which is much more accurate.
            Thanks for this good feedback Koshi !

  3. Hi Thierry, I have just built the simulator and when loading sim ver2r3c2 to the pick I get an error which says it is not recommended to program this device if both the internal oscillator and internal MCLR are selected. I am using MPLAB ICD2
    Is this correct? I get no display at all and don’t know if it’s my lcd at fault or if it is a software problem. I am getting some pulses out of the unit but these don’t rise above 0 volts. (Suspect my Velleman pocket scope is on the blink!) I will check this with my bench scope tomorrow.

    Best regards
    Les

    1. Hi Les
      I don’t know MPLAB ICD2, it’s probably a WARNING, not a ERROR !

      Have you compare the checksum and the word bytes?
      Done all the steps I described in “First use” section?
      Did you check RB7 at startup?

      There are no output pulses until you have selected polarity edge.
      if the LCD doesn’t work , you can wait 5seconds than press one button, wait 2seconds than press one button to select the polarity blindly…
      Regards
      Th.

      1. Hi Theirry, thanks for the quick response. You’re right, it was just a warning. I tested oh pin 13 on the pic and got no pulses so I rewrote the software onto the chip and I also found that my lcd (not compatible and connected with 16 wires) was not working, found another lcd in my spares box that was pin to pin compatible but 4 rows.. Installes it and everything worked great! Many thanks for a really neat project.
        Regards
        Les

    1. Hi, output connected or not? Tell everything pls.
      Output on air, the range is the same as the range of the power supply.
      If powered by +18Vdc and -18Vdc the output is around the same.
      Th

      1. Hi, only connected to scope, plus minus 12 v, dac adjusted to 10 v, pulsing ok 300 to 30000rpm, pulse selectable plus or minus, pos and neg 12v on both dac and op amp. Op amp is TL071 (texas equivalent of 741)
        thanks
        L

Leave a Reply

Your email address will not be published. Required fields are marked *


5 + 2 =