Oporcon Software

The software below is based on Stipe Predanić‘s original Oporcon code, but substantially modified to suit the changed hardware configurations.
All the code is for use with the  DS1992L-F5 1K RAM iButton, and limited to 32 controls.

Oporcon Punching box written in  Mikroelektronika BASIC (free to use , with a very generous 2k program size limitation.)

Key Changes from Stipe’s original

  • Crystal runs at 4.194Mhz
  • Control will beep until the time is set.
  • LED will flash on the minute for the first five minutes.
  • After five minutes there is a quiet beep every minute.
  • Box number is set by port-B, using a dip switch or hard wired.

Make sure MCLRE and BROWNOUT are disabled when blowing the PIC because there is an increased risk of transients tripping a reset when using a step-up regulator,

27:07:2013 – version 1.10.

  • Double read check for the real time clock iButton.
  • Added data check when copying the scratch memory.
  • right click to download.

01:12:2012 – version 1.00


Oporcon Hand-Held reader written in  Mikroelektronika BASIC.
n.b. the code is at the absolute 2k limit for the PIC 16F628.
Change the code to suit the start and finish punching-box numbers, typically 0 & 31

16:12:2012 – version 1.02

  • additional error checking code squeezed in !
  • right click to download


Window/ Delphi Software for PC

16:12:2012 – version 1.01

  • Improved user interface
  • Improved iButton memory-read algorithm
  • major change to  ini file format (see sample raydel.ini file for usage)
  • changed interface format for  FjwW  ( see sample KOR and TLN files )
  • n.b. OR format export not completed.
  • right click to download











1 thought on “Oporcon Software

  1. Kimmo Lehtosaari

    In the epunch sw 1.10 write to button part has following code:
    ‘calculate location of 4th byte of the time in page (0-31)
    endbyte=$31 and (Lo(location) + 3) ‘ use low 5 bits only (0-31)

    Should I change endbyte to some value?
    Currently I have to remove js[2]=endbyte line from code to be able punch successfully. However I would like to use all possible checks that code is written to button correctly.

    ‘ check if scratchpad is correct
    if (js[0]=Lo(location)) and
    (js[1]=Hi(location)) and
    (js[2]=endbyte) then


Leave a Reply

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