Frequently asked questions/robostix
From GumstixDocsWiki
If your question is not in this FAQ, please feel free to ask it on the Mailing list
Where are the robostix technical specs located?
See the Robostix pages.
Can Robostix be used with either the gumstix basix or the connex platform?
Yes, Robostix uses the 60-pin bus header so it can be connected to either the gumstix basix or the gumstix connex platform.
Can the robostix be used standalone, without a gumstix basix or connex?
Yes, you can connect robostix to any linux or windows computer. You will need an ISP cable for programming with a non-gumstix computer.
From where can the In System Programming cable from Digikey be purchased?
The ISP cable can be found here. Other ISP cables can be found on the Robostix ISP page.
To get serial ports to initialize the robostix board, is there a serial header on robostix?
There are two PXA serial ports exposed on the robostix headers, FFUART (on which the gumstixconsole emerges) and STUART but they are not level-shifted to RS232.
Can the robostix be stacked together with a waysmall STUART board on the hirose connector?
Sorry, no stackability on this go-round. robostix only has one hirose connector for joining it to a basix or connex platform and cannot be stacked with another robostix or any other 60-pin expansion board.
What other choices were made in this version of the Robostix?
Other choices made:
- No RS232 level from the atmega to the world.
- No UART connection between the Atmega and PXA255. The PXA ST-UART can be connected to an ATmega UART at 5V logic levels by connecting diagonal pins on the UART header.
What software/programming language, like Player, has been pre-loaded on robostix?
None, actually-- robostix can be loaded with any software that you want using an In System Programming (ISP) tool such as this one from Digikey or via a connected gumstix basix or connex platform.
Check the open-source Player/Stage project which has been ported to gumstix by the Player community.
Is there a communications protocol to address I/O, servos, motors, etc?
There are several protocols that are made for the ATmega128 but none that are being published. There's an open-source C compiler.
Is code downloaded from gumstix to robostix with onboard JTAG?
Not to JTAG, but to the ISP which has its own double function.
Do the gumstix and robostix communicate with each other via 115k serial?
When the two are used together, a separate header is dedicated to the gumstix.
Are the I2C pins routed through the 60-pin hirose connector and connected to the correct pins on the robostix or will some wires between the pins on robostix be needed?
Simple answer: Yes. More complex: there is a GPIO from the gumstix used as a gate to bock or enable the connections.
What is the onboard spacing on robostix?
robostix uses:
- 0.1" spacing on all connectors (2.54mm == 0.100", which is 0.1 inch).
AVR "A" channel - the circuit diagram for robostix has the "A" channel ending in pinouts. Are these on the bottom of the board?
Yes, as pads.
Is the AVR channel wired to something on the board?
No.
Is the robostix capable of adding a small external memory?
From the AVR literature, the "A" channel is low-byte address/data to external memory. All GPIO lines are pulled out so yes, conceivably, the robostix could add external memory on the board; ALE, RD, WR are pulled out as their GPIO alter-egos.
Where the ATAVRISP is the product currently listed at $29.00
AT = ATmega, AVR is the processor family, ISP is the In System Programmer
On which priniciples is power distribution based on Robostix?
The power distribution strategy is based on these principles:
- The gumstix board needs appropriate V_BATT via the Hirose-60.
- The on-board chips need appropriately regulated power at both 5V and 3.3V.
- The Servos have unpredictable current requirements.
- Devices on the A/D lines will have unpredictable current requirements at 5V-- but need filtering.
- Devices on the logic-level lines (GPIO,Timers) will have unpredictable current requirements at 5V.
- Devices on the UART,I2C lines will have low current draw (i.e. <40mA) at 5V.
- The gumstix needs to have the ability to do a hardware power-cycle on the ATmega128.
The implementation is based on these premises:
- The gumstix power supply provides at least 5.0V. This ranges up as much as 5% depending on load and up to 1 A.
- A 5V requirement is actually 5V +/- 0.5V (e.g. ATmega128 "Electrical Characteristics")
- The MIC5219-5.0-BM5 has a dropout from 0.010 V to 0.200 V and peak current source of 500mA
- V(Logic High) for MIC5219-EN pin is 2.0V and can thus be driven by the PXA255 3.3V logic directly (Min Output High is 3.0V)
When using the robostix board, can any power input jack be used?
Power should always be provided via the robostix power jack when a robostix is being used. See Robostix Voltages.
Why are there THREE power inputs when there are only two things to be powered: the gumstix and the servos?
On the robostix board, V_BATT isn't an input. The 3 inputs are:
- V_POWER (same type of power connector that's on all of the other boards). This allows the gumstix/robostix to be plugged into the wall wart.
- V_ROBOBATT - really the same as V_POWER, but it's a 2 pin 0.1" header, rather than a jack like the one on the wall wart. You would only ever use one of V_POWER or V_ROBOBATT at the same time.
- V_MOTOR - goes to the servos.
There is a jumper which allows V_MOTOR/V_ROBOBATT to be connected together which results in the motors and the ATMega being powered from the same battery (connected to either battery connector or the wall-wart plug).
What happens if power is provided into V_ROBOBATT and V_BATT at the same time?
The gumstix board itself has an onboard voltage regulator that requires less than 6v. This is V_BATT (it's on the 60 pin hirose connector). There is a voltage regulator on the robostix that can take V_ROBOBATT/V_POWER and convert from the 6-12v range down to 5v, so the gumstix board will be happy.
On the waysmall board, the power connector for the wall wart is V_BATT. On the latest schematic of the Robostix, the power connector is called V_POWER.
Which connectors have been selected?
The tin-posts are the Molex 53047.
In what way is SPI used on Robostix?
SPI is used in a way that allows a software download over SPI (NSSP on the gumstix side), to take advantage of the Power-on-reset autodownload over SPI.
On this board, there is an LDO between the V_BATT (Power Jack) and the supply to the ATmega128. So: dropping L_DD14 will drop the AT power enable, and dropping L_DD13 will drop nPROG_EN.
If the programming_enable line is low when the chip powers back up it will download boot code over the SPI.
Is SPI hard to work with?
Not particularly. It's basically just another bidirectional communication mechanism. It's actually simpler to deal with than i2c.
Here's a document download PDF from Atmel.
This application note download PDF talks about doing In System Programming over SPI.
Does the atmega128 have any code preprogrammed into it? If so, what code?
Not yet.
Is there any code which can be downloaded from the gumstix into the Atmega128 'without requiring an ISP cable?
See the Robostix samples page. These can all be downloaded to the robostix via the Robostix gumstix ISP.
How is code downloaded using an ISP cable?
Use AVRDUDE and the cable described here.
Could Atmega128 code be prototyped by downloading it from the gumstix to the atmega128 Ram and running the code from ram. Is there code for that process already?
You can't execute from the Atmega RAM. You can only execute from flash. You can download a bootloader and reprogram the flash using the bootloader.
Can high speed SPI be used to get data to/from the Atmega when an application is running? Should SPI be used to program the Atmega or should i2c?
For the program after the bootloader is installed: yes. Use SPI, i2c uart, or other communications methods.
For downloading the bootloader, you need to use SPI.
The robostix board works when a solo board because the sample program that lights LEDs operates properly. When connected to the gumstix Linux board, neither board works: the Linux board does not boot, the gumstix LED program does not run, and the atmega ISP will not connect to the robostix.
The way things power up when the robostix/gumstix are connected together, the robostix is held in reset (so nothing on the robostix runs). See the Robostix uboot page for a way that the robostix can be made to start running as soon as the gumstix is powered on.
The ISP connector will only work when the robostix is NOT plugged into a gumstix. This is because the gumstix is trying to drive the same signals that the ISP programmer is.
The console port should work fine, but it's a TTL level console port and not an RS-232 level port, so you need some type of external voltage conversion device (like the one from Acroname or HVWTech). An unmodified tweener board will not work with the robostix/gumstix either.
Some customers see the red LED flash very briefly when they power things up (this is the program on the AVR trying to run, but then whatever u-boot does to the GPIO lines causes the robostix to go into reset, at which point the Red LED goes out.
Can the Tweener be connected at the same time as a robostix board?
Yes, but only with these Tweener modification.
Does the robostix board breakout the ICPn Pins? And if so, what are they labeled?
According to the ATMega128 datasheet (page 2), ICP1 is the same as PD4, ICP3 is the same as PE7,
Looking at the Robostix I/O pins page, we see that:
- ICP1 = PD4 = IC1 on the robostix.
- ICP3 = PE7 = INT7 on the robostix.
These two pins are next to each other on the Interrupt group of pins (the one group closest to the 60 pin hirose connector).
The Robostix tachometer sample code uses ICP3 to implement a Tachometer.
How are the ATMega pins labelled ?
The pins on the ATMega128 are PC0 thru PC7.
The silkscreen labels on the component side of the board are the header pin numbers and are numbered 1 thru 8. This matches what's in the schematic.
The PC0 thru PC7 labels are on the bottom of the board.
I'm guessing that you did what I did and assumed the the top label of three (3) corresponds to PC3, but in fact it's the one labelled 4 on the top (and labelled PC3 on the bottom).
From where can the connectors for the robostix header be purchased and what tools will be needed to work on them?
Purchase the following parts from Jameco here. (the part numbers are jameco part numbers)
- 100812 - 2 pin housing
- 157383 - 3 pin housing
- 100803 - 4 pin housing
- 103351 - 25 pin header strip
- 100766 - header crimp pin
- 159266 - crimper
These are found on these pages of the Jameco catalog: Jameco P134 Jameco P280
The cheaper crimper (Jameco #99443) on the same page does work but the 159265 crimper produces nicer crimps.
There is a little tutorial over here at Lynx Motion.
This web page talks about the differences:
You can find some information on using needle nose pliers here (see pages 8 & 9)
Dave Hylands highly recommend using the crimper tool from Jameco.
Jameco seems to be quite a bit cheaper for these parts than DigiKey.
Ed Note: with thanks to Dave Hylands for all of this information.
Note: Updated part numbers to available RoHS versions.
Is there a cheaper alternative to the Basic Stamp?
The cheaper alternative is called robostix and it's available from gumstix, inc. :)
To light an LEDs, an even cheaper is with a breakout-gs board or audiostix2.
The audiostix2 would allow audio in/out, too.
How can the Robostix Gumstix (FFUART) connector be used to get a U-Boot prompt?
The Robostix modifications page shows how the robostix can be modifed to provide V_BATT to the gumstix connector, rather than VCC5. Alternatively, wire up the power for the RS-232 level converter to another pin which provides V_BATT (like the UART pins).
See the Serial adapters page for a list of adapters than can be used with the robotsix. All of the UART ports on the robostix are 5v logic level serial ports.
What is a simple way to start with robotics?
The Seattle Robotics Society put together something call the Workshop Robot. Workshop Robot.
According to Dave Hylands, this is a really nice robot to start with. It uses the ATMega16/32; a simpler version of the ATMega128 used with the robostix.
By using a small amount of external circuitry, a designer can add a huge number of sensors (as gumstix does with the expansion board).
"Where the gumstix starts to become advantageous is when you start using algorithims which require alot more memory than is available on the ATMega processors".

