Posted Fri 05 Dec 2014 01:36:02 AM UTC Tags:

Pyton Data Analysis

  1. Python Data Analysis Library - Python Data Analysis Library - pandas is an open source, BSD-licensed library providing high-performance, easy-to-use data structures and data analysis tools for the Python programming language.
  2. NumPy - NumPy is the fundamental package for scientific computing with Python.
Posted Tue 17 Sep 2013 07:44:07 PM UTC Tags:

Pyton Template Engines

  1. Templating in Python - Python templating documentation.
  2. Mako - Hyperfast and lightweight templating for the Python platform.
  3. Jinja2 - Jinja2 is a modern and designer friendly templating language for Python, modelled after Django’s templates.
  4. Cheetah - Cheetah is an open source template engine and code generation tool, written in Python. It can be used standalone or combined with other tools and frameworks.
  5. The Django template language
  6. Myghty - View/Controller Framework and Templating Engine.
  7. Python Zeef - Python links.
Posted Sun 07 Apr 2013 11:26:28 PM UTC Tags:


  1. RepRap Calculator v2
  2. MendelMax RepRap Calculator

Hot Ends/Extruders

  1. Budaschnozzle - LulzBot
  2. J-Head
  3. QU-BD
  4. MakerGear
  5. Derivative of Greg's Wade Extruder

RepRap Stores

  1. LulzBot
  2. TechPaladin Printing
  3. MakerGear
  4. MakerBot
  5. QU-BD
  6. RoboSprout
  7. MendelMax Trinity Labs
  8. MakerFarm
  9. Panucatt Devices - Combined RAMPS and Arduino Mega into one package and amazing Helios 12V heatbed.
  10. UltiMachine - RepRap hardware and electronics
  11. Terawatt Industries - Terawatt Industries designs and manufactures open-source 3D printers
  12. Maker’s Tool Works - MendelMax store
  13. EckerTech - Canadian RepRap store
  14. Ultibots - Florida based RepRap store

Electronics Stores

  1. Pololu Robotics and Electronics - A4988 stepper motor driver carrier and stepper motors.
  2. Electronix Express

Hardware Stores

  1. McMaster-Carr - Mechanical, electrical, and utility hardware.
  2. SDP/SI - Stock Drive Products/Sterling Instrument - High quality precision parts and assemblies (timing belts, pulleys, sprockets, couplings, universal joints, fasteners, gearmotors, sintered bearings, precision ball bearings, precision gears, etc.)
  3. MiSUMi USA - Fixed components for the factory automation, press die, plastic mold. Supplier of aluminum extrusions used for MendelMax.
  4. 80/20 - Supplier of aluminum extrusions. They have Amazon store.
  5. Fastenal - Mechanical, electrical, and utility hardware. Supplier of aluminum extrusions.
  6. MendelMax list of alternate extrusions suppliers
  7. igus - Plastic bushings, linear bearings, self-aligning bearings, linear guides, etc.
  8. VXB - Ball bearings.


  1. netfabb Cloud Service - Web based file processing - analyze, check and repair your STLs.
  2. MendelMax
  3. MendelMax Build - TechPaladin
  4. KitBOM - Open-source projects hardware bill-of-materials (BOMs).
  5. MakerSlide - Open Source Linear Bearing System - Open Source Linear Bearing System
  6. Build Log - Open source equivalent of the research notebook. It can be used to document the progress of a project, or collaborate with others.
  7. Inventables - Inventables is the hardware store for DIY manufacturing, selling all kinds of materials in small quantities for purchase with a credit card.
Posted Wed 29 Aug 2012 04:35:49 AM UTC Tags:
Posted Mon 13 Aug 2012 05:33:36 PM UTC Tags:

Install Android ICS on PandaBoard with Touch Screen Support


In this tutorial I will be covering the setup of PandaBoard ES and 10" LCD/LVDS bundle from the Chalkboard Electronics website. Also you will need a 20 position 1.27mm pitch female connector. I used the FCI part number 609-3759-ND which you can buy from Digi-Key. You will to need buy at least 2 connectors and solder them to PandaBoard jumpers J1 and J4.

FCI Connector

The build was done on Ubuntu 12.04 using the AOSP master branch. Android source documentation states that building on Ubuntu 12.04 is currently only experimentally supported and is not guaranteed to work on branches other than master. For up to date information on PandaBoard build status go to the Android build page.

Installing required packages (Ubuntu 12.04)

Before we start building Android source we need to install following required dependecies.

sudo apt-get install git-core gnupg flex bison gperf build-essential \
    zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
    libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev:i386 \
    g++-multilib mingw32 tofrodos python-markdown \
    libxml2-utils xsltproc zlib1g-dev:i386

For the latest build instructions you can go to the Android Initializing a Build Environment page.

Installing JDK 6

Download JDK 6 from the Oracle website and install the package to your favorite location. Make sure that you set JAVA_HOME and JDK_HOME environment variables, and add java binary to your PATH. For example, if you install java binaries to the /user/local/java location you can add following variables to your ~/.bashrc file.

export JAVA_HOME=/usr/local/java 
export PATH=$PATH:$JAVA_HOME/bin

Configuring USB access for Pandaboard

Add following lines to the /etc/udev/rules.d/51-android.rules file and change permission of the file to chmod a+x /etc/udev/rules.d/51-android.rules. Restart udev service with the sudo service udev restart command. This step is neccessery so you can later connect to your board with fastboot and adb commands.

# adb protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d101", MODE="0666"
# fastboot protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d022", MODE="0666"
# usbboot protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d010", MODE="0666"

Downloading Android source

First step will be to download repo tool that will make work with Android source a lot easier. You can follow detailed instructions from the Android Downloading the Source Tree page, or just run commands below. Cloning the Android repositories will take very long time.

mkdir ~/bin
export PATH=~/bin:$PATH
curl > ~/bin/repo
chmod a+x ~/bin/repo
mkdir -p ~/projects/android
cd ~/projects/android
repo init -u
repo sync

After we pull the source with the repo command, we can got to the ~/projects/android directory and download the Imagination Technologies proprietary graphics drivers.

cd ~/projects/android
tar xvf imgtec-panda-iml74k-cfb7bdad.tgz

Downloading and compiling OMAP kernel

Now you have a complete source code and you can start building custom kernel. To start the process, go to the ~/projects/android/device/ti/panda directory and check what omap kernel corresponds to the current source tree.

git log kernel

You will get a log message that looks like the message below.

commit 793defdaa84b0375d34757db4dfb8fe437bf4340
Author: Jean-Baptiste Queru <jbq@xxxxxxxxxx>
Date:   Fri Feb 24 12:34:52 2012 -0800

    PandaBoard prebuilt kernel

    ebb6cb6 Panda: Support data usage statistic collection.
    522fb98 Panda: Bluetooth: Turn off Bluetooth spam logging
    5195fb9 ARM: OMAP4: Panda add ramconsole support

    Change-Id: Ieddb527b6dc2c7f27d5fd18f36e5a60bb6cce61d

Write down commit SHA1 (in this case that would be a ebb6cb6), and proceed with downloading omap kernel.

cd ~/projects/android
git clone

After you have PandaBoard specific kernel you can checkout version that corresponds to the SHA1 commit (ebb6cb6) from the ~/projects/android/device/ti/panda directory. In order to compile arm kernel on x86 host you will need a cross-compiling toolchain. We can just use the one from the Android source tree located in the prebuilt/linux-x86/toolchain directory. If you want to read more about cross-compiling toolchains you can download an excellent PDF slides from the Free Electrons website.

cd ~/projects/android
export PATH=`pwd`/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin:$PATH
export ARCH=arm
export SUBARCH=arm
export CROSS_COMPILE=arm-eabi-    
cd omap
git checkout <commit SHA1>
make panda_defconfig

Before you compile custom kernel make sure you enable touch screen support and initialize correct screen resolution. The touch screen I'm using has 1024x600 resulution, so you have to pass arguments to notify omap frame buffer driver to set correct resolution for DVI output. You can do this by editing default kernel configuration file. You need to set the CONFIG_INPUT_TOUCHSCREEN param to y, and append the "omapfb.mode=dvi:1024x600MR-24@60 consoleblank=0" arguments to the CONFIG_CMDLINE configuration parameter. The other way to pass boot arguments would be to use U-Boot bootloader, but for that we would need to compile the bootloader source. For more information see the Appendix - Building U-Boot bootloader section.

vi .config
CONFIG_CMDLINE="console=ttyO2,115200n8 mem=1G androidboot.console=ttyO2 omapfb.mode=dvi:1024x600MR-24@60 consoleblank=0"

The last step is to compile your kernel with the make command and copy newly compiled kernel to the ~/projects/android/device/ti/panda directory.

make -j8
cp arch/arm/boot/zImage ~/projects/android/device/ti/panda/kernel

Compiling Android

Finally you can proceed with building Android source. The first step is to initialize environment and with the lunch command choose what target you want to build. This will take around 30 min on i7 860 @2.80GHz with SSD drive.

source build/
lunch full_panda-eng
make -j8

Installing to PandaBoard

These instructions are derived from the ~/projects/android/device/ti/panda/README file.

After you completed build process you can start installation. In the first step you will have to bootstrap your PandaBoard using the usbboot command. Before you start installation make sure you connect PandaBoard to PC USB port. Also, make sure that you don't insert your SD card before you load bootloader to your board.

cd ~/projects/android
device/ti/panda/usbboot device/ti/panda/bootloader.bin

The next step is to format and initialize SD card with xloader and bootloader files. Now you can insert your SD card into PandaBoard SD slot. Make sure that your SD card is equal or greater then 4GB. To complete this process just run following commands.

cd ~/projects/android
out/host/linux-x86/bin/fastboot oem format
out/host/linux-x86/bin/fastboot flash xloader device/ti/panda/xloader.bin
out/host/linux-x86/bin/fastboot flash bootloader device/ti/panda/bootloader.bin

Finally you can install your freshly built Android images to the SD card. Reboot the board while holding the GPIO_121 button, and run the following commands to load images to the SD card.

out/host/linux-x86/bin/fastboot erase cache
out/host/linux-x86/bin/fastboot flash userdata
out/host/linux-x86/bin/fastboot flashall

Finalizing installation

The last step left is to load vendor IDC (Input Device Configuration) file to the SD card. We need this step in order to set correct resolution for the touch screen. The LCD panel and touch screen that I have been using to create this tutorial can be purchased from Chalkboard Electronics website. You can download the file from their website, or for your convenience the IDC file is included here. To read more about IDC file format go to the Android IDC page.

cd ~/projects/android
out/host/linux-x86/bin/adb remount
out/host/linux-x86/bin/adb push Vendor_2087_Product_0a01.idc /system/usr/idc/Vendor_2087_Product_0a01.idc
out/host/linux-x86/bin/adb sync

After this reboot your PandaBoard and test new touch screen configuration. You should have your Android installation fully functional with enabled Wifi and Bluetooth.

LVDS Board


Building U-Boot bootloader

Download the code from the omapzoom git site and checkout the latest tag. I tested the 4AI.5 tag on PandaBoard ES, and I was able to successfully boot the board.

cd ~/projects/panda-loader
git clone
cd u-boot 
git checkout 4AI.5
export PATH= ~/projects/android/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin:$PATH
export ARCH=arm
export SUBARCH=arm
export CROSS_COMPILE=arm-eabi-
make omap4430panda_config
make -j4

If you want to see if there any more recent tags you can run following git command.

git for-each-ref --format '%(refname) %(taggerdate)' refs/tags

I didn't have to recompile custom x-loader, but if you want to thinker with x-loader source code you can download the code from the same git site.

cd ~/projects/panda-loader
git clone
Posted Mon 23 Apr 2012 05:00:23 AM UTC Tags:

Pandaboard udev entries

Create the /etc/udev/rules.d/51-android.rules file and add device IDs into the file.

sudo vi /etc/udev/rules.d/51-android.rules
# PandaBoard USB vendor/device IDs for usbboot, fastboot and adb protocols
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d00f", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d022", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="d002", MODE="0666"

Set permissions for the newly created file.

sudo chmod a+rx /etc/udev/rules.d/51-android.rules

On the end just restart the udev service.

sudo service udev restart
Posted Mon 23 Apr 2012 03:13:26 AM UTC Tags:

Ubuntu AVR packages and udev entries

In order to setup basic avr development environment we need to install following packages:

sudo aptitude install gcc-avr gdb-avr binutils-avr avr-libc avrdude

Create the /etc/udev/rules.d/52-avrisp.rules file and add device IDs into the file.

sudo vi /etc/udev/rules.d/52-avrisp.rules
# Atmel Corp. JTAG ICE mkII
SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2103", MODE="0666"
# Atmel Corp. AVRISP mkII
SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2104", MODE="0666"
# Atmel Corp. Dragon
SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2107", MODE="0666"

Set permissions for the newly created file.

sudo chmod a+rx /etc/udev/rules.d/52-avrisp.rules

On the end just restart the udev service.

Posted Mon 23 Apr 2012 03:08:09 AM UTC Tags:

This blog is powered by ikiwiki.