DreamPi





If you'd like to support my work on the DreamPi software image, donate via Paypal.me! Thank you!


DreamPi is a piece of software I've written combined with a standard set of hardware which allows the SEGA Dreamcast to connect to the internet without a dial-up ISP.

To demonstrate, here's an old crappy video! (Don't worry, it's no longer manual, just plug and play!)



What You Will Need

 

To build a DreamPi, you need the following hardware:
Chances are (regardless of region) you will also need to build a line voltage inducer. This is a simple circuit which sends an electric current down the telephone cable. For this you will need:
  • A 0.47uf capacitor
  • A 380 Ohm resistor
  • A 9v battery connector (two if you have a PAL modem)
  • A 9v battery (two if you have a PAL modem)
  • A soldering iron, some solder, wire strippers, electrical tape, and patience
     

 Right, I have them, now what? 

 

Connect the Raspberry Pi to the USB modem, connect that to the phone cable, connect the phone cable to the Dreamcast. Then, connect the Raspberry Pi into your router.

Now, download the image, decompress with 7zip (or whatever) and follow the instructions here to flash the image to the SD card: https://www.raspberrypi.org/documentation/installation/installing-images/windows.md

Now, insert the SD card into the Pi, and switch it on!


Configuring DreamKey / PlanetWeb


For PlanetWeb, follow the instructions found here under "Configuring the Dreamcast".

For DreamKey 3.0. You need to set the ISP number to dial to 555.

So, what's the deal with PAL modems?

 

Right, it took me ages to figure this out. U.S modems come in two forms, model "A" modems, and model "B" modems. Model A modems don't draw their power from the telephone line itself, or at least, they don't require it (some USB modems do however!). Model B modems do, and so to do a direct modem-to-modem connection with one of those you need to somehow add power to the connecting phone wire. That's what a "Line Voltage Inducer" does. The best instructions I've found for this are here.

But, it gets even more complicated. Generally PAL modems are classed as Model B modems - they require a line voltage. However, I found that not many PAL users had had much luck getting connected, and when I tried, it didn't work for me either, even with a line voltage inducer!

Apparently it seems that U.S. Model B modems can suffice with only 9 volts added to the telephone line, but in europe our fussy PAL modems require 18 volts!

This is simple enough to do, just build the line voltage inducer as normal, but chain two 9 volt batteries together in series, rather than using just one.

Does it work with all games?

 

Almost! The only games that currently have online servers that don't work are Starlancer, and the PAL version of Q3 Arena. PAL Q3 needs some work done to the DreamArena service, I'm not sure yet why Starlancer doesn't work!

How Does It Work?

 

When you switch on the Raspberry Pi, the DreamPi software starts automatically. It goes into "listening" mode. When in this mode, the software listens for the DTMF dial tones from the Dreamcast modem. When it stops receiving these tones it assumes that the Dreamcast has finished dialling and is now waiting for the other end to answer. Because we're not going through the telephone network, there is no ringing tone which is why the software waits for the dial tones to stop.

Once DreamPi stops receiving dial tones, it attempts to answer the call. This can take 10-20 seconds. It then hands over the connection to the PPP process running on the Raspberry Pi. DreamPi then enters a connected state and waits for the connection to finish, at which point it re-enters listening state.

Please note: Whenever the Raspberry Pi is on, the batteries in your voltage line inducer will be draining. Make sure you have plenty of 9v batteries handy! Always turn off the Raspberry Pi when you aren't playing online!



Setting up Your DreamPi

Here are two brilliant videos for setting up your DreamPi. They go into great detail and should tell you everything you need to know!




I did everything you said, and it doesn't work!


Yeah, well, there's a lot of modems out there, and a lot of things that can go wrong along the way. Things to check:

  1. If your modem has an "online" light, make sure it comes on before you try to dial the Dreamcast
  2. If you modem lights don't come on at all, it might be that the modem wasn't detected properly. Please report a bug, with your modem model number on GitHub
  3. If the lights come on, but the Dreamcast fails to connect, check your line voltage inducer, maybe put in new batteries
  4. Make sure the dreampi is actually available on your network. Try: "ping dreampi.local" from a terminal or command prompt (I don't use Windows, I think that works there too..., definitely works on OSX and Linux). If you get no response report a bug on GitHub and I'll try to help or improve the software
  5. Try plugging a monitor or TV into the Pi, it definitely boots up OK right?

Games / Software Verified to Work


  • Phantasy Star Online Version 2.
  • DreamKey 3.0
  • Quake 3 Arena (not PAL as it requires Dreamarena auth)
  • Sonic Adventure (website)
  • Toy Racer
  • Maximum Pool
  • 4x4 Evolution
  • ChuChu Rocket!
  •  
     

Games on the Road Map! 


  • Starlancer
  • Quake 3 Arena (PAL)

How can I thank you?!

 

Things that you can do to help me:
  • Test and report bugs, maybe even fix them!
  • Reward me with some games!
  • Send me donations so I can fund more crazy projects!

61 comments:

  1. Thanks again man! Looks like I have some shopping around to do!

    ReplyDelete
  2. What model of the Raspberry Pi will this use? I have both a Pi 1 B+ and Pi 2 B+ I could use.

    ReplyDelete
  3. Any Pi should work, I've only tested with a Pi 1 model B though!

    ReplyDelete
  4. Awesome. I can't wait to try this!
    Question, couldn't you run power off the Pi to the phone line somehow? Avoid hanging a battery off the phone line?

    ReplyDelete
    Replies
    1. Potentially.. the problem is largely boosting the 5v from the Pi, up to 18v for the line voltage. I have some IC chips to do that but I'm not sure that the Pi will have the power...

      You'd still need a custom circuit board though - I'm working on it :)

      Delete
  5. It can use a USB-serial cable to use an external serial modem?

    ReplyDelete
    Replies
    1. Tbh, I don't know! It might work as I work directly with the Linux serial device

      Delete
  6. Hey!!! Thanks for the awesome raspberry pi image!! I got 18v from the raspberry pi's 5V with a step-up circuit and now I'm dialing just fine. But I'm struggling to find browser that's burnable to normal CD-R and is working. DreamKey 3.0 is too large to burn.... PSO v2 is dialing and showing welcome online screen and after that nothing.... I'm not sure what's going on...I'll continue testing and share the results!

    ReplyDelete
    Replies
    1. Try one of these. I could get them to burn, but ended up just buying PlanetWeb 2.0 off Amazon for like $4...

      https://onedrive.live.com/redir?resid=D4C0AF674C4148FE!156788&authkey=!AK6ai6jAxt-ImQ8&ithint=folder%2c

      Delete
  7. Also check this line I found googling:

    # produces the tone
    AT+VTS=[440,350,255]

    ReplyDelete
  8. my DreamPi boots and says:

    Raspian GBU/Linux 7 dreampi tty1

    pppd: no process found
    dreampi login: _

    Am I doing anything wrong?

    ReplyDelete
    Replies
    1. I had to log-in with the default Pi username and password, then start dreampi.py as in the video.
      How do I make this automatic, so I don't need to plug-in a keyboard every time?

      Delete
    2. This looks exactly right. Did both modem lights come on? The PPP message is normal and shows that it started up on boot already

      Delete
    3. Yes, both lights are on. I can now get it to dial, and the Pi receives the numbers, then says:

      ATH

      OK

      ATA

      then it just sits there blinking. It never actually finishes the connection. The Dreamcast eventually says there was no answer.

      Delete
  9. Can i get this work @my laptop with build in modem ?

    ReplyDelete
    Replies
    1. Not without a bunch of manual configuration, you'd need to install Linux (e.g. Fedora or Debian) and then copy the configuration from the image...

      Delete
    2. Ok, thanks... I got my rasp today so now i can forget that laptop thing and get right to the business!

      Delete
  10. Hi,
    does anyone know if you exactly need the resistance and capacitance values which are described above or is it possible to change them? I fond a website (http://www.jagshouse.com/modem.html) where they used 1k for 24V and 2200uF to reduce the ripple.
    Do you use 330 Ohms and 0.47uF for 18V too?

    CU Octo

    ReplyDelete
    Replies
    1. Ok, the connection was established and the PPP daemon was started, but I am unable to retrieve a website (e.g. http://retro.hackaday.com). Any ideas?
      Here is the log:

      Nov 21 15:59:38 dreampi Setup complete, listening...
      Nov 21 16:04:07 dreampi Answering call...
      Nov 21 16:04:07 dreampi ATH0
      Nov 21 16:04:07 dreampi OK
      Nov 21 16:04:07 dreampi AT+VLS=0
      Nov 21 16:04:07 dreampi OK
      Nov 21 16:04:07 dreampi ATZ0
      Nov 21 16:04:08 dreampi OK
      Nov 21 16:04:08 dreampi AT+FCLASS=0
      Nov 21 16:04:08 dreampi OK
      Nov 21 16:04:08 dreampi ATA
      Nov 21 16:04:26 dreampi CONNECT 115200#015
      Nov 21 16:04:26 dreampi Call answered!
      Nov 21 16:04:26 dreampi
      Nov 21 16:04:26 dreampi pppd[31492]: pppd 2.4.5 started by root, uid 0
      Nov 21 16:04:26 dreampi pppd[31492]: Using interface ppp0
      Nov 21 16:04:26 dreampi pppd[31492]: Connect: ppp0 <--> /dev/ttyACM0
      Nov 21 16:04:26 dreampi Connected
      Nov 21 16:04:29 dreampi pppd[31492]: found interface eth0 for proxy arp
      Nov 21 16:04:30 dreampi pppd[31492]: local IP address 192.168.2.100
      Nov 21 16:04:30 dreampi pppd[31492]: remote IP address 192.168.2.101

      TIA Octo

      Delete
    2. Small update :). I am able to connect to my router in my local network with via IP address, but I cannot access external websites via IP. Seems to be a routing problem!?

      Delete
    3. Try the new release, perhaps that will fix it?

      Delete
    4. Hi Luke,
      I just installed the latest release, but it is still not working. However, I found the problem on my system. The PPP configuration uses the wrong DNS server. In /etc/ppp/options, I see "ms-dns 192.168.1.100", but in my network I need "192.168.10.1". If I change this value manually, everything works fine. Is this a problem with the autoconfiguration?

      Delete
    5. Try the latest release. The DNS is supposed to point to the Pi's internal IP (this used to be .100 but now it's .99) you should find that the DNS issues are resolved.

      0.98 is here: http://blog.kazade.co.uk/2015/12/dreampi-098-released.html

      Delete
    6. Sorry, had not mucht time to test it lately. It works fine now. Thanks a lot :-)!

      Delete
  11. This comment has been removed by the author.

    ReplyDelete
  12. You're sure about everything else? I take it Ferrari F355 Challenge won't work.

    ReplyDelete
  13. This comment has been removed by the author.

    ReplyDelete
  14. I've got everything set up inc. voltage line inducer but when DreamPi boots I get the following fails -

    "not running dhcpcd beacause etc/network/interfaces...failed!" and "defines some interfaces that will use a DHCP client...failed!"

    It then asked me to log in which I did with the default Pi username. And I'm left with -

    pi@dreampi $

    What am I doing wrong? :)

    ReplyDelete
    Replies
    1. I'm getting the same problem. If anyone knows the problem I'd like to know how to fix it. Thanks

      Delete
  15. Any plans to add wifi support? That would be great if it could work.

    ReplyDelete
    Replies
    1. WiFi works now if you know how to configure it on the Raspberry Pi :)

      I'm looking into making this a supported option.

      Delete
    2. Hi do I need a Pi2? is your image based on a Pi2? Thanks

      Delete
  16. Are you aware of any USA modems which are "model A" (provide power to the line)?
    I am looking at
    http://www.newegg.com/Product/Product.aspx?Item=0ZK-003S-00001&cm_re=usb_modem-_-0ZK-003S-00001-_-Product
    and
    http://www.newegg.com/Product/Product.aspx?Item=N82E16825164005&cm_re=usb_modem-_-25-164-005-_-Product

    ReplyDelete
  17. Thanks for review! Lot's useful information!:)
    spy for phones

    ReplyDelete
  18. Hi, great work. Is it possible to run the dial in server in the openelec kodi image? Would be nice if I didn't have to swap SD cards every time I want to play online or use kodi :-)

    ReplyDelete
  19. My modem look exactly the same as yours, yet it isn't detected by te RaspberryPi.
    lsusb says;
    Bus 001 Device 005: ID 0572:1300 Conexant Systems (Rockwell), Inc. SoftK56 Data Fax Voice CARP

    Any thoughts?

    ReplyDelete
  20. Ah, my guess it that you have a Hayes compatible modem;
    http://www.ebay.nl/itm/Hayes-08-15360-72G-HAYES-V-92-WORLD-APP-56K-USB-DONGLE-MODEM-/381531056471?hash=item58d505e957:g:Z4cAAOSwa-dWp6aQ

    The modem you provided in your link above doesn't work as it is a softmodem

    ReplyDelete
    Replies
    1. I bought my modem from Kazade's eBay link and it works for me. However, it has a slightly different PID:

      Bus 001 Device 004: ID 0572:1340 Conexant Systems (Rockwell), Inc.

      Delete
  21. Is it all possible to grab 10v off the two gpio headers and just wire it into the modem cable to eliminate the need for external battery? I'm no electrical engineer so I don't know if this amount of voltage would blow out something or cause the pi to not function at full power. Though I figured since the pi does offer up 10v from the gpio that it would be usable with the line voltage inducer for NTSC users.

    ReplyDelete
    Replies
    1. It's more the current you need to worry about rather than the voltage. I don't know the answer, if you've tried it and it works then let me know!

      Delete
  22. Hi kazade, I tried to build a voltage inducer but I don´t have any experience with solder. How can I know if a did my voltage inducer works without a dreamcast? I did one but it doesn´t work.

    In my country I can´t find any 380 ohm resistor,
    It has to be exactly that value?

    Thanks a lot

    ReplyDelete
    Replies
    1. No, if you can't find 380 Ohm then you should be fine to go down to 330 Ohm.

      Delete
  23. Awesome project!

    Don't forget Alien Front Online ;)

    ReplyDelete
  24. This comment has been removed by the author.

    ReplyDelete
  25. Hi I Have a Very Noob Question,
    I live in the Uk and when you use dream pi even through you are not using the telephone line, does it still give you any dial up ISP charges even though you are using broadband,
    My Second question is that is there a specific tutorial of how to configure the dreamcast in the Uk
    Finally i would love to use dream pi i have everything prepped (Including the Dreamcast), however the main thing i need to know is that if i would get charges because i am dialing from my dreamcast (Assuming) straight to the raspberry pi, i do apologies for the very noob question, however i have no experience with Dial up and have no clue how to use it.
    By the way awesome work with all your dreamcast projects (Got to admit i quite like your engine as well)

    ReplyDelete
    Replies
    1. No dial up ISP charges; your dreamcast *thinks* it's connecting to dial up but it's not.

      I'm not sure about your other question though but this video should answer your Qs :) https://www.youtube.com/watch?v=lPvNQAi-yeM

      Delete
    2. Thank You Much Appreciated

      Delete
    3. If kazade can see this post it might be worth adding to the post what David said (if it is possible) that dream pi doesn't charge broadband users as if they was using dial up as it will possably help inexperienced users

      Delete
  26. This comment has been removed by the author.

    ReplyDelete
  27. I Have Another question,
    as it states on the article the Model A Modem's dont need power from the telephone line, does this mean you wont need a Line Voltage inducer?
    Secondly can you run retro pi on a Virtual Machine on a PC for this??
    Thanks

    ReplyDelete
    Replies
    1. Sorry i Meant Dream pi, It was auto correct that said Retro

      Delete
  28. Hi luke, I have a little question about dns on dreampi. I want to use a internal dns server on my lan, but as I see you use a dreampi dns server to access to the online games.

    What are the file that I have to modify to get it? Only /etc/ppp/options o anyone else?

    I want to do for programming purposes, and I don´t want to modify any wrong file on dreampi. Thank you

    ReplyDelete
  29. This comment has been removed by the author.

    ReplyDelete
  30. So, if I have a USB modem that doesn't need a power supply outside of the Pi, and the model A modem, will I need a line voltage inducer?

    ReplyDelete
  31. This comment has been removed by the author.

    ReplyDelete
  32. OK, sent away for a Linux compatible USB Modem to try this, I already have all the other bits.
    One question though, any reason why you can't just use a 9, or 18, volt power supply instead of using batteries?

    ReplyDelete
  33. so i have about everything i need.
    - raspberry pi
    - sd card with dreampi installed
    - ethernet bridged to computer (can't connect to router since i'm in another room, so i'm bridging wifi and ethernet).
    - dreamcast (of course),
    and
    - NTSC/USA model-A modem adapter

    i'm getting the recommended modem, would it require line voltage inducer with a USA model A modem? because if so, looks like i'll have to save up a bit more money, heh

    ReplyDelete
    Replies
    1. Yeah, you'll need a line voltage regardless of modem.

      Delete
  34. Hmmm, for whatever reason, I'm still unable to connect to PSOv2, using the DreamPi 1.4 image (I have a RasPi 3B). While it detects the modem no problem, and connects to the net, PSO is stuck on the four coloured spinning rhombus loading screen, and after a minute it just displays the "can't connect to the server" message.

    What's even weirder is the fact that I'm able to connect to the Sylverant PSO server, using the same modem, on an older notebook with Crunchbag++ Linux. So it's not the Dreamcast or the LVI cable issue.

    Do I need to setup anything else here? Port fowarding? DMZ?

    ReplyDelete
    Replies
    1. Phantasy Star Online doesn't require DMZ or Port Forwarding to connect. Back when my DreamPi setup was working before the start of this month, it'd connect to Sylverant perfectly fine.

      Delete