Fritzing is a popular open source software that is used by the maker community for creating circuit diagrams and schematics. Companies like Arduino, Adafruit and Sparkfun have contributed libraries of their parts that can be dragged and dropped onto the "canvas" and connected to components. Each part exists as an image of a part in a "breadboard view", its schematic symbol, and a PCB view.
Many online tutorials use Fritzing's circuit diagrams in their projects because they are easy to understand for beginners; however these diagrams aren’t accessible to blind makers.What are Tactile Schematics?
Lauren Race's master's thesis work on Tactile Schematics and the paper “Designing Tactile Schematics: Improving Electronic Circuit Accessibility" lay out best practices for creating tactile schematics for blind Arduino users.
See "Related Work" at the bottom of the page for more information on tactile graphics and Blind Arduino.METHODOLOGY
A schematic is a visual representation of a circuit. It is meant to communicate a circuit to someone else. Although there are formal rules for schematic design, many choices are left to the designer. Additionally, abstract representations can be mixed with perceptible representations to create a pseudo-schematic.
I chose to modify Fritzing because it facilitates learning from the perceptual to the abstract, rather than vice versa, which makes it easier to tailor a schematic's level of abstraction. This choice was informed by the paper "Designing Educational Materials for a Blind Arduino Workshop" which gives several first person accounts of blind workshop participants using tactile schematics. For instance, one blind participant remarked, "It wasn’t clear to me what parts of the spatial stuff I should take literally and what parts were symbolic.”
It was also informed by my own experiences with difficulty comprehending abstract concepts via symbols.
- Make it easier for sighted tutorial designers to include tactile schematics in their tutorials and workshops.
- Make tactile schematics that can be easily tailored to the correct level of abstraction.
- Find ways to create a tactile schematic at home without expensive equipment.
- Edit the Fritzing schematic view in order to export an SVG schematic with net widths, connection points, orientation, components, colors, and labels suitable for a tactile schematic.
- Provide generic Fritzing parts with a tactile schematic view based on Lauren Race's work.
- Provide instructions for exporting, modifying, printing and creating tactile schematics on this page.
- Component sizing, braille translation, and symbol optimization require can't be replaced by automation. Generated schematics need modifications and testing to be sure they're legible.
- Time constraints only allowed me to create a few Frtizing parts with a tactile schematic view, so the available parts are limited.
- Requires a sighted user to create the schematic in Fritzing and review the SVG schematic before printing.
Note: Adding a tactile schematic alone won't make your tutorial or workshop accessible. Writing a circuit description that can be read by a screenreader, using good image alt text, using headers, and breaking up large blocks of text into logical sequential steps are all additional things you can do to improve accessibility.INSTRUCTIONS1. INSTALL
You'll need to install Braille fonts in order to see the Braille labels. The font recommended by Lauren Race is Apple Braille. Swell Braille was created since then specifically to work well with swell paper, and I found it swelled more easily.
Additionally, you'll need Inkscape or another way of editing the SVG schematic after it's exported from Fritzing.1.1 Download the modified Fritzing parts
They're in the attached repository.
Modified Fritzing is a work in progress. It currently provides:
- Braille labels
- Text labels default to indigo
- Large hollow connection points where >2 wires connect
See the Future Work section for what it still needs.
Create your circuit design as you normally would. If you're new to Fritzing, there are step-by-step tutorials on their site here.2.1 Route your schematic
On the schematic tab, the wires appear as dotted lines, or "rats nest" before you route them. Click "Autoroute." Autoroute usually provides a good first pass, but not all traces are autoroutable. You can connect these manually. Sometimes you may have trouble connecting two parts in your schematic view.
By default, traces (wires) in Fritzing are grey. Select all of the traces and convert them to black.
Make sure traces are straight and at right angles. In a tactile schematic, non-right angles convey component information (e.g. the zigzag of a resistor).
Fritzing allows you to tailor your schematic to your audience. For instance, do you need to label your resistor's tolerance or just its ohm value?2.2 Download your schematic
Fritzing allows you to easily export an SVG. Choose "File" > "Export" > "As Image" > "SVG."3. MODIFY THE SVG
You should always look over your exported schematic to make sure that the SVG looks correct. Sometimes things look different after export than they looked in Fritzing's schematic view. For instance, Fritzing's default thermistor schematic part loses its characteristic line on export because the SVG's part isn't grouped correctly.
Open your SVG in Inkscape or your preferred SVG editor.3.1 Add missing components
Since many components aren't available in their tactile format, they will have to be added afterwards in Fritzing. You can find Lauren Race's library of SVG tacticle components here.3.2 Add Braille labels
By default, the included labels might not be appropriate for your audience. For instance, should you label a pin by its pin number or function?
If you look at the "Character Map" tab for Apple Braille on the fonts101 site, you can see that the character codes for Braille are different than the codes for the ASCII alphabet. That's because this is a Unicode Braille font. It uses the U+2800 block space of Unicode. The characters also don't appear in the same order as they do in ASCII fonts (Note: Braille ASCII fonts do exist).
You can use a Braille Translator to convert text to Unicode Braille. Be aware that automatic Braille translators won't always create good translations when using grade 2 Braille. This Guide to Typesetting ADA Braille explains further about the different grades of Braille and how Braille contractions work.
Lauren Race's Rules for Braille labels on Tactile Schematics:
- Use all lowercase, grade 1 Unicode Braille
- Font Size: 24-26pt, Leading: 28.8
- 0.25" offset from the part they represent (if you can't put it close enough, use a 2pt dotted stroke leader line)
Because I wanted modified Fritzing to play nice with components that don't yet have a tactile schematic, the parts are about 60% smaller than the recommended part sizes for Tactile Schematics. Change your inkscape canvas size to 8.5x11" and scale your design to fit.
More rules from Lauren Race:
- If labels take up more than 20% of the page, use a key on a facing page.
- There should be at least .25 inches of breathing room around each component.
If you try any of these methods, please let me know what works in the comments.4.1 Swell Touch Paper
Also called capsule or microcapsule paper, this paper "puffs” when printed on with carbon-based ink and exposed to heat. You can buy it here.
- It doesn't require special ink.
Most regular black inks, like HP 45 black ink, are carbon-based. I was using an off-brand black ink and it didn't have enough carbon, so this is the one case where you should heed your printer's warning and use the brand name ink. Colored ink doesn't contain graphite and it won't swell. This is why blue lettering is used on the schematics to include non-tactile information like text labels.
- It doesn't require a special printer.
You can use a regular inkjet printer to print on the paper. I used my in my HP 6600 inkjet.
The matte side of the paper is the side with the heat sensitive microcapsules, so make sure that side gets printed on. The smoother, whiter side is the back.
If printing multiple sheets, remove the page as soon as it is printed to prevent the ink from smearing.
- It doesn't necessarily require a special heater.
You can buy a $1,500 Swell Form Machine with Tungsten lights and rollers to evenly heat the paper's surface, but you could also try common household objects that emit infrared heat.
Here's a video from Applied Science showing how to swell the paper using an infrared flash photography light. Here's another video showing how to use a 500W shop lamp (wear sunglasses to protect your eyes if you try either of these methods).
I was partly successful using a halogen shoplight, although I the thick strokes overdeveloped. I ended up changing the thickest stroke width to 0.05" (previously it was 0.09") and this helped to create a more even exposure, but it was still difficult to move the shoplight over the paper in a uniform way.
Storage note: Swell paper dries out quickly, and is also damaged by too much moisture. Store it tightly sealed and away from direct light and heat sources.4.2 Collage
The cheapest way to create a tactile graphic is to print your design on cardstock and then carefully trace the lines using a fast drying, silicone-based precision jewelry glue like Barely Art. You can also glue down foil, string, or cut (or laser cut) pieces of cardboard from a cereal box to create a raised surface.
In order to write more legible braille, you could try embossing using a Braille stencil.4.3 Laser Cutting and 3D printing
There are plenty of resources explaining how to create laser cut graphics. Laser cutters can also be used to heat the swell paper precisely, as shown in this video.
You can find best practices here for how to 3D print tactile graphics here: http://diagramcenter.org/3d-printing.html4.4 Tactile Displays
Products like the T3 Tactile Tablet and ViewPlus IVEO can make tactile graphics more usable. You can position the graphic on the tablet's surface and record custom interactive audio annotations for when certain areas of the tactile graphics are pressed.
The state of the art for displaying tactile graphics are refreshable tactile displays like the Graphiti. They are capable of animation and haptic feedback that can add interactivity to a graphic. However, they're pretty costly (Graphiti costs $25,000) and the 60x40 pin display might not be high enough resolution for some schematic images.
Perhaps one day, refreshable tactile displays will be able to make EDA software accessible to the blind.FUTURE WORK
Creating a functional version of Fritzing that can export tactile graphics requires a significant amount of work.
- The first step is adding more parts to the alternative library of Tactile Schematic Fritzing parts. These could be imported to use in regular Fritzing and used to create tactile schematics that require modification.
- The second step is modifying Fritzing so it exports more precise modified schematics.
As a shortcut, for this project I modified the default schematic view of Fritzing to make it produce a tactile schematic. Future work would require either:
- Adding a separate tactile schematic view (a much more involved process).
- Adding a switch on the current schematic view that lets you toggle between types of schematics.
- Adding a "tactile schematic SVG export" button that exports the SVG with the predefined tactile schematic specifications.
Additionally, a tactile view should provide:
- Ability to move Braille labels around the page. Create dotted lead lines to the indicated component if labels are further than 0.25."
- Updated auto-router logic to provide optimal negative space.
- Intelligently scale and export designs in 8.5x11" format.
- Option to export a printable key showing each schematic component with more detailed Braille labels.
Finally, I would like to try more methods to create legible tactile schematics that don't require expensive equipment, since the methods I used to heat swell paper weren't especially successful.CONTRIBUTE
Contribute tactile schematic parts
Refer to Lauren Race's guide for designing tactile schematics for specifics.
There are many good guides for creating Fritzing parts, but I ran into some challenges specifically with tactile parts because of Fritzing's grid-based system. I plan to write my own guide for doing creating Fritzing parts with tactile schematics.
Contribute to the project on Github
This is obviously a work in progress and contributions are welcome! In order to contribute, you'll need a Linux Machine (or a virtual machine running linux) with Qt 5.15.RELATED WORK
Tactile Graphics Best Practices:
- An Introduction to Tactile Graphics - defines terms and provides methods for producing tactile graphics
- https://www.tactilegraphics.org - this site explains how to create tactile graphics using collage methods, swell paper, and foil.
- http://diagramcenter.org/3d-printing.html - this site has guides for 3D printing tactile graphics as well as decision trees for when to use tactile graphics, voiceovers, or haptics.
- Interdependent Variables: Remotely Designing Tactile Graphics for an Accessible Workflow - this research paper has some good tips for collaging handmade tactile graphics
- Marco Schuffelen's manual on creating graphics for the blind
- Producing braille on swell paper: A study of braille legibility
- The Blind Arduino Blog - contains many tutorials for blind arduino.
- Smith Ketterwell Technical File - archive of blind electronics info and tutorials
- Nonvisual arduino - Lauren Race's guide to teaching non-visual arduino workshops
- Designing Educational Materials for a Blind Arduino Workshop
Thanks to Jen Mankoff and Kelly Mack for instructing CSEP 590A: The Future of Accessible Technology