{"id":43825891,"url":"https://github.com/lampmerchant/tashtalk","last_synced_at":"2026-02-06T02:20:51.156Z","repository":{"id":112228075,"uuid":"404432906","full_name":"lampmerchant/tashtalk","owner":"lampmerchant","description":"An interface for Apple's LocalTalk networking protocol.","archived":false,"fork":false,"pushed_at":"2025-03-11T14:58:06.000Z","size":144,"stargazers_count":35,"open_issues_count":0,"forks_count":3,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-11T15:50:38.340Z","etag":null,"topics":["firmware","macintosh","networking","pic-assembler","retrocomputing"],"latest_commit_sha":null,"homepage":"https://68kmla.org/bb/index.php?threads/tashtalk-single-chip-localtalk-interface.38955/","language":"Assembly","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lampmerchant.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"ko_fi":"tashtari"}},"created_at":"2021-09-08T17:13:57.000Z","updated_at":"2025-03-11T14:58:10.000Z","dependencies_parsed_at":"2024-09-15T14:09:28.531Z","dependency_job_id":"c206144d-5137-409f-8c2a-216e8cd1de68","html_url":"https://github.com/lampmerchant/tashtalk","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/lampmerchant/tashtalk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lampmerchant%2Ftashtalk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lampmerchant%2Ftashtalk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lampmerchant%2Ftashtalk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lampmerchant%2Ftashtalk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lampmerchant","download_url":"https://codeload.github.com/lampmerchant/tashtalk/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lampmerchant%2Ftashtalk/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29145571,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-06T01:13:33.096Z","status":"online","status_checked_at":"2026-02-06T02:00:08.092Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["firmware","macintosh","networking","pic-assembler","retrocomputing"],"created_at":"2026-02-06T02:20:50.165Z","updated_at":"2026-02-06T02:20:51.143Z","avatar_url":"https://github.com/lampmerchant.png","language":"Assembly","funding_links":["https://ko-fi.com/tashtari","https://ko-fi.com/s/4d01fa5b8a","https://ko-fi.com/s/60b561a0e3","https://ko-fi.com/s/64219426b8"],"categories":[],"sub_categories":[],"readme":"# TashTalk\n\n## Elevator Pitch\n\nIt's a LocalTalk interface, contained entirely within a single Microchip PIC12F1840 (8 pins, ~$1.50) microcontroller.\n\nIt handles all the time-sensitive aspects of LocalTalk, bidirectionally bitbanging the SDLC and FM0 (a.k.a. differential\nManchester) based protocol at the data link and physical layers, sending and responding to control frames with CRC\ncalculation and checking, and collision avoidance and retransmission. It can also respond to any number/combination of\nnode IDs for use in bridging applications. It can be interfaced directly to user-mode software on a Raspberry Pi or \nBeagleBone or full PC, or it can be part of a larger embedded system. It slices, it dices, etc.\n\n\n## Project Status\n\nStable and fairly battle-tested.\n\n\n## Caveats\n\nBecause of the PIC12F1840's limited memory and the way its UART is used, the host's UART needs to be able to handle a baud\nrate of 1 Mbps. Conventional UARTs don't expect to be pushed beyond 115.2 kbps. In addition, the PIC has a 128-byte receiver\nqueue, which is considerably smaller than the largest possible LocalTalk frame (605 bytes). As such, the host needs to respect\nwhen the CTS hardware flow control line is deasserted so the queue doesn't overflow and be quick about resuming transmission\nwhen CTS is reasserted so the queue doesn't underflow either.\n\nAlso, \"single-chip\" doesn't include the separate and necessary driver/receiver chip for RS-422/485. Sorry. =)\n\n\n## Building Firmware\n\nBuilding the firmware requires Microchip MPASM, which is included with their development environment, MPLAB.  Note that you\n**must** use MPLAB X version 5.35 or earlier or MPLAB 8 as later versions of MPLAB X have removed MPASM.\n\n\n## PCBs and Products\n\n### End User Hardware\n\n* [AirTalk](https://68kmla.org/bb/index.php?threads/introducing-and-interest-check-airtalk-wireless-plug-and-play-localtalk-dongles.39661/) by [cheesestraws](https://68kmla.org/bb/index.php?members/cheesestraws.19339/)\n  * Plug-and-play WiFi-LocalTalk dongle\n  * [Buy](https://airtalk.shop/product/airtalk-complete/) from [airtalk.shop](https://airtalk.shop/)\n\n\n### Serial Adapters\n\n* TashTalkHat by [bdurbrow](https://68kmla.org/bb/index.php?members/bdurbrow.6275/)\n  * Raspberry Pi hat using v1.x firmware\n  * Pending release\n  * [Forum post](https://68kmla.org/bb/index.php?threads/tashtalk-single-chip-localtalk-interface.38955/page-4#post-422138)\n* TashTalk 2 Hat by [Tashtari](https://github.com/lampmerchant)\n  * Raspberry Pi hat using v2.x firmware\n  * [Files](https://github.com/lampmerchant/tashtalk/tree/main/tashtalk2-rpihat)\n  * See latest release in this repository for gerbers\n  * Buy [fully assembled](https://ko-fi.com/s/4d01fa5b8a) or as kit with [regular](https://ko-fi.com/s/60b561a0e3) or [stackable](https://ko-fi.com/s/64219426b8) header from [Tashtari](https://ko-fi.com/tashtari)\n* USB2LT by [twelvetone12](https://68kmla.org/bb/index.php?members/twelvetone12.23810/)\n  * USB serial adapter using v2.x firmware\n  * Pending release\n  * [Forum thread](https://68kmla.org/bb/index.php?threads/usb2lt-tashtalk-usb-to-localtalk.45282/)\n\n \n### Software\n\n* tashtalkd by [Tashtari](https://github.com/lampmerchant)\n  * Simple LocalTalk (via TashTalk) to LToUDP bridge\n  * [Files](https://github.com/lampmerchant/tashtalk/tree/main/tashtalkd)\n* MultiTalk by [sfiera](https://github.com/sfiera/)\n  * Bridge between EtherTalk and LocalTalk (via LToUDP and TashTalk)\n  * [Project page](https://github.com/sfiera/multitalk/)\n* TashRouter by [Tashtari](https://github.com/lampmerchant)\n  * Full-fledged AppleTalk router supporting EtherTalk and LocalTalk (via LToUDP and TashTalk)\n  * [Project page](https://github.com/lampmerchant/tashrouter/)\n* PicoATP by [Tashtari](https://github.com/lampmerchant)\n  * Tiny AppleTalk stack for PIC12F1840 and other 8-bit mid-range core PICs\n  * [Project page](https://github.com/lampmerchant/picoatp)\n\n\n### Yours?\n\nFile a PR or an issue to add to these lists!\n\n\n## Version Comparison\n\n**AirTalk users:** do **not** upgrade your TashTalk PIC to v2.x, it will stop working because of the change in pinout.  See\nthe Compatibility Fix section below if you are having issues with Power Macintosh 6100 computers or certain LocalTalk\nprinters.\n\n| Version | Pinout                      | CRC Calculation                              |\n| ------- | --------------------------- | -------------------------------------------- |\n| v1.0    | RA3 input, RA5 output       | Self-generated frames only                   |\n| v2.0    | RA3 !MCLR, RA5 input/output | Self-generated frames only                   |\n| v2.1    | RA3 !MCLR, RA5 input/output | Self-generated frames, optionally all frames |\n\n\n### Pinout Change in v2.0\n\nThis change was made in order to enable applications where it is desirable to disable LocalTalk and allow other circuitry to\nuse the RS-422 driver - pulling RA3/!MCLR low will hold the PIC in reset, tristating its outputs.  Using RS-422 interface ICs\nsuch as the SN65HVD series, RA5 can be connected to both the receiver output and the driver input while RA4/Driver Enable is\nconnected to both the (active low) receiver enable and the (active high) driver enable.\n\n\n### UART Protocol\n\nAs of the time of this writing, the base UART protocol is unchanged between all available versions.  v2.1 adds the \"Set\nFeatures\" command, but this can be ignored and is not used by tashtalkd.\n\n\n### Internal Calculation of CRC\n\nv2.1 adds optional calculation and checking of the frame CRC.  As of the time of this writing, this is known to be used only\nby [PicoATP](https://github.com/lampmerchant/picoatp).\n\n\n### Compatibility Fix\n\n[v2.1.3](https://github.com/lampmerchant/tashtalk/releases/tag/v2.1.3) adds a fix for compatibility with the Power Macintosh\n6100 and certain LocalTalk printers (possibly other devices as well).  This fix has also been backported to v1.x in\n[v1.0.1](https://github.com/lampmerchant/tashtalk/releases/tag/v1.0.1) for AirTalk users and other users of devices based\naround the v1.x pinout.  See the release notes for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flampmerchant%2Ftashtalk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flampmerchant%2Ftashtalk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flampmerchant%2Ftashtalk/lists"}