Tuesday, May 26, 2009

A better 'Arduino' Stamp (very beta)

avr stamp board layout
Originally uploaded by hithisishal

Edit (7/10/09): I finally got the boards back. I am working out some small problems, and will update soon.

I'm not exactly sure if this is ready to publish, but I don't think I'm going to get any farther until I get a prototype put together, which may be a while down the road. Anyway, my school has a lot of Boe-Bots. The Boe-bot is a really great beginner robotics/microcontroller platform, but that is exactly what it is. They are used for high school students and freshmen in an "Intro to all types of engineering" class. It would be nice to get some more use out of them in higher level classes, and the ability to program them in C would do just that. So I was given the task of designing a board that I could swap with the BASIC Stamp to allow this. The Arduino Mini is almost that, but not quite. There are a number of problems that make it unsuitable to simply stick in a Board of Education (BoE). I aimed to fix all of these:

1. The BS2 has inverters on TX/RX on the board. This way, it can talk RS-232 without a MAX232. The BoE has an FTDI USB to Serial converter, and inverters built in on the board, so it can talk to the BS2 (it ends up inverting the signal twice). The only way to make a board that is hot swappable would be to put inverters on the AVR Stamp as well (or to use a different USB/serial device, but I chose the first option).
2. The BoE has a silk layer saying the pinouts - and these are broken from the socket to headers around a small breadboard. They were shifted by 2 on the Arduino mini. They're still wrong, but closer. Now it's right from 0-8.
3. The BS2 lacks hardware PWM, so pins 12, 13, 14, and 15 are arbitrarily broken out to headers that can connect to the motors. I needed to connect at least 2 of these to Arduino PWM pins, so I chose Arduino pins 9 and 10 (OC1A and OC1B).
4. The Arduino Mini didn't fit in the socket well. I hope I can find headers/pins that will fit better.
5. The Arduino Mini had to be reset before programming. The Mini Pro (and my AVR Stamp) has a switch to make this easier. I hope the DTR will work now, though. I'll see, and perhaps be able to use this board space for an ISP header or breakout for more analog pins in a later revision.

This board layout is totally unconfirmed. Don't make it if you want it to work. Don't complain to me if you make it and it doesn't work.

Eagle files follow. The library contains 2 parts, and the board also uses the Sparkfun library.

Bill of Materials with Digi-Key part numbers
Eagle Board File
Eagle Schematic File
Eagle Library with the two transistors.

Note: I know that I used the words Arduino and AVR interchangeably here. But that's because they mostly are. This project is not official Arduino hardware, and should not be called an Arduino. However, it is very closely based on the Arduino Mini Pro, which basically makes it an Arduino?

Monday, May 11, 2009

Classes are done!

Summer time = hacking time, which should lead to posting time? And it will. But for now I just bought a Game Boy Advance and Flash Cart. I have this GPS data viewer wired up with my Trimble Ace II. I'm reading through TONC, an awesome tutorial. I want to do tons of stuff with it, starting with rewriting that GPS program without the HAM and HEL libraries (mostly as an exercise), and add a waypoint finder so that it could be used for Geocaching.

It's so weird having a 32 bit native datatype.