diff --git a/Android/Gradle/app/src/main/res/xml/usb_devices.xml b/Android/Gradle/app/src/main/res/xml/usb_devices.xml index 0ed0f7ab9..61f789f1f 100644 --- a/Android/Gradle/app/src/main/res/xml/usb_devices.xml +++ b/Android/Gradle/app/src/main/res/xml/usb_devices.xml @@ -340,6 +340,11 @@ + + + + + diff --git a/Autostart/AppStream/org.a11y.brltty.metainfo.xml b/Autostart/AppStream/org.a11y.brltty.metainfo.xml index 295b13729..b8dcab0ef 100644 --- a/Autostart/AppStream/org.a11y.brltty.metainfo.xml +++ b/Autostart/AppStream/org.a11y.brltty.metainfo.xml @@ -375,6 +375,11 @@ usb:v1C71pC124* + + + + usb:v1C71pC131* + diff --git a/Autostart/Hotplug/brltty.usermap b/Autostart/Hotplug/brltty.usermap index 26070adfe..31b4706af 100644 --- a/Autostart/Hotplug/brltty.usermap +++ b/Autostart/Hotplug/brltty.usermap @@ -355,6 +355,11 @@ brltty 0x0003 0x1c71 0xc121 # HumanWare [Humanware BrailleOne (serial protocol)] brltty 0x0003 0x1c71 0xc124 +# Device: 1C71:C131 +# HumanWare [Humanware Brailliant BI 40X (HID protocol, firmware 1.0)] +# HumanWare [Humanware Brailliant BI 40X (HID protocol, firmware 1.1)] +brltty 0x0003 0x1c71 0xc131 + # Device: 1C71:CE01 # HumanWare [NLS eReader (HID protocol, firmware 1.0)] # HumanWare [NLS eReader (HID protocol, firmware 1.1)] diff --git a/Autostart/Udev/device.rules.in b/Autostart/Udev/device.rules.in index 8cbc2cafc..8f095edff 100644 --- a/Autostart/Udev/device.rules.in +++ b/Autostart/Udev/device.rules.in @@ -364,6 +364,11 @@ ENV{PRODUCT}=="1c71/c121/*", ENV{BRLTTY_BRAILLE_DRIVER}="hw", GOTO="brltty_usb_r # HumanWare [Humanware BrailleOne (serial protocol)] ENV{PRODUCT}=="1c71/c124/*", ENV{BRLTTY_BRAILLE_DRIVER}="hw", GOTO="brltty_usb_run" +# Device: 1C71:C131 +# HumanWare [Humanware Brailliant BI 40X (HID protocol, firmware 1.0)] +# HumanWare [Humanware Brailliant BI 40X (HID protocol, firmware 1.1)] +ENV{PRODUCT}=="1c71/c131/*", ENV{BRLTTY_BRAILLE_DRIVER}="hw", GOTO="brltty_usb_run" + # Device: 1C71:CE01 # HumanWare [NLS eReader (HID protocol, firmware 1.0)] # HumanWare [NLS eReader (HID protocol, firmware 1.1)] diff --git a/Autostart/Windows/brltty-libusb-1.0.inf b/Autostart/Windows/brltty-libusb-1.0.inf index 33a268e79..4bf6917cc 100644 --- a/Autostart/Windows/brltty-libusb-1.0.inf +++ b/Autostart/Windows/brltty-libusb-1.0.inf @@ -288,6 +288,9 @@ HKR,,Icon,,-20 ; Device: 1C71:C124 "LibUSB-1.0: HumanWare [Humanware BrailleOne (serial protocol)]"=LIBUSB_DEV, USB\VID_1C71&PID_C124 +; Device: 1C71:C131 +"LibUSB-1.0: HumanWare [Humanware Brailliant BI 40X (HID protocol, firmware 1.0)], HumanWare [Humanware Brailliant BI 40X (HID protocol, firmware 1.1)]"=LIBUSB_DEV, USB\VID_1C71&PID_C131 + ; Device: 1C71:CE01 "LibUSB-1.0: HumanWare [NLS eReader (HID protocol, firmware 1.0)], HumanWare [NLS eReader (HID protocol, firmware 1.1)]"=LIBUSB_DEV, USB\VID_1C71&PID_CE01 @@ -647,6 +650,9 @@ HKR,,Icon,,-20 ; Device: 1C71:C124 "LibUSB-1.0: HumanWare [Humanware BrailleOne (serial protocol)]"=LIBUSB_DEV, USB\VID_1C71&PID_C124 +; Device: 1C71:C131 +"LibUSB-1.0: HumanWare [Humanware Brailliant BI 40X (HID protocol, firmware 1.0)], HumanWare [Humanware Brailliant BI 40X (HID protocol, firmware 1.1)]"=LIBUSB_DEV, USB\VID_1C71&PID_C131 + ; Device: 1C71:CE01 "LibUSB-1.0: HumanWare [NLS eReader (HID protocol, firmware 1.0)], HumanWare [NLS eReader (HID protocol, firmware 1.1)]"=LIBUSB_DEV, USB\VID_1C71&PID_CE01 diff --git a/Autostart/Windows/brltty-libusb.inf b/Autostart/Windows/brltty-libusb.inf index 63ea0d736..95c828664 100644 --- a/Autostart/Windows/brltty-libusb.inf +++ b/Autostart/Windows/brltty-libusb.inf @@ -375,6 +375,9 @@ ServiceBinary = %12%\libusb0_x64.sys ; Device: 1C71:C124 "LibUSB-Win32: HumanWare [Humanware BrailleOne (serial protocol)]"=LIBUSB_DEV, USB\VID_1C71&PID_C124 +; Device: 1C71:C131 +"LibUSB-Win32: HumanWare [Humanware Brailliant BI 40X (HID protocol, firmware 1.0)], HumanWare [Humanware Brailliant BI 40X (HID protocol, firmware 1.1)]"=LIBUSB_DEV, USB\VID_1C71&PID_C131 + ; Device: 1C71:CE01 "LibUSB-Win32: HumanWare [NLS eReader (HID protocol, firmware 1.0)], HumanWare [NLS eReader (HID protocol, firmware 1.1)]"=LIBUSB_DEV, USB\VID_1C71&PID_CE01 @@ -734,6 +737,9 @@ ServiceBinary = %12%\libusb0_x64.sys ; Device: 1C71:C124 "LibUSB-Win32: HumanWare [Humanware BrailleOne (serial protocol)]"=LIBUSB_DEV, USB\VID_1C71&PID_C124 +; Device: 1C71:C131 +"LibUSB-Win32: HumanWare [Humanware Brailliant BI 40X (HID protocol, firmware 1.0)], HumanWare [Humanware Brailliant BI 40X (HID protocol, firmware 1.1)]"=LIBUSB_DEV, USB\VID_1C71&PID_C131 + ; Device: 1C71:CE01 "LibUSB-Win32: HumanWare [NLS eReader (HID protocol, firmware 1.0)], HumanWare [NLS eReader (HID protocol, firmware 1.1)]"=LIBUSB_DEV, USB\VID_1C71&PID_CE01 @@ -1093,6 +1099,9 @@ ServiceBinary = %12%\libusb0_x64.sys ; Device: 1C71:C124 "LibUSB-Win32: HumanWare [Humanware BrailleOne (serial protocol)]"=LIBUSB_DEV, USB\VID_1C71&PID_C124 +; Device: 1C71:C131 +"LibUSB-Win32: HumanWare [Humanware Brailliant BI 40X (HID protocol, firmware 1.0)], HumanWare [Humanware Brailliant BI 40X (HID protocol, firmware 1.1)]"=LIBUSB_DEV, USB\VID_1C71&PID_C131 + ; Device: 1C71:CE01 "LibUSB-Win32: HumanWare [NLS eReader (HID protocol, firmware 1.0)], HumanWare [NLS eReader (HID protocol, firmware 1.1)]"=LIBUSB_DEV, USB\VID_1C71&PID_CE01 diff --git a/Drivers/Braille/HumanWare/Makefile.in b/Drivers/Braille/HumanWare/Makefile.in index a1f9a3a1e..9b5c7743c 100644 --- a/Drivers/Braille/HumanWare/Makefile.in +++ b/Drivers/Braille/HumanWare/Makefile.in @@ -18,7 +18,7 @@ DRIVER_CODE = hw DRIVER_NAME = HumanWare -DRIVER_COMMENT = Brailliant BI 14/32/40, Brailliant B 80, BrailleNote Touch, BrailleOne, APH Chameleon 20, APH Mantis Q40, NLS eReader +DRIVER_COMMENT = Brailliant BI 14/32/40, Brailliant B 80, BrailleNote Touch, BrailleOne, APH Chameleon 20, APH Mantis Q40, NLS eReader, Brailliant BI 40X DRIVER_VERSION = DRIVER_DEVELOPERS = Dave Mielke include $(SRC_TOP)braille.mk diff --git a/Drivers/Braille/HumanWare/braille.c b/Drivers/Braille/HumanWare/braille.c index 1feb40fd0..c758474aa 100644 --- a/Drivers/Braille/HumanWare/braille.c +++ b/Drivers/Braille/HumanWare/braille.c @@ -90,6 +90,14 @@ BEGIN_KEY_NAME_TABLES(BI40) KEY_NAME_TABLE(command), END_KEY_NAME_TABLES +BEGIN_KEY_NAME_TABLES(BI40X) + KEY_NAME_TABLE(routing), + KEY_NAME_TABLE(thumb), + KEY_NAME_TABLE(braille), + KEY_NAME_TABLE(command), +END_KEY_NAME_TABLES + + BEGIN_KEY_NAME_TABLES(B80) KEY_NAME_TABLE(routing), KEY_NAME_TABLE(thumb), @@ -128,6 +136,7 @@ END_KEY_NAME_TABLES DEFINE_KEY_TABLE(BI14) DEFINE_KEY_TABLE(BI32) DEFINE_KEY_TABLE(BI40) +DEFINE_KEY_TABLE(BI40X) DEFINE_KEY_TABLE(B80) DEFINE_KEY_TABLE(touch) DEFINE_KEY_TABLE(C20) @@ -139,6 +148,7 @@ BEGIN_KEY_TABLE_LIST &KEY_TABLE_DEFINITION(BI14), &KEY_TABLE_DEFINITION(BI32), &KEY_TABLE_DEFINITION(BI40), + &KEY_TABLE_DEFINITION(BI40X), &KEY_TABLE_DEFINITION(B80), &KEY_TABLE_DEFINITION(touch), &KEY_TABLE_DEFINITION(C20), @@ -179,6 +189,14 @@ static const ModelEntry modelEntry_BI40 = { .keyTableDefinition = &KEY_TABLE_DEFINITION(BI40) }; +static const ModelEntry modelEntry_BI40X = { + .modelName = "Brailliant BI 40X", + .modelIdentifier = HW_MODEL_HW_BI40X, + .hasBrailleKeys = 1, + .hasCommandKeys = 1, + .keyTableDefinition = &KEY_TABLE_DEFINITION(BI40X) +}; + static const ModelEntry modelEntry_B80 = { .modelName = "Brailliant B 80", .hasCommandKeys = 1, @@ -224,6 +242,7 @@ static const ModelEntry *modelTable[] = { &modelEntry_BI14, &modelEntry_BI32, &modelEntry_BI40, + &modelEntry_BI40X, &modelEntry_B80, &modelEntry_touch, &modelEntry_C20, @@ -840,6 +859,11 @@ static const ResourceData resourceData_serial_one = { .protocol = &serialProtocol }; +static const ResourceData resourceData_serial_BI40X = { + .model = &modelEntry_BI40X, + .protocol = &serialProtocol +}; + static const ResourceData resourceData_HID = { .protocol = &hidProtocol }; @@ -869,6 +893,11 @@ static const ResourceData resourceData_HID_one = { .protocol = &hidProtocol }; +static const ResourceData resourceData_HID_BI40X = { + .model = &modelEntry_BI40X, + .protocol = &hidProtocol +}; + static int connectResource (BrailleDisplay *brl, const char *identifier) { static const SerialParameters serialParameters = { @@ -1017,6 +1046,27 @@ connectResource (BrailleDisplay *brl, const char *identifier) { .data = &resourceData_HID_one, .resetDevice = 1 }, + + { /* Humanware Brailliant BI 40X (HID protocol, firmware 1.0) */ + .vendor=0X1C71, .product=0XC131, + .configuration=1, .interface=1, .alternative=0, + .inputEndpoint=4, .outputEndpoint=5, + .verifyInterface = 1, + .data = &resourceData_HID_BI40X, + .resetDevice = 1 + }, + + { /* Humanware Brailliant BI 40X (HID protocol, firmware 1.1) */ + .vendor=0X1C71, .product=0XC131, + .configuration=1, .interface=0, .alternative=0, + .inputEndpoint=1, .outputEndpoint=2, + .verifyInterface = 1, + .data = &resourceData_HID_BI40X, + .resetDevice = 1 + }, + + + END_USB_CHANNEL_DEFINITIONS GioDescriptor descriptor; diff --git a/Drivers/Braille/HumanWare/brldefs-hw.h b/Drivers/Braille/HumanWare/brldefs-hw.h index 3c09bc450..e38be3465 100644 --- a/Drivers/Braille/HumanWare/brldefs-hw.h +++ b/Drivers/Braille/HumanWare/brldefs-hw.h @@ -45,6 +45,7 @@ typedef enum { HW_MODEL_APH_MANTIS_Q40 = 0X12, HW_MODEL_NLS_EREADER = 0X13, HW_MODEL_HW_BRAILLE_ONE = 0X14, + HW_MODEL_HW_BI40X = 0X15, } HW_ModelIdentifier; typedef union { diff --git a/Programs/bluetooth_names.c b/Programs/bluetooth_names.c index be73a5eaa..15d783150 100644 --- a/Programs/bluetooth_names.c +++ b/Programs/bluetooth_names.c @@ -97,6 +97,13 @@ const BluetoothNameEntry bluetoothNameTable[] = { // HumanWare: Brailliant BI BLUETOOTH_NAME_ENTRY("Brailliant BI", "hw"), + + // HumanWare: Brailliant BI 20X + BLUETOOTH_NAME_ENTRY("Brailliant BI 20X", "hw"), + + // HumanWare: Brailliant BI 40X + BLUETOOTH_NAME_ENTRY("Brailliant BI 40X", "hw"), + // HumanWare: Brailliant BI 14 BLUETOOTH_NAME_ENTRY("Brailliant 14", "hw"), diff --git a/Programs/usb_devices.c b/Programs/usb_devices.c index 2d8f9b654..23df42bdd 100644 --- a/Programs/usb_devices.c +++ b/Programs/usb_devices.c @@ -364,6 +364,11 @@ USB_DEVICE_ENTRY(0X1C71, 0XC121, "hw"), // HumanWare [Humanware BrailleOne (serial protocol)] USB_DEVICE_ENTRY(0X1C71, 0XC124, "hw"), +// Device: 1C71:C131 +// HumanWare [Humanware Brailliant BI 40X (HID protocol, firmware 1.0)] +// HumanWare [Humanware Brailliant BI 40X (HID protocol, firmware 1.1)] +USB_DEVICE_ENTRY(0X1C71, 0XC131, "hw"), + // Device: 1C71:CE01 // HumanWare [NLS eReader (HID protocol, firmware 1.0)] // HumanWare [NLS eReader (HID protocol, firmware 1.1)] diff --git a/Tables/Input/hw/BI40X.ktb b/Tables/Input/hw/BI40X.ktb new file mode 100644 index 000000000..d65ad1024 --- /dev/null +++ b/Tables/Input/hw/BI40X.ktb @@ -0,0 +1,24 @@ +############################################################################### +# BRLTTY - A background process providing access to the console screen (when in +# text mode) for a blind person using a refreshable braille display. +# +# Copyright (C) 1995-2021 by The BRLTTY Developers. +# +# BRLTTY comes with ABSOLUTELY NO WARRANTY. +# +# This is free software, placed under the terms of the +# GNU Lesser General Public License, as published by the Free Software +# Foundation; either version 2.1 of the License, or (at your option) any +# later version. Please see the file LICENSE-LGPL for details. +# +# Web Page: http://brltty.app/ +# +# This software is maintained by Dave Mielke . +############################################################################### + +title HumanWare Brailliant BI 40X + +include thumb.kti +include braille.kti +include command.kti +include routing.kti