Close

Embossing Braille Dots

A project log for BrailleRAP DIY Braille embosser

An Open source Braille embosser in the spirit of RepRap

stephaneStephane 05/18/2023 at 20:220 Comments

Basically BrailleRAP is a 2D device that move a tools (the Braille stylus and the corresponding anvil) over a sheet of material. BrailleRAP use a 3d printer control board, we use MKS boards as these boards are compatible with the marlin firmware (https://marlinfw.org/). 

Marlin firmware enable the board to act as 3d printer, but more precisely, it can control several stepper motor in position / speed  / acceleration, read some sensors (endswitch, thermal resistor ...), and drive some tools like 3d printhead, heat bed but also CNC spindle motor etc.

Another feature of Marlin, is the GCODE interpreter. GCODE is a specialized language to control CNC devices. So if you send a correct GCODE command to a board with marlin onboard, marlin will execute the command. For example if you send the GCODE command :

G1 X10 Y10

Marlin will control the motor to move the tool at position X=10mm and Y=10mm

So, we have some commands to move a tool on X and Y axis. On BrailleRAP the X axis is the motor on the left. This X motor move the two trolleys in the direction of the width of the sheet of paper. The Y axis is on the right motor. The right motor move the sheet of paper in and out. If you send the G1 X10 Y10 command to a BrailleRAP, marlin will move the Braille stylus 10 mm from the left side and 10 mm from the top side of the sheet.

Now we need to have some sensor to tell marlin where is the left side and the top side. This is where we use end switches. On BrailleRAP we have 2 end switches, one is activated when the trolleys are on the left side, the another is activated when the paper sheet is engaged in paper rolls.

With the two end switches, we have 2 sensors to detect the trolleys position and paper sheet position. So we can use the GCODE G28 command which is the homing command. G28 X tell marlin to move the X axis until it detect some change on the X endswitch. G28 Y tell marlin to move the Y axis until it detect some change in the Y endswitch. As usual in software it's a bit more complex, but with these 2 commands G28 X and G28 Y we can detect the top left corner of the sheet and define this corner to be X=0 and Y=0.

So has we have A4 sheets of paper wich are 210mm x 297 mm 

X=210 and Y=0 is the top right corner of the paper sheet.

X=0 Y=297 is the bottom left corner of the paper sheet.

X=210 Y=297 is the bottom right corner of the paper sheet.

At this time with Marlin firmware we have some commands to find the left top corner of the paper sheet, and  to move the Braille stylus on the trolley at any given position on the paper sheet.

The next thing is to make a dot. The Braille stylus is on the top of an electromagnet

The electromagnet is wired on the board on the heatbed connector.  This connector is also used to control spindle motor of CNC in marlin. We have configured marlin to use this connector as an on/off connector for the 12V. So if you send the GCODE command M3 S1, marlin will give 12V current to the electro magnet for a short period of time (50ms). As the electro magnet receive 12V current, it move quickly upward and pinch the sheet of paper between the Braille stylus and the anvil. That's it we just made a Braille dot on the paper.

The electromagnet is off, the Braille stylus is down.  We can move the trolleys over the paper

The electromagnet is on. The Braille stylus move upward and pinch the paper in the anvil.

Let sum up where we are at this point, if we send the following GCODE program to a BrailleRAP :

G28 X

G28 Y

G1 X10 Y20

M3 S1

will obtain a Braille dot a 10mm from the left, 20 mm from the top. let's eject the paper sheet from the BrailleRAP

G1 X10 Y297

you can now get the paper sheet.

What we start to understand, BrailleRAP is not a Braille embosser it is just a Braille dot machine, if you want to emboss some Braille text you need to send the GCODE commands to emboss all the dots one after one and at the correct position.

Let say we want to emboss the Braille letter 'R' on the top left corner. According to Braille standard the letter 'R' is figured by 4 dots like this ⠗ (https://en.wikipedia.org/wiki/Braille).

Having a look at the Braille dimension standard for example at https://commons.wikimedia.org/wiki/File:Braille_code_dimensions.jpg#globalusage

In 6 dots Braille, each dot is separate from the others by 2.5 mm in X and Y. For our 'R' letter we need to make dots at positions :

0, 0 the dot in top row ,left column
0, 2.5the dot in middle row, left column
0, 5the dot in bottom row, left column
2.5, 2.5the dot in middle row , right column

the corresponding GCODE program for BrailleRAP is as follow :

G28 X

G28 Y

G1 X0 Y0

M3 S1

G1 X0 Y2.5

M3 S1

G1 X0 Y5

M3 S1

G1 X2.5 Y2.5

M3 S1

and to eject the sheet

G1 X0 Y297

That's all folks, you can now write somme experimental GCODE program in a text file and send it to a BrailleRAP with a software like Pronterface.

Discussions