Tuesday, December 25, 2012

Welcome to Ultra-BRAILLE!


Imagine a Braille literacy scenario: a room filled with blind children and adults enjoying themselves

  • some reading their English textbooks
  • some the Bible, the Koran, and other holy writings
  • some writing or editing a manuscript for a book
  • some learning French or Mandarin on the internet
  • some providing distance counseling
  • some teaching Braille in a classroom halfway around the globe
  • a scholar writing an acceptance speech as a Nobel Prize awardee

PRESENTATION at the LinuxFest Northwest Conference at Bellingham Technical College in the State of Washington, April 28, 2013, 10:00 AM

from LFNW website (http://www.linuxfestnorthwest.org/)

The June 17, 2014 cached copy of my presentation is at my website at:

The original version was at this URL:


This is a "bird's eye view" of the Braille Literacy Tool (Ultra-Braille), that is a product of five years of research at the Ateneo de Manila University. In one year, a group of students would conduct an undergraduate research thesis on one aspect of the system. Another group of students would do another aspect the next year, and so on. At the end of five years, we had a complete system going.

I am a retired professional and a member of the faculty of the School of Science and Engineering of the Ateneo de Manila University (on leave).  I undertook the project, together with my students, listed below, who are now professionals in their own respective fields.  They have agreed that this project will be "open source."  Braille Literacy is very close to my heart, because I know that this is one bridge that can lead the blind to greater self-actualization and dignity, and claim their rightful place in society.  

  • 2004 - Abueva & Suamen / Calasanz (Braille Pins & Opening Files)
  • 2005 - Calasanz (Assessment and Planning)
  • 2006 - Flores & Pelecio / Calasanz (Edit/Save Text Files & Access Internet)
  • 2007 - Pacot, Palileo, Sabulao, Semblante / Calasanz  Multiplexed Display & Keyboard & Ultrasonic Sensors for Navigation)
  • 2008 - Domingo, Pasion, Ramos, Tan / Calasanz (5-Terminal, One PC)

This is a cached screenshot of the March 31, 2008 "Manila Times" article on the project. It was continued on in 2009 to produce a prototype. The article itself is cached by Google.

  • 1 Mid-Range Personal Computer
  • 5 blind persons (each with 1-Keyboard and 1-Refreshable Braille Display)
  • 1 sighted person with Keyboard and Monitor
  • 1 easy-to-build hardware box (intermediate-level technician skill)
  • 1 driver software (intermediate-level "C-Language" programming skill)
  • FREE Open Source Vector Linux Operating System


       ====> The Braille Literacy Classroom on YouTube
       ====> The Braille Literacy Classroom on Power Point
       ====> The Braille Literacy Classroom on PDF

  • What are the existing conditions?
  • Where is the need?
  • How does the system fill the need?
  • What are the features of the system?
  • Does the system complement/supplement other systems?
  • How affordable is it?
  • What about the skills level needed for its maintenance?


I am still in the process of providing further details, but ENJOY!

    Tuesday, December 18, 2012

    The Braille Literacy Tool

    ONE low-cost mid-range computer, provides keyboards and refreshable Braille displays for up to 5 users, with a sighted resource having own keyboard and display monitor

    The computers can be networked in such a way that each computer will serve 5 visually impaired users and 1 sighted person.

    • FOR FREE - hardware schematics and the computer program will be provided to interested parties for FREE.  The operating system, Vector Linux, is also available as open source OS on the internet.
    • The Operating System is the Open Source "Vector Linux," that is available for free on the internet. There will be no need to buy expensive high-tech hardware, nor software, for this to work.

    By DESIGN: 

    • the Electrical Schematic Diagrams use "off-the-shelf" hardware so that the SYSTEM can be easily fabricated by anyone, with intermediate-level technician skills
    • the Driver Software is written in simple C-language routines, for intermediate-level programming skills 
    • the Operating System is FREE and needs minimal computer resources to operate
    • mid-range Personal Computers have been chosen to make a low-cost and affordable system

    The visually impaired will READ and WRITE, access INFORMATION and KNOWLEDGE available on the internet, or intranet, and enhance their contribution to the productivity of the community.

    Tuesday, December 11, 2012

    Braille Standards

    Various Braille standards have been developed and switching from one to another requires considerable experience in each.

    This TOOL will "translate" the Braille into a standard of choice!

    All that the user needs to do is ACTIVATE a software SWITCH, and in many cases, voila! The Braille system will behave according to what the user's preferences. For example, a user who wants to use the Nemeth Code will simply activate the software switch for that standard. The same goes one who prefers Gardner-Salinas, or Unicode Braille Patterns (coding is in accordance with ISO/TR 11548-1 Communication aids for blind persons), or BANA.

    Various Links Related to Braille Standards, Representations, Patterns, etc.
    1. https://nfb.org/factsaboutblindnessintheus (Statistical Facts about Blindness in the United States)
    2. http://www.worldblindunion.org/English/Pages/default.aspx (The World Blind Union (WBU) is the global organization representing the estimated 285 million people worldwide who are blind or partially sighted. Members are organizations of and for the blind in 190 countries, as well as international organizations working in the field of vision impairment.)
    3. http://www.iceb.org/ubc.html (International Council on English Braille (ICEB), Unified English Braille Code (UEBC) Research Project)
    4. http://en.wikipedia.org/wiki/Nemeth_Braille
    5. http://en.wikipedia.org/wiki/Gardner_Salinas_braille
    6. http://en.wikipedia.org/wiki/Braille
    7. http://www.parl.gc.ca/HousePublications/Publication.aspx?DocId=3726342&Language=E&Mode=1&Parl=40&Ses=2 (CANADA, 40th PARLIAMENT, 2nd SESSION, Standing Committee on Official Languages)
    8. http://www.brailleauthority.org/tg/web-manual/index.html (Guidelines and Standards for Tactile Graphics, 2010 - Developed as a Joint Project of the Braille Authority of North America and the Canadian Braille Authority L'Autorité Canadienne du Braille)
    9. http://www.cde.ca.gov/sp/se/sr/documents/braillereadstand.pdf (Braille Reading Standards)
    10. http://www.brailleauthority.org/update07/update07.html (BANA Braille Codes Update 2007)
    11. http://www.tiresias.org/research/links.htm
    12. http://projectaspiro.com/en/service-providers/Pages/default.aspx
    13. http://www.brailleauthority.org/update-cbc10/cbc-specialsymbolsupdate2010.pdf (Computer Braille Code (CBC) Update 2010 - Special Symbols Page)
    14. http://www.unicode.org/charts/PDF/U2800.pdf (Braille Patterns)
    15. http://www.icevi.org/pdf/educator_january_2009.pdf (The International Council for Education of People with Visual Impairment)
    16. http://www.abledata.com/abledata_docs/Braille_Writers_Printers_Software.htm (Fact Sheet on Braille Writers, Printers and Software)
    17. http://www.ukaaf.org/bauk-site/docs/bcnn.pdf (Braille Computer Code)
    18. http://en.wikipedia.org/wiki/Blindness (Blindness)
    19. http://www.brailleauthority.org/research-ueb/rrtc-ueb-pilotstudy2003.pdf (Literary Unified English Braille Code versus Standard Braille: A Pilot Study Comparing Experienced Braille Readers Reading Rates, Miscues, and Regressions)
    20. http://www.brl.org/ebae/ (English Braille: American Edition 1994) 

    Tuesday, December 4, 2012

    The Business Process

    This is an “Open Source” “Braille Literacy Tool” that anyone, anywhere in the world, can build on his/her own, for FREE! One has to simply download the

    • the software,
    • the electrical schematic diagrams, and
    • the instructions on how to build it.
    • Everything that is downloaded from this website will be FREE!

    However, not everyone would be able to build the system themselves, nor would everyone be willing to invest the time to build it. Under such a situation, there would be an organization that would sell the finished product, hopefully at a cost that is subsidized by a non-profit FOUNDATION.

    Anyone who will build and sell it for profit will need to contribute a specific percentage of the gross sales to the FOUNDATION. 

    Tuesday, November 27, 2012

    The Foundation

    To fund this FREE "Open Source" service, one could:
    • Set-up a Foundation and solicit "Grants" for its continued operation.
    • The Foundation will employ members of communities of the visually impaired and of the handicapped to make and sell the product to those who neither have the skill, nor the desire to build it themselves. 

    Tuesday, November 20, 2012

    Ancillary benefits to the FOUNDATION

    • Will lead the way in its affordable Braille Literacy Program! The program progresses by integrating the internet into the every pedagogy. A study of Shakespeare, for instance, might also include a search of commentaries by authors and by the reading public, as well as, entries in Encyclopediae, and the like.
    • Anything that is encoded in a text file can be read in a refreshable Braille display! Other non-text materials, such as images of text like Fax messages, could be converted into text via an optical recognition system (OCR). And affordable at that!
    • The members of the FOUNDATION might decide to take up the challenge of re-writing and customizing the software, opening up a new set of job opportunities. And they could even accept software development engagements. They might even bring the project to different, though, more effective directions.
    • The Foundation, in cooperation with communities of the Blind, could branch out into Braille Literacy Centers. To reduce capital investment, the Centers might have only one classroom for many subjects and for different class levels. For example, one user from one level could take up a subject in Literature, another in Math in another year level, and so on. This is possible because each user has an independent keyboard/Braille display combination and each user may access different parts of the PC file-system, at the same time. When networked, each user will have access to a whole new development and learning environment.
    • Users may now access technical papers on the internet, or the intranet, and conduct research that was heretofore possible only on expensive machines on the basis of a 1_x_machine‑to‑1_x_VisuallyImpairedUser ratio. With this system, we have 

    1_machine-to-5_VisuallyImpairedUsers PLUS 1_SightedUser

    A network 10 of these PC's will serve 50 visually impaired and 10 sighted users. Could one imagine this network extending from developed countries to remote, underdeveloped areas of the world? 

    A School or a Talking Book Library could TRAIN EDUCATORS at those areas to gain a geometric multiplier effect.

    Tuesday, November 13, 2012

    Kiosks and Community Reading Centers

    What about setting-up strategically located "Kiosks", or reading stations at "Talking Book Libraries"? What about setting them up at Community Centers of the Blind? 

    Tuesday, November 6, 2012

    Technical Description of the Tool

    • Get one inexpensive mid-range Personal Computer
    • Attach one add-on hardware box to its printer port (easily fabricated, with simple design)
    • Connect 5 standard keyboards to this hardware
    • Connect 5 Braille display readers to partner with each keyboard (simple design using off-the-shelf electrical and hardware items)
    • Install a free downloadable operating system with its built-in text-based internet browser (Vector Linux 5 OS with text browser Lynx)
    • Install a small program to communicate with the 5 keyboards and the 5 Braille displays (Simple C++-language programs easily maintained by mid-level programmer)
    • Results - one inexpensive PC serving 5 visually impaired users, PLUS one sighted person using his own keyboard and monitor. (A total of 6 persons on one inexpensive PC)
    • Configure 10 of these PC's in a network - and you have a system serving a community of 10*5=50 visually impaired and 10 sighted persons
    • Teach the fabrication and programming to other persons with disability - and you have enlarged the job market for those others, who usually have less access to jobs
    • Area of Innovation: inexpensive and easily replicable, using lower technology PC's

    Tuesday, October 30, 2012

    Hardware Schematics - Snippets

    At this point, I want to state the hardware and software principles that guided the project over the five years of research at the Ateneo de Manila University (School of Science and Engineering's Electronics, Computer and Communications Engineering Department)

    • By DESIGN, the project will use only "low-level" technology, because they are more affordable and more readily available than their more "hi-tech" counterparts.  This translates into 
      • The use of the open-source Vector Linux OS and of Lynx Text Browser, and the use of TTL's (Transistor-Transistor Logic, such as the 7400 series), discrete bi-polar transistors, and wires, solders and nails.  
      • The software system that we developed are written in "C-language", using simple routines that could run on mid-range Personal Computers.  
      • All hardware components are, equally, available from component stores in developed and in developing economies.  
      • Both the Software and Hardware systems could be maintained by intermediate-level programmers and technicians.  
    • All my students have agreed that this is an open-source project that will provide the blind with access to vast sources of knowledge on the internet.  We hope to provide them with some of the tools that are available to sighted persons, for their personal development, and for them to take on leadership roles in their respective communities.
    • The ECCE Department, where I served as an Associate Lecturer (now on leave), has fully supported these humanitarian principles.

    What follows are snippets of hardware schematics for the 5-terminal system.  These have been refined over the 5-year period that the research was conducted.

    PC ==> Software ==> Interface Hardware ==> Opto-Isolator ==> Refreshable Braille Displays

    PC <== Software <== Interface Hardware <== Opto-Isolator <== Keyboards

    Block diagram of the overall circuit design.  

    • Entry from each keyboard is monitored at specific "bits" at the status port.  
    • Each refreshable Braille display has an address, which is specified by three "bits" C0, C2, and C3 of the control port.
    • Each of the "pins" at the Braille displays are activated by codes sent to "cells", whose address appear at the control port.

    Pin Designations of the Printer Port.  

    • Port 378(HEX) is bi-directional.  In this project, it is used, exclusively, as an output port in order to accommodate older computers.  It also makes the programming simpler, giving room for intermediate-level programmers.
    • Port 379(HEX) is a status port.  Each of the five available status bits monitor one of the five keyboards.  The signal from the keyboards are transmitted serially; while the status port receives parallel inputs.  In the ordinary run of things, this is not a viable scheme.  BUT YES, IT CAN BE DONE!  We developed a hardware interface program that configures the five pins of status port to behave like SERIAL INPUT ports.  And it WORKS!
    • Port 37a(HEX) is a complex port, which has an output function, but also controls the behavior of the entire port itself.  Care is taken that the program returns all the printer port configurations to their state prior to the program's usage of the port.

    PS/2 Pin Assignments.  Two of the pins of the keyboard are connected to the computer, namely, the "Ground" pin (3) and the "Data" pin (1).  The Vcc may be supplied from any source.  

    Keyboard Inverter Circuit.  

    • The computer hardware inverts inputs from the keyboard, except the one connected to bit S7 (pin 11).  For ease of trouble-shooting (e.g., connections to oscilloscopes) and of programming, we decided to use a 2N2222A to invert the signal from the keyboard connected to this pin.  
    • This is a prototype, and all conditions are controlled.  Even then, for safety considerations, we provided a diode that isolates negative-going signals in case the ground is disconnected, otherwise, the base-emitter junction of the transistor would act as a 5-volt zener diode, and burn itself.  On the other hand, a positive-going signal would not hurt the transistor because the base-emitter junction would be forward-biased, and this section of the 2N2222 is very rugged.
    • In a system that will be working outside the confines of the laboratory, it will be essential to provide opto-isolators for ALL CONNECTIONS WITH ANY COMPUTER PORT.  This will prevent any electrical transient from entering the computer circuitry.

    Decoder Circuit - This is a rather involved schematic diagram and I will postpone discussion on it.  At the moment, I want to provided a few words to the general aspects of the system.

    Terminal Selection - This is a rather involved schematic diagram and I will postpone discussion on it.  At the moment, I want to provided a few words to the general aspects of the system.

    Cell Selection - This is a rather involved schematic diagram and I will postpone discussion on it.  At the moment, I want to provided a few words to the general aspects of the system.

    Data Output - This is a rather involved schematic diagram and I will postpone discussion on it.  At the moment, I want to provided a few words to the general aspects of the system.

    Overall Schematic - This is a rather involved schematic diagram and I will postpone discussion on it.  At the moment, I want to provided a few words to the general aspects of the system.

    The following "TRUTH TABLES" are very useful tool for the commissioning of the system.  It provides the input combinations that are required to accomplish the control output.  

    Truth Table for Control Port

    Truth Table for Terminal Selection

    Truth Table for Cell Selection

    Truth Table for Data Output

    Decoder Commands

    User Keyboard and Status Pins

    Input Byte Read from the Parallel Port

    Tuesday, October 23, 2012

    Salient Software Features

    The system software is composed of four distinct components:

    • VectorLinux 

    • - "Speed, performance, stability -- these are attributes that set VectorLinux apart in the crowded field of Linux distributions.The creators of VectorLinux had a single credo: keep it simple, keep it small and let the end user decide what their operating system is going to be. What has evolved from this concept is perhaps the best little Linux operating system available anywhere. For the casual computer user you have a lightning fast desktop with graphical programs to handle your daily activities from web surfing, sending and receiving email, chatting on ICQ or IRC to running an ftp server. Power users will be pleased because all the tools are there to compile their own programs, use the system as a server or perhaps the gateway for their home or office computer network. Administrators will be equally as pleased because the small size and memory requirements of the operating system can be deployed on older machines maybe long forgotten." (http://vectorlinux.com/) 

    • Lynx 
      - "Lynx is a text-only web browser originally designed to run on UNIX, but today it also runs on Linux, VMS, MacOS, Windows and other platforms. It was initially developed by a team of University of Kansas students in 1992 for distributing information on a campus-wide information system and as a Gopher client, but it quickly became popular with visually impaired users because of its text-to-speech friendly interface. Although less used today as part of text-to-speech translating systems due to the technological improvements in screen readers, Lynx is still developed, useful, and it’s included as part of many Linux and UNIX distributions, includingCygwin. Lynx is licensed under the GNU General Public License.

      Some uses for Lynx:
      - Reading documentation or downloading files in a text-based environment
      - To access websites without graphical displays
      - For use on low bandwidth Internet connections
      - For use on older and slower computer hardware
      - For fast, safe browsing of text-based web sites
      - Search Engine View Emulation
      - Incorporating into scripts and to automate tasks

      Advantages of Lynx:
      - Fast, free, and safe
      - Handles cookies
      - Has many options
      - Multilingual"

    • The Control and Analysis Program written in C-Language

      There are four of these programs, and they will need to be stitched together to form one working environment.

    Obtaining User Input

    Child Process

    • The Hardware Interfacing Program, also written in C-Language

      This program manages all the input and output functions of the system.

    General Flow Overview.  I am repeating this diagram here, because all the system and interfacing software are written to support this system configuration.

    Keyboard to Printer Port.  This is a general block diagram of the system.

    • Five more keyboards are connected to the computer via a hardware system that connects to the printer port of the computer.
    • Paired with the five keyboards are five Braille displays.  They are driven by the computer through the printer port, and a hardware system that bridges the computer with the Braille displays.

    Scope Tracing of Keyboard Waveforms.  

    • We superimposed two oscilloscope channels for this picture.  
    • The lower waveform is that of the keyboard "clock", and the top, that of the "data" signal.  
    • The computer translates a key-press into a waveform on its "data" signal line that goes out as a serial signal.  
    • The computer receives this signal and interprets it to produce the key that was pressed.

    State Duration for the character "a".  

    • We have experimentally taken this ratio for each of the keys of the keyboard
    • developed an algorithm to identify the key in question
    • give the key pressed to our program
    • accordingly interpret the meaning of the key pressed

    The table below provides a Summary of Major Hardware Interface Commands  The codes on the first two columns are in HEX.  The ones enclosed by the square brackets "[" and "]" are in BINARY form.  Keep in mind, however, that C0, C1, C2, and C3, have Inverting, Inverting, Non-Inverting, and Inverting outputs, respectively.

    37ah, 02 [1001] // command to select terminal, disable latch
    378h, 00 [0000] // select terminal 1
    37ah, 03 [1000] // enable latch
    37ah, 02 [1001] // disable latch
    37ah, 0a [0001] // command to send cell address, disable latch
    378h, 00 [0000] // select cell 1
    37ah, 0b [0000] // enable latch
    37ah, 0a [0001] // disable latch
    37ah, 0e [0101] // command to send data, disable latch
    378h, 0f [1111] // send 1111
    37ah, 0f [0100] // enable latch
    /* at this pt, four LEDs light up! */
    37ah, 0e [0101] // disable latch

    Tuesday, October 16, 2012

    Other Materials of Interest

    Braille Setup at Laboratory

    Five keyboards and the PS2

    Five sets of Braille displays

    LEDs displaying the contents of a textfile

    Turbo Debugger Screen

    Refreshable Display Cells

    The Refreshable Display Pin

    Coil Driver Circuit

    Power Rectifier Scheme

    Braille Power Transformer

    Braille Pins - 1

    Braille Pins -2 

    The cells of this Braille system consist of eight pins per cell, using the UNICODE set (http://www.unicode.org/charts/PDF/U2800.pdf).  The traditional Braille cell consists of the top six dots of the UNICODE set.