LisaList2

Advanced search  

News:

2022.06.03 added links to LisaList1 and LisaFAQ to the General Category

Pages: [1]   Go Down

Author Topic: AirTalk: A Wireless LocalTalk Project  (Read 235 times)

cheesestraws

  • Jr. Member
  • **
  • Karma: +9/-0
  • Offline Offline
  • Posts: 21
AirTalk: A Wireless LocalTalk Project
« on: May 02, 2022, 04:34:34 pm »

Thought people might be interested in this project I've been working on - it's perhaps strictly speaking more a Mac thing but it's Lisa-relevant too, or at least I've got one plugged into my Lisa and it works, so it's at least Lisa-adjacent.

This is AirTalk: it's a wireless LocalTalk dongle.  All the AirTalks on the same WiFi network can see each other, and they all are on a sort of virtual LocalTalk bus network tunnelled over UDP.  All the computers or other devices attached to any of the AirTalks (and this can be a whole LocalTalk segment!) can see the devices on all the other AirTalks as if they were on a continuous LocalTalk network, though with added latency and thus reduced bandwidth.  No drivers are necessary.  I'm quite pleased with it.

If anyone's interested in this or how it works I'll answer questions or talk about it probably ad nauseam, given half a chance, but I'm trying to avoid being too tiresome.

But I do want to say upfront that it's absolutely dependent on TashTalk, Tashtari's brand new LocalTalk transceiver based on a PIC.  That little PIC has opened up all kinds of fun stuff for the future...
Logged

rayarachelian

  • Administrator
  • Hero Member
  • *****
  • Karma: +48/-1
  • Online Online
  • Posts: 698
  • writing the code,writing the code,writing the code
    • LisaEm
Logged
You don't know what it's like, you don't have a clue, if you did you'd find yourselves doing the same thing, too, Writing the code, Writing the code

cheesestraws

  • Jr. Member
  • **
  • Karma: +9/-0
  • Offline Offline
  • Posts: 21
Re: AirTalk: A Wireless LocalTalk Project
« Reply #2 on: May 02, 2022, 05:27:38 pm »

Yes, sorry - I was trying to avoid sounding too self-promotey, but I fear I ended up obscure instead.

I'll add that the firmware is here, and the hardware designs will also be here once I've got over my anxiety about choosing a license.  https://github.com/cheesestraws/airtalk
Logged

D.Finni

  • Sr. Member
  • ****
  • Karma: +32/-0
  • Offline Offline
  • Posts: 112
Re: AirTalk: A Wireless LocalTalk Project
« Reply #3 on: May 02, 2022, 05:32:33 pm »

Yeah, I've been following the discussions on 68kmla. This is really close to something I've been contemplating for the past few weeks. What I want is an all-in-one package that does this:
- plugs into a printer or modem serial port
- has at least on-board PPP, and perhaps also NTP daemon, recursive DNS resolver, and maybe some TLS tunnel such as an HTTP server that supports forward proxying HTTPS and/or FTP requests
- on the other end has either an Ethernet port or a Wi-Fi interface
- will route (forward) traffic from the serial PPP interface to the Ethernet or Wi-Fi interface
- zero-conf / plug 'n play
« Last Edit: May 02, 2022, 05:46:52 pm by D.Finni »
Logged

rayarachelian

  • Administrator
  • Hero Member
  • *****
  • Karma: +48/-1
  • Online Online
  • Posts: 698
  • writing the code,writing the code,writing the code
    • LisaEm
Re: AirTalk: A Wireless LocalTalk Project
« Reply #4 on: May 02, 2022, 05:36:18 pm »

No promising anything, but supposed I wanted to add support for this to LisaEm, how would I go about it?
Is there some library I can call and pass bytes to/from Serial B for AirTalk that works over UDP on various OS's?
Logged
You don't know what it's like, you don't have a clue, if you did you'd find yourselves doing the same thing, too, Writing the code, Writing the code

Lisa2

  • Administrator
  • Sr. Member
  • *****
  • Karma: +41/-0
  • Offline Offline
  • Posts: 105
  • See why 1983 was more like Y2K...
    • Lisa2.com
Re: AirTalk: A Wireless LocalTalk Project
« Reply #5 on: May 03, 2022, 05:44:31 pm »

I have the TashTalk hat for the Raspberry Pi and it works quite well, but for now it only bridges Localtalk with LToU(DP).   Need to get multitalk working on the Pi and it would be much more useful.

https://github.com/sfiera/multitalk

Anyone here a "Go" programmer?

Rick
Logged

rayarachelian

  • Administrator
  • Hero Member
  • *****
  • Karma: +48/-1
  • Online Online
  • Posts: 698
  • writing the code,writing the code,writing the code
    • LisaEm
Re: AirTalk: A Wireless LocalTalk Project
« Reply #6 on: May 03, 2022, 06:29:08 pm »

I mean, I don't expect this to be too difficult, likely what's needed is to interpret the bytes coming out of MacWorks and split them up into packets.

Some of that can be done with timing tricks*, but that will run into issues if multiple packets are being sent, so I'd want to know what various localtalk packets look like at the byte level, and then write some code to recognize "oh, wait, I didn't get the full packet yet, queue up more bytes" to "ok, that's a full packet, ship it to UDP port whatever in this format" and then what to do when I receive a packet - most likely add the whole packet to the serial port queue and let MacWorks read it in.

I started looking at the mini vMac code that does some of this, but there's a lot to parse.

* this is the same problem for the ImageWriter emulator - how do you know when the print job ends? Well, if you've sent only one, you can expect a flurry of activity for some time, and then quiet time. However, if you send 2 or 3 documents together to the printer in LOS, they'll get merged into a single PDF or single print job at the host/LisaEm level if you only rely on timing - so that won't work for networking protocols.

I think I have the official AppleTalk book somewhere... I guess I should go dig it up as it will likely have the header/footer packet sizing info I'd need for this and then compare it to the code in mini vMac.

There's some detail here: https://windswept.home.blog/2019/12/10/localtalk-over-udp/ but lacks the LLAP packet details.
oh wow, and this one seems to be that whole book: http://www.tmetz.net/os/Apple/Inside_AppleTalk.pdf

Looks like LLAP packets are variable size between 255 to 600 bytes (p552) but still need slightly more details as to how to determine this size depending on packet type.

There's some more details, but not the sizing here: https://web.archive.org/web/20190209190759/https://www.rhyshaden.com/apple.htm

Likely this is what I'm after: https://github.com/lampmerchant/tashtalk/blob/main/tashtalkd/daemon/util/receiver.py
« Last Edit: May 03, 2022, 07:28:45 pm by rayarachelian »
Logged
You don't know what it's like, you don't have a clue, if you did you'd find yourselves doing the same thing, too, Writing the code, Writing the code
Pages: [1]   Go Up