LLM API client on Nintendo DS Lite
from binaryqueen@programming.dev to selfhosted@lemmy.world on 05 Jul 13:41
https://programming.dev/post/53046938

Did some experiments with my DS Lite and ended up with this. Using DevkitPro libs (libnds, dswifi, calico). Apfel on macOS and a wifi (WEP) bridge running on a RPi Zero 2W. đź–¤

#selfhosted

threaded - newest

neoblame@fedinsfw.app on 05 Jul 13:50 next collapse

amazing

binaryqueen@programming.dev on 05 Jul 22:13 collapse

Thank you

frongt@lemmy.zip on 05 Jul 13:51 next collapse

Client on DS Lite. LLM on Mac.

Bubs@lemmy.zip on 05 Jul 15:13 collapse

Yeah, that’s not impressive at all compared to what I thought. It’s not much different than playing Crysis on a DS by just using remote desktop.

deadcade@lemmy.deadca.de on 05 Jul 17:30 collapse

No actually, that would be impressive. The DS is barely capable of decoding video. Getting that to work in real time, over the network, and low latency is a huge technical achievement.

This is just a text input and output connected to a remote machine.

Bubs@lemmy.zip on 05 Jul 18:49 collapse

Maybe not the perfect example, but then again, getting Crysis to run natively on a DS would be a significantly larger achievement than running a video streamer.

binaryqueen@programming.dev on 05 Jul 22:11 collapse

Uhm, I figured out that people don’t like it. However, for me, it was a nice little project and it brightened my day.

snooggums@piefed.world on 05 Jul 23:21 next collapse

Pretty sure people don’t like the misleading title.

binaryqueen@programming.dev on 05 Jul 23:39 collapse

I changed the title

Bubs@lemmy.zip on 06 Jul 00:17 collapse

Yeah, it was definitely the title. It’s a neat project in of itself, but the title made it seem like you accomplished a frankly massive feat.

Videos like this one where they make absolutely tiny llm models for low power hardware are what I had in mind. Sadly I can’t find the other one that I watched several months back.

binaryqueen@programming.dev on 06 Jul 04:02 collapse

That’s really cool!

midimalist@lemdro.id on 05 Jul 14:49 next collapse

Out of topic, but I’m unreasonably happy that you use the more exact word “LLM” instead of AI. Cool project!

binaryqueen@programming.dev on 05 Jul 22:12 collapse

Thank you, you know these days small things make me happy

KairuByte@lemmy.dbzer0.com on 05 Jul 15:25 next collapse

Doesn’t the DS… just have a browser? Meaning you’re just pointing at a web page here?

frongt@lemmy.zip on 05 Jul 17:59 next collapse

Yes but this isn’t a full browser, just an API client.

Dookieman12@piefed.social on 05 Jul 19:54 collapse

So, even more extra steps for even less functionality, got it.

SpatchyIsOnline@lemmy.world on 06 Jul 12:20 collapse

The DSi had a built-in browser, the DS and DS Lite require a game card plus a memory expansion pack to use a browser. Even at the time, website support was spotty at best so I dread to think how a browser based on Opera 8.5 from 2006 would work on the modern web

CallMeAl@piefed.zip on 05 Jul 16:20 next collapse

Which part is selfhosted?

[deleted] on 05 Jul 21:46 next collapse

.

binaryqueen@programming.dev on 05 Jul 22:11 collapse

all of it. I’m not using anything outside of my own local area network.

CallMeAl@piefed.zip on 05 Jul 23:08 collapse

Please share the full stack with us

binaryqueen@programming.dev on 05 Jul 23:57 collapse

I use the Kaico DSpico Flashcart and on the RPi Zero 2W I use a bash script (because I don’t want to host it permanently) with hostapd, iw, dnsmasq, socat, and iproute2. For HTTP and JSON I use my own implementation, no library. The rest is documented in the post.

Did some experiments with my DS Lite and ended up with this. Using DevkitPro libs (libnds, dswifi, calico). Apfel on macOS and a wifi (WEP) bridge running on a RPi Zero 2W. đź–¤

CallMeAl@piefed.zip on 06 Jul 07:18 collapse

Which LLM are you running and what are you running it on?

binaryqueen@programming.dev on 06 Jul 07:32 collapse

This is the model:

{
  "data" : [
    {
      "context_window" : 4096,
      "created" : 1719792000,
      "id" : "apple-foundationmodel",
      "notes" : "Apple on-device model via FoundationModels framework. Unsupported parameters are rejected with 400 when present (except n=1 and logprobs=false). Supported languages: it, zh, fr, en, nb, fr, da, es, es, es, vi, zh, de, pt, tr, en, zh, sv, nl, ja, en, ko, pt",
      "object" : "model",
      "owned_by" : "apple",
      "supported_parameters" : [
        "temperature",
        "max_tokens",
        "seed",
        "stream",
        "tools",
        "tool_choice",
        "response_format",
        "x_context_strategy",
        "x_context_max_turns",
        "x_context_output_reserve"
      ],
      "unsupported_parameters" : [
        "logprobs",
        "n",
        "stop",
        "presence_penalty",
        "frequency_penalty"
      ]
    }
  ],
  "object" : "list"
}

and I’m running it on a MacBook Air M4 16 GB. “Apfel” (the CLI tool) is kinda a wrapper around it and exposes an OpenAI compatible API.

CallMeAl@piefed.zip on 06 Jul 08:01 collapse

Do I understand correctly that what you’ve made is a DSLite client to chat with the apple included model on your laptop?

binaryqueen@programming.dev on 06 Jul 08:44 collapse

Exactly, yes. And I use the Raspberry Pi Zero 2W as a WiFi AP (RPi is connected to my home network and to my DS Lite) because the Nintendo DS Lite only supports WEP encryption. So that the Nintendo is able able to send requests to my inference on the MacBook Air

CallMeAl@piefed.zip on 06 Jul 08:59 collapse

That’s a really neat and fun project!

I have a back DSLite that I got the new OS cart for and I’ve been having fun loading it up with emulators and my favorite games from the past. I love how there is such a vibrant community around DSLite hacking.

You should certainly keep doing projects like this and sharing them. I’m glad you shared it because I love hacking projects. However for me this is not on topic for selfhosting even if it is still a very cool project.

binaryqueen@programming.dev on 06 Jul 09:55 collapse

Thank you so much, I appreciate your comments. It means a lot to me. :)

The only reason why I did this project was because someone showed up in my feed with a post about a DS Lite hack. We’re all inspiring each other haha :D

However for me this is not on topic for selfhosting

I’m always struggling to find the right community for posting. Which place would be the best?

CallMeAl@piefed.zip on 06 Jul 11:08 collapse

Which place would be the best?

The first place to jumps to mind for me is https://hackaday.com/ and if there is a Threadiverse comm for these kinds of projects I would also like to find it.

Weingeist@feddit.org on 05 Jul 16:29 next collapse

How about a nice round of global thermonuclear war?

Decronym@lemmy.decronym.xyz on 06 Jul 08:50 collapse

Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I’ve seen in this thread:

Fewer Letters More Letters
AP WiFi Access Point
RPi Raspberry Pi brand of SBC
SBC Single-Board Computer

2 acronyms in this thread; the most compressed thread commented on today has 11 acronyms.

[Thread #42 for this comm, first seen 6th Jul 2026, 08:50] [FAQ] [Full list] [Contact] [Source code]