Project Astromech, a 2 Geeks Web Design Presentation

Welcome

Build Journal

The Dome

The Electronics

The Body

The Legs

Parts Rundown Dome Hardware Dome Electronics Body Hardware Body Electronics Leg Hardware Leg Electronics Other Electronics

Dome Hardware

Dome Electronics

Body Hardware

Body Electronics

Leg Hardware

Leg Electronics

Other Electronics

A collection of build posts related to the construction and design of our Astromech’s dome.

Artoo’s dome houses a number of lighting displays that flash, blink and change colors throughout the Star Wars™ saga. These lights include his 2 PSIs, 2 Front Logic Displays and his lone Rear Logic Display.

In order to incorporate this behavior in our Artoo, we chose to build a display system based on the work of Astromech.net user Teeces. Information can be found throughout the Astromech.net Forums as well as from their Teeces Display Wiki Entry .

There is a huge following of this system on the forums and I spent a significant amount of time reviewing the plethora of information found in countless threads. The R2 Builder’s Club members were indispensable in providing additional insight, advice and know how to help me accomplish my build.

I would like to take a brief moment to thank Astromech Members CuriousMark, Joymonkee, Chris, Jayjay, edwardo, and probably others I missed for helping me out in this build. Your advice, guidance and patience was greatly appreciated.

If you would like to review additional information regarding this system, I have included a list of useful links used at the bottom of this post.

The Teeces 3.2 Display Module is an Arduino based system using a series of LED Controller ICs and a set of 5 LED panels to mimic the behavior of each of Artoo’s 5 displays.

It involves the installation of custom Arduino sketches to achieve this behavior. While the original standalone system utilizes its own custom code, I chose to leverage CuriousMarc’s new custom sketch , allowing me to integrate my display with our Marduino Dome Control System. This allows me to wirelessly control the Teeces behavior through Marc’s iOS based R2 Touch App . This will allow us to alter the sequences and custom messages that appear on Artoo’s displays on the fly.

In order to assemble this system, we needed to accumulate the following components:

Part

Quantity

Part Number

Online Source

Notes

5 Piece Teeces 3.2 PCB Board Set

Oshpark

Logic Bezels Set

Joymonkee

Logic Screen Set

3mm LEDs for Logic Displays

225

eBay

Preferably Flangleless. 60 red, 62 green, 13 yellow, 54 white, 37 blue

5mm LEDs for PSI’s

13 each Red, Blue, Yellow and Green

DIP24 300 mil Socket

3M5466-ND

Digi-Key

DIP24 600 mil Socket

3M5467-ND

MAX7219CNG

MAX7219CNG+-ND

These can be found much cheaper on eBay but I found out that it is best to buy quality components from a reputable American dealer.

Capacitor 10uF

445-2863-ND

Each Board Requires One.

Capacitor 0.1uF

490-5369-ND

24k Resistor

24KQBK-ND

1 ea. for Front Logic Display

28k Resistor

28.0KXBK-ND

For Rear Logic Display

10k Resistor

10.0KXBK-ND

1 ea For PSI Displays

Screw Terminal, 100 mil

A98333-ND

Used to attach power to RLD

Double Row Header Strip

S2012EC-40-ND

These are typically sold in strips of 40 pin pairs. I then snapped them off in groups for my needed sizes.

Single Row Header Strip

A26509-40-ND

These are typically sold in strips of 40 pins. I then snapped them off in groups for my needed sizes.

Assortment of Female/Female Jumper Wires

These were cheaply found on eBay. I used them to connect the RLD, the 2 FLDs, and 2 PSIs in series. I used 5 – 4″ lengths, 10 – 12″ lengths, 5 – 24″ lengths

Sparkfun Pro Micro – 5V/16MHz Micro-Controller

DEV-11098

Sparkfun

I originally used this micro-controller in my build, due to its built in USB connector for programming. However, the USB connector is prone to break off as did mine shortly after uploading my sketch. I plan to switch to a Arduino Pro Mini + FTDI breakout programming board .

Regulator (LM7805)

LM7805CT-ND

Optional: Required if planning on powering system with voltage greater the 5V

Capacitor 10uF (Not the same as above)

P5178-ND

Optional: Required if planning on powering system with voltage greater the 5V, Goes with LM7805

Capacitor, 1uF

UVR1H010MDD1TD-ND

The Teeces Display System is designed to power the 3 HoloProjector lights in Artoo’s Dome. However, I have already used our Marduino System to power and control these three lights. This set up allows us much more control over their function.

Before assembling the boards, we needed to upload the custom sketch to our micro-controller. This allowed us to test the function of the boards and LEDs once we had all other components installed on each PCB.

To do this we needed to download both the Custom Teeces Sketch and TeecesControl libraries from the bottom of CuriousMarc’s Tutorial . The control library was needed to enable functions required by Marc’s custom sketch. We unzipped the sketch into our Arduino IDE installation’s sketch directory and likewise unzipped the control library into its “libraries” sub-directory.

We attached our Sparkfun Pro Micro via a micro USB cable to the Macbook and fired up the Arduino IDE app. We opened up Marc’s sketch by selecting it from the dropdown menu (File->Sketchbook->Teeces_CuriousMarc_v1.1).

Once opened, we needed to make a few changes to ensure the correct settings were in place. Marc conveniently placed them at the beginning of his sketch code. Using his directions, we selected the correct Arduino Model, PSI Versions, Baud Rate and our custom message text.

// Type of Arduino you are using // 1 = Arduino Pro Mini or Uno or Duemilanove // 2 = Sparkfun Pro Micro // 3 = Arduino Micro #define BOARDtype 2

// PSItype sets the type of our front and rear PSI's // 1 = Teeces original (6 LEDs of each color, arranged side by side) // 2 = Teeces original checkerboard (6 LEDs of each color arranged in a checkerboard pattern) // 3 = Teeces V3.2 PSI by John V (13 LEDs of each color, arranged side by side) // 4 = Teeces V3.2 PSI checkerboard by John V (13 LEDs of each color, in a checkerboard pattern) #define PSItype 4

// Baud Rate sets the baud rate of the serial connection. Current MarcDuino HP Firmware (v1.5) // uses the JEDI default rate which is very slow at 2400. // If you control it from something else, you probably want to use 9600. // The serial input connects to the pin marked RXI or Rx on the Arduino (and optionally TXO or Tx for answer messages) #define BAUDRATE 2400

// Startup Text char TFLDtext[] = "R2-D2 "; //TOP FRONT STARTUP TEXT. char BFLDtext[] = " ASTROMECH"; //BOTTOM FRONT STARTUP TEXT. char RLDtext[] = "2 GEEKS WEB DESIGN, LLC "; //REAR STARTUP TEXT.

Once our changes were made, we saved our sketch and prepared to upload it to our micro-controller. Since our Sparkfun Board was not a standard Arduino board, we needed to install the correct addon files so it would appear in the Board Menu. This was done by downloading the correct zip file from the Sparkfun product page and unzipping the file into the Arduino IDE’s “Hardware” sub-directory. In our case, the directory did not yet exist, so we simply created a directory named “Hardware” first. Once installed, we were able to select the board from the Arduino IDE’s dropdown menu (Tools->Board->SparkFun Pro Micro 5V/16MHz).

Next, we needed to select the appropriate serial port from the drop down menu (Tools->Serial Port->).

Once selected, we clicked the upload icon, the sketch was compiled and saved on our micro-controller. That was pretty much it, now it was time to move on to assembly

Note to Builders: A couple of things I would like to mention.

If after clicking the upload icon you get a bunch of “…does not name a type” or “…was not declared in this scope” errors, chances are you do not have the correct libraries installed or they’re installed in the wrong place, so take a look there.

After uploading our sketch, the USB port on my SparkFun board broke free making it quite difficult to make any future changes to the sketch. For this reason, I strongly recommend choosing the Arduino Pro Mini for your build. While it requires the use of a breakout FTDI programmer, it is much more robust and from others input, easier to work with for those using Windows machines as well. I plan on replacing my board with one in a future post, but for the sake of build accuracy, included our Sparkfun’s use as it happened. SparkFun’s customer service was quick to provide me with my choice of a replacement or account credit, even letting me keep the damaged board. They are top notch, so deal with them in confidence!

Hopefully this may help a future builder out and save them a bit of frustration.

Once the post lady delivered all the parts, I set out to organize and understand how all the components fit together.

Note to Builders: The following journal notes and photo gallery are not intended as a complete “How to” manual. Such details are rather dry and mundane. I fear boring my casual viewers with details of soldering and such. However, I will include some things I found helpful during my build. Please use the helpful links at the bottom of this post for more in depth build instructions and guidance.

I began by familiarizing myself with the 5 seperate PCBs. As stated before, the set includes the Main Rear Logic Display Board (hosts the Arduino Micro-Controller), 2 Front Logic Display Boards as well as the 2 PSI Display Boards.

There is no physical difference between the two FLD boards as well as the two PSI display boards. Their location and function will be determined by the position in which they are daisy-chained in the system.

As suggested, I started by assembling the Rear Logic display as it is the “Brains” of the system. This also allowed us to test the LED function once other components had been added to the board.

The layout was pretty self explanatory, with the boards having well marked component locations. However, due to the layout of the board, and the use of both sides, we needed to begin by installing the 0.1uF and 10uF capacitors first. These two components will be inaccessible from the other side of the PCB once the IC Sockets have been installed.

Once completed, we began adding the rest of the RLD’s components, leaving the LED’s for last. While we included the Regulator (LM7805) and large Capacitors (10uF & 1uF, paying attention to polarity) to allow for input voltages greater than 5V, we plan on using only 5V to power our boards. Therefore, we placed the screw terminals at the 5V location. (I have since added two pin headers to the raw position for testing)

We then added our three MAX7219CNG IC chips into each of the three DIP24 Sockets. These chips require a specific orientation for proper pin assignment and alignment. Each chip is marked with a small half circle indention than needs to be aligned with the corresponding mark on the PCB silkscreen.

Note to Builders: In our case, the sockets covered up this marking slightly, so in case you cannot determine the correct orientation from the board, the indention needs to face the Micro-Controllers location. Also, be careful when inserting each chip, making sure each leg is properly aligned and you provide even downward pressure. It is easy to bend or even force two legs into the same socket hole.

At this point, I was ready to power up the board and test if it powered up correctly. Before doing so, I visually checked each of my solder joints to ensure there was no obvious issues such as fused pins or bad joints. Everything seamed in order and I attached a 5V power supply to the screw terminals. The Sparkfun Micro-Controller lit up as expected without any smoke, sparks or other cringe worthy effects. I checked all 5 pins on each of the input/output connections against the ground with my multimeter and achieved the correct readings.

It was now time for the LEDs. The RLD’s display panel consists of 5 rows of 27, 3mm LEDs. It utilizes a combination of red and green LEDs with a scattering of around a dozen yellow ones. I imagine we could have created our own pattern for the color layout, but opted to use the pattern suggested in the Teeces documentation . There may be a couple colors switched around here or there but for the most part we stuck to the layout.

Note to Builders: Take the time to test each of your LEDs before soldering them in place, especially if you purchased them off of eBay from China. Also, make sure the polarity of the LEDs are correct. The flat side and short lead are not always correctly assigned as the cathode (negative lead). You can even do this before hand. Don’t ask me how I know this, as I will deny it to save myself from the embarrassment! You can also test them once you have placed them in the board, but before soldering them, just to be sure. I personally learned the hard way, and while it was a very valuable lesson on how to de-solder and clean the PCB, it was an absolute headache and wasted several hours of my time. Test, Test, Test

So, we began placing our LED’s in the board, stopping at the end of each row to clip and solder them. Before soldering the LEDs in place, we made sure to place the RLD bezel over the LED’s to ensure the proper alignment and spacing between each pixel. After a while our soldering skills improved greatly and we were able to clip each lead almost flush with the PCB surface. There was really no need to have all the extra metal sticking out the back of the board increasing our chances of a short. We also noticed that our LED’s would often get hung up on the little crimp located on both the anode and cathode a few millimeters from the base. This often caused bent leads and misalignment. I began to take the snips to each leg just above that point to help speed up placement, making sure to snip the cathode just a tad shorter than the anode to differentiate the two.

Note to Builders: The above suggestion is strictly personal preference as some find the much shorter legs harder to work with. Just something I found to help myself speed up the monotonous task of soldering 135 LEDs.

Once we completed installing and soldering each row, we again went over the joints to make sure there was no obvious issues. We chose to trim some legs and reapply heat to shore up a few messy joints. Now it was time to take the RLD for a test run.

Now that we had a working RDL, it was time to assemble the two front logic displays. I am not going to bore you with all the details again. This process was along the same lines as the RLD just on a smaller scale with different color LEDs. They used the same IC, Socket, and Ceramic Capacitors as the RLD, but switched the 28k Resistor for a 24k one. Other than that, pretty straight forward assembly.

Once we had our FLDs assembled, I took the time to test them with 5V power. To connect the FLD’s to the RLD, I used a five wire female/female jumper cable to the bank of output pins closest to the micro-controller and connected them to the corresponding input pins on the top FLD. I then used another 5 wire jumper to attach the output pins on the top FLD to the input pins on the bottom FLD.

One of them worked flawlessly, but the other display was experiencing an issue, as the entire panel of LEDs remained lit constantly. I first thought it may be a bad IC as my first batch had been purchased off of eBay and were known to be cheap copies. However, that did not fix the problem. I then began to test voltages around the board with my multimeter and soon found an anomaly. I was testing the voltages on each of the four output pins against the ground pin. Normally, the first two pins (+5V and L) should have voltages in line with the operating voltage of 5V and the last two pins (C and D) should have only minimal voltage in the 0.1-0.3V range. In the case of my misbehaving board, these pins were also experiencing the full 5V. I decided to de-solder the pin header and install a new bank of pins to see if that corrected the problem.

Note to Builders (mainly new builders): De-soldering is an absolute pain in the butt. Not only is it difficult to remove a component that has multiple pins, it is almost impossible to regain a clean unblocked hole in the PCB. I fought with this process until I ordered a cheap De-soldering Pump off of Amazon . For $3 I figured it was worth a try. Man, it is one of best tools I have ever purchased. It literally makes desoldering and cleaning the PCB a split second job. Do yourself a favor and get one.

What do you know! After installing the new pin headers, my second Front Logic Display worked flawlessly with 5V power. Take a look!

Now that I had the hard stuff, or what I thought was the hard stuff out of the way, I began to assemble the front and rear PSIs. Each of Artoo’s PSIs contains 26 separate LEDs. The Front PSI is comprised of 13 Red and 13 Blue 5mm LEDs, while the Rear PSI uses a combination of Green and Yellow LEDs. In each case, the colors are alternated in a checkerboard pattern.

Once again, the components for each PSI board are roughly the same as the RLD and FLD, with the difference simply being the use of a 10k resistor in place of the FLD’s 24k resistor. However the layout of components is pretty dense and requires changing up the order of installation slightly.

Due to the IC Socket being located opposite the middle row of LEDs, I needed to install the middle row (11 thru 16) of LEDs first, before continuing with the other components. (If you wish for these LED’s to be accessible, you can substitute the 24 pin dip socket for two single row 12 pin DIP sockets.) Once they were installed, I went ahead and installed the capacitors, resistor, socket, IC, and pin headers.

Next, I finished installing and soldering the remaining LED’s on both boards in the checkerboard pattern, reviewed my joints and tested the Boards.

Note to Builders: Here is where I learned my lesson about Chinese LEDs and incorrect cathode indicators (short lead, flat side) mentioned above. In two cased on the rear PSI, I tested the LEDs and then placed them in the board only to find out they were backwards, yet the flat side of the LED was aligned with the remaining ones. While inconvenient, it was and easy fix.

Once I tested again, I experienced an addition issue with the rear PSI not always starting up correctly during power up. With the advice of several members of the R2 Builders Club, this was determined to be a bad IC chip. I replace this one for now with a cheap spare and all was right with my PSI displays. I eventually replaced all of them with high quality replacements but I will discuss that in a moment.

So here it is, our complete Teeces 3.2 Logic and PSI Display System running with CuriousMarc’s v1.1 Sketch on 5V power in standalone mode. Stay tuned for additional progress where I integrate this system with our MarcDuino Dome Control System, enabling wireless control of this display through our iPad and iPhone.

As mentioned before, I eventually decided to replace all my cheap IC chips with high quality versions purchased from American distributors.

During all of our initial tests, I was using 5V to power our boards. However, I eventually added two pin headers to the Raw feed and tested the systems with power beyond 5V. When doing so, I quickly experience an assortment of odd display behaviors on pretty much every board. It was quite inconstant with its behavior, never duplicating the exact same behavior from power up to power up. With the help of the Club members, I learned that such behavior was indicative of low quality or damaged IC chips.

Once I replaced each chip, the erratic display behavior seen in the video ceased to occur and my system began operating correctly on both 5V and Raw Voltages.

Astromech.net Teeces Wiki Page *

Teeces V3.2 Kit Sheet & Documentation PDF

Teeces V3 Lighting Kits – Summer 2011 Run *

Teeces V3 Announcement *

Quick Tutorial for Teeces Logic Programming *

Working on Teeces’ Arduino Lights Thread *

CuriousMarc’s MarcDuino, R2 Touch thread with Teeces Integration Announcement *

CuriousMarc’s Teeces Integration Website

* Astromech.net pages may require forum/club membership to view.

Artoo requires at least 3 different motors, two of which are paired together, to achieve both ground locomotion and dome rotation.

As discussed in my previous post, , I plan to use two Pololu Motor Controllers to drive my Midwest R2 Builders Club DDR Foot Drives for droid mobility.

Additionally, I plan to pair a Syren 10 Motor Controller with an R2ATL Dome Drive Assembly to handle Artoo’s Dome Rotation.

Since I know very little about Motor Controllers, I began by sifting through the documentation on the Pololu website trying to figure out how to set these up correctly. These controllers have an on board USB interface that allowed me to use some diagnostic and control software to test the Controller/Motor Combination before connecting them to the RC Control. This proved to be quite handy as the RC configuration and wiring is a bit more complicated due to the channel mixing required for Artoo’s Tank Drive System.

I quickly installed the software and drivers on my extra windows laptop (No Mac Version) and got to work setting up the test wiring configuration seen here. Once I was sure every thing was correctly wired up, I connected the motor controller to my Laptop via USB and the power cable to my 12V Battery. I openedd the Diagnostic software and was happily greeted with zero errors and system ok display. I used the manual slider with in the program and was able to easily control my motors forward and reverse rotation.

With one success behind me, I began to wire my second 18v25 controller and motor in the same fashion and hooked it up for testing.

Unfortunately, the board fried immediately and I was engulfed in the stench of burned electronics. Looking over the board, I quickly found that one PCB path way (I have yet to learn what they are called) burned up entirely through the top layer of the board.

I have no idea what caused this but it could have very well been a bad solder job on my part as I will be the first to admit I haven’t perfected my technique yet and this board was especially tight. I have a support ticket in with Pololu and we will find out how that pans out soon.

Either way, a lesson learned (good and bad) and that is really the point of this project.

Since I only have one working foot drive at the moment, I had to postpone testing the RC Control with channel mixing until I have received my replacement controller.

Not to be deterred I continued on!

Since I am planning to control the dome through Radio Control, I first needed to set the DIP Switch pins as illustrated here so it correctly handles the signal from our RC Receiver.

The Dome Drive is a single motor system, so the the wiring is quite straight forward. Using the diagram here, I connected the controller, motor and RC receiver together and after several redundant checks connected the 12V to the Syren 10 and 5V to the RC Receiver….and Zaaa….nope it worked fine. The RC Receiver blinked once and the Syren 10’s blue indicator LED came on as they both should.

Once I turned on the RC Transmitter, the RC Receiver’s Orange LED came on indicating it was receiving signal and I was able to successfully control the Dome Motors Rotation using the left and right motion of the DX6i’s Right Control Stick.

I figured we would start the build off with something rather simple, or at least I thought so. I decided to gather the necessary components to build the 3 lights required to illuminate Artoo’s Halo Projectors. Since I am planing on using CuriousMarc’s RTouch/MarcDuino System to operate and control the dome lights and panel animation, it was only fitting to use his HP light board. Continue reading Starting Off Small…Assembling A Set of CuriousMarc’s Holo Light Boards →

Now that we have decided to begin this project, I have spent some time reading the forums on Astromech.net , trying to learn as much as I can about the methods, processes and parts need to accomplish our Artoo build.

To keep our Artoo as realistic as possible, I am going to try to use as many aluminum or steel parts as possible, using resin or fiberglass parts only if others are not available. Continue reading Figuring it all Out! →

Dome Electronics Pt. 1: Building CuriousMarc’s Marcduino Dome Control System

Lighting Up the Dome, Part 1: Building the Teeces 3.2 Logic Display and PSI system.

Artoo’s First Steps: Testing His Differential Drive System via RC

Testing My Syren 10 and Pololu 18v25 Motor Controllers with Drive Motors…I went 2-3 with a Huge Strike Out!!

Configuring, Connecting (Binding) and Testing Artoo’s RC Transmitter and Receiver.

Tested.com interview (Senna's R2 Adventures)

Star Wars Day at the Corona Public Library 2015 (Victor's R2 Blog)

UPCOMING APPEARANCE: Oct 10, East Anaheim Branch Library (Senna's R2 Adventures)

Body work on BB (Thomas's R2 Blog)

R2LA XII (Victor's R2 Blog)

12th annual R2-LA (Senna's R2 Adventures)