#32415 - entilzha - Wed Dec 22, 2004 2:56 pm
Hello GBA developers,
Every year there is a robot competition called Eurobot in which me and some friends of mine compete. This year I got the idea to use the GBA as a graphical display, which would be very helpfull. Maybe in later stages we would even have it control the robot. Currently we have a Pentium 1 motherboard on the robot, but the monitor was too big.. :) Now I've browsed around this site and read some documents, but most of it seems to be about programming software for it.
In the software level I would not be needing a fundamental step up from the 'hello world' program as graphics are totally not important, but in the hardware I'm not sure. I need some I/O pins to communicate with the robot. Would I need to modify some ROM cartridge to hack my way to some pins, or could I use the multiplayer cable I/O thingy? Ofcourse, I would also need the ability to write code for the GBA.
Are there any links on working projects like this where I may find ideas? We already have a number of Atmel microcontrollers in the robot it would have to interface with one of them in some way. Any hints on what kit/compiler/whatever to use in this project would be greatly appreciated.
Thanks for your help,
Entilzha
#32417 - SimonB - Wed Dec 22, 2004 3:53 pm
How about the Xport?
Also, here is a link to the Xport Robot Controller: http://www.charmedlabs.com/xportrobot.htm
Simon
#32418 - Abscissa - Wed Dec 22, 2004 3:54 pm
entilzha wrote: |
Any hints on what kit/compiler/whatever to use in this project would be greatly appreciated. |
If you have Visual Studio 6, I recommend using that together with <shameless plug>GBAForVS6</shameless plug>. Otherwise, the best compiler to use is definately DevKitARM (http://www.devkit.tk). The only other alternative to DevKitARM (not counting getting liscenced by Nintendo and buying the expensive official stuff) is DevKitAdvance, but that's old, outdated, no longer maintained and just not worth using.
There's also an IDE called VisualHAM that's supposed to be relatively easy to use, but, if I understand correctly, that hasn't been updated in a long time and seems to be going the way of DevKitAdvance.
entilzha wrote: |
In the software level I would not be needing a fundamental step up from the 'hello world' program as graphics are totally not important |
Keep in mind, the GBA, being a game system, doesn't have any built in text output routines like C's printf, or C++'s cout, etc. Text has to be drawn just like any other graphics. But that being said, I'm sure there are some free libraries out there that can handle all of that for you. I'm not sure offhand where one would be, but I'm certain some of the other people on this board would be able to point one out (I think some of the people here have made such libraries).
#32424 - entilzha - Wed Dec 22, 2004 5:18 pm
Wow, 64 I/O pins... This X-Port thing is really overkill... We're currently using a homebrewn 3 wire message driven communication protocol, with fairly independent modules each controlling a part of the robot. All I would need is for it to become another module sending/recieving data and using the display.
This X-Port thing is more for the GBA to replace all of our other robot hardware. Pretty cool, but a bit overkill since we already have working robot modules. But at least I saw they have printf libraries included as well.. :) But seriously, I think this is too expensive and complex for what I'm trying to do. There must be an easier way to get a couple of free I/O pins. If necessary, I could use the sound plug for output, but as I really need input and not output I'm kinda hoping for this link port as it was designed to send data back and forth.
Thanks for your input, I'm now looking at the GBA programming tutorial for DevKitARM by Anders Vind Ebbesen as I don't have a VC6 right now. With some practise I could write code no problem as I'm comfortable programming in C. Still looking for the link I/O addresses or something though..
#32448 - tepples - Thu Dec 23, 2004 12:22 am
The GBA's link port has power, ground, and four signal wires (one conventionally in, one conventionally out, two switchable in/out) at 3.3V. You have four options for connecting devices to a GBA: - Normal mode (hardware, a low voltage version of GBC serial)
- UART mode (hardware, a low voltage version of PC serial)
- GBA multiplayer mode (hardware)
- General purpose mode (all pins software controlled)
See GBATEK for more detailed documentation.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.
#32495 - entilzha - Thu Dec 23, 2004 11:04 am
Great, thank you.. This GBATEK thing really rules, didn't find it yet on my own browsing around here.. I think I can use it quite nicely so I will start getting a flash cart from somewhere as this link is not in the simulator. I think I'll try the one from totalgba as it looks ok and costs only half of the X-Port thing. Maybe there are even cheaper ones out there, that I could use. Our robot is completely financed by team members, and we're only students, so every ? counts in this one.
Thank you all for the input. If successful, I will post a pic of the robot showing it's status and stuff like that on the GBA display..
#47685 - entilzha - Tue Jul 12, 2005 10:10 am
Status update: We didn't go to Eurobot this year.. :-( So I didn't need it. But of course any hobbyist can't help but go and do something else. So now I joined another project, and need pretty much the same thing for it. It's the midsize league of RoboCup (www.robocup.org)..
I already progged some text things and com port tests for the GBA, bought a 4 player link cable for ?0.99 at the Free Record Shop and cut it into 4 pieces. Now I'm trying to link it to the other processors using the I2C link that's available. Of course, the I2C link runs at 5 Volts while the GBA only runs at 3.3 Volts.
Now my question is: do I need to make some conversion electronics or can the gba port handle the 5V at it's input without destroying the ports? I couldn't find anything about that in the GBATEK.
#47708 - entilzha - Tue Jul 12, 2005 4:18 pm
Hmm, I guess it should be no problem, as there appears to exist something called the xboo cable that you are probably all using that connects the com port to the PC parallel port that is also driven at 5V..
I'll just use 4.7 kOhm resistors for the pull-up just like with the PC parallel port and hope I'll be fine.. :-) If I ruin the port I'll post some grumpy post here again..
#47798 - entilzha - Wed Jul 13, 2005 7:14 pm
Luckily, after a couple of minutes of transfering data the port seems to be able to survive this. So, my I2C for the GBA seems to be a succes.. But I wonder, when the data lines are high there should be some current running from the 5 Volts through the I2C pullup resistor, then through the pullup resistor in the gameboy through the 3.3 Volts internal voltage line.
What is the maximum reverse current the GBA can handle? Does anybody have data about absolute maximum ratings like this that would normally be found in a data sheet?