Bezalel is an open-source, low-cost, 3D printable tactile display designed to create affordable tactile interfaces, particularly for the blind
Bezalel is an open-source, low-cost, 3D printable tactile display designed to create affordable tactile interfaces, particularly for the blind. The project aims to democratize tactile technology by providing a design that can be manufactured at home with minimal resources, making it possible for more people to engage with tactile displays for various applications, from assistive technology to innovative digital interactions. The key differentiator of the Bezalel technology is its that it brings to the open-source world an unparalleled strategy to minimize the amount of actuators necessary to build a tactile display - thus minimizing costs - without sacrificing the speed with which tactile shapes are rendered - thus maximizing the quality of the user interaction.
Why did you decide to make it?This project is a way to leave a meaningful legacy
The inspiration for Bezalel stemmed from a personal experience. When my wife was pregnant with our second child, she was mistakenly diagnosed with an infection that could have caused our daughter to be born blind. Although it turned out to be a misdiagnosis, the situation reignited an old idea of mine - to develop tactile interfaces to improve the way blind individuals interact with digital content. This project is a way to leave a meaningful legacy, contributing to the accessibility and empowerment of those who could benefit from tactile technology.
How does it work?A micro-controller orchestrates the movements performed by actuators in a way that causes some pins to move up while other pins will move down, and other pins to remain still. With this strategy the micro-controller can render tactile shapes.
Bezalel’s core innovation lies in its efficient use of actuators. Unlike traditional tactile displays where each pin requires a separate actuator, Bezalel uses a novel mechanism where a small number of actuators (proportional to the square root of the amount of pins) can efficiently actuate an array of vertical pins. The video below provides an overview of the solution and its purpose:
The design features a matrix of cranks attached to rotary threads. Actuators are placed in the border of the matrix performing either a pull movement or a push movement. When the actuators move, they cause cranks and rotary threads to promote the vertical translation of vertical pins.
Only one actuator is necessary to actuate each row and one actuator is necessary to actuate each column. Therefore the amount of actuators grows linearly with the square root of the number of pins distributed over the surface of the device.
A micro-controller orchestrates the movements performed by actuators in a way that causes some pins to move up while other pins will move down, and other pins to remain still. With this strategy the micro-controller can render tactile shapes.
An algorithm is utilized to plan the sequence of steps necessary to refresh the display. In the worst case scenario a line-by-line process is needed. Thus the time necessary to fully refresh the device also grows linearly with the square root of the number of pins.
The video below illustrates how linear actuation is utilized to rotate cranks in a way that causes the vertical translation of specific pins.
VideosIn past experiments a 3x3 matrix was successfully actuated by 6 servo motors (one for each row and one for each column).
In order to make the technology easier to replicate by any DIY enthusiast, the amount of actuators has been further reduced. There's a new (work in progress) device that utilizes only two stepper motors to actuate the same amount of pins that was previously actuated by the 6 servo motors.
A great advantage of relying on two stepper motors instead of 6 servo motors is that it is simpler to make a g-code compatible device. There are affordable Arduino shields to control a pair of stepper motors and there's also existing opensource firmwares such as GRBL.
The g-code compatible design relies on a cam mechanism to convert the rotation of stepper motor axis into the controlled linear translation of structures that move back and forth. To be more specific, the cam mechanism converts axial rotation into linear actuation.
By varying the stepper motor axis rotation it is possible to achieve any desired pull and push combination, as illustrated in the video below:
A physical prototype of the cam mechanism has been assembled as seen in the video below:
The strategy allowed the successful actuation of the central pin in the matrix, and improvements are being made to allow the actuation of the full matrix.
The video below shows the central pin actuation. The video resembles a stop-motion animation, but it is a real 1x video of the cam mechanisms working on a very high speed. Further investigation is needed to determine how fast the actuators can reliably promote the vertical translation of pins when all the pins are assembled.
How to build the g-code compatible deviceThe video below shows the process of assembling the mechanical parts at the time of writing. The 3D printable STL files are available on Thingiverse.
Sample GRBL configuration
Tests have been performed with the parameters below using microstep resolution of 1/32 (jumpers on mode0, mode1 and mode2).
$0 = 10 (Step pulse time, microseconds)
$1 = 25 (Step idle delay, milliseconds)
$2 = 7 (Step pulse invert, mask)
$3 = 7 (Step direction invert, mask)
$4 = 0 (Invert step enable pin, boolean)
$5 = 0 (Invert limit pins, boolean)
$6 = 0 (Invert probe pin, boolean)
$10 = 1 (Status report options, mask)
$11 = 0.010 (Junction deviation, millimeters)
$12 = 0.002 (Arc tolerance, millimeters)
$13 = 0 (Report in inches, boolean)
$20 = 0 (Soft limits enable, boolean)
$21 = 1 (Hard limits enable, boolean)
$22 = 1 (Homing cycle enable, boolean)
$23 = 0 (Homing direction invert, mask)
$24 = 300.000 (Homing locate feed rate, mm/min)
$25 = 500.000 (Homing search seek rate, mm/min)
$26 = 250 (Homing switch debounce delay, milliseconds)
$27 = 1.000 (Homing switch pull-off distance, millimeters)
$30 = 1000 (Maximum spindle speed, RPM)
$31 = 0 (Minimum spindle speed, RPM)
$32 = 1 (Laser-mode enable, boolean)
$100 = 40.000 (X-axis travel resolution, step/mm)
$101 = 40.000 (Y-axis travel resolution, step/mm)
$102 = 25.000 (Z-axis travel resolution, step/mm)
$110 = 16000.000 (X-axis maximum rate, mm/min)
$111 = 16000.000 (Y-axis maximum rate, mm/min)
$112 = 2400.000 (Z-axis maximum rate, mm/min)
$120 = 150.000 (X-axis acceleration, mm/sec^2)
$121 = 150.000 (Y-axis acceleration, mm/sec^2)
$122 = 200.000 (Z-axis acceleration, mm/sec^2)
$130 = 500.000 (X-axis maximum travel, millimeters)
$131 = 200.000 (Y-axis maximum travel, millimeters)
$132 = 200.000 (Z-axis maximum travel, millimeters)
Sample g-code
The g-code below has been extracted from instructions utilized during the recording of test videos. The basic goal of the g-code is to rotate the stepper motor axis by 45 degrees - either clockwise or counterclockwise - so that the device switches the states of linear actuation mechanisms that cause pins to move up and down.
G21G91X20F300
G21G91Y20F300
G21G91X-20F300
G21G91Y-20F300
G21G91X20F300
G21G91Y20F300
G21G91X-20F300
G21G91Y-20F300
G21G91Y20F300
G21G91X20F300
G21G91Y-20F300
G21G91X-20F300
G21G91Y20F300
G21G91X20F300
G21G91Y-20F300
G21G91X-20F300
The values above have been added to this page for sake of reference. There are plans to publish on the Bezalel Github repository some tools to automate the g-code generation. Feel free to follow the project on Github for more updates.
Future improvementsM5stack solutions
As of now all the experiments with Bezalel technology have been performed with a laptop connected to the device. As a future improvement, M5stack products can help the Bezalel technology to work as a standalone device. It is believed that an M5stack device with a camera would be enough to support multiple interactions such as:
- A blind individual opens a map in front of the M5stack device. The M5stack would generate and send the g-code to render a tactile representation of the map and the user would feel the map on the surface of Bezalel.
- A set of tactile cards (i.e: 3d printed cards with known tactile shapes) is given to a blind person. The cards have a QR code behind them. The individual can autonomously give commands to the device by showing the QR codes to the M5stack device camera.
Seedstudio Grove kits
A key goal of the Bezalel project is to ensure that blind individuals will be able to replicate and improve the technology in the future. This future can be accelerated with the creation of Bezalel kits that associate the convenience of Grove standardized connectors and 3d printed parts containing tactile codes.
High resolution bezalel displays
Building high resolution Bezalel displays is important to ensure that the technology can support blind individuals on a wide range of activities. Existing devices in the market have thousands of vertical pins. The project aims to promote the participation of blind individuals, to leverage the opportunities created by the continuous improvements on the field of affordable 3D printers and also to creatively explore the usage of AI to accomplish the ambitious goal of manufacturing high resolution tactile displays.
Comments