Description of the assembly process

The Genius i110 was chosen as the most accessible digital numpad block

Photo of the numpad

Photo of the numpad

We used a 3D printer to print a housing block for the Raspberry PI and the other components. It’s installed between the upper and lower parts of the numpad.

Here’s a link to the 3D model file: https://yadi.sk/d/p17KZhWofAukK

This is how to install the Raspberry PI inside the numpad.

This is how to install the Raspberry PI inside the numpad.

To take the numpad apart: take off cover holding the cable, remove the rubber feet and undo the screws under them.

Photo of the numpad

Photo of the numpad

After pulling apart the fasteners take out the control board. Desolder the cable.

Disassembled numpad photo.

Disassembled numpad photo.

After removing the cable put the board back into the case.

Numpad board photo.

Numpad board photo.

Numpad board photo.

Numpad board photo.

Numpad board photo.

Numpad board photo.

After we take off the bottom lid the keys are not supported and cannpt working. We need to put something under them, one of the ways is to press them down with a metal plate. To do this we need to carefully remove the film matrix and the rubber seam from the keys, cut all 4 centering stumps (they will get in the way). Then we put the rubber and film back in place.

Disassembled numpad photo.

Disassembled numpad photo.

Disassembled numpad photo.

Disassembled numpad photo.

To make the process easier and faster we use hot-melt glue to attach the metal plate. The keyborad should be placed so that the keys hang from the numpad without touching the table surface. One can do it by turning the numpad upside down on the typing case.

Photo of upgraded numpad.

Photo of upgraded numpad.

First the keyboard layers should be leveled with respect to each other, then we need to level the cables with the carbon surfaces on the control board. The cable is fixed with glue.

To start gluing from the bottom of the numpad, the metal plateis pressed firmly against the numpad and the glue is applied so that it catches on to the edge of the plate and flows on the case. We keep holding the plate until the glue hardens. We then do the same on the board side, putting some glue on the side of the case because the board itself isn’t attached firmly enough.

Now we only need to reinforce the joint between the cable and board. This can be done with a piece of silicone and a couple of pieces of plastic.

Photo of numpad cable joint.

Photo of numpad cable joint.

Photo of numpad cable joint.

Photo of numpad cable joint.

In the process we forgot to save some space for an On/Off button and now we need to do something.

Photo of numpad insert.

Photo of numpad insert.

It turned out that printed plastic can be drilled easily. We used a 10 mm wood drill at max screwdriver rpm.

Photo of numpad insert.

Photo of numpad insert.

A 10 mm hole isn’t big enough so we have to make it bigger with a thread file or a hot soldering iron. We use PSW-3 clicking buttons.

Photo of numpad cable joint.

Photo of numpad cable joint.

The Raspberry PI board is installed in the case and its edges are fixed with hot-melt glue.

Photo of numpad insert with Raspberry PI.

Photo of numpad insert with Raspberry PI.

Photo of numpad insert with Raspberry PI.

Photo of numpad insert with Raspberry PI.

Photo of numpad insert with Raspberry PI.

Photo of numpad insert with Raspberry PI.

We decided to use M3x10 metal props to put this “sandwich” together. We needed to put two of them in line to get the required length. The props can be screwed in place of the original screws in three corners (the Raspberry PI board gets in the way of the fourth prop). We had to use a bit of force to screw them in as the holes are a little smaller than needed.

Photo of upgraded numpad.

Photo of upgraded numpad.

The device will use a Li-Ion battery taken out of a mobile phone external charger. It already has a 5V voltage converter and a charging circuit.

Photo of battery.

Photo of battery.

We can’t install the charging board right next to the receptacle due to the props. We’ll therefore use a separate micro-USB receptacle.

Photo of charging board.

Photo of charging board.

Photo of charging board.

Photo of charging board.

We supply power to the Raspberry PI board from the output of the conversion board by connecting them together as shown.

Photo of attached power supply.

Photo of attached power supply.

Photo of attached power supply.

Photo of attached power supply.

An on/off button is soldered in the break.

Photo of attached power supply.

Photo of attached power supply.

The button and charging receptacle are glued onto the case with hot-melt glue.

Photo of attached power supply.

Photo of attached power supply.

We connect the numpad to one of the Raspberry PI USB-slots – in this case the one on the bottom. After this is done it’s best to cover it so nobody can stick a flash drive here.

Photo of disassembled audiobook player.

Photo of disassembled audiobook player.

We put the components inside the case and glue them in place.

Photo of disassembled audiobook player.

Photo of disassembled audiobook player.

The upper and lower parts of the keyboard are brought together with props and screws, also jamming in place the central components.

Audio player assembly.

Audio player assembly.

Done!

Фото собранного плеера

Completed audio player.

Price of components for audio book player:

1) Numpad – $10

2) 3D-printing of insert – $10

3) Raspberry PI – $41

4) Battery – $12

Total: $73

Circuit description

The device is based on the Raspberry PI Model B – M2 monoboard computer.

Фото схемы тифлоплеера

Circuit of the audiobook player for visually impaired people

Input is by means of a Genius i110 digital keyboard block with a USB – M1 interface. The keyboard is connected to one of the stationary USB-ports of the Raspberry PI board.

The second USB-port XS1 is used to connect to the data storage.

A stationary 3.5 audio jack of the XS2 board is used for sound output through speakers of headphones.

The device is powered by a 3.6 V Li-Ion battery, form-factor 18650, 2600mAh – GB1 capacity which operates together with the charge/discharge M3 circuit extracted from a portable car battery. M3 output has a 5V voltage and a current up to 1000 mA. Any charging device with output voltage of 5V and current at least 1000 mA can be used for charging.

The device is switched on with a PSW-3 – SB1 type push button. Any other commutation element such as a toggle switch or a slide switch can be used.

Operating the audiobook player

Main changes:
– Fixed the bug causing problems with stereo mp3 playback
– Added an option to set a directory for mp3 files. All files in the directory are played.
– Multi-language support.

All changes are made as 2 patches for the git:
sources/meta-kolibre/recipes-kolibre/libkolibre-clientcore/files/add_mp3_and_russian.patch
sources/meta-kolibre/recipes-kolibre/libkolibre-narrator/files/add_russian.patch

In order to build a new image with any set of languages:
– Install Ubuntu 14.04
– sudo apt-get install gawk wget git-core diffstat unzip texinfo build-essential chrpath libsdl1.2-dev xterm uuid cvs bc vorbis-tools sox espeak uuid-dev
– call “sudo dpkg-reconfigure dash” and select No when it asks you to install dash as /bin/sh.
– Open file sources/meta-kolibre/recipes-kolibre/kolibre-sample-client-data/kolibre-sample-client-data.bb for editing with a text editor
– In the lower file section after the line # build database with narrator-utils comment out the languages which are not required. Not more than 15 languages can stay uncommented.
– Switch to the directory ~/test
– Execute in the terminal doWithoutWrite.sh name where the desired name for the image is stated
– All images will be created in the directory ~/test/outImgs

In order to save the image on a memory card:
– Insert the memory card
– type «sudo fdisk -l» in Terminal and find the name of the inserted card (for example /dev/sdc)
– unmount all the memory card partitions «umount /dev/sdc[1,2]»
– switch to the directory ~/test
– execute «doWrite.sh path_to_img.img /dev/sdc», in Terminal where the first parameter is the path to the image and the second is the name of the memory card

You can also switch to the ~/test directory and execute «do.sh /dev/sdc» in Terminal. This will compile the image and directly save it on the memory card ( the memory card has to be inserted).

Settings file.
In order to add your own numpad: enter the numpad VID as a value of the INPUT_DEVICE= in the settings file settings.ini of the memory card.
In order to add a new path for the mp3 files: create a new section with the name [MP3Path_name], where “name” can be any valid name. In this section, create variables NAME=name and PATH=/media/0113-F0CF/music, where 0113-F0CF — is a name of the flash memory storage which can be viewed on the PC and music is the folder with .mp3 files of the flash memory storage

Link to source & firmware: https://yadi.sk/d/RXZ6qGNMexS9U

Audiobook player prototype

We decided to mount the audiobook player in the body of a numpad, making it bigger to accommodate a Raspberry Pi and battery

3D model of the insert for the numpad

A picture of the 3D model of the insert for the numpad

A picture of the 3D model of the insert for the numpad

A picture of the 3D model of the insert for the numpad

A picture of the 3D model of the insert for the numpad

As we progressed we fixed several bugs in the original firmware:

  1. Added support for 43 languages so that as many people on the planet as possible could use. We split the firmware in 3 parts, each supporting 15 languages + English.
  2. Fixed the bug that caused problems with stereo mp3 playback.
  3. Added an option to set a directory for mp3 files. All files in the directory are played.
  4. Put together the completed device.

List of supported languages:

  1. sq; Albanian
  2. en; English
  3. ar; Arabic
  4. hy; Armenian
  5. af; Afrikaans
  6. bs; Bosnian
  7. cy; Welsh
  8. hu; Hungarian
  9. vi; Vietnamese
  10. el; Greek
  11. da; Danish
  12. id; Indonesian
  13. is; Icelandic
  14. es; Spanish
  15. it; Italian
  16. ca; Catalan
  17. zh-CN; Chinese (Simplified)
  18. ko; Korean
  19. ht; Haitian Creole
  20. la; Latin
  21. lv; Latvian
  22. mk; Macedonian
  23. de; German
  24. nl; Dutch
  25. no; Norwegian
  26. pl; Polish
  27. pt; Portuguese
  28. ro; Romanian
  29. ru; Russian
  30. sr; Serbian
  31. sk; Slovak
  32. sw; Swahili
  33. th; Thai
  34. ta; Tamil
  35. tr; Turkish
  36. fi; Finnish
  37. fr; French
  38. hi; Hindi
  39. hr; Croatian
  40. cs; Czech
  41. sv; Swedish
  42. eo; Esperanto
  43. ja; Japanese

Audiobook player for the blind and visually impaired

We are developing several devices. One of them is an audiobook player for visually impaired people that works with mp3 and DAISY formats (the latter is an audiobook format designed specifically for blind people; in Russia, the LKF format is used)

Picture of the audiobook player

Picture of the audiobook player

 

We took Kolibre Vadelma as a starting point.

We want to improve it and translate it into as many languages as possible, and also make a fully functional device.