UD85C08 custom request

I’ve just sent you a detailed technical request through the contact form on your website regarding a *custom UD85C08 24V firmware* for our application. The request mainly concerns adding a reliable *pulse counter / latched input function on DI1* so that no payment pulse can be missed. Could you please check that you received it and forward it to your technical team?

 

 

 

We are

 

 

 

, a French manufacturer of payment and control terminals for unattended equipment.
We are currently evaluating your UD85C08 24V USB relay / digital input board for integration into one of our products.
The hardware seems very suitable for our application, but we need one additional firmware function to make the digital input reliable for short pulses.
Our application is the following:
- The PC communicates with the UD85C08 via USB.
- Relay 1 is used to send a dry-contact command to an external payment reader.
- After a successful payment, the payment reader generates a dry-contact pulse on one of its outputs.
- This pulse is connected to DI1.
- The pulse duration is configurable and may typically be a few hundred milliseconds.
- DI2 is used as a normal static input to detect whether a card is present.

The problem with standard input polling is that the PC could read:
DI1 = OFF → pulse occurs → DI1 = OFF

In this case, the payment has been completed, but the PC never sees the pulse. For a payment application, we cannot accept this risk.

We would therefore like to know whether you could provide a custom firmware version of the UD85C08 with the following behaviour:

1.Pulse counter on DI1
- Increment a 16-bit or preferably 32-bit counter on each active edge on DI1.
- Detect pulses of at least 100 ms if possible; please tell us the minimum guaranteed pulse duration.
2.Counter must be stored independently from the current DI1 state
- Even if DI1 has returned to OFF, the counter must keep the event.
3.Read counter without automatically clearing it
- Example command:
AT+COUNT1
- Example response:
COUNT1=123
4.Separate command to reset/acknowledge the counter
- Example:
AT+CLEARCOUNT1
5.DI2 can remain a standard digital input for reading the current ON/OFF state.
6.Relay outputs must remain fully controllable by USB as on the standard UD85C08.

An automatic USB/UART notification on every input change would also be useful, but this is optional. The pulse counter is the important function because it guarantees that an event cannot be lost even if the Linux application is temporarily busy.
The target configuration would therefore be:

Linux CPU
|
| USB
v
UD85C08 24V
|
+-- Relay 1 dry contact --> payment reader command input
|
+-- DI1 <-- payment-success pulse
|
+-- DI2 <-- card-present contact

We understand that you have already implemented pulse-counting/custom input behaviour on some of your other products, so we would like to know if the same type of firmware modification can be implemented on the UD85C08.

Could you please confirm:
- Technical feasibility
- Minimum guaranteed pulse duration
- Whether the existing UD85C08 hardware can be used without PCB modification
- Firmware/customization cost or NRE
- Price for 2 prototype units
- Unit price for approximately 50 / 100 / 500 units
- Lead time for prototypes and production
- Whether the customized board can have a dedicated firmware/version identification command

Our preference is to keep the existing UD85C08 hardware and 24V version and only customize the firmware.
If technically feasible, we can quickly order prototypes for validation.

 

 

so I would like to check whether we can use an existing function of the standard UD85C08 instead.
I saw that the digital inputs can directly control the relays.

Could you please confirm exactly how this works?

For example, if DI1 receives a short pulse (e.g. 100–300 ms):

1.Can this pulse switch Relay 1 ON and keep it ON even after DI1 returns to OFF?
2.Can we then read the Relay 1 state through USB to know that the pulse occurred?
3.Can we then reset Relay 1 to OFF by USB command?

What we need is effectively to use Relay 1 as a hardware latch / memory for DI1:
DI1 pulse → Relay 1 stays ON → Linux reads Relay 1 = ON → Linux resets Relay 1

If this is already possible with the standard firmware, we may not need any custom firmware.

Could you also tell me which mode/AT commands should be used for this, and what is the minimum input pulse duration guaranteed to trigger the relay?
Important: we need the relay to stay ON after the input pulse disappears, not simply mirror the current DI1 state.

Back to blog

Leave a comment