Internet via shared Bluetooth connection on a Newton MessagePad 2100Posted: March 29, 2010
This does not aim to be a step-by-step tutorial, although you could definitely use it to set up such a connection, provided you have all the necessary hardware and software bits. These last two weeks I finally managed to connect my Newton MessagePad 2100 to the Internet via Bluetooth, and I just wanted to put together all the information for future reference. The essential steps to set up the connection, on the Mac side and the Newton side, are all Steven Frank‘s work. He posted the result of his efforts on the NewtonTalk mailing list four years ago, and subsequently in the WikiWikiNewt. I am reposting those instructions here, but also starting from the beginning, as they assume that you already have the right hardware and that you’ve already installed all the necessary software packages and paired the Mac and the Newton via Bluetooth.
Some preliminary observations
First and foremost: it’s complicated. Not impossible, but not a user-friendly process, either. Few Bluetooth PCMCIA cards work in the Newton, and those that work do not seem readily available. But, if you do own such a card and you can easily connect your Newton to install all the packages needed to use Bluetooth, you should try this method of wireless connection to the Internet with your Newton. I prefer it over using a Wi-Fi 802.11b card because it’s less battery-hungry. The downside, of course, is that you are limited to your home network since you’re using the Internet connection shared via Bluetooth by one of your Macs, while with the Wi-Fi solution you have more freedom of movement and you could theoretically connect to the Internet from a public hotspot. I say theoretically because all the Wi-Fi cards supported by the Newton have limited encryption abilities — WEP — while most public and office access points nowadays use wireless WPA encryption.
Anyway, I can say I’m quite happy I’ve managed to connect my MessagePad this way. Of course my primary use is not browsing the Web on the Newton — despite some great software it’s still a very crippled experience — but reading some RSS feeds and checking email, definitely a more rewarding experience.
On the Newton side, you’ll need a MessagePad 2000/2100 or an eMate (although I’m not sure if you’ll get a good result performance-wise). As for the Bluetooth card, since you’ll have to download and use Eckhart Köppen’s Bluetooth software (Blunt), you are limited to the few options that have been tested and proven compatible. In the Hardware Compatibility section of Blunt’s page, Köppen writes:
Blunt has been tested on US and German MP2100 MessagePads. It requires a Bluetooth PCMCIA card with the following characteristics: PCMCIA Type II card (no CardBus card), UART interface, HCI protocol support. This should cover those cards which are supported via a UART driver under Linux or BSD. It has been tested with the following hardware:
- PICO Bluetooth PCMCIA card
- Taiyo Yuden internal UART modules
- AmbiCom Air2Net BT2000CF CompactFlash card (new model with purple antenna). Note: It seems there are two revisions of this card, and only revision A is working at the moment.
- AmbiCom Air2Net BT2000E CompactFlash card (older model, black antenna)
Not working is the following hardware:
- Belkin Bluetooth PC Card (a CardBus card)
- 3com Wireless PC Card (incompatible serial chip)
- IBM Bluetooth PC Card (incompatible serial chip)
Might work at some point:
- Conceptronic Bluetooth PCMCIA card (requires special serial chip initialization or firmware reprogramming)
- Xircom Bluetooth PCMCIA card (requires special serial chip initialization or firmware reprogramming)
I own probably the best Bluetooth card of the group, the PICO Card, purchased four years ago. Here are some photos:
When inserted, the card is not flush, the whole transparent green section sticks out, but it doesn’t really bother me:
Activity is clearly indicated by a LED inside the green section.
I have installed Blunt (not Blunt 2, since it’s still in alpha) and all related packages mentioned in the Blunt page, that is, the NIE Nitro & Blunt Support, plus Nitro, Neo, IC/VC (this is for iCalendar and vCard import/export, not really needed for Internet connection via Bluetooth, but I figured it was a nice addition to have), and then Courier (Web browser), Raissa (RSS reader), which in turn need NHttpLib and ntox. All these software packages can be retrieved starting from the main page of Eckhart Köppen’s 40Hz site. As the page for Nitro will remind you, you’ll need to download and install the patched NIE Modem support module to obtain mobile Internet over IrCOMM.
For the uninitiated, NIE stands for Newton Internet Enabler and it’s a series of essential packages that should reside on the original floppies that came with your Newton, if you bought it in the 1990s or second-hand from someone who sold you all the original accessories. Otherwise, you can download it from this page on unna.org (UNNA is the United Network of Newton Archives). Before installing Köppen’s software, you should install NIE in your Newton’s internal store.
To give you a visual summary, here is a screenshot of all the extensions installed in the internal store of my MP2100:
Of course, you don’t have to install all this. The essential packages for the present discussion are Newton Ethernet, Blunt, Neo, Nitro, Ntox, NIE Nitro & Blunt, NIE Modem & Serial, NHttpLib.
Text Stationery and Paper Stationery are two extensions needed by Mail V, the excellent software I use to handle email on my Newton.
Setting up Bluetooth
Once installed all the aforementioned packages from Eckhart Köppen’s site, you will need to configure Bluetooth on the Newton and pair it with the Mac. I simply followed Köppen’s instructions outlined in the Blunt page. In the preferences for the Bluetooth Setup app (tap [i], then Prefs), my settings are as follows:
- Name: Newton
- Device Location: Top PC Card
- Speed: 230400
- Driver: PICO Card
I paired my MessagePad 2100 with my PowerMac G4 Cube (after plugging a Bluetooth USB adapter in the Cube). It’s definitely a trial-and-error process: in my attempts, I noticed I was more successful when initiating the procedure from the Newton using the Pair and Get Services commands in the Bluetooth Setup:
It’s important to ‘Get Services’ because otherwise the Bluetooth connection via serial port you’ll setup later will not work. You’ll notice that sometimes, even when everything is set up correctly, the Newton will lose the ‘Modem Port’ and ‘OBEX Port’ information, showing ‘None available’. In that case, just tap Get Services while keeping the Newton in range of your Mac, and all will be fine:
That ‘Name: Q-bert’ is the name of my G4 Cube on the home network.
Sharing the Mac’s Internet connection over Bluetooth
The following part (in italics) was written by Steven Frank in 2006, and it’s the core of the matter:
It is assumed that you already have worked out the kinks in your Newton Bluetooth setup. You should be paired with the Mac, and have done a service discovery. Make sure you select the Mac’s Serial Port service in the Newton’s Bluetooth Setup (there was only one in my case).
Next, you’ll need to go to Terminal on the Mac, and carefully enter these commands:
sudo /usr/sbin/sysctl -w net.inet.ip.forwarding=1
sudo /usr/sbin/natd -interface en1 -use_sockets -same_ports -dynamic -clamp_mss
(Note the “en1” here. If your Mac is connected to the internet using AirPort, use en1. If it’s connected using Ethernet, use en0 here instead.)
sudo /sbin/ipfw add divert natd ip from any to any via en1
(Same deal with the “en1” here.)
(I’m not sure this has to be done twice. One site I was reading suggested it.)
sudo /usr/sbin/pppd /dev/tty.Bluetooth-PDA-Sync 230400 noauth local passive proxyarp asyncmap 0 silent persist :10.0.1.111
[Note: it's one long line]
This starts a PPP server on the Bluetooth-PDA-Sync serial port. Note the IP address here. I’ve used 10.0.1.111. This will be the address assigned to your Newton.
This can be anything you like, but it should be a valid IP address for your LAN. If you use, for example, 192.168 addressing, you should use a 192.168.0.x address instead. Make sure it’s not an address that’s in use by something else!
Now, you need to set up an internet connection on the Newton side! Whew!
Create a new Internet Setup called whatever you like.
User ID: [none]
When closing, disconnect: [your preference]
Local IP Address: (whatever IP address you used in the pppd command above!)
Gateway/Router Address: (the IP address of the machine that’s sharing its connection — in my case, the Mac. NOT the address of your actual router!)
Primary DNS: [an actual working DNS address] (Using 0.0.0.0 doesn’t seem to cut it.)
Secondary DNS: [optional, up to you]
Domain Name: [none]
Now, cross your fingers, and initiate a network connection from the Newton. With a little luck, it should connect to the PPP server running on your Mac, and get online.
When you are all done, and you want to turn off the Internet sharing on the Mac, try the following commands:
sudo killall pppd
sudo killall named
sudo /sbin/ipfw -f flush
sudo killall natd
sudo /usr/sbin/sysctl -w net.inet.ip.forwarding=0
A FEW NOTES:
- I’ve only tried this on Mac OS X 10.4 Tiger.
- At one point I went into the Bluetooth system preferences pane, Sharing tab, and changed the Bluetooth-PDA-Sync serial port from “Modem” to “RS-232″. I’m not sure if this is required, but it’s something to try if it doesn’t work for you.
- Because this runs a PPP server on the Bluetooth-PDA-Sync port, it will conflict with anything else that tries to use that port, such as Palm HotSync.
Further notes and clarifications
I have followed Frank’s method to the letter and it worked. Not after a few attempts, though. At first I started getting error connections and the Newton seemed unable to negotiate a PPP connection. I turned off Internet sharing with the Terminal commands listed above, restarted the Cube and restarted the PPP server on the Bluetooth-PDA-Sync serial port. I kept having problems, until I discovered that I had some old connection profiles in the Newton’s Internet Setup (located in Extras > Setup). I deleted every other profile that wasn’t the Bluetooth profile created as per Frank’s instructions and all went well.
Some other things to remember:
- When Frank says “Create a new Internet Setup”, it means specifically creating a new ‘Generic Setup’ in the Internet Setup app. When you start configuring the setup, in the first pane of your New Internet Setup, choose Connecting using: Bluetooth. Not Serial, not Modem — don’t get confused by the terminology.
- It’s important you enter the correct IP address of the Mac that’s going to share the connection. In my case, the Cube’s IP was 10.0.1.3, so that’s what I entered in the Gateway/Router Address item of the Newton’s setup profile.
- Also, Steven Frank is right about the DNS. It must be a working address. In my settings, I put Google’s address (188.8.131.52) as Primary DNS and one of my ISP’s DNS addresses as Secondary DNS.
- I, too, have tried this only on a Mac with Mac OS X 10.4.11. I think it can work under Mac OS X 10.6 as well. In the future I’ll try with my Intel MacBook Pro and report back.
- It should be nice to have some kind of automation to simplify the turning on/off of the PPP server on the Mac. For now, since I’m not a programmer, the only thing I managed to do to speed up the process was to write all the Terminal commands on one line, separated by a semicolon, in a text editor. Then it’s a matter of copy/paste them into the Terminal and using the up/down arrow keys (the UNIX history feature) to initiate and shut down Internet sharing sessions. If someone wants to write a script or a small app, I will make it available for download here.
So, Internet on the Newton…
Just a couple of screenshots to give you an idea. My Inbox using Mail V:
This very blog rendered in Eckhart Köppen’s Courier:
I hope this information can be useful to someone else. I tried to write this as clearly as I could, considering the many steps and convolutions, but feel free to ask questions and share your doubts or difficulties. I’ll try to help you out as much as I can.