# Copyright 2025 PostalPortal LLC and Netsyms Technologies LLC
#
# Redistribution and use in source and binary forms, with or
# without modification, are permitted provided that
# the following conditions are met:
#   1. Redistributions of source code must retain
#      the above copyright notice, this list of conditions
#      and the following disclaimer.
#   2. Redistributions in binary form must reproduce
#      the above copyright notice, this list of conditions
#      and the following disclaimer in the documentation
#      and/or other materials provided with the distribution.
#   3. Neither the name of the copyright holder
#       nor the names of its contributors may be used
#       to endorse or promote products derived from
#       this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
# CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES,
# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
# TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
# WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
# THE POSSIBILITY OF SUCH DAMAGE.


#
# Hardware configuration
#
UART_ID = 0 # TX/RX: UART 0: 0/1, 12/13, or 16/17; UART 1: 4/5 or 8/9
UART_TX_PIN=0
UART_RX_PIN=1
BUZZER_PWM_PIN = 12 # Pin for passive buzzer PWM
TRIGGER_BUTTON_PIN = 9 # Pin to read for scan trigger button, connect trigger button between this and ground
TRIGGER_PIN = 2 # Pin that connects to the scan module's trigger line, pulls the line low while the user is pressing the trigger button
UP_BUTTON_PIN = 10 # Pin to read for navigation up button
DOWN_BUTTON_PIN = 11 # Pin to read for navigation down button
HAS_WS2812 = True # Has an WS2812/Neopixel, will use instead of normal LED
WS2812_PIN = 3 # GPIO pin for WS2812
LED_PIN = 3 # "LED" for testing, 3 for prod
FIRMWARE_VERSION = "0.0.1"

#
# Scanner configuration
#
SCAN_GAP_MS = 50 # Amount of time to wait for more characters from the scan engine before sending a barcode
MAX_BARCODE_LENGTH = 8192 # Barcodes longer than this from the scan engine are assumed to be a glitch
TESTMODE = False # Sends a simulated barcode scan every 5 seconds
AIM_PREFIX = True # The engine prepends the AIM barcode ID (]XX, examples: ]L0 for PDF417, ]C0 or ]C1 for Code128)
BARCODE_SCAN_INTERMISSION = 1000 # Amount of time to inhibit scanning after a scan

#
# USB configuration
#
VID = 0x1209 # USB Vendor ID
PID = 0xA003 # USB Product ID
MANU = "PostalPortal LLC" # USB manufacturer string
PROD = "PostalPoint Barcode Scanner" # USB product string
INTERFACE = "PostalPoint" # Interface string
USBHID_ENABLED = True # Disable USB, use serial output only (good for debugging)


#
# Display configuration
#
ENABLE_DISPLAY = True # Set to False to ignore display commands
DISPLAY_WIDTH = 128
DISPLAY_HEIGHT = 64
CHAR_WIDTH = 8
CHAR_HEIGHT = 8
# Available pin combinations for I2C:
# I2C 0 – SDA: GP0/GP4/GP8/GP12/GP16/GP20
# I2C 0 – SCL: GP1/GP5/GP9/GP13/GP17/GP21
# I2C 1 – SDA: GP2/GP6/GP10/GP14/GP18/GP26
# I2C 1 – SCL: GP3/GP7/GP11/GP15/GP19/GP27
# Just don't conflict with the pin assignments for the sensor and buttons!
DISPLAY_SDA_PIN = 4
DISPLAY_SCL_PIN = 5
DISPLAY_I2C_CONTROLLER = 0
