Contents
- Introduction
- Physical Description of a Raspberry Pi
- Model A
- Model B
- Model B+
- How to Use a Raspberry Pi with no Accessibility ToolsInstalled
- Running 'Headless'
- The IP Address
- Host Software
- Writing a Memory Card
Introduction
I don't intend in this guide to replace the wealth of good advice and information available from the pages of the Raspberry Pi Foundation, but rather to note those points, hints, tips, tricks and pitfalls that are appropriate to blind or visually impaired Raspberry Pi users.
It may help you to avoid some of the pitfalls, and answer some of the questions, which I was faced with before and shortly after I bought my first Raspberry Pi, with little or no other information available online to help.
I'm not an expert. I'm just a curious hacker and inveterate tinkerer. Corrections and additions are welcomed.
Physical Description of a Raspberry Pi
Model A
Not available at the time of writing.
Model B
Holding the board with the major components uppermost and the longest sides vertical, like portrait printing mode, and with the very obvious double row of GPIO pins in the bottom left corner; call the top edge north, the long edge to the right east, the short edge closest to you south, and the long edge to your left west.
Going round the board clockwise from north to west:
In the centre of the north edge is the USB socket. This will take 2 USB devices.
To the east of this and still on the northern edge is the ethernet port. You can plug a network cable into this port for a wired connection to a network.
in the centre of the eastern edge of the board is the HDMI video connector. This is for plugging in your HDMI television.
At the eastern side of the southern edge of the board is the micro-USB power socket. This is quite
fragile and I'd recommend not repeatedly pulling out the power connector and plugging it back in.
To power off the Raspi, once you have cleanly shut-down Linux, simply power off by unplugging the
mains adaptor or whatever power source you are using.
In the centre of the underside of the southern edge is the SD card holder. To keep costs low, a very simple plastic card holder has been used. The SD card should be inserted VERY GENTLY with the gold contacts uppermost toward the surface of the board and towards the centre. It is not possible to over-state the need for care in inserting and removing a memory card from this holder. It must be the most fragile part of the whole assembly.
On the western edge, furthest south is the RCA jack for composite video. Many of the now redundant portable analogue televisions in the UK have composite video in so this is a good option if you have one available. Of course, this is video only and does not carry sound.
To the north of this connector is the 3.5mm stereo audio output jack. This is a fairly high impedance output and can produce very loud audio, so careful with those headphones.
That completes the tour of the connectors on the edges of the board.
In the south-west corner of the board is the GPIO header connector. This has two rows of thirteen pins.
The pins are numbered from the south to the north. The row closest to the western edge of the board are numbered evenly from 2 to 26. The row furthest from the western edge are numbered oddly from 1 to 25.
The pin connections vary from revision to revision of the board so pay close attention to the Foundation web pages. I don't intend to detail the connection orientation of this GPIO header here.
Description of the CSI (Camera Serial Interface) and DSI (Digital Serial Interface) headers will be added when I have the data.
Model B+
On July 14 2014 the newer Model B+ was released. Here is a description of this version.
Again holding the board with the obvious GPIO pins uppermost and in the bottom-left corner of the board, call the top edge of the board 'north'.
From left to right along the north edge there are now two USB connectors, each bearing two USB sockets for a total of four.
At the extreme right edge of the north side is the RJ45 network connector.
On the eastern edge of the board are, from north to south; a 3.5mm jack socket that now carries both the analogue audio and composite video. Then the HDMI monitor connector, then a micro-USB power connector on the upper surface of the board.
In the centre of the southern edge of the board, on the underside, is a micro-SD card holder. This is a spring-loaded push-to-insert and push-to-release socket which is a great improvement on the previous full-sized SD card holder.
On the western edge the only thing of interest is the GPIO bus. This is the double row of pins, a total of forty. This is an increase from the previous Model B's 26 pin header.
The board now has curved corners and four mounting holes which will take M2.5 hardware. There is a hole in each of the south-west and south-east corners, and on the edge of the board just behind the USB and RJ45 connectors on the western and eastern edges respectively.
How to use a Pi with no Accessibility Tools Installed
At the time of writing there are no distributions of Linux available online which include accessibility features like screen-readers or Braille display drivers enabled out-of-the-box.
So how can I use my Raspberry Pi?
Running 'Headless'
Both of the distros I have tried to date, the Raspbian Wheezy and the Arch Linux distros available for download from the Raspberry Pi Foundation downloads page, have an SSH (Secure Shell) server enabled by default. This makes it possible to connect to the Raspberry Pi from another computer, such as a Windows desktop or laptop machine, or a Linux machine.
To connect directly to the Raspberry Pi without connecting it to your home network you will need a crossover network cable. Note that Mac computer ethernet ports are auto-sensing and a standard ethernet cable could be used to connect between a Mac and your Raspberry Pi.
However, both the Raspbian and the Arch Linux distros are pre-configured for the Raspberry Pi to use
DHCP (Dynamic Host Configuration Protocol). That is, they don't have an IP address until they are
connected to a device containing a DHCP server, such as your home network hub or broadband router.
If you connect your Raspberry Pi directly to another machine with a single cable, you will need to
either change the Raspberry Pi to have a static IP address, in the same subnet as the host machine,
or use a technique called 'IP masquerading'. How to do this is outside the scope of this guide.
Much better to connect your Pi to your home network and let the gateway router issue an IP address.
Once you have succeeded in connecting in this way, you could, if so desired, change the Pi to a
static IP address.
The IP Address
Once you have connected your Raspberry Pi to your home network, inserted a correctly written memory card and booted the Pi you will need to find the IP address.
Here we encounter some problems. There is a large number of different broadband routers and hubs out there. Most of these have a management web page from which you should be able to find the host name or IP address.
The accessibility or not of these web pages can be a bit hit and miss. My router is a BT Home Hub, and although some pages in the management system are quite complex, the host names of devices currently connected to my wired network appear on the front page.
From this I have been able to discern that the out-of-the-box host names for the two distros I have used are:
- raspberrypi for Raspbian Wheezy
- alarmpi for Arch Linux
One way of easily finding the IP address from a Windows machine is to open a command shell and type:
ping -c 1 raspberrypi
For Raspbian, or
ping -c 1 alarmpi
For Arch.
If the Pi is reachable, you should see some replies from the Pi along with the IP address.
If the result is destination host unreachable, either the Pi is not configured or connected correctly, or the MODEM/router to which the two machines are connected does not contain the ability to resolve host names. If this is the case you will need to find out the range of IP addresses that your router is configured to issue to machines using DHCP.
When you have discovered this range, try pinging some of these addresses, being careful to correctly identify the Pi. If you get a reply from an address which you think might be the Pi, try it again with the Pi unplugged from the network. If the replies have disappeared, that was the correct IP address. Doing this should not result in the Pi being given a different address when you plug it back in.
Host Software
If you are using a Windows machine to connect to your Raspberry Pi with an SSH connection, I know of two different pieces of host software which are accessible:
- PuTTY
- Tera-Term
Probably the most well known of these two is PuTTY. Download PuTTY from here.
However it is important to note that the way in which PuTTY does it's screen output is non-standard on Windows, which may lead to some accessibility difficulty. The screen-reader I use on Windows is NVDA, the installation of which includes an app module to make PuTTY more accessible. I still find Tera-Term more usable though.
When installing Tera-Term it is important to note one phenomenon I have found using NVDA, which
might equally have ill effects with other screen-readers; the install gives the option of installing
a macro-helper sub-program. When I installed this I got a program which appears in the system-tray
in Windows and which obviously 'hooks' into key-strokes and menu selections for recording macros.
This caused menus to become silent for some reason. I fixed it by stopping the Tera-Term macro
recorder from starting at boot.
This macro recorder is called 'collector' by Tera-Term.
You need to also be careful to install a version of Tera-Term which includes the SSH plug-in.
You can download Tera-Term from here.
From a Linux machine, simply typing ssh at a terminal prompt followed by the user and the hostname seperated by an '@', like this:
ssh pi@raspberrypi
Will launch an SSH session and from there you can give the password and connect.
Here are instructions for using SSH from a Mac, provided by Erik Burgraf.
Mac OS includes an accessible shell called terminal.
You can find terminal by opening the finder from the dock, pressing command shift A to open the applications folder, Typing u, or UT or arrowing down to utilities and in the utilities folder, press T for terminal.
Once terminal is focused, you can press command shift T to add terminal to the dock since you may be using it frequently from now on.
press command O to open terminal.
To connect to your pie, type ssh followed by a space, then username, at sign, host name like this:
ssh pi@raspberrypi
Voiceover reads new output from the terminal automatically and should prompt you for the password. If you want to read the terminal window's history, press control option left arrow.
Thanks for the help on this Erik.
Writing a Memory Card
The Linux files you will find on the Raspberry Pi Foundation download page are .img files. These are byte-for-byte images of what will be on a card, and as such simply dragging and dropping or using copy and paste to place them on a card will not work.
Here we run into some difficulty. The Windows program recommended by the foundation is called Win32DiskImager, which is written with a GUI library called Qt, which I have found to be notoriously poor on Windows for accessibility. I am not sure how other screen-readers cope with it but NVDA finds it totally quiet. I have partially written an app module for NVDA to fix this but as I have exclusively switched to writing cards with Linux, this work is incomplete.
To use Win32DiskImager you may need sighted assistance.
There is an alternative application called WinFlashTool. One of the nice features of winflashtool is a check-box which will make it impossible to accidentally write a .img file to one of the fixed disks in your system. [Download WinFlashTool from here][winf].
Instructions for how to write a card in Linux is outside the scope of this guide and is well documented on the Foundation pages.