[Coladam] Reversing AdamNET

Dale Wick dalemwick at hotmail.com
Thu Sep 22 00:07:33 CEST 2011


I do not have the 6801 source code.  When it was going around I wasn't interested. I don't really know who has it now.

I did read a data sheet for a 6801 family microcontroller and I did find it helpful for the first part of my reversing work, but since I'm using a different microcontroller (the ATMEL ATMega328) it wasn't useful after that.  And at the moment I'm not using the serial device in that chip either, but instead I have a software serial function running on some I/O pins that don't have a UART built in.  The advantage is that it gives me more control, but the disadvantage is that it keeps the microcontroller CPU busy while sending or receiving.

I will be posting my sketch for the Uno to listen in on the AdamNET soon, plus some transcripts of what is going on and who is saying it.

Dale

> Date: Wed, 21 Sep 2011 14:20:52 -0700
> From: oltmansg at bellsouth.net
> To: dmwick at yahoo.com; coladam at adamcon.org
> Subject: Re: [Coladam] Reversing AdamNET
> 
> Have you had a look at the 6801 MCU source code? Also the 6801 MCU datasheet is 
> fairly illuminating about the SCI interface that's used to implement AdamNET. I 
> had thought to do the same type of project for interfacing with the emulator, 
> but never seem to have enough time. ;)
> 
> 
> 
> ________________________________
> From: Dale Wick <dmwick at yahoo.com>
> To: Coleco AdamMailing List <coladam at adamcon.org>
> Sent: Wed, September 21, 2011 4:09:24 PM
> Subject: [Coladam] Reversing AdamNET
> 
> Hi,
> 
> Since AdamCon I've felt inspired to start reversing the AdamNET protocol.  The 
> only documents I have on the protocol are from the various versions of the Adam 
> Technical Manual.  So I used that as a starting point.
> 
> The protocol is based on a 62.5k baud serial half duplex protocol.  So in the 6 
> wire modular cable, there are 4 wires used:
> 1 (white). +5V power
> 2 (black). ground (logic)
> 
> 3 (green). ground
> 
> 4 (red). ground
> 
> 5 (yellow). AdamNET reset (active low)
> 
> 6 (blue). AdamNET bidirectional serial(inverted from TTL serial)
> 
> So when the AdamNET is reset, the pin 5 goes low briefly, then remains high the 
> rest of the time.  
> 
> 
> 
> The strange thing about this is that although the ATM document mentions the 
> signals several times, it never actually shows the pinout for the AdamNET 
> connector.  I reverse engineered the pin out by taking apart one of my AdamNET 
> keyboards to trace out what the keyboard logic board was up to.  And once I 
> hooked it up to an oscilloscope I found what it was doing exactly.  It is 
> actually pretty similar to i2c 4 wire protocol that I use at work, except that 
> it runs at a fixed baud rate (and is inverted).
> 
> 
> I've been working away on using an Arduino Uno to help be debug the parts of the 
> protocol that are documented and are not documented.  Basically when the Adam 
> boots up, it does a reset, then does a roll call on all of the 15 peripheral 
> IDs, and the ones which respond are set up in EOS for use.
> 
> I'll post more details of the protocol in my next post.  But I have an Arduino 
> Uno "sketch" (small program) that is build on the NewSoftSerial library for 
> listening in on the AdamNET chatter.  It works fairly well, and all of the data 
> shown corresponds perfectly to the spec from the Adam Technical Manual except 
> for the checksum byte at the end of the extended packets.
> 
> I am currently working on a test of my understanding by creating a sketch that 
> replaces the AdamNET keyboard, to see if I understand things correctly.  If I 
> get that working, then I'll be one step closer to my goal of an AdamNET/USB 
> gateway device.  It uses an enhanced version of NewSoftSerial that adds the 
> ability to support half-duplex protocols.
> 
> 
> Dale
> _______________________________________________
> Coladam mailing list
> Coladam at adamcon.org
> http://adamcon.org/cgi-bin/mailman/listinfo/coladam
> _______________________________________________
> Coladam mailing list
> Coladam at adamcon.org
> http://adamcon.org/cgi-bin/mailman/listinfo/coladam
 		 	   		  


More information about the Coladam mailing list