I received my 8X8 RGB123 LED Matrix

I helped fund a kickstarter project a few months back and I just received my 8×8 RGB123 LED Matrix reward for my pledge:RGB123 LED MatrixIt is a 64 (8X8) RGB123 Led matrix based on the latest WS2812B LEDs with two XT60 high current M/F connectors, two 3 pin headers, and a servo wire. For a $30 dollar pledge I am super happy with it and the overall Kickstarter experience.


Here is a little demo of the RGB123 LED Matrix

I have experience with the WS2801 chip from my IALED Pants project and it amazes me that only a few years later the led has the addressing ic embedded right in to it. The main differences for me for using the WS2812 over WS2801 is the WS2812 only needs one data line and can work at 8 or 16 megahertz. The WS2812 does not use the SPI protocol like the ws2801 therefore it does not need a clock line.


WS2812 LED modules run at 800khz, not the typical 400khz protocol available on ws2811 modules. This equates to twice the speed, allowing programs to communicate with WS2812 much faster. WS2811 and WS2812 require each color to be pre computed. The program can’t compute the 1st, color send it and then move to the next color. Instead, each color needs to be computed, buffered and send when all colors are computed. This can lead to a limitation depending on the controller being used. Depending on the library being used, each led typically takes up 4 bytes of EEPROM.


Board EEPROM Bytes Number of LEDs
Teensy 2.0 1024 256
Teensy++ 2.0 4096 1024
Teensy 3.0 2048 512
Teensy 3.1 2048 512
Digispark 512 10
DigiX 4096 1024
Teensy 2.0 1024 256
Teensy ++ 2.0 4096 1024
Teensy 3.0 2048 512
Teensy 3.1 2048 512
Uno 1024 256
Due 524 131
Leonardo 1024 256
Mega 2560 4096 1024
Mega ADK 4096 1024
Micro 1024 256
Mini 1024 256
Nano ATmega168 524 131
Nano ATmega328 1024 256
Ethernet 1024 256
Esplora 1024 256
ArduinoBT 1024 256
Fio 1024 256
Pro ATmega168 524 131
Pro ATmega328 1024 256
Pro Mini 524 131
LilyPad 524 131
LilyPad USB 1024 256

This isn’t as big of a limitation as one would think because you always have the ability to run multiple strips in parallel. The limit of strips is limited by the number of available pins. I recommend using ws2812 or ws2811 for all projects going forward unless you plan to use the SPI port. For instance if you wish to use a Raspberry Pi as a controller I recommend using WS2801 LEDs.

Over all I am very happy with the quality of the RGB123 LED Matrix and I hope to order a few more in the coming months. I really want to order on 16×16 matrix.

3D Printing Test – Calibration & Gifts

I have been 3D printing test objects for the past few weeks and my progress is getting better after each object I print. The main variable in successfully printing a quality object is making sure the heated bed is level to the print head. The first object I tried printing was the 5mm Calibration Cube Steps:

These were the 1st, 2nd & 3rd Print:3d printing test3D Printing Test3D Printing Test

The qbert design is one of the first 3d printing test objects most people print because it is extremely helpful in calibrating each axis. Each cube in the design should be 5MM3. Once the object is printed, I used a digital caliper to validate that each axis is moving (printing) the correct distances. After I correctly calibrated the axes; I printed my second calibration object: the dome.

After calibrating using the 3D printing test objects, I started printing and designing more practical objects. The 1st was a gift to my wife, Knap’s Mario Flower:
Mario Flower 3D PrintedThingiverse had an ornament contest and I wanted to get involved, so I designed a 3D model of MR.Hanky the Christmas Poo. This was my first design that I printed and I tell you, it is a weird feeling designing something in software then printing it off a few hours later. We are absolutely living in the future. I uploaded the model to my Thingiverse profile so you can download and print it yourself.


For Christmas, I printed off a Homer bust for my bother:

Then I printed off a snowflake ordainment for a close friend.

My first attempt was with yellow, but I quickly thought, “It’s not a good idea to make yellow snow.”

I also printed a gift for my wife’s Reddit Secret Santa:

I hope you enjoyed viewing all my 3D Printing test objects. My next post should be primarily about my printer design.

My 3D Printer Design (Prototype)

3D Printer Design

After pricing out the parts needed to finish the MindelMax 1.5 3D printer design and realizing I want to use rail slides instead of linear bearings and rods, I decided to develop a custom design. This post includes photos and descriptions from the alpha stage of the design. I am finalizing the bata design right now and a lot of what you see in this post has been changed. After a few more tests I will be releasing the design with an open source.

All designs are shared under the CC BY-NC-ND 4.0 licensing.

I constructed the frame of the MindelMax 1.5 3D printer design:

Y & Z Axes:

The current 3D printer design is limited to the 200mm by 200mm hotbed, but in the final design the x-axis has 300mm of printing range. The y-axis will be much larger; I am aiming for 600 to 800mm, but the design could theoretically support double or triple that. After deciding on the rails, I started measuring and drilling holes to accommodate them. I started with the y-axis; the y-axis holds the hot bed and the entire bed moves on two rails. I then moved to the z-axis, with a rail on each side (this might change). I used a M10 coupler bolt as a coupler for the threaded rods and stepper motor. 


Each bracket has to mount a z-axis coupler bolt, a mount for one side of the x-axis rail, a mount for a z-axis rail, a hole for a bearing on the left bracket and a stepper motor mount on the right. Before I could print the new 3d printer design parts, I had to mock them up with random metal parts I had. I used my drill press to drill out the hole for the threaded rods and holes to mount the separate pieces together. I used SteelStik Epoxy Putty to hold a M10 coupler bolt to the bracket. These pictures were taken right before finalizing the beta version of the brackets. This was a good thing because the brackets were falling apart, hence the zip ties.

My next post will be the test prints.

New Category: 3D Printing – Electronics

I am happy to announce I am adding a new category to the blog: 3D printing. For years I have wanted a 3D printer but I never found exactly what I wanted. I came across a cragslist post for a lot of 3D printer parts for a great price and I had to take the plunge. The seller was trying to build a MindelMax 1.5. He acquired about 90% of the parts but never started the build.

3D Printer Electronics

The lot of parts excluded all the Aluminum extrusions bars, all the plastic parts, RepRap Arduino Mega Pololu Shield (RAMPS 1.4), an Arduino Mega 2560, 5 GADGETS3D A4988 G3D Drivers, an LCD and SHIELD v1.0, 214mmx214mm MK2a PCB Heated Bed and a few other parts. He also through in 4 Vexta high torque stepper motors (PDF)! They are 2-phase with 1.8° step angle. They were wired in a Unipolar configuration so I had to had to rewire them to be bipolar to work with the G3D A4988 Pololu Drivers. I used this diagram.

After the motors were ready I soldered leads to the mechanical endstops, a thermisitor, fan and cleaned up an old power supply to power the printer.

VDMX and Ableton Live Visuals Demo

I wanted to give you guys a little demo of what I am working on for my live performances using VDMX and Ableton live. In the 1st part of this video I show a few examples of presets I configured in VDMX. Later on I explain a little more in depth. If there is an interest I can make a step by step tutorial. Subscribe, share, Like and/or post a comment if you like what you see.

Examples of What I Produce with VDMX and Ableton:

vdmx and ableton
vdmx and ableton
vdmx and ableton
vdmx and ableton

Raspberry Pi Robot Build 4: Suspension Upgrade & Electronics Mounting Board

In this post, you will see my progress on the physical construction of my raspberry pi robot starting from a used Roomba 435. After hours of testing, I discovered my Roomba 435‘s logic board had an old firmware and would not allow me to communicate with it via it’s serial command interface without paying to flash it with version 2.1. I figured for the price to flash the logic board (ship both ways plus the service charge) and considering I already had an Arduino Mega to use as the micro-controller, it would be cheaper not to use the OEM logic board (for right now).

I first purchased a seeed studio motor shield at Radio Shack to test out my concept. After a successful proof of concept:

POC Motor Shield

Review & POC Video: 

I ordered two motor shields to control each of the OEM DC motor units. Each shield can power 4 DC motors or 2 stepper motors (or 1 stepper motors & 2 DC motors) as well as 2 servos, so I have plenty of flexibility to expand the project. I will be using the stock DC motors, wheels and gears. I will eventually integrate the OEM wheel encoders. Utilizing the wheel encoders will allow me to accurately sense direction, distance, velocity and acceleration.

After figuring out what components I was going to use, I needed to build an electronics mounting board so that I could keep all the parts organized and safe. I wanted to mount the Raspberry Pi, two motor controllers and the Arduino Mega in the empty space where all the vacuum parts used to be. I used a spare piece of plexiglass as the mounting platform. I placed the components in the best configuration possible and marked all the mounting holes with a marker. I drilled out each hole to mount different size standoffs for the component to mount to.

Once I had all the components securely mounted on the plexiglass, I had to secure the plexiglass to the Roomba’s frame. I used a couple of screws to hold it initially, but then remembered I had some polymorph left over from another project. The  polymorph is what is really holding the two pieces together. If you have never used it before, I would recommend grabbing some and start playing around.

The OEM springs that came in the Roomba 435 were too weak and needed to be much more rigged to hold the weight of the new electronics plus future add-ons. First, I removed the front spring completely and secured it by jamming polymorph into the mounting hole. The wheel still pivots, but no longer moves up and down. After fixing the front wheel, I replaced both rear springs with much larger ones. The rear suspension is still flexible, but it is much more rigid and sturdy now.

IALEDPants v0.4b Teensy 3

I wanted to port it over to a teensy 3 verse the Arduino Nano to achieve faster FPS and reduce the size a little more in my IALED Pants. I am currently still using the Adafruit-WS2801 Library but will be switching over to FastSPI once version two is out of beta.

teensy 3.0

Here is a demo of theTeensy 3 FPS:

Here are some pictures of the process:

Next steps:

  • Migrate to FastSPI

  • Rechargeable battery solution

Hand Silkscreen T-Shirts

Update: Buy yours here I had always wanted learn how to silkscreen t-shirts and this winter I learned how! I am surprised how easy the process actually is. Why pay a company to do what I can do myself for a fraction of the cost while learning a new hobby? 🙂

    1. Create design
    2. Coat screen with emulation
    3. Expose the design on the coated screen
    4. Clean Screen

Start Printing:


Raspberry Pi: PiBerry 0.9a

Update: I have updated the link below to version 0.9a, I fixed the icon issue.

raspberry pi

I am excited to release the alpha version of PiBerry 0.91a, A Raspberry Pi SD Card Utility. I initially developed PiBerry to make backing up and restoring SD cards easier. I have also incorporated the ability to setup a SD Card for its 1st use using any of the standard Raspberry Pi SD card images. The backup and restore process have an option of using a standard (.img) or a compressed (gzip) option. Using compression will substantially reduce the size of the backup but it will also make the process take much longer (backing-up or restoring). Continue reading or watch this video to learn more about and how to use PiBerry.


Click here to download PiBerry 0.9a

I am currently working on the beta version that will make the application much more user friendly.The current version of PiBerry asks a series of questions via separate popups. The next version (beta) will consolidate each option within one window.The current version also allows the use of the system disk, this will be removed in the next version.

Sneak Peak at the next version:

Sneak Peak at Version 0.1b



Video Demo



How To Use PiBerry 0.9a


    1. Open PiBerry:
      PiBerry Icon
    2. The 1st window ask:PiBerry 1st Menu


  1. Do you need to view the disks mounted to your computer?
    View Disks?

    1.  The No option skips to step number 4. 
    2.  The Yes will display a dialog of all disks mounted.Disks Mounts


  2. Select the disk to use:
  3. Select folder or backup to use:
  4. Choose the Backup/Restore type: The Setup option skips to step number 7. 
  5. Verify all the information:
  6. Enter you admin credentials:Admin Password
  7. Wait for PiBerry to quit:PiBerry Is Running




*~ This program is free software. It comes without any warranty, to ~*
*~ the extent permitted by applicable law. You can not redistribute it ~*
*~ and/or modify it under with out written permission from Bryan Ribas. ~*
*~ This software was developed for my own entertainment or purpose. ~*
*~ All programs offered for download have been executed repeatedly on a ~*
*~ variety of Macintosh OSX based machines. The software comes AS IS. ~*
*~ No warranties, express or implied, are given. They have been offered ~*
*~ in good faith and any consequential damage due to their use is the ~*
*~ sole responsibility of the user accessing the system in question ~*
*~ and operating the software on it.Every file and program has been ~*
*~ tested, but due to the many factors which can vary the software cannot~*
*~ be guaranteed to work on all systems and with all versions of OSX. ~*





Playing Around With Modul8

The idea behind this is to use non-traditional shapes as a screen for a unique visual performance. Using Modul8 I was able to map out each side of the cube and the long rectangle as it’s own screen.


has been very easy to learn and there are plenty of tutorials all over YouTube and the internet in general. I plan to eventually synch Ableton and Modul8 together to allow me to trigger audio clips and have specific visuals designed for the specific clip play as well.


PiRobot Build 5: Raspberry Pi Audio Hardware, Software & Text To Speech


$ sudo apt-get install alsa-utils


$ sudo nano /etc/modules

Add snd_bcm2835 (if its is not already there)

$ sudo nano /usr/share/alsa/alsa.conf

change the line “pcm.front cards.pcm.front” to “pcm.front cards.pcm.default”

$ sudo apt-get install mplayer


$ sudo nano /etc/mplayer/mplayer.conf

Hit control + v to get to the end of the file fast (page by page).

add line nolirc=yes

$ sudo apt-get install lame


$ sudo apt-get install festival


$ sudo apt-get install espeak


Google Translate Bash Shell Script install


$ mkdir ~/TTS

$ cd ~/TTS

$ sudo wget https://gist.github.com/r1b4z01d/5350927/download.tar

$ sudo mkdir /tmp/dirtree

$ sudo tar xfz download.tar -C /tmp/dirtree

$ sudo find /tmp/dirtree -type f -exec mv -i {} . \;

$ sudo rm -rf /tmp/dirtree

$ sudo rm download.tar

$ sudo chmod u+x GoogleSpeech.sh

$ wget http://r1b4z01d.com/audio.mp3


$ sudo reboot

Reboot the Raspberry Pi

$ lsmod

Displays the kernel modules currently loaded

Look for snd-bcn2835     Broadcom snd-bcn2835



$ amixer cset numid=3 1

OutputSelect: 0=auto, 1=analog, 2=hdmi

$ amixer cset numid=1 -- 100%


$ speaker-test -t sine -f 440 -c 2 -s 1
$ speaker-test -t wav -c 2

ALSL speaker-test utility


$ aplay ./usr/share/scratch/Media/Sounds/Animal/Kitten.wav

http://linux.die.net/man/1/aplay WAV player that comes with ALSA

$ sudo find -name *.wav




$ mplayer ~/TTS/audio.mp3

$ echo "hello" | festival --tts

$ sudo espeak -ven+m2 -k6 -s250 "hello" 2>/dev/null

$ ~/TTS/GoogleSpeech.sh hello<em id="__mceDel"><em id="__mceDel"><em id="__mceDel"> </em></em></em>

Click/Poping update your firmware


PiRobot Build 2: Adding Heat Sink & Temp Tests Raspberry Pi

I wanted to add heat sinks to keep the core Raspberry Pi temperature down while running cpu intensive processes. I have made some huge strides on the PiRobot project, I just need get may act together and make all the posts. Here is one of the last things I have done but it is going to be an easy blog post so I decided to publish this 1st.

I checked the Raspberry Pi core and external temperatures during 3 stages for both OEM and after the heat sinks were installed. As a control the device had an external temperature reading of 24.7°c off and unplugged. While Idling the OEM average core temperature was 43.29°c with a max of 44.4°c and a min of 42.2°c. The external temperature was just about 40°c.

The 1st load test I did was using Python finding prime numbers. It found 78497 primes in 5:42.61 but the CPU usage never went above 25% so I needed to find another test. After reading how I can use the basic calculator as the CPU benchmark I modified the original equation so that the CPU would be maxed out for at least 20 minutes:

 $time echo "scale=10000; a(3)*8" | bc -l

You may need to install the bc package:

 $sudo apt-get install bc

After 20 minuets of 100% CPU usage the average core temperature was 45.38°c on the OEM Raspberry Pi, it maxed out at 47.1°c.

After installing the heat sinks on the Raspberry Pi the core and external temperatures definitely dropped. After idling for 24 hours the external temperature was 38.5°c and the  core temperature was 39.5°c. After ruining the same bc equation for over 20 minutes (100% CPU usage) the average core temperature was 42.67°c with a miximum temerature of 44.4°c. For more details of temperatures download this: HeatSinkTests.xls.

Raspberry Pi Heat Sink:

raspberry pi

Raspberry Pi Robot Part 1: Roomba Teardown

Updated: More Photos

In anticipation of receiving my Raspberry Pi

Raspberry Pi

The Raspberry Pi is a credit-card-sized single-board computer developed in the UK by the Raspberry Pi Foundation with the intention of raspberry pi

this week I wanted to get a head start one of my next projects, PiRobot. PiRobot is going to be a web site controlled robot powered by a Raspberry Pi. The website will utilize webiopi to control the Raspberry Pi’s general purpose in/output ins (GPIO). For network connectivity I will be using a high gain USB WIFI network card. I will add a location to place and iPhone with tethering If I need to control the PiRobot outside of a local WIFI.

I am going to recycle an old iRobot Roomba to uses as the main driving unit. This post shows my teardown of the iRobot Roomba in preparation for this project. To save on weight I wanted to remove all the components that I would not be utilizing. To start I only need the frame, wheels, motor, suspension and the logic board.

I will be interfacing the Raspberry Pi with the iRobot Roombi’s built in logic board via serial using pyrobot. This will allow me control each driving motor as well as interface with all built in sensors and the other motors (that I just removed). If I can’t get the serial connection to work I will take some tips from Ben J. I will more then likely be using the Raspberry Pi’s GPIO but I can also utilize the additional ports on the Roomba’s logic board to control the accessories I plan to add once I get the PiRobot up and moving.

I first want add a tilt and pan high definition webcam to have the ability to drive it with out seeing the unit. The next accessory will be a powered speaker and use the webcam’s microphone for two way audio communication. Then I will be adding an ultrasonic proximity sensors on each side of the robot to detect obstacles while controlling the unit remotely. These sensors have a sensing range from about 5 inches to about 15 feet with a resolution of about .1 of an inch.

The website will stream the video from the webcam as well as have controls to operate the PiRobot. It will display two virtual joystick, one to move the PiRobot and one to control the tilting and panning of the webcam. I will also be including the ability to use the keyboards standard ←↕→ keys and a mouse or possibly even a joystick. I am thinking of having the site display a 3d top view of the Raspberry Pi Robot with graphical feedback from all the sensors and to display the position of the webcam’s tilt and pan. Once all that is done I will be adding an arm and hand to it extend the functionality.


Happy Saint Patty’s Day Everyone, have fun and stay safe!


This gallery contains 5 photos.

Happy Saint Patty’s Day, I decided to make corn beef and and cabbage for the 1st time and in a pressure cooker! On lunch I went to the market to get some lunch, I picked up a plate of corn beef and … Continue reading

Happy Pi Day: Buy a Raspberry Pi

Hope you all had a great Pi Day:

Pi Day

Pi Day is an annual celebration commemorating the mathematical constant pi (pi). Pi Day is observed on March 14 (or 3/14 in the month/day

I celebrated Pi Day by buying a Raspberry Pi:

The Raspberry Pi is a credit-card sized computer that plugs into your TV. It’s a capable little PC which can be used for many of the things that your desktop PC does, like spreadsheets, word-processing and games. It also plays high-definition video. I will be using it for an upcoming electronic project mainly because I have wanted to learn Python for a while now and the price. This tiny computer has a built in SD-card reader, HDMI port, RCA out, Audio out, 2 USB, an Ethernet port and 512 Ram all for $35. If I were to use one of my standard microcontrollers I would have to pay extra for each additional feature. For example just to add Ethernet to an Arduino would cost $60 alone. These great little devices are allowing schools to affordably offer robotic and electronic circuitry classes.

raspberry pi day

pi day

IALEDPants v0.2b WS2801 Speed Test

Here is the 2nd demo of my new WS2801 individually addressable RGB LED pants. The pants are lined with WS2801 RGB LED strips. The strips are controlled by an Arduino nano and powered by 4 AA batteries. I wanted to create this video quick before I add some additional features. I plan to add a microphone to code them to be noise active as well as add a pot to control the intensity of the LEDs.