Scratch e-book

The MagPi magazine has posted the e-book Learn to Code with Scratch . The e-book describes how to make simple games and applications on the Raspberry Pi. Scratch is a visual programming language developed at MIT to teach kids how to code. There is a web version of Scratch on the website too.

MagPi Learn to Code with Scratch e-book cover photo

Maker Fair 2015

I had a lot of fun at Maker Faire 2015 in Queens, NY  this year. There were more large corporate sponsors this year. Intel, Google, and Microsoft all had their own large tents setup. Google showed some boards used to develop Android Wear software. Intel showed Edison development boards that were compatible with Arduino and Seeed sensor kits. Microsoft demonstrated Windows 10 Internet of Things running on a Raspberry Pi 2. Arduino showed some new single board computers. Seeed had numerous interesting electronics kits for the BreagleBone Green, and showed Open Source phone hardware. The Google Aria project might take notice of this hardware. It’s minimal but easy to hack. There were a lot of 3D printers and drones at the Faire too. Check out my slide show for some photos of some of these items and more.

There were a lot of talks on the center stage and I was only able to see two of them. I hope that Maker Faire will stream them soon.

Adafruit 2.8in PiTFT Display Sketup 8 Model

A reader request a copy of my Adafruit 2.8 in Sketch Up 8 Model so I’m posting it here. It’s a very basic model with just essential components models as block in key locations. I needed to interpret dimension on the board layout and the datasheet for the display panel to make this module. The model turned out to approximate the actual PiTFT fairly well for my application so please check that it fits in all the right places for your application. Also, if you make it better, please post the updates.

Raspberry Pi Sketchup 3D models

I’m trying to make a case for my Raspberry Pi (RPi) with an Adafruit PiTFT 2.8 inch display and was modeling it in Sketchup 8.  I made a simple model of the PiTFT display and then started looking for some 3D Sketchup8 models of the RPi Model B with 512MB of memory from the Sketchup 3D Warehouse to save some time. Connectors between the RPi and the PiTFT display did not fit quite right. A few measurements showed that some of the parts and boards were the wrong size.  My list of models investigated so far is shown below.

  • Raspberry Pi – Model B Rev2 by Gandy file Raspberry-Pi—Model-B-Rev.skp: The GPIO pins are spaced incorrectly at 2.4 mm and should be spaced at 2.54 mm. The board length is 86 mm and should be 85 mm.

  • Raspberry Pi Rev 1 by Billmar file RaspberryPi_FN120401823.skp: The board size and GPIO pin spacing seems to be good. For the few things I measured, this is the most accurate model so far. As this is model is for Rev 1 of the board, it does not have the mounting holes I’m looking for.

  • raspberry pi 3d model B 512 by Clavis file RaspberryPi.skp: The board size measures 81.9 mm but should be 85 mm. The GPIO pin spacing is 2.4 mm and should be 2.54 mm.



Graphene FET Toy Physics Model

This graphene FET toy physics model is primarily based on the graphene physics described in the paper Electronic transport in two dimensional graphene by S. D. Sarma et. al. and from materials properties data found in a number of sources (see the Description tab for the details). I’d appreciate any comments on errors, problems, inaccuracies, or how to make this model better.

The IV Model tab allows you to selected the gate dielectric, dielectric thickness, mobility, gate voltage, phonon energy of the dielectric, drain-source voltage, drain-source length and width, and the resulting IV curve is plotted for these parameters.

The Performance Table tab shows a summary of the graphene FET performance based on the selected values on the IV Model tab.

The Materials Properties Tab shows the dielectric constant, breakdown voltage, and optical phonon energy for each gate dielectric that can be selected in the IV Model tab.

Raspberry Pi touch screen display lights up

Installing the kernel and drivers to get the Adafruit 2.8 inch touch screen operation was more involved than I expected, but it is working. It just need some tweaking to set it up so that the GUI can be used more easily. The RPi seems to be set up for a 1080×760 monitor but the touch screen is only 320 by 240. At least one configuration file will likely need updating to make the background and applications windows fit better.

I used the Occidentalis v0.2 kernel build as described in the Adafruit instructions for the PiTFT touch screen. The instruction have you build a new kernel so it takes a while to get it running. After building the new kernel, the Wolfram language package needs to be installed as the Wolfram language only comes pre-installed in the Rasbian distribution in the NOOBS loader. This went smoothly but I’ve had one of my CDFs crash Mathematic so some troubleshooting is still required.

The RPi distribution via NOOBS seemed to be faster and more responsive than this version when it was first installed. The Ethernet adapter was not set up to run automatically, and the wireless interface was not configured to connect to hidden station IDs. Changes to the Interfaces configuration file enabled the Ethernet port. Later updates to this file, enabled a wireless connection too. After upgrading the packages, it seems to be much more responsive.  The photos below show the display just after boot into x-windows and with the Fermi-Distribution function notebook running in Mathematica.

Raspberry Pi with an Adafruit PiTFT 2.8 in touch screen running in x-windows mode
Raspberry Pi with an Adafruit PiTFT 2.8 in touch screen running in x-windows mode.

Raspberry Pi with an Adafruit PiTFT 2.8 in touch screen running in x-windows mode showing a Mathematica notebook running
Raspberry Pi with an Adafruit PiTFT 2.8 in touch screen running in x-windows mode showing a Mathematica notebook running.

It’s easier for me to use and remember operations in a GUI like Windows XP rather then a command string operation system like Linux so I keep a cheat sheet of command. These commands were used repeatedly for this activity and are listed below.

Updating the Raspbian

sudo apt-get update
sudo apt-get upgrade

Firmware updates
Updating the firmware on the RPi requires the rpi-update tool. The tool is on github along with the direction for installing it.

sudo apt-get install git-core
sudo wget -O /usr/bin/rpi-update && sudo chmod +x /usr/bin/rpi-update
sudo rpi-update

The rpi-update will rebuild a new kernel. It might take a little while. When it completes, then reboot the RPi.

Shutdown and reboot
From an x-windows session or command line, use

sudo shutdown –h now (to shutdown and halt. Restart by cycling the power to the RPi)
sudo shutdown –r now (to reboot the RPi).

Device driver location
If the build worked correctly, then /dev should contain two new SPI devices

  • spidev0.0
  • spidev0.1

Brian’s life blog has another good description on how to install the SPI drivers and use them.

Wireless adapter driver installation
See the wiki about USB wireless adapters and installing the drivers.

lsusb shows the devices connected to the USB ports
lsmod shows the modules installed

Edit /etc/network/interfaces using the nano editor and add the following if not already present for access to a hidden network (see How to setup a Raspberry Pi with a hidden network using a Edimax EW-7811Un).

auto lo
 iface lo inet loopback
iface eth0 inet dhcp
auto wlan0
 allow-hotplug wlan0
 iface wlan0 inet dhcp
 wpa-scan-ssid 1
 wpa-ap-scan 1
 wpa-key-mgmt WPA-PSK
 wpa-proto RSN WPA
 wpa-pairwise CCMP TKIP
 wpa-group CCMP TKIP
 wpa-ssid “Your Wifi SSID”
 wpa-psk "Your PSK Value&gt"
iface default inet dhcp

Then output and exit and restart the configuration

sudo /etc/init.d/networking restart

Remote access
First, generate new RSA key (see Remote Access from

sudo rm /etc/ssh/ssh_host_* && sudo dpkg-reconfigure openssh-server

Then from windows, use Putty or from Linux use ssh

ssh ip-address –l username
ssh –X ip-address –l username

to open using the x-windows server in Linux or a x-winders server in Windows. The x-window server must be installed on Windows first before starting an x-session.

Installing Mathematica

 sudo apt-get update && sudo apt-get install wolfram-engine