Monday, August 5, 2013

Getting acquainted with Raspberry Pi

The whole Raspberry Pi craze lasted long enough for me to go and buy one of these boards to try it  on. Got one on e-bay, model B, just a board. I purchased SD card separately, an 8GB SDHC SanDisk Ultra. Few days later, just 2 days ago I received my order in mail.
I must say the setup was a breeze. With the NOOB image, all you need to do is format your SD card, copy files from ZIP archive to your card and stick the SD card in the RPi's slot. Connect keyboard, mouse and display and power it up.
In 2 days that I have been playing with this board I managed to:
  • Setup US keyboard layout (default is British). 
  • Configure WiFi network (SMC WiFi dongle, based on ZD1211 chip).
  • Install and configure VNC server so I can access GUI desktop of my RPi from Windows or Linux based computer with TightVNC client.
  • Check USB to RS-232 converter that works with RPi (based on PL2302 chip). 
  • Install and configure Samba for server file sharing.
  • Install GPIO and I2C Python libraries.
  • Connect and successfully program (with the help of wonderfully rich internet resources already available for RPi) I2C LCD screen that I originally purchased for my Arduino.
  • Make a safe shutdown switch connected to GPIO pin #18 which is polled by a simple Python script that shuts down RPi when the switch is pressed for more than 1 second while displaying shutdown progress on LCD screen.
I was going to publish some of the URL-s and instructions/code that I used while achieving above goals, however anybody that can Google stuff can find out quick enough how to do these things. No need to create more noise I guess. Perhaps when I do something original with the touch of my own original thought, I will publish detailed documentation of the process.

These are wonderful times for electronics/computer hobbyists. Sometimes I think this stuff is just too easy!
My plan is to make a trip/car computer out of this RPi with the aid of OBD2 to USB codes scanner/converter I got on eBay, which is based on ELM 327 chip and with aforementioned I2C LCD display as a data presentation device. There is a piece of free software that works with that ODB2 scanner device on RPi and it can be integrated into Python's code.
Considering that this board is almost a full blown PC computer, and considering its low price and the amount of software/code base already available on the internet for tinkering and numerous examples of use, this is a great deal. The device that is ready for standard PC compatible peripherals (via USB) and with its GPIO expansion slot, it is the best of 2 worlds - a standard PC platform running familiar Linux OS with more than sufficient processing power for hobby projects and beyond and with the means to interface with outside world it is a great board to be added to any computer/electronics hobbyist's  toolbox.

Reset And Panic Buttons, Buttons Debouncing

Reset And Panic Buttons, Buttons Debouncing The monitor program in my home brew computer has a nice debug feature. The NMI (Non-Maskab...