Cloning the AsantéTalk, or not

LaPorta

Well-known member
I see what you are saying above. I guess if I considered myself as a target audience, my want would be:

“Plug in an Ethernet cable at one end, attach a PhoneNet cable to the other, and magically two computers can see each other in the Chooser”

That’s about all I really would want: “it just works”.
 

Tashtari

PIC Whisperer
One sort of runs into the problems of price and complexity in trying to make a standalone device that fits that description. A Raspberry Pi plus a preloaded SD card and a TashTalk hat could form a plug-and-play solution, but a Raspberry Pi is a full fledged computer and can do much more than act as a router, and the price of such a system comes dangerously close to what AsantéTalks go for on ebay. It's a bit like buying a whole car when what you're interested in is the radio.

In order to mitigate those issues, if you want to connect LocalTalk devices to EtherTalk devices, it prompts the questions of (1) what hardware/software do you already have, and (2) what other features do you want. If you want wifi connectivity for your LocalTalk devices and you already have a Linux machine somewhere on the network, for example, get an AirTalk to connect LocalTalk to LToUDP and install TashRouter on your Linux machine to route between LToUDP and EtherTalk. If you already have a Raspberry Pi on the network, get a TashTalk hat and install TashRouter on the Pi and it'll connect LocalTalk, LToUDP, and EtherTalk. But all that is less appealing than a single box that does one simple thing, I suppose.
 

LaPorta

Well-known member
I guess my only use case (which obviously isn’t everyone’s use case) is to bridge an Ethernetless group of machines to an Ethernet-based one. For instance, if I want my Mac Plus, Mac SE, Mac Portable, and my IWII to be able to reach my PT Pro and other Ethernet-connected Macs, I could either buy ridiculously expensive in their own right MacCON or SCSI to Ethernet converters for each and every machine, or I can use one iPrint or whatever device to bridge the entire LocalTalk network to the entire EtherTalk network in just one box.
 

saybur

Well-known member
This problem seems like a good match for a RP2040 with an Ethernet chip hung off it. The second core and/or PIO could handle LocalTalk's timing critical code. Like noted earlier this would probably have more horsepower than a period router solution

It's also a nearly from-scratch solution. Sounds like quite a bit of work! 😕
 

Andy

Well-known member
I was thinking the RP2040 as well. What hesitates me about the using a normal PI is it's a full computer and needs to be shut down properly ect. That's the same reason I don't use my piscsi often.

TashRouter is written in Python, right? I wonder if it would be possible to port it to MicroPython running on the RP2040. That way you can have a common code base and not have to rewrite everything. 🤔
 

stepleton

Well-known member
I was thinking the RP2040 as well. What hesitates me about the using a normal PI is it's a full computer and needs to be shut down properly ect. That's the same reason I don't use my piscsi often.
There are loads of appliance computers running Linux that can essentially tolerate being shut down via power-cord yank.

I think that one of them is the Lisa hard drive emulator I made, and for this one I can tell you how I did it. It's not based on RPi but instead on a (sadly now essentially discontinued) member of the BeagleBone family of Linux single-board computers, so in this respect the same thing. A stock install of the OS will require an ordinary shutdown in order to be safe.

So what I do is this. First I disable most of the services that the OS enables out of the box, leaving just the ones I need remaining. This hastens the boot process but also cuts down on random services that write information to logfiles (remember this for later).

I also use a dedicated secondary partition for the hard drive images that the emulator uses: this is a FAT partition that nothing else writes to except for my emulator software [1][2]. A FAT partition is simple, widely read, and many tools exist to do recovery in case I'm wrong about pulling the power. I edit fstab to add special options for mounting this partition, including flush, a FAT-only option that makes writes more aggressive (i.e. it doesn't leave data-to-write in memory for long but commits it to storage promptly). Good if the power gets cut unexpectedly.

The main Linux partition can't easily be FAT, so for this I enable overlayroot. Now all writes to the root filesystem (the few remaining log lines, for example) get stored to RAM as "patches" to the files there: the original files are locked in amber, never modified. By design, the emulator doesn't need to remember anything that gets written to the filesystem, so here, too, it's OK if the power dies and the patches get lost; meanwhile, the true underlying root filesystem is mounted read-only, so that too is more-or-less impervious to power trouble. It's true that after a long time the writes to the overlay filesystem could fill up RAM eventually, but I've run my emulator continually for a couple of months with no issue. I have no idea what the true time limit is.

Finally, my emulator software is aggressive about flushing writes to disk [1][2]. All this writing might make life hard on the SD card, but so far I haven't had any issues.

And so it has been for about six years? I've never had a problem or heard of anyone else having a problem, though I'll admit that there aren't a whole lot of these things out there in the wild!
 

twelvetone12

Well-known member
Depending on the use, one can also mount part of the root file system as read-only, and then have a ramdisk with the directories that need writing to (/tmp /var ...) and a small partition for the configuration. It is a system I used a lot back when I was maintaining embedded Linux system, exactly for the reason that people could just remove power without the system exploding. I'm not sure how doable it is with a modern distribution, but I imagine it would still work nowadays. Obviously updates via apt or similar will not work and they have to me managed in a different way.
 

Tashtari

PIC Whisperer
I wonder if it would be possible to port it to MicroPython
Looking into it more, MicroPython's threading support is "highly experimental", which is a problem, TashRouter depends heavily on threads. I like the idea of using MicroPython, though, I hope they get that together soon.
 
Top