This is the story of my pyANS script, a Raspberry Pi A+ based portrait ANSI Scroller and myself.
To understand, I have this unreasonable addiction to ANSI art from back in the BBS days, the artists abilities to create with the character set available always intrigued me. I have long pondered how to put together a digital frame to display this art at home, more specifically a portrait digital frame.
I’d love to build some static light boxes one of these days as seen over at http://ansi.notchill.com/, they also built a version of a digital scroller for an exhibition called. How I would have loved to have been able to attend that event. Having read through the article their version of the digital scroller is a bit beyond my current technical abilities so I continued considering other options.
The answer lay in the availability of the small form factor ARM computers, in this case I had a Raspberry Pi A+ laying about It runs Linux and it runs Python … this seemed like a good fit.
What I used, it was cobbled together from the gear I had on hand, the list below gives you an overview of what is incorporated in this build. Nothing particularly out there although I’d love to get a 60″ screen and run an ANSI wall.
Guide was last updated 2016-02-15
- Raspberry PI A+
- Compatible PSU
- Micro SD Card with Raspbian installed
- HDMI cable
- HDMI to DVI adapter
- Landscape Monitor 16:10
- pyANS script
Configuring RaspBian on the RaspBerry Pi
The software modifications I needed to make follow, thankfully there were not to many too arrive at the end result.
On the Boot partition
We boot and run in the tty/console. You may need to tweak this to fit you screen correctly. Force the buffer size for the console and rotate the display.
# uncomment to force a console size. By default it will be display's size minus # overscan. framebuffer_width=640 framebuffer_height=1024 # rotate display 90 degrees display_rotate=1
Add logo.nologo to the command line to hide the console logo
Add consoleblank=0 to the command line to stop the console turning black after a period of time
Example only: dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 \ root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline \ logo.nologo consoleblank=0 rootwait
On the System partition
Make the pi boot to an autologin TTY instead of a GETTY
#1:2345:respawn:/sbin/getty --noclear 38400 tty1 1:2345:respawn:/bin/login -f pi tty1 </dev/tty1 >/dev/tty1 2>&1
Enable pyAns and bash login (there are better way but this is a single purpose machine)
# Run PyAns $HOME/pyans/pyans.py
Install pyANS software on the Raspberry PI
Pull down pyANS from github (requires git sudo apt-get install git), clone pyANS to /home/pyans/
cd ~ git clone https://github.com/sairuk/pyANS.git
Place your ANSI art packs in the libraries/ folder and reboot your Pi, you mileage may vary duplicating my settings exactly so there may be some tweaking involved to fit your chosen display perfectly.
The Final Result
The rear of the unit is relatively non-descript, Raspberry Pi hangs freely, I may fix it to the bracket when its mounted on the wall but otherwise it is fine as it is.
BTW, Throw me some skulls on Hackaday.io if you like this project
Some ANSI does not render correctly. pyANS is a very basic script which is available on github if you want to help build a better version.
I’ve added and issue for the ANSI rendering problem to github, if you can provide any advice please leave a comment.
I’d love to see some more of these go up around the place and receive some photos to update the post with.
References for Raspberry Pi based ANSI Art Scroller – pyAns
Other awesome resources you shouldn’t miss if you are interested in ANSI art
- Artpacks.org (added 2016-02-11)
- textmod.es (added 2016-02-11)
- Sixteen Colors
- Sixteen Colors Artpack Repository on Github
- Andy Herbert, ANSI viewer on Github (added 2016-02-11)
Great Youtube videos on ANSI art