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 all build posts related to the construction and design of our Astromech.

One of the most endearing things about Artoo that we all have come to love is what I call his “personality”. The beeps, buzzes and whistles he makes through out the saga along with the many movements and lights positioned in and around his dome.

In building our droid, I plan on enabling control of each of Artoo’s 10 dome panels so they open and close. I also hope to add control to his three HoloProjectors, including LED lighting for each. Most importantly, I want to allow him to talk and communicate with us.

There are several lights situated around his dome and they include:

3 HoloProjectors mentioned above. (5)

Rear Logic Display (11)

2 Front Logic Displays (3)

Rear PSI (9)

Front PSI (4)

Magic Panel (8)

To tie all this functionality together we have decided to leverage the Marcduino Control System designed and developed by an insanely talented and uber smart gentleman, CuriousMarc. Marc is a prolific contributor to the forums on Astromech.net and explains his system, provides build instructions, and offers custom firmware for his boards at his website, www.curiousmarc.com .

What makes Marc’s system exceptional, is he has not only designed these custom boards, but also developed an amazing iOS app, R2 Touch , to allow us to control most of Artoo’s dome functions from the touch of our iPhone or iPad.

This app will allow us to:

Open and Close All Dome Panels

Trigger Dozens of Sound Bites and Music

Animate and Control All Three Holoprojectors

Initiate Custom Sequences Involving Sound, Lighting and Movement

Control Magic Panel Display…eventually

Control Front and Rear Logic Displays including sending custom messages…eventually

So now that we know what we hope to do…lets build our boards.

Marcduino boards are based on the same chip as an Arduino, but Marc custom designed the system for the needs of an Astromech Builder.

He kindly offered his custom PCB through Oshpark for a very reasonable fee. Since the system requires both a master and slave board to fully automate all items, we went ahead and ordered two boards.

We also ordered the following components to complete our construction:

Part

Quantity

DigiKey Part Number

Online Source

16 MHz Crystal

887-1019-ND

DigiKey Link

ATMega328P

ATMEGA328P-PU-ND

0.1 uF Cap

445-5303-ND

20 pf Cap

SR151A200JAR

100 uF Cap 16V

399-6601-ND

1 kOhm Resistor 1/4W

CF14JT1K00CT-ND

3mm LED Red

754-1606-ND

3mm LED Green

754-1603-ND

0.1″ pin 50 strip

SAM1031-50-ND

0.1″ pin 2 row 10 strip

5-146257-5-ND

While each of the boards (master and slave) have slightly different functions, they require the same hardware so both boards were built identically. The different functions are handled by separate firmware versions. I am not going to bore you with the details of soldering each of these various components but they were assembled as illustrated here.

If you would like addition information regarding assembly, please visit Marc’s Assembly Page .

Once completed, I ended up with the following two boards: Our Completed Marcduino Boards

Before you say it, I am completely aware my soldering skills at this point of the project leave much to be desired. Soldering is one of those skills that you can only really figure out by doing it over and over again. Trust me, when I begin to construct our Teeces Lighting System later in the build, I will get way more practice than I ever wanted.

One lesson I did learn about soldering that at first seams to go against logic is that adding more solder can make it easier to melt an existing joint. This is handy when you may need to remove a component. Often a set joint is difficult to reheat, but by applying additional solder, the joint quickly melts free allowing the components to be removed.

Each panel requires it’s own firmware before it can function properly.

The master board manages the general functions of the system and controls all ten servos required to automate Artoo’s dome panels. It is also responsible for triggering Artoo’s collection of sounds. It does this by sending serial data to an MP3 Trigger board we will discuss here in a minute.

The slave board handles the control of the Haloprojector movement and lights. Additionally, this board can connect to a Magic Panel Kit and either a Teeces Logic and PSI Display System or Jedi Droid Control System. We plan to incorporate one of mcwhlr’s Magic Panel Kits as well as the Teeces System. However, at this point we will be focusing on getting our system operating for just the basic set of functions.

Both firmware versions are available from Marc’s Site . We selected the two versions required for our hardware choices (PanelController_MP3Trigger_v1.6.hex for master, HPController_v1.5.hex for slave), downloaded the .hex files to our Mac (remembering their saved location) and set off to flash each of our boards.

To flash each board we must use an ISP Programmer such as the one we used her from Sparkfun .

While it seemed that getting all the correct drivers and applications to complete this project on a Windows machine can be a bit tricky, I was pleasantly surprised at just how easy it was to accomplish on my Macbook.

We first needed to download the command line tool AVRdude, it is part of the larger Crosspack AVR for the Mac application bundle. I simply downloaded and installed the application. Once complete, I connected the first Marcduino board to the Pocket AVR Programmer via the included cable and then connected the programmer to my Mac via a mini USB cable.

I opened the terminal and entered the first of 2 commands required to correctly flash the master board.

Step 1: Write Fuses: <PATH TO DIRECTORY>/CrossPack-AVR-20130212/bin/avrdude -C <PATH TO DIRECTORY>/CrossPack-AVR-20130212/etc/avrdude.conf -p m328p -P usb -c usbtiny -u -U efuse:w:0x07:m -U hfuse:w:0xDF:m -U lfuse:w:0xFF:m

Note: This initially resulted in an error, it could not locate my device. Now, trying to trouble shoot this problem took a great deal of my time but taught me a valuable lesson. Never overlook the small things! After reinstalling software, reading forums for advice, ordering a new programmer and all sorts of other things, you know what my problem was…the USB cable was bad, that’s it. A $4 part. Live and learn. Again, that is really the point of this project.

Step 2: Flash Code: <PATH TO DIRECTORY>/CrossPack-AVR-20130212/bin/avrdude -C <PATH TO DIRECTORY>/CrossPack-AVR-20130212/etc/avrdude.conf -p m328p -P usb -c usbtiny -U flash:w:<PATH TO FILE>/PanelController_MP3Trigger_v1.6.hex:a

Boom, that is it for the first board. Once complete, I rebooted the board and correctly received a solid green LED and after a short moment a blinking red one as well. So far so good.

I moved on to the slave board and repeated the two steps with the following commands: Step 1: Write Fuses: <PATH TO DIRECTORY>/CrossPack-AVR-20130212/bin/avrdude -C <PATH TO DIRECTORY>/CrossPack-AVR-20130212/etc/avrdude.conf -p m328p -P usb -c usbtiny -u -U efuse:w:0x07:m -U hfuse:w:0xDF:m -U lfuse:w:0xFF:m

Step 2: Flash Code: <PATH TO DIRECTORY>/CrossPack-AVR-20130212/bin/avrdude -C <PATH TO DIRECTORY>/CrossPack-AVR-20130212/etc/avrdude.conf -p m328p -P usb -c usbtiny -U flash:w:<PATH TO FILE>/HPController_v1.5.hex:a

As with the first, the board was quickly flashed and I was greeted with both a solid green and blinking red LED.

Now, lets see if they really work.

In order for us to achieve the basic functions of the Marcduino system, we first needed to collect and purchase the following items:

Both the Master and Slave Marduino Boards

MP3 Trigger from Sparkfun

16 Tower Pro MG90S 9ox Metal Gear Servos

3 CuriousMarc Holo Light Boards we assembled earlier

WiFly RN-XV Radio Module from Sparkfun

XBee/WiFly Explorer from Sparkfun

2 X 15 watt 4 ohm Class-D Audio Amplifier Board

A Pair of Pyle 3.5″ 120 Watt Two-Way Speakers

8GB Micro SD Card to store sound files.

1/8″ Mini Jack to RCA Adaptor

12ga Speaker Wire

Assorted Colored 18ga female/female jumper cables

Before we hooked all these components, we first needed to set up our WiFly RN-XV Radio Module so that it would create the single connection Wi-Fi access point with which our iOS devise can connect.

To update the module, we used a XBee Dongle from Sparkfun to connect to a USB port. The steps required to do this are quite dry and really no fun to read.

If you wish to learn, they can be found on CuriousMarc’s Web Site

Basically, we just set the various network settings used to make the connection between the iOS device and the master Marduino board, such as IP Address, Netmask, Gateway, etc. We also set our SSID to “R2D2WiFly” so we can easily identify the network connection needed to establish communication with Artoo.

This device allows only one connection so we don’t need to worry about another device connecting to our droid and attempting control.

Once completed, we began connecting our system together. Here is a high resolution mock up of how we wired all of our components together.

Below is a shot of our testing board set up along with many other aspects of Artoo’s Dome Electronics including the Holo Light Boards , Teeces 3.2 Logic Display and PSI system , and rotopod’s Dome Bump Controller we will be explaining in latter posts. We are also using one of Chris’ 12V to 5V power distribution boards. This board is highly efficient allowing us to regulate the 12v feed into the dome down to 5v at around 6amps. Enough to power the 10 panel servos and 6 projector servos.

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 Number

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.

After the problems I had with my second motor controller in my last post , I received my replacement controller from Pololu and quickly assembled it. This time, everything went perfectly and I was able to test its function.

Now that I had two working and tested Motor Controller and Foot Drive pairs, I set off on setting up a quick test platform to see if I could get Artoo’s Differential Drive System working via RC control, and maybe see him take his first steps.

I wired the components together (see diagram) on a small piece of plywood to create a small testing platform that I could mount a 12V 18AH SLA Battery, the RC receiver, 2 motor controllers, and two drive motors.

Before I was able to establish positive RC control, I first had to use Pololu’s diagnostic and control program to configure each motor controller. Our set up uses a single stick of the RC transmitter to control both throttle and steering. Therefore, we have to set each channel to operate correctly on both boards. This was accomplished simply by using the channel configuration wizard in Pololu’s application.

For the most part this was a very simple process, however there was one issue that arose that I hadn’t given much thought to. While testing after the initial configuration, I realized that each wheel in the foot drives was turning in an opposite direction. During my initial testing on the bench, I had the foot drives oriented in the same direction and thus never realized it. Artoo on the other hand has his feet aligned in a way that both motors are facing towards his center, requiring each motor to turn in an opposite direction in relation to the other in order to move forward or backward in unison. I could have simply reversed the power cables running to one drive motor but didn’t like the idea of running a red wire to the black lead of the foot drive. Call it OCD, I just feel it is safe to keep things simple to avoid future complications, Red to Red, Black to Black.

Pololu’s software however offered a simple solution. I was able to configure each channel on one of the controllers to operate inversely, thus correcting my predicament and allowing the drives to operate both forward and backwards in unison.

Now that I had the test platform working on the bench, it was time for Artoo to take his first steps.

While it will take some getting use to, I was able to positively control forward and reverse movement, as well as left and right steering.

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 will be the first to admit at the start of this project I knew absolutely nothing about RC controls. It was never a hobby I had as a child so I had to learn from scratch.

In order to control Artoo’s ground movement, I chose to begin with simple RC controls. Many on the boards suggested this is the best way to get our droid operating first and then think about getting fancy with micro-controller based systems. Sounds fair enough to me.

After a great deal of reading over the forums, I decided to go with the Spektrum DX6i Transmitter and their AR6200 receiver. I purchased these separately off of eBay but Spektrum makes it quit easy to pair the two together.

In order to get the controls to work correctly for a tank drive Artoo unit instead of an aircraft, I started by setting up my model on the transmitter.

These are the things I set up:

Main Menu -> Mix 1 I first had to change INH to ACT and then I set Values to: ELEV -> AILE ACT Rate L 0% R 0% SW ON TRIM ACT

Main Menu -> Setup List –> Model Type I Set Value to ACRO

Main Menu -> Setup List –> Model Name I set Value to R2D2

Main Menu -> Setup List –> Reverse I set Values to: THRO- N AILE- R ELEV- R RUDD- R GEAR- N FLAP- N

Once finished making the changes I shut off the controller saving my settings.

To get the Transmitter and Receiver to bind, I followed the following steps.

To bind an AR6200 to the DX6i, I inserted the bind plug in the BATT/BIND port on the receiver. Note: If you don’t have a bind plug, you can simply use a female/female jumper cable connected to the top and bottom pins.

To bind an AR6200 to the DX6i, I inserted the bind plug in the BATT/BIND port on the receiver.

Note: If you don’t have a bind plug, you can simply use a female/female jumper cable connected to the top and bottom pins.

I powered on the receiver by connecting the battery to one of the remaining pin sets and the orange LED on the receiver began to flash. This indicated that the receiver was in bind mode and was ready to be bound to the transmitter.

Next I needed to set the fail-safes. These are quite important and will set the behavior of Artoo in case we loose radio control. The last thing we want if for the droid to go rogue on us during a RC connection failure. Note: The DX6i is primarily geared towards RC aircraft control and being so the fail-safes are a bit different than those of a tank drive system such as Artoo will be. This step will differ from most instructions you find online for the DX6i or in the manual. To set the fail-safe for Artooo, I just needed to make sure both control sticks are dead center. Since we are using the right control stick as a mixed control (ELEV and AILE) for his ground movement, center makes both forward/reverse and left/right neutral, or stopped. Perfect. The left stick’s left to right movement (RUDD) will control the direction Artoo’s Dome will spin. Once again leaving the stick in the center position will ensure he doesn’t go into a free spin on failure. So, I made sure both sticks are centered and moved to the next step.

Next I needed to set the fail-safes. These are quite important and will set the behavior of Artoo in case we loose radio control. The last thing we want if for the droid to go rogue on us during a RC connection failure.

Note: The DX6i is primarily geared towards RC aircraft control and being so the fail-safes are a bit different than those of a tank drive system such as Artoo will be. This step will differ from most instructions you find online for the DX6i or in the manual.

To set the fail-safe for Artooo, I just needed to make sure both control sticks are dead center. Since we are using the right control stick as a mixed control (ELEV and AILE) for his ground movement, center makes both forward/reverse and left/right neutral, or stopped. Perfect.

The left stick’s left to right movement (RUDD) will control the direction Artoo’s Dome will spin. Once again leaving the stick in the center position will ensure he doesn’t go into a free spin on failure.

So, I made sure both sticks are centered and moved to the next step.

Next I powered on the DX6i Transmitter and immediately pulled and held the Trainer/Bind toggle forward. On this receiver it is located on on the top of the transmitter, back left corner. After a few seconds, the LED on the receiver went solid, indicating the pair was now bound.

I removed the plug from the BATT/BIND port on the receiver before powering off the transmitter.

In order to test the connection between the Transmitter and Receiver I decided to put an as yet unused Arduino Uno micro-controller I had lying around to work.

I connected my Arduino to my Macbook via a USB cable and fired up the Arduino Development App.

I used the following simple sketch to measure the signals from the receiver and return them to the Arduino App’s Serial Monitor (Tools -> Serial Monitor):

#define pin 8 // R/C channel signal pin unsigned long duration; void setup() { Serial.begin(9600); // setup serial pinMode(pin, INPUT); } void loop() { duration = pulseIn(pin , HIGH); Serial.println(duration); // debug value }

Once the sketch was compiled and and sent to the Arduino, I simply connected the three jumpers cables between the boards

5V on the Arduino to a Pos (+) on the Receiver

GND on the Arduino to a GND (-) on the Receiver

Digital Pin 8 on the Arduino to the Signal Post of one of the three RC channels I wanted to test. In my case, RUDD, ELEV, and AILE.

Like So:

Then I turned on my DX6i Transmitter and moved the control sticks, resulting in something like this:

As I could see from the reading my controls were being received and had a range between roughly 1925 and 1090 with a neutral position hovering just around 1510. These results were mimicked by all three control channels, RUDD, ELEV, and AILE indicating that I was receiving all three signals. Only time will tell if they need to be tweaked further in the Transmitter settings but I now am happy knowing I can talk to Artoo’s receiver.

Once I receive my dome motor and motor controller, I will hook both it and the foot drives up to test the system further, but I am happy with my progress to this point.

ScottyK’s Astomech.net Thread: Spektrum Dx6i and Sabertooth 2X25

Astromech.net Wiki Post: Arduino RC ReceiverDecoding

I had originally planned on using the Dimension Engineering Sabertooth 2×25 Motor Controller to run Artoo’s two foot drives because it gets high marks on the boards. However, Pololu offered a great deal on these 18v25 Motor Controllers on Cyber Monday so I figured I would give them a shot. I was able to get a pair of them for $85 versus the $130 of the Sabertooth, so time will tell if it was worth it or not.

Continue reading Prepping My Pololu Simple High-Power 18v25 Motor Controllers →

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)