Robots w/Lasers Nintendo DS & GBA development, microcontrollers, and occasionally FPGAs 2008-05-05T17:59:43Z WordPress http://blog.davr.org/feed/atom/ davr http://davr.org/ <![CDATA[DLDI-support for Mandelbrots]]> http://blog.davr.org/2008/05/05/dldi-support-for-mandelbrots/ 2008-05-05T17:59:43Z 2008-05-05T17:59:43Z Just a tiny update to my homebrew mandelbrot browser for Nintendo DS. This version merely adds DLDI-support, meaning you should be able to save screenshots as .PNG from pretty much any flashcart. Check the previous post for screenshots, more info, etc. To the right is an actual image saved from the program.

Download r06 .nds

]]>
davr http://davr.org/ <![CDATA[It Works!]]> http://blog.davr.org/2008/01/09/it-works/ 2008-01-10T02:54:49Z 2008-01-10T02:54:49Z I’ve finished assembling my little gadget…and it works! As a side note, Flux is super handy, it made soldering the tiny SMT stuff really easy, also I learned a few tips from this video.

I ran into one small problem: on the board, I added a JTAG port for in-circuit programming & debugging. However, my cheapo JTAGICE mkI (not mkII) doesn’t support the newer AVR chip I put on the board. So I had to hack in an ICSP port, hence the four ugly green wires coming out of the middle of the board. But once I got that in, I updated the program I had running on the prototype. There were just some minor changes, IO pins were mapped differently, and the syntax for using Timers was slightly changed.

Now that the hardware is essentially done, I need to write some more software, get a few polished minigames on there.

UPDATE: Please enter your email address, I’m trying to find out if there’s any interest in these devices. If enough people subscribe, it will encourage me to do something about it :)

You can download a short video, or watch it online here:

]]>
davr http://davr.org/ <![CDATA[PCB Received from Olimex]]> http://blog.davr.org/2008/01/04/pcb-received-from-olimex/ 2008-01-04T20:00:55Z 2008-01-04T20:00:55Z Over the christmas holiday I received my PCBs back from Olimex. They look very professionally made, it’s pretty neat knowing that I designed it completely myself. In the picture to the right you can see the board with a few of the components. I haven’t started soldering yet, but I’ve placed them on there so you can get an idea of how it will look when finished.

I’m waiting on the parts from Allegro before I can finish, I’ve requested samples of their surface mount pieces (previously I only got the ones in the DIP packages).

]]>
davr http://davr.org/ <![CDATA[Designing my first PCB]]> http://blog.davr.org/2007/12/11/designing-my-first-pcb/ 2007-12-12T01:01:51Z 2007-12-12T01:01:51Z So I built a pretty good prototype of my LED matrix, AVR-based toy (as you can see in my previous post, as well as this video). Now I’ve decided to get a PCB made, using mostly surface mount components, which will make it nice and compact. You can see to the right a 3D render of approximately what it will look like, right now a company in Bulgaria is fabricating my PCB, hopefully I’ll get it within another week or two.

Whether or not it actually will work once I get it & assemble it, remains to be seen.

I used cadsoft’s Eagle tool to design the PCB, and I used this plugin along with povray in order to create the 3d render. Also I sort of edited in the image of the LED matrix…since they didn’t already have a 3d part built for it. But it looks reasonable enough I think.

]]>
davr http://davr.org/ <![CDATA[Freetype2 compiled for NDS]]> http://blog.davr.org/2007/12/01/freetype2-compiled-for-nds/ 2007-12-01T23:20:41Z 2007-12-01T23:20:41Z Someone was having trouble compiling it, so I threw this together real quick.
See FreeType’s official site for more info on it, but basically it’s a library for rendering nice ttf fonts, and it’s been compiled so that it can run on Nintendo DS. It wont do anything on its own, this is really only useful for homebrew developers who want to include some sort of nice font rendering.

freetype-2.3.5-nds-dka-r21.zip (1.2MB)

It’s been compiled with devKitARM r21, no guarantees it will work with any later/earlier version. In fact, no guarantees it will work at all, I haven’t actually tested it…but it compiles without any errors. I had to disable two checks in in the configure script, because it kept getting confused when I told it to compile for arm-eabi.

If anyone uses this, would be nice to know, drop me a line in the comment section.

]]>
davr http://davr.org/ <![CDATA[New DS Demos]]> http://blog.davr.org/2007/11/28/new-ds-demos/ 2007-11-28T18:17:30Z 2007-11-28T18:17:30Z

I’ve uploaded a new batch of DS demos that are free to download. I’ve put them on a new page, separate from the old one, so it’s easy to see the new ones. There are a bunch of fun looking ones, be sure to check them out!

New Demos Page
Previous Demo Collection

]]>
davr http://davr.org/ <![CDATA[AVR Project update]]> http://blog.davr.org/2007/09/24/avr-project-update/ 2007-09-24T15:48:10Z 2007-09-24T15:48:10Z I’ve had a little time to come back to working on my AVR ATMega-based project. First of all, I replaced a bunch of free wires with a ribbon cable, which makes things a lot easier to handle. I’ve also wired up the buttons, so now I can write little programs which can be controlled by user input. Right now you can just move the dot around and change its color, next I think I will make a 1 or 2 player pong game.

Download a short video of it in action (~700KB), or view it here:

]]>
davr http://davr.org/ <![CDATA[Java for NDS?]]> http://blog.davr.org/2007/08/08/java-for-nds/ 2007-08-08T16:36:36Z 2007-08-08T16:36:36Z I know what you’re thinking…”That’s a horrible idea and you’re a horrible person for suggesting it!”

The main problems with Java on DS:
1. Interpreted languages are slower, the overhead is bad on a slower embedded platform
2. No direct memory access. Almost all of the DS hardware is interfaced by reading and writing directly to specific memory locations
3. No primitive unsigned 8-bit types. What were they thinking?

But…I went ahead and did it anyway, just for fun. I didn’t start from scratch, I took Torlus’s KVM port to GBA and used that as a base for getting it to work on DS. Right now, when it starts, you pick a .class file, and it will run it! In addition, using KNI, I’ve written a basic wrapper around parts of libnds, enough to read input from the touchscreen/buttons, and to move sprites around.

Download here: java4nds_r2.zip — includes the compiled KVM.nds, some examples along with source code, and instructions on making your own .java files.

To use this demo, place kvm.nds, all the *.class files, and all the *.bin files on the root of your flashcart.
Run kvm.nds, then select a .class file to run. There are a few examples testing various stuff.
Don’t forget to DLDI-patch the kvm.nds

]]>
davr http://davr.org/ <![CDATA[DS85 with DLDI support]]> http://blog.davr.org/2007/08/01/ds85-with-dldi-support/ 2007-08-01T20:09:53Z 2007-08-01T20:09:53Z Someone has added DLDI support to my old TI-85 Emulator. I don’t have any exotic devices, so I can’t say how well it works.

You can download it here: ds85_r3.rar

There’s a forum thread about it going on here: teamcylops.com

Let me know if it works/doesn’t work on your particular device.

]]>
davr http://davr.org/ <![CDATA[Heart Monitor for NDS]]> http://blog.davr.org/2007/07/17/heart-monitor-for-nds/ 2007-07-17T20:29:38Z 2007-07-17T20:29:38Z I have a prototype of the hardware side of my Nintendo DS-based heart rate monitor. I’m using the awesome DSerial to interface an IR LED & IR phototransistor to the DS.

It works ok, but the signal is not strong enough. Slight movements can make the data unusable. I think I need to work on either amplifying the signal, or increasing the sensitivity of the DSerial. Also I need to rig up some velcro to stick the sensor to your finger, so you don’t have to hold it in place.

Here you can see my “sensor”:

Here is the connection to the DS:

And finally, here is a screenshot of the DS’s lower screen, which is just graphing the data coming from the DSerial’s ADC:

Check out this movie of it in action: dserial_heart_monitor.avi (1.5MB)

]]>