BV30 bill acceptor for a vending machine using a ESP32-S3 or Arduino Uno R3

Hello Arduino Community,

I hope you’re all doing great. I’m currently working on a vending machine project designed to sell filtered water, and I’m using the BV30 bill acceptor from Innovative Technology Ltd. for handling payments. While the hardware setup is in place, I’ve been facing challenges establishing communication between the BV30 and my microcontroller. I’ve tried both the ESP32-S3 and the Arduino Uno, but I haven’t been able to get a successful response from the BV30.

Project Overview:

  • Bill Acceptor: BV30 (configured for SSP protocol).
  • Microcontrollers: ESP32-S3 and Arduino Uno.
  • Goal: Establish communication via SSP protocol to enable the vending machine to process the bills.

What I’ve Tried So Far:

1.SSP Protocol Implementation:

  • Sent the 0x11 (sync) command to initiate communication.
  • Monitored the TX and RX lines using a logic analyzer to verify signal transmission.
  1. Voltage Level Shifting:
  • Used a TXS0108E level shifter to safely convert voltage levels between the BV30 (5V) and the ESP32-S3 (3.3V).
  1. Pull-Up Resistors:
  • Added 10kΩ pull-up resistors to the BV30's TX line to stabilize signals.
  1. Common Ground:
  • Ensured the BV30 and microcontroller share a common ground connection.
  1. Debugging with Arduino Uno:
  • Tested the BV30 with the Arduino Uno (which operates at 5V logic levels) to simplify voltage compatibility issues.

Issues Encountered:

  1. Sync Command Failure:
  • The BV30 does not respond to the 0x11 sync command, and the RX line remains idle after the command is sent.
  1. Baud Rate:
  • The BV30 and microcontrollers are set to 9600 baud, but no response is observed.
  1. Signal Stability:
  • Despite adding pull-up resistors and monitoring the signals, the BV30 TX line does not show any activity after a command is sent.
  1. Testing with Arduino Uno:
  • Even with direct 5V logic, the Arduino Uno also fails to receive any response from the BV30.

Software example used:

Questions for the Community:

  1. Has anyone successfully interfaced the BV30 with a microcontroller like the ESP32-S3 or Arduino Uno? If so, could you share your approach or working code?
  2. Are there additional considerations for the SSP protocol that might be causing the communication failure?
  3. Does the BV30 require any special initialization steps beyond sending the sync command?
  4. Are there alternative ways to debug or test the BV30 (e.g., with a computer via a USB-to-RS232 adapter)?

Any help, guidance, or examples of working code would be greatly appreciated. I’m open to trying alternative approaches to resolve this issue. Thank you in advance for your time and support!

Best regards,

Andre Robinson

What documentation are you using for the BV30 bill acceptor?

1 Like

Thank you Paul for your reply. the documentation I use is the BV30 manual that it is available at Innovative Technology that is the company that build that unit and also the GA973 SSP Implementation Guide v2.2 that also is reachable in internet.

ok, then I guess you are all set. Good luck.

Even that the issue persist and I cannot get the communication between the BV30 and the microprocessor.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.