.. _pru-cookbook-projects: PRU Projects ############## Users of TI processors with PRU-ICSS have created application for many different uses. A list of a few are shared below. For additional support resources, software and documentation visit the PRU-ICSS wiki. .. dropdown:: **LEDscape** :open: **Description:** BeagleBone Black cape and firmware for driving a large number of WS281x LED strips. **Type:** Code Library Documentation and example projects. **References:** * https://github.com/osresearch/LEDscape http://trmm.net/LEDscape .. dropdown:: **LDGraphy** :open: **Description:** Laser direct lithography for printing PCBs. **Type:** Code Library and example project. **References:** * https://github.com/hzeller/ldgraphy/blob/master/README.md .. dropdown:: **PRdUino** :open: **Description:** This is a port of the Energia platform based on the Arduino framework allowing you to use Arduino software libraries on PRU. **Type:** Code Library **References:** * https://github.com/lucas-ti/PRdUino .. dropdown:: **DMX Lighting** :open: **Description:** Controlling professional lighting systems **Type:** Project Tutorial Code Library **References:** * https://beagleboard.org/CapeContest/entries/BeagleBone+DMX+Cape/ * https://web.archive.org/web/20130921033304/blog.boxysean.com/2012/08/12/first-steps-with-the-beaglebone-pru/ * https://github.com/boxysean/beaglebone-DMX .. dropdown:: **Interacto** :open: **Description:** A cape making BeagleBone interactive with a triple-axis accelerometer, gyroscope and magnetometer plus a 640 x 480/30 fps camera. All sensors are digital and communicate via I²C to the BeagleBone. The camera frames are captured using the PRU-ICSS. The sensors on this cape give hobbyists and students a starting point to easily build robots and flying drones. **Type:** Project 1 Project 2 Code Library **References:** * https://beagleboard.org/CapeContest/entries/Interacto/ * https://web.archive.org/web/20130507141634/http://www.hitchhikeree.org:80/beaglebone_capes/interacto/ * https://github.com/cclark2/interacto_bbone_cape .. dropdown:: **Replicape: 3D Printer** :open: **Description:** Replicape is a high end 3D-printer electronics package in the form of a Cape that can be placed on a BeagleBone Black. It has five high power stepper motors with cool running MosFets and it has been designed to fit in small spaces without active cooling. For a Replicape Daemon that processes G-code, see the Redeem Project **Type:** Project Code Library **References:** * http://www.thing-printer.com/product/replicape/ * https://bitbucket.org/intelligentagent/replicape/ .. dropdown:: **PyPRUSS: Python Library** :open: **Description:** PyPRUSS is a Python library for programming the PRUs on BeagleBone (Black) **Type:** Code Library **References:** https://github.com/MuneebMohammed/pypruss .. dropdown:: **Geiger** :open: **Description:** The Geiger Cape, created by Matt Ranostay, is a design that measures radiation counts from background and test sources by utilising multiple Geiger tubes. The cape can be used to detect low-level radiation, which is needed in certain industries such as security and medical. **Type:** Project 1 Project 2 Code Library **References:** * http://beagleboard.org/CapeContest/entries/Geiger+Cape/ * http://elinux.org/BeagleBone/GeigerCapePrototype .. note:: #TODO#: the git repo was taken down .. dropdown:: **Servo Controller Foosball Table** :open: **Description:** Used for ball tracking and motor control **Type:** Project Tutorial Code Library **References:** * http://www.element14.com/community/community/knode/single-board_computers/next-gen_beaglebone/blog/2013/07/17/hackerspace-challenge--leeds-only-pru-can-make-the-leds-bright * https://docs.google.com/spreadsheet/pub?key=0AmI_ryMKXUGJdDQ3LXB4X3VBWlpxQTFWbGh6RGJHUEE&output=html * https://github.com/pbrook/pypruss .. dropdown:: **Imaging with connected camera** :open: **Description:** Low resolution imaging ideal for machine vision use-cases, robotics and movement detection **Type:** Project Code Library **References:** * http://www.element14.com/community/community/knode/single-board_computers/next-gen_beaglebone/blog/2013/08/18/bbb--imaging-with-a-pru-connected-camera .. dropdown:: **Computer Numerical Control (CNC) Translator** :open: **Description:** Smooth stepper motor control; real embedded version of LinuxCNC **Type:** Tutorial Tutorial **References:** * http://www.buildlog.net/blog/2013/09/cnc-translator-for-beaglebone/ http://bb-lcnc.blogspot.com/p/machinekit_16.html .. dropdown:: **Robotic Control** :open: **Description:** Chubby SpiderBot **Type:** Project Code Library Project Reference **References:** * http://www.youtube.com/watch?v=dEes9k7-DYY * http://www.youtube.com/watch?v=JXyewd98e9Q * http://www.ti.com/lit/wp/spry235/spry235.pdf .. note:: #TODO#: The Chubby1_v1 repo on github.com for user cagdasc was taken down. .. dropdown:: **Software UART** :open: **Description:** Soft-UART implementation on the PRU of AM335x **Type:** Code Library Reference **References:** * https://software-dl.ti.com/processor-sdk-linux/esd/docs/latest/linux/Foundational_Components/PRU-ICSS/Linux_Drivers/pru-sw-uart.html .. dropdown:: **Deviant LCD** :open: **Description:** PRU bit-banged LCD interface @ 240x320 **Type:** Project Code Library **References:** * http://www.beagleboard.org/CapeContest/entries/DeviantLCD/ * https://github.com/cclark2/deviantlcd_bbone_cape .. dropdown:: **Nixie tube interface** :open: **Description:** **Type:** Code Library **References:** * https://github.com/mranostay/beagle-nixie .. dropdown:: **Thermal imaging camera** :open: **Description:** Thermal camera using BeagleBone Black, a small LCD, and a thermal array sensor **Type:** Project Code Library **References:** * https://element14.com/community/community/knode/single-board_computers/next-gen_beaglebone/blog/2013/06/07/bbb--building-a-thermal-imaging-camera .. dropdown:: **Sine wave generator using PWMs** :open: **Description:** Simulation of a pulse width modulation **Type:** Project Reference Code Library **References:** * http://elinux.org/ECE497_BeagleBone_PRU * https://github.com/millerap/AM335x_PRU_BeagleBone .. dropdown:: **Emulated memory interface** :open: **Description:** ABX loads amovie into the BeagleBone's memory and then launches the memory emulator on the PRU sub-processor of the BeagleBone's ARM AM335x **Type:** Project **References:** * https://github.com/lybrown/abx .. dropdown:: **6502 memory interface** :open: **Description:** System permitting communication between Linux and 6502 processor **Type:** Project Code Library **References:** * http://elinux.org/images/a/ac/What's_Old_Is_New-_A_6502-based_Remote_Processor.pdf * https://github.com/lybrown/abx .. dropdown:: **JTAG/Debug** :open: **Description:** Investigating the fastest way to program using JTAG and provide for debugging facilities built into the BeagleBone. **Type:** Project **References:** * http://beagleboard.org/project/PRUJTAG/ .. dropdown:: **High Speed Data Acquistion** :open: **Description:** Reading data at high speeds **Type:** Reference **References:** * http://www.element14.com/community/community/knode/single-board_computers/next-gen_beaglebone/blog/2013/08/04/bbb--high-speed-data-acquisition-and-web-based-ui .. dropdown:: **Prufh (PRU Forth)** :open: **Description:** Forth Programming Language and Compiler. It consists of a compiler, the forth system itself, and anoptional program for loading and communicating with the forth code proper. **Type:** Compiler **References:** * https://github.com/biocode3D/prufh .. dropdown:: **VisualPRU** :open: **Description:** VisualPRU is a minimal browser-based editor and debugger for the BeagleBone PRUs. The app runs from a local server on the BeagleBone. **Type:** Editor and Debugger **References:** * https://github.com/mmcdan/visualpru .. dropdown:: **libpruio** :open: **Description:** Library for easy configuration and data handling at high speeds. This library can configure and control the devices from single source (no need for further overlays or the device tree compiler) **Type:** Documentation **References:** * http://users.freebasic-portal.de/tjf/Projekte/libpruio/doc/html/index.html * Library http://www.freebasic-portal.de/downloads/fb-on-arm/libpruio-325.html[(German)] .. dropdown:: **BeagleLogic** :open: **Description:** 100MHz 14channel logic analyzer using both PRUs (one to capture and one to transfer the data) **Type:** Project **References:** * http://beaglelogic.net .. dropdown:: **BeaglePilot** :open: **Description:** Uses PRUs as part of code for a BeagleBone based autopilot **Type:** Code Library **References:** * https://github.com/BeaglePilot/beaglepilot .. dropdown:: **PRU Speak** :open: **Description:** Implements BotSpeak, a platform independent interpreter for tools like Labview, on the PRUs **Type:** Code Library **References:** * https://github.com/deepakkarki/pruspeak