Jump to content

Official DS Wifi FAQ


Recommended Posts

Since I'm feeling especially helpful.... here's a listing of the frequently asked questions here and answers for them.

If you have a question that you think should be here, please post it in this thread and I may add it to this post.


Q: What exactly is DS Wifi and what can it do?

A: the DS Wifi library I'm working on is a software toolkit for homebrew developers that will let them use the wifi capabilities on the DS in a very similar way to the way computers use a wireless network card. It's not designed to have a specific set of end uses, rather it will provide a way for the community to create application using internet support, ds-ds communications, and other things that standard wifi cards can do.


Q: What license will DS Wifi be released under?

A: Probably the BSD licence, I've had people also suggest the MIT license, I'll review them and pick one before release.


Q: Will DS Wifi support WEP/WPA?

A: The hardware has built in support for WEP, so it will be supported. WPA is a software extension of WEP that changes the key, I'm looking into what it will take to support WPA but I don't know if it can be done yet.


Q: Will the DS Wifi support access points? ad hoc mode? Nifi?

A: The initial release is planned to support both access points and ad-hoc operation (there are a few small technical difficulties with ad-hoc at the moment, but those will likely be fixed before release). Nifi is merely a modification of 802.11, and a raw wireless interface will be provided for those who want to construct their own nifi packets (technically it will be possible to run regular 802.11 and nifi at the same time, but this isn't a wonderful idea) - To use Nifi though, you will have to understand 802.11 enough to create your own 802.11 packets and read and understand the incoming packets.


Q: What will the developer interface look like?

A: The TCP/IP interface will try to mimic traditional Berkley sockets, for the purpose of allowing software to easily be ported to DS. There will also be some special API for connecting to access points, setting up IP addresses, and raw wifi traffic.


Q: When will it be released???

A: Well, that's really complicated. Please try to remember that I'm working off of my own documentation of a foreign hardware system - not all of the features of the wifi hardware are completely mapped out yet, and I run into problems due to that from time to time. Also, despite my best efforts I have been unable to make lwIP do what I want it to. So, I'm not going to give an estimate as I'll probably wind up being way off the mark. I try to post updates on my website (www.akkit.org) when I have something to report.


Q: Can the DS Wifi be used to run things on the DS?

A: The DS Wifi Library is merely a tool for developers to add to their programs, it does not in any way change how you run code on the DS - you still will need passme/flashme/wifime to run the homebrew that the library is used in, just like any other homebrew at the moment.


Q: What will you do with the money from the DS Wifi Bounty (sc.tri-bit.com)?

A: Well, perhaps you're being too curious by asking a question like this... but the money will go to paying bills, keeping me fed, and buying new equipment to play with.


Q: What's the deal with the DS trojan/virus/bricking thingy?

A: First, see this news post (1emulation.com) - A few notes, it's a trojan, which means it will not spread, and it requires someone to download it and run it to be hurt. There are only two known files at the moment that have it, but by far most homebrew can be trusted. Just as a general rule you shouldn't be going off and running things from shady places on the net anyway :lol:


Q: I have no experience writing server/client software. What do I need to learn in order to be ready to use DS Wifi in my projects?

A: As programming client/server applications on the DS Will be nearly identical to programming them on the PC and other systems, there are undoubtedly other places where you can find tutorials for writing client/server software. As for what you need to learn, you will need a working knowledge of Berkley Sockets, sometimes just called 'sockets' (for which there are countless tutorials on the web). That's all that's really required, but having some understanding of how existing client/server apps work will be very useful in making your system run smoothly.



Ok, if you have more questions you think should be listed here, let me know in this thread and I might add them.



Edited by GryphonKlaw
Link to comment
Share on other sites

  • Replies 31
  • Created
  • Last Reply

Top Posters In This Topic

I'm just dying for this...


I know I have no right to ask you this, especially since there is a bounty involved, but... we ALL were waiting SOOOO long for this to happen...


So, please, please, please, PLEEEEEEEEEEASE...


Do tell us: HOW does WiFi work in the DS? WHAT is required? Registers? Traps? Mem addresses? ANYTHING???


(sits back, crossing fingers)


- Izhido

Link to comment
Share on other sites

Well uh, I won't add this to the faq until I release my documentation..... but, it's complicated.

Reeeeeally complicated...


the DS Wifi is a custom hardware register set integrated onto the main DS chip with all the other hardware (video, sound, etc) - it contains some dedicated ram and a huge register map (over 100 registers) and is tied in to the interrupt system, and has serial connections to 2 chips in the RF daughterboard.


Mainly what is required to use the wifi, is a whole lot of init and some basic understanding of how a few important parts of the hardware work. The ds hardware does a lot of the work for you, but it's unclear just how much it does, that will require very extensive testing to figure out and I haven't managed to get through anywhere near all the possibilities yet. At the core of what I consider to be the "important" parts of wifi is a hardware FIFO/circular buffer in the attached memory chunk, the hardware system of sending data(register and interrupt based), and the hardware interfaces to the two external chips.


well, now you're going to ask for more information, but that'd take much longer to explain, so it's best just to wait for my documentation which I promise is comprehensive about the topics I know about, specificly the ones that are important. At the rate I'm presently going, it shouldn't be long, either.



Link to comment
Share on other sites

  • 2 weeks later...


Can you tell us anything about what the dswifi memory footprint will be like?





Hiya, Right now the ds wifi memory footprint is just under 40k, and sgIP memory usage is also just about 40k (note though, dynamic memory is presently being used on a per-connection basis)


So, I don't think it's unreasonable to say that the entire package should use around 96k of ram under normal conditions. This can be tweaked and tuned, and I'll probably drop the amount of memory a while after the first revision has been out for a while. (when I get a chance to play around with some apps and figure out just how much is actually being used.)



Link to comment
Share on other sites

So, I don't think it's unreasonable to say that the entire package should use around 96k of ram under normal conditions.  This can be tweaked and tuned, and I'll probably drop the amount of memory a while after the first revision has been out for a while. (when I get a chance to play around with some apps and figure out just how much is actually being used.)


Cool, that sounds pretty reasonable. Re. dynamic memory though, is there any chance you could support user-supplied malloc/free functions?


Can't wait for the lib, best of luck getting it wrapped up and collecting the rest of that well-deserved bounty.

Link to comment
Share on other sites

This topic is now closed to further replies.

  • Create New...