Serial Console from 68040 NS 3.3 to macbook 10.10

Started by barcher174, January 03, 2015, 10:08:09 PM

Previous topic - Next topic


Hi All,

I put together a short guide for serially accessing a next from a macbook. Also available on my site here

NeXT 68040 NextStation Serial Console (NS 3.3 & Mac OS 10.10)


Serial consoles allow user access to a machine without the use of a native keyboard or display device. This can be useful if you want to run the machine "headless." They can also be used in a multiuser setup. All 68040 NeXT machines will have the same RS232 Compatible serial pinout, but the 68030 cubes use a RS422 serial protocol. The instructions below assume a 68040 machine, but you should be able to adapt them with very little effort. I will be using a macbook with Mac OS 10.10 as the client machine.

Required Hardware:
   RS232 --> USB adapter ( I am using this ~$21 adapter )
   NeXT mini-DIN 8 to RS232 9 pin DIN Cable Null Modem Cable (construction details below)
   ~470 ohm Resistor

Step 1) The cabling (Null Modem Configuration)
The NeXT uses a mini-DIN 8 connector with the following pinout (female view):
      8  7  6
     5     4  3
        2  1
       1: DTR
       2: DCD
       3: TXD
       4: GND
       5: RXD
       6: RTS
       7: NC
       8: CTS  
A standard RS232 9 pin connector has the following pinout (Female view):

   5  4  3  2  1  
     9  8  7  6  

      1: DCD
      2: RXD
      3: TXD
      4: DTR
      5: GND
      6: DSR
      7: RTS
      8: CTS
      9: RI

The basic principal is that you want the next and your terminal emulator to talk. To do this you want a null modem cable configuration. This means that the sender and the reciever have send/recieve siginals in the opossite positions. (RX --> TX, TX --> RX, etc...)

Connect the cable as follows:

       NeXT  ---> RS232
      1: DTR --> 1: DCD
      2: DCD --> 4: DTR
      3: TXD --> 2: RXD
      4: GND --> 5: GND
      5: RXD --> 3: TXD
      6: RTS  --> 8: CTS
      7: Not Connected
      8: CTS  --> 7: RTS

Step 2) Running headless (optional?)

The Nextstation will only output serial data from the ROM monitor when the system does not detect a keyboard or display. This means that you'll need to use the resistor trick to start up the unit without a soundboard attached. ~470 ohm between Power_on (pin 6) and GND (pin 19). I have a custom dongle with a push-button between the resistor and GND for convenience.

You will also need to enable console access from the ROM monitor. To do this enter the ROM monitor (CMD + ~ after the system test) and type 'p'. Then set 'serial port A is alternate console' to 'yes'

Step 3) Enable Console access from NextStep

You need to modify the '/etc/ttys' file to allow console access

         # If you want to enable getty's on the "a" serial port, change the
         # "off" entry to "on" in exactly one of the "ttya", "ttyfa", or
         # "ttydfa" entries.  This same caveat applies for the "b" port.
         # NOTE: When enabling getty's, be sure that you don't have the port
         # in use for printing (check with PrintManager) or any other
         # program or application.  (Outgoing access via tip or uucp is
         # permissible.)  See the zs(4) man page for more details.
         # If you do not want to start the window server by default, you can
         # uncomment the first entry and comment out the second.
         # console       "/usr/etc/getty std.9600"       NeXT            on secure
         b/NextStep/WindowServer onoption="/usr/etc/getty std.9600" secure window=/usr/li--More--
-> uncomment this:   ttya    "/usr/etc/getty knj.9600"       vt100           on secure
         ttya    "/usr/etc/getty std.9600"       unknown         off secure

Step 4) Cross your fingers and test

You should now be able to connect the cable from serial port A --> USB adapter --> Mac
We will need to find out the name of the serial adapter in OS X. To do this type 'ls -ltr /dev/cu*' in a shell. The last entry will likely be your USB to serial adapter.

      Brians-MacBook-Pro:~ brian$ ls -ltr /dev/cu*
      crw-rw-rw-  1 root  wheel   17,   5 Jan  1 18:43 /dev/cu.Bluetooth-Modem
      crw-rw-rw-  1 root  wheel   17,   3 Jan  1 18:43 /dev/cu.Bluetooth-Incoming-Port
      crw-rw-rw-  1 root  wheel   17,  13 Jan  3 16:15 /dev/cu.usbserial-A402WOWF

We can then use 'screen' to connect to the serial port. I am using the following command:

      'screen /dev/cu.usbserial-A402WOWF 9600,cs8,-ixon,-ixon,istrip'

Now start up the NeXT. If  you enabled console output and are running headless you will start to see the boot up sequence. Otherwise it will be a little while for the sytem to start up. Eventually you should see a login prompt.

      NeXT Mach (localhost) (ttya)

      localhost login:

And that's all there is to it.

Brian Archer


If I remember rightly, isn't the voltage on one of the NeXT mini-DIN non-standard?


I think the 68030 machines have RS-422 "compatible" (differential) serial ports and the Turbo machines have RS-423 "compatible" (single-ended) serial ports...

I know I have been using my TurboColor with a USR Courier for many years with a simple cable, so even though the signalling voltage ranges are slightly different than RS-232, it works fine.


Firstly, for the 68030 I think it's correct that the A and B serial ports are wired differently and are RS-422 compatible. Seems odd to have two different pinouts on one board. Anyone know why that was done?

As for the 68040: The systems administration manual I have(not included in the online version) indicates that for 68040 machines both ports are RS-423 compatible which is actually confusing to me. The pinouts are labeled as follows:

1: DTR
2: DCD
3: TXD
4: GND
5: RXD
6: RTS
7: RTXC (receive transmit clock?)
8: CTS

Shouldn't there be a differential RX signal as part of this spec? Here are the descriptions I've found on the 2 specs:

RS232 uses single ended TX and RX. This means a common ground wire is shared between TX and RX.
Only 3 wires are needed for a data-only serial channel: TX, RX, and GND.
Disadvantages of single ended signaling is that it is more susceptible to noise than differential signaling, effective cable distances are shorter and data rates are slower.
The voltage ranges of RS232 signaling is +3V to +15V for a "high" and -3V to -15V for a "low".

RS423 uses single ended TX and differential RX. TX is comprised of 2 wires:
TX+, a single ended signal, and TX- (which is really just GND).
RX is comprised of RX+ and RX-, which go into a true differential receiver.
4 wires are needed for a data-only serial channel: TX+, TX- (GND), RX+ and RX-.
The single ended TX+ pin drives the RX pin of an RS232 port
TX- (GND) just ties to the RS232 GND pin and provides a common GND.
The voltage levels of signaling is +5V for a "high" and -5V for a "low", which is within the RS232 voltage level ranges mentioned above.

At any rate feedback is certainly welcome, because I had a really tough time finding information which didn't conflict on this topic. I think it would be nice to have a modernized guide with all these uncertainties addressed.



I could at some point attempt to trace the pinout of the NeXT DIN to DB25 serial cable that I used with my USR modem...


As an additional follow up, I connected an '030 cube using this adapter:

The Connections are:

NeXT 68030 8pin to 9pin DSUB

1: DTR —>    NC
2: CTS —>    NC
3: TXD- —>  4: RXD-
4: GND —>   5: GND
5: RXD- —>  2: TXD-
6: TXD+ —> 3: RXD+
7: DCD/RTXC (5V on prt B) --> NC
8: RXD+ —> 1: TXD+

This setup should work on either serial port without issue because we are leaving pin 7 unconnected.



There's a modem cable document in the NeXT archives that has some useful information.