loading
Picture of Palm Arduino V3
RevIOv2Config05.JPG
I design and create this Palm Arduino V3 prototype PCB, as I was tired of recreating Arduino Compatible on perf board every time I prototyping a new project, especially when I had to spend  a lot of time tracing the wiring to see that I made the right connection.

I design this Palm Arduino (version 3) prototype PCB to be encased by Lego bricks, especially Lego Technic Bricks, for the reason that I was hooked by the Lego after my first Lego project - R/ C Lego Car. And I am working on a couple projects that are using Lego Technic components with Arduino. (I will post instructables as the project is ready to post.)

Also, I want to be able to use Palm Arduino in wide variety fashions. For example I could use either right angle female connectors or straight female connectors. or could use straight power switch or right angle power switch. etc. By doing this, I would facing the challenge of the enclosure designs to fit all of the mentioned criterial, and not very cost effective since we have to make 3D Print for each individual case.

For these reason Lego bricks are the best option to be used as the case of Palm Arduino Version 3.

 
Remove these adsRemove these ads by Signing Up

Step 1: Schematics and Pin Configurations

Palm Arduino and Palm Arduino II

Original Palm Arduino and Palm Arduino II, have a straight forward pin configurations. The order of the pin configuration were the same as the order of the pins of ATmega328 micro controller (28 pins)

1   - RESET          28 - A5 (SCL)
2   - D0 (RX)         27 - A4 (SDA)
3   - D1 (TX)          26 - A3
4   - D2                  25 - A2
5   - D3                  24 - A1
6   - D4                  23 - A0
7   - VCC              22 - GND
8   - GND              21 - AREF
9   - XTAL1           20 - AVCC
10 - XTAL2          19 - D13 (SCK)
11- D5                  18 - D12 (MOSI)
12 - D6                 17 - D11 (MISO)
13 - D7                 16 - D10 (SS)
14 - D8                 15 - D9

Both Palm Arduino and Palm Arduino II requires an addition of power regulator (5V and 3.3V).

Palm Arduino Version 3

In Palm Arduino Version 3, I used the same pin configuration that I designed for my other Arduino compatible board, RevIO, by grouping the communication ports (I2C, Serial Comm. Ports and SPI) on one side of the board, and leave the rest of the pins (Digitals, and Analogs) line up on the other side of the board sequentially (image 1). 
I also group the serial comm. pins (TX, RX, VCC, GND) on the rail to to be compatible with the XBee breakout board, such as XB-Buddy Basic Kit,  Adafruit's XBee Adapter Board (ID-126), or Sparkfun's Bluetooth Mate Gold (WRL-09358), etc.

Palm Arduino V3, added voltage regulators (5V and 3.3V) circuitry onto the PCB. 

I designed the Palm Arduino Version 3 to have its dimension compatible with the Lego's modular system.

Instead of using an ordinary standoff holes on four corner of the PCB, I added four larger holes that can accommodate the Lego's stud, so the PCB could hold on to the Lego's bricks or plates.


Step 2: Design Processes

PCB and Case Design

Lego Modular System has been in my interest long before I created my first Lego project, R/C Lego Car.  I have been researching on Lego bricks and components for a while, I also build my own Virtual Lego Bricks and Plates, and components according to the real dimensions, now I have good amount of components in my Lego Bricks and Plates library.
Since I planned to build Palm Arduino V3, I could use the Virtual Lego Bricks and Plates from my library to good use. 

First, I design (virtual) Palm Arduino PCB in EagleCAD, using exactly the same components as in my other Arduino compatible board, RevIO. The RevIO PCB is larger than Palm Arduino V3.
I planned the layout of Palm Arduino V3 to have the dimension fit with the Lego Modular System, and created the PCB in EagleCAD.
Then send the Gerber files to make the sample PCBs (I ordered four of them).

After I finished with the PCB layout I created Virtual PCB with CAD program (Autodesk's 3DS Max 8). To make a complete virtual PCB, I also created all the (virtual) electronics components that were necessary in Palm Arduino exactly with the real dimensions. And placed them on the virtual PCB.
The silkscreen on the PCB came from the rendered image from PCB fabricator. I used the image as a texture map on the Virtual PCB.

To design the case, I imported the necessary Lego Bricks and Plates into the virtual PCB and design the variations of the components configurations and different case styles, as presented in the following Steps..


Step 3: Lego Case Style 1

In this Step, I'm going to show you how I built a case for Palm Arduino Style 1.
This style consists of two straight 14-pin female receptacles, a straight 2-pin power connector, and a straight power switch.


Style 1 Lego Technic Parts

1 no.   1x6 Technic Brick (#3894)
2 nos. 1x8 Technic Brick (#3702)
2 nos. 1x2 Technic Brick with two holes (#32000) or plain 1x2 Brick (#3004)

1 no.   2x4 Technic Plate  (#3709)

2 nos. 1x10 Plate (#4477)
2 nos. 1x6 Plate (#3666)
2 nos. 1x2 Plate (#3023)
4 nos. 2x2 Plate (#3022)
1 no.   6x10 Plate (#3033)

1 no.  1x4 Flat Tile (#2431)

Following is the construction of the Palm Arduino Style 1 Lego Case:
Note: I also added the description text on each image.

Photo 4. One 6x10 Plate (#3033) and 4 nos. 2x2 Plate (#3022)

Photo 5. Place 2x2 plates onto each corner of 6x10 plate. Prepare 2 nos. 1x2 plates (#3023)

Photo 6. Place 1x2 plates between 2x2 plates on each end as shown. Prepare 2 nos. 1x6 plates (#3666)

Photo 7. Place 1x6 plates between 2x2 plates along the length of the case. Prepare Palm Arduino Style 1

Photo 8. Place Palm Arduino on the case by matching the standoff holes with the 2x2 plates. Prepare 2 nos. 1x8 Technic Brick (#3702) and 1 no. 1x6 Technic Brick (#3894)

Photo 9. Place 1x6 Technic Brick along the width next to the switch and power connector. Prepare 2 nos. 1x2 Technic Brick with two holes (#32000) or plain 1x2 Brick (#3004)

Photo 10. Place 2 nos. 1x2 Technic Bricks on the corners next to the FTDI connector. Prepare 2 nos. 1x10 Plates (#4477). Prepare  1x4 Flat Tile (#2431)

Photo 11. Place 1x4 Flat Tile on top of 1x6 Brick at power switch end, as shown.  Prepare 2 nos. 1x10 Plates (#4477)

Photo 12. Place both 1x10 plates along the length of the case. Prepare 2x4 Technic Plate (#3709)

Photo 13. Place 2x4 Technic Plate on top of 1x2 Bricks as shown. 

Now, Palm Arduino III Style 1 is ready!



Step 4: Lego Case Style 2

In this Step, I'm going to show you how I built a case for Palm Arduino Style 2.
This style consists of two straight 14-pin female receptacles, a right angle 2-pin JST type power connector, and a right angle power switch.

Style 2 Lego Technic Parts

4 nos. 1x1 Technic Brick (#6541)
2 nos. 1x8 Technic Brick (#3702)

2 nos. 1x2 Plate (#3023)
4 nos. 1x6 Plate (#3666)
2 nos. 1x8 Plate (#3460)
4 nos. 2x2 Plate (#3022)

2 nos. 2x6 Technic Plate (#3702)

2 nos. 1x1 Technic Brick (#6541)
2 nos. 1x1 Angular Brick (#4070)

Following is the construction of the Palm Arduino Style 2 Lego Case:
Note: I also added the description text on each image.

Photo 4. Prepare two nos. 1x6 Plate (#3666) and 2 nos. 1x8 Plate (#3460).

Photo 5. Form the rectangle using two 1x6 plates and two 1x8 plates as shown. Prepare 4 nos. 2x2 plates (#3022 )

Photo 6. Place 2x2 plates on to each corner of the formed rectangle of 1x6 and 1x8 plates. Prepare 1x2 plate (#3023).

Photo 7. Place 1x2 plate between 2x2 plates on the left end of the case. Prepare  2 nos. of 1x6 Plates (#3666)

Photo 8. Place 1x6 plates along the length of the case on both sides. Prepare Palm Arduino Style 2.

Photo 9. Place Palm Arduino to match the corners of 2x2 plates as shown. Prepare 2 nos. 1x8 Technic Brick (#3702)

Photo 10. Place both 1x8 bricks along the length of the case as shown. Prepare 2 nos. 1x1 Technic Brick (#6541) and 2 nos. 1x1 Angular Brick (#4070)

Photo 11. Place both 1x1 bricks(#6541) on the FTDI connector end.

Photo 12. Then place both 1x1 Angular Brick (#4070) on the opposite corner of the case.

Photo 13. Place the last 4 nos. 1x6 plates (#3666) on top along the width end on both sides. Or these plates could be substituted by 2 nos.  2x6 Technic Plates (#3702)

Step 5: Lego Case Style 3

In this Step, I'm going to show you how I built a case for Palm Arduino Style 3.
This style consists of two right angle 14-pin female receptacles, a straight 2-pin JST power connector, and a straight power switch.


Style 3 Lego Technic Parts

1 no. 2x4 Technic Plate (#3709)
1 no. 1x4 Technic Brick (#3702)

1 no.   1x4 Plate (#3710)
5 nos. 1x2 Plate (#3023)
2 nos. 1x8 Plate (#3460)
4 nos. 1x3 Plate (#3623)
4 nos. 1x6 Plate (#3666)

1x1 Round Plate (#6141)

4 nos. 2x2 Plate (#3022)
8 nos. 1x1 Transparent Plate (#30008)
1 no. 1x1 Technic Brick (#6541) or 1x1 Angular Brick (#4070)

1 no. 6x10 Plate (#3033)

Following is the construction of the Palm Arduino Style 3 Lego Case:
Note: I also added the description text on each image.

Photo 4. Prepare one 6x10 Plate (#3033) and 4 nos. 2x2 Plate (#3022)

Photo 5. Place 2x2 plates onto each corner of 6x10 plate. Prepare 2 nos. 1x2 plates (#3023)

Photo 6. Place 1x6 plates along the length, between 2x2 plates, on both sides. And lace 1x2 plate on right end of the case, between 2x2 plates.

Photo 7. For the third layer,  prepare 2 nos. 1x1 Round Plates (#6141), 2 nos. 1x3 Plates (#3623), 2 nos. 1x2 Plates (#3666), and 1x4 Plate (#3710). Then place all the plates as described.

Photo 8. Next, 2 nos. 1x2 Plates (#3023) and 4 nos. 1x1 Round Transparent Plates (#30008) are used.

Photo 9. 2 nos. 1x1 Technic Brick (#6541) or 2 nos. 1x1 Angular Bricks (#4070), and 1 1x4 Technic Brick (#3702). Place 1x1 Bricks on top right hand corner and bottm right hand corner of the case. Then put the 1x4 Technic Brick in between those two 1x1 bricks.

Photo 10. On the next layer, a 1x6 Plate (#3666), and 2 nos. 1x8 Plates (#3460) are used. Place 1x6 plate along the width of the left end of the case. And place 1x10 plates along the length of the case on both side.

Photo 11. Last layer, prepare 2 nos. 1x3 Plates (#3623), and 2 nos. 1x6 Plates (#3666). Place 1x3 plates start from the left hand corner along the length of the case. The place 1x6 plates next to 1x3 plate.

Photo 12. The last piece of the case, 2x4 Technic Plate (#3709). Place 2x4 Technic Plate inbetween 1x3 plate from (last photo).

And we now have Palm Arduino Style 3 ready!

Step 6: 'In situ' Lego Case Style 4

Another unique thing about Palm Arduino V3 is that it can be placed right on any Lego construction project, just like any "In situ" engineering construction which is carried out at the building site using material on site.

In this Step, I'm going to show two examples how I use Lego construction project as a case for Palm Arduino Version 3.

The Lego parts used as case for Palm Arduino are minimum since there are actual components for the lego construction the project are already exist, such as in second sample, only four 1x1 Angular Brick (#4070) were used. On the first sample I used use Lego case Style 2 added (Snapped) on to the project.


Sample 1: Track Bot (photo 4 to 14)

Lego Parts

2 nos. 1x2 Technic Brick with two holes (#32000) or plain 1x2 Brick (#3004)
2 nos. 1x8 Technic Brick (#3702)
1 no. 1x6 Technic Brick (#3894)

2 nos. 1x2 Plates (#3023)
3 nos. 1x6 Plates (#3666)
4 nos. 2x2 Plates (#3022)

Photo 5. Since the length of two red bricks (frames of the Track Bot) are 10 studs length which are the same as Palm Arduino Lego case length. We can use these as the support for the Palm Arduino 'In situ' case. So place the four 2x2 plates as shown.

Photo 6. Place 1x2 Lego plates in between 2x2 plates on top of the existing Lego frames as shown.

Photo 7. Place Palm Arduino to match the corners of 2x2 plates as shown.

Photo 8. Place 1x6 brick along the power switch and power connector.

Photo 9. Place 1x2 Bricks on top of 2x2 plate next to FTDI connector.

Photo 10. Add both 1x8 Technic Bricks along the length of the Palm Arduino PCB.

Photo 11. Place two 1x6 plates on the FTDI connector end of the case. And place the 1x6 plate along the width of the case on the power switch end.

Here we are we have the 'In situ' case for Palm Arduino V3.


Sample 2: Wireless Lego Race Car (photo 14 to 19)

Lego Parts

4 nos. 1x1 Technic Brick (#6541) or 1x1 Angular Brick (#4070)

Photo 15 shows the frame and body of the Wireless Lego Race Car has been build and shows the location of Palm Arduino PCB. It will be placed on top of the battery compartment. Also the DIY motor controller will be located next to the Palm Arduino PCB.

Photo 16. Four 1x1 Technic Bricks  (#6541) or 1x1 Angular Brick (#4070) are placed as the standoff for the Palm Arduino PCB.

Photo 17. Palm Arduino V3 placed over the four Lego (standoff) bricks.

Photo 18. The DIY motor controller was set in place next to Palm Arduino PCB.

Photo 19. XBee Breakout board can be connected directly to the Serilal Comm. port. on Palm Arduino V3.

Step 7: Conclusion

All virtual models were created using Autodesk's 3DS Max 8.
The PCB layout was created using EagleCAD PCB Design software.

All content posted is licensed with a Creative Commons 2.5 Share-Alike Non-Commercial Attribution license.

With this post, I hope someone might find it useful, and might be inspired by it.

Thank you very much for your visit.
I hope you enjoy it!
best arduino ever made on instructables man
is the pcb single sided board ??
sath02 (author)  Pranavthegreat2 years ago
Thanks!
The PCB is double-sided.

Do you have a down load for the PCB file or are you selling the board?

sath02 (author)  CaptChaos1 year ago

@CaptChaos,

No, I'm not selling it.

There was a comment regarding the PCB that did not work for him.

So, I decided to remove the PCB Eagle files from this project, and in my other similar Arduino Project Palm Arduino Plus, R/C LEGO 'Velocipede' Droid, for now.

But if you want to have a look or experiment with it let me know by PM me.

Thanks for your interest.

fynx1 year ago
Hi, great stuff. One question though, how do you connect this to the pc?
USAcalc1 year ago
sath do u use javascript and lego cause check out this:
http://www.lejos.org
sath02 (author)  USAcalc1 year ago
I use LEGO with Arduino Sketch only, I never use javascript and LEGO.

Thanks for the link. I heard about leJOS before. I'm sure there future is looking good.
There are many programming language that could be use with LEGO Mindstorm RCX Programmable Brick, rather than using RCX Code, i.e. pbFort, legOS, or Java implementation programming language like lejOS the one from the like you send.
gcanders2 years ago
Again, I am amazed with your creation. Albeit a few months late, I am glad I found this. Nothing is better than Lego and an Arduino mix. I wish I had found it earlier. I started making a bot from the Indiana Jones single wing aircraft and an Uno. I am waiting on some wheels from Denmark (Lego) before I mold my engine holders, but this is going to be a part of my next Lego project.
sath02 (author)  gcanders2 years ago
Thanks. I'm glad that my project can be useful to you.
If there is anything that I could help you with please let me know.
And looking forward to seeing your project, or at least see some pictures of your project!
Ian012 years ago
"I have been researching on Lego bricks and components for a while"

But you didn't discover the specialized Lego CAD applications and community-maintained parts library? Or if you did, why did you decide not to use them?
sath02 (author)  Ian012 years ago
Excellent question, Ian.
Yes, I am aware of Lego Digital Designer, if that what you're referring to.

For me, best way to learn about something (i. e. Lego bricks) is to create them myself.

Beside, Lego Digital Designer can only import or export file in three format LXF, LXFML and LDraw files. And these files format are not usable with the CAD programs that I am using 3DS MAX, or 123D. This is another reason that I am not using them.
Ian01 sath022 years ago
I was referring to both LDD and other applications like MLCad, LeoCAD, and Bricksmith. But you make good points. If what you're using works well, keep using it.
sath02 (author)  Ian012 years ago
Thanks for the pointer to MLCad, LeoCAD and Bricksmith. I will take a look!
WWC2 years ago
Your Instructables are always first class!
sath02 (author)  WWC2 years ago
Thanks for the kind words.
CarlS2 years ago
Nice design with the flexible Lego cases!
sath02 (author)  CarlS2 years ago
Thank you.
mrmerino2 years ago
A Lego Arduino? What has science done.
sath02 (author)  mrmerino2 years ago
Or "What has 'art' done!"
sspence2 years ago
Very Nice!
sath02 (author)  sspence2 years ago
Thank you.
mhcgusto2 years ago
this is cool!
sath02 (author)  mhcgusto2 years ago
Thank you very much.