Byte protocol - commands and file transfers

20 views
Skip to first unread message

Scott Penrose

unread,
Mar 31, 2016, 9:39:36 PM3/31/16
to connected-community-hackerspace
Good afternoon

Anyone know of a simple protocol, that could be used over a Serial link (directly or via a Modem) or via a TCP Socket (still just a pipe) that allows:

* Basic commands - like reading or writing preferences
* File Lists - including filename and CRC (where file is any binary data structure of arbitrary size)
* File transfer - including recovery of half loaded files

Ideal location would be simple enough to embed, so Arduino style. But there is a chanceI am only going to use linux devices for this - however, I don’t want to use the overhead of PPP.

Thanks

Scott

Michael Wheeler

unread,
Mar 31, 2016, 9:43:08 PM3/31/16
to connected-community-hackerspace
You could use AT commands for reading and writing preferences, and then one of those AT commands could break into Z/X/Ymodem to do file uploads / downloads.

--
You received this message because you are subscribed to the Google Groups "Connected Community HackerSpace" group.
To unsubscribe from this group and stop receiving emails from it, send an email to connected-community-h...@googlegroups.com.
To post to this group, send an email to connected-commu...@googlegroups.com.
To view this discussion on the web, visit https://groups.google.com/d/msgid/connected-community-hackerspace/1206A434-A844-46B1-A2F3-05AC3FFCA719%40dd.com.au.
For more options, visit https://groups.google.com/d/optout.

Scott Penrose

unread,
Mar 31, 2016, 9:48:38 PM3/31/16
to connected-commu...@googlegroups.com
On 1 Apr 2016, at 12:42 pm, Michael Wheeler <mic...@michael-wheeler.org> wrote:
>
> You could use AT commands for reading and writing preferences, and then one of those AT commands could break into Z/X/Ymodem to do file uploads / downloads.

Thanks. I have written something like that many times. I was hoping for an existing library. The problem with the above approach I have had, is that there is therefore 2 protocols. So for example, you can’t send commands while the file transfer is happening. But I will certainly fall back to that =)

Thanks

Scott

Andrey Sidorov

unread,
Mar 31, 2016, 9:54:24 PM3/31/16
to connected-commu...@googlegroups.com
ADB host protocol?

At core, it's just stream multiplexer ( you send/receive commands like "open stream(name)" / "write stream data(stream id + data chunk)" / "close stream(id)" )

It's relatively easy to implement and there might be simple implementations around ( I have one for node.js - https://github.com/sidorares/node-adbhost )


Thanks

Scott

--
You received this message because you are subscribed to the Google Groups "Connected Community HackerSpace" group.
To unsubscribe from this group and stop receiving emails from it, send an email to connected-community-h...@googlegroups.com.
To post to this group, send an email to connected-commu...@googlegroups.com.

Scott Penrose

unread,
Mar 31, 2016, 10:01:19 PM3/31/16
to connected-commu...@googlegroups.com

On 1 Apr 2016, at 12:54 pm, Andrey Sidorov <andrey....@gmail.com> wrote:

ADB host protocol?

At core, it's just stream multiplexer ( you send/receive commands like "open stream(name)" / "write stream data(stream id + data chunk)" / "close stream(id)" )

It's relatively easy to implement and there might be simple implementations around ( I have one for node.js - https://github.com/sidorares/node-adbhost )

Oh fascinating. I will look at that now.

Also found:


Just for file transfers: X|Y|ZModem

And of course: SLIP & PPP if I want more.

Scott

Clifford Heath

unread,
Mar 31, 2016, 10:03:09 PM3/31/16
to connected-commu...@googlegroups.com
The ACSnet code that we were using in 1984 (in place of UUCP) has 4-way
multiplexing over a serial line, so supports commands and multiple data
transfer links in parallel, with priority ranking. 4 in each direction IIRC.
Piers Lauder, of UNSW, was the main author here (with Bob Kummerfeld)
A very good design anyhow. I think it was more recently known as MHSnet.

<http://sydney.edu.au/engineering/it/~bob/mhs.html>

Not sure how easily you can find protocol documentation.

Clifford Heath.
> --
> You received this message because you are subscribed to the Google Groups "Connected Community HackerSpace" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to connected-community-h...@googlegroups.com.
> To post to this group, send an email to connected-commu...@googlegroups.com.
> To view this discussion on the web, visit https://groups.google.com/d/msgid/connected-community-hackerspace/21DBE898-96D1-4095-8FA3-11A8D62345D2%40dd.com.au.

Clifford Heath

unread,
Mar 31, 2016, 11:14:12 PM3/31/16
to connected-commu...@googlegroups.com
On 1 Apr 2016, at 1:03 PM, Clifford Heath <cliffor...@gmail.com> wrote:
> The ACSnet code that we were using in 1984 (in place of UUCP) has 4-way
> multiplexing over a serial line, so supports commands and multiple data
> transfer links in parallel, with priority ranking. 4 in each direction IIRC.
> Piers Lauder, of UNSW, was the main author here (with Bob Kummerfeld)
> A very good design anyhow. I think it was more recently known as MHSnet.
> <http://sydney.edu.au/engineering/it/~bob/mhs.html>
> Not sure how easily you can find protocol documentation.

I sent Piers an email asking for details and/or code.

Clifford Heath.

russm

unread,
Mar 31, 2016, 11:19:30 PM3/31/16
to connected-commu...@googlegroups.com
Airhook? http://airhook.ofb.net/library.html

Aou don't need all the reliability/retransmission stuff, but you can transport it over an 8-bit serial link and it'll multiplex various streams for you. What you put in the packets is up to you, so you could easily enough transport commands and file transfers.

It's a dead project (hasn't been touched in years) but it works well enough.

Clifford Heath

unread,
Apr 1, 2016, 1:48:31 AM4/1/16
to Connected Community HackerSpace
Piers responded - MHSnet/ACSnet is now open source.
His response is attached - but the link is
<https://bitbucket.org/pierslauder/mhsnet>

Clifford Heath.
Re: ACSnet protocol.eml

Grant Maizels

unread,
Apr 2, 2016, 7:11:51 PM4/2/16
to connected-commu...@googlegroups.com
Hi Clifford,

Thank you for the link. I have fond memories of compiling this software on an AT&T 3B2 in the mid 80's. I think I even have print outs of the manuals somewhere.

Grant


Clifford Heath.

--
You received this message because you are subscribed to the Google Groups "Connected Community HackerSpace" group.
To unsubscribe from this group and stop receiving emails from it, send an email to connected-community-h...@googlegroups.com.
To post to this group, send an email to connected-commu...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.


---------- Forwarded message ----------
From: Piers Lauder <pi...@janeelix.com>
To: Clifford Heath <cliffor...@gmail.com>
Cc: 
Date: Fri, 01 Apr 2016 16:27:22 +1100
Subject: Re: ACSnet protocol
Hi Clifford,

It would indeed be cool to have the protocol find its way into autonomous
Antarctic wave buoys.

I have contacted Bob Kummerfeld (with whom I collaborated on the software)
to see if it's ok to send you the source code. (It ought to be open
source by now if it isn't already.)

Bob just reminded me it's already open source:

  https://bitbucket.org/pierslauder/mhsnet

Piers Lauder

On Fri, 1 Apr 2016 14:11:02 +1100, Clifford Heath wrote:
  >
  > Piers,
  >
  > I was at Hewlett Packard ASO in Ringwood (Melbourne) from 1984,
  > with Brian Coogan - who deployed ACSnet for us. That organisation
  > went on to a staff buyout of a technology I developed, and became
  > Open Software Associates - osa.com.au was the very first registered
  > .com.au DNS domain. Some of the team are still together at Flexera,
  > who bought ManageSoft (the rebranded OSA).
  >
  > A friend recently contacted me to ask if I knew of a protocol that could
  > transmit files (in packets), file lists, and commands, multiplexed over
  > a single virtual circuit (TCP or serial line) - and I remembered ACSnet.
  > I recall Brian saying it was particularly brilliant, and mentioning your
  > name.
  >
  > Can you provide a protocol document or snapshot of some code that
  > implements it? It might find its way into autonomous Antarctic wave
  > buoys, which would be cool...
  >
  > Clifford Heath, Agile Information Management and Design.
  > Infinuendo Pty Ltd, http://infinuendo.com
  > Data Constellation, http://dataconstellation.com
  > Skype: cjheath, Ph: (+61/0)401-533-540
  > http://www.linkedin.com/profile/view?id=7819504
--
You received this message because you are subscribed to the Google Groups "Connected Community HackerSpace" group.
To unsubscribe from this group and stop receiving emails from it, send an email to connected-community-h...@googlegroups.com.
To post to this group, send an email to connected-commu...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.




--
Grant
--
No Viruses were harmed in the making of this email.
Reply all
Reply to author
Forward
0 new messages