I have the Hayes 1200 external mint in box, if anyone wants to buy it, please email ne.
Too late. Just last month we had to get one off of eBay in order to replace a dead one attached to a computer that, for legal reasons, cannot be upgraded.†
† Not being upgradable is one of the reasons it's isolated behind a dialup modem and not connected to the company's network. Some day I'll have to write a blog post about how a group of local politicians can write a law that ends up having that effect.
Related - there's also ESP8266 based TheOldNet wifi modem[1] in case you want TCP/IP over wifi networking in your MS-DOS machine (or possibly others which have support for SLIP - Serial Line Internet Protocol).
Is it feasible to build a modem out of a Raspberry Pi Zero or an Arduino? You'd need to hook the phone line to the GPIO pins, do the ADC and DAC stuff in software, implement the V.22 protocol in software, and also implement the Hayes Smartmodem stuff in software, meaning this is one of the few times a Hacker News reader would have occasion to implement the Hayes Code. Is there any show-stopping problem I'm not seeing? Massive electrical incompatibility?
9V battery was enough for two modems to communicate back-to-back, without dial tone or ringing signals, just "ATD" command on one and "ATA" on another.
You need a "hybrid network" to connect to the telephone system. You'll also need a relay to take it off hook, etc.
There can also be hundreds of volts on the line at various times, not to mention induced voltages during storms.
Once you've handled that, it should be fairly easy to generate the right signals and do handshaking. An RP2040 / raspberry pi pico should be more than adequate.
"The break-out board has been verified by tnt at CCC Camp 2023, where he successfully transmitted a Fax (using spandsp) via pulseaudio - alsa - usb-audio - iCE40 FPGA - AMR riser. Closing."
You need a bit more hardware (see other posts), but most modems from the late 1990s until laptops stopped coming with a modem worked this way - using the CPU which was probably slower than a pi to do the work. Such models basically never worked in linux (I'm not sure why), they didn't have the best reputation as far as quality but they worked.
If I remember correctly as most of them were DSPs and need a driver to load a binary blob to work correctly. All of them had their own spin on the process. Most linux distros did not ship the blobs either. So you would have a bit of fun cracking it out of some random windows EXE just so you could put it somewhere the driver could reach it. It was worth the extra 20-50 bucks it would cost just to not buy one of those things and use it in linnx. Remember this was at a time when a bit of ram (1MB) would cost 100+ dollars. There was a reason they were cheap. They did not have enough hardware to run standalone and relied on the OS to do the loader work.
You'll need some analog circuitry. Not much, but phone service has some kinks electrically speaking.
A phone on-the-hook appears like an open circuit to direct current. Off-the-hook the circuit is closed, and current starts flowing. (Pulse dialing and "flash" signals open/close the circuit, telegraph style.) And ringing on POTS is done by applying about 20 Hz AC to the line at around 100 volts -- enough to make an electric motor ring a bell, or unpleasantly surprise someone playing with the "low voltage" phone line.
So you need to block the AC ringing (and other spikes), block the DC bias voltage (while presenting a phone-like impedance to the line), and then join both the DAC and ADC to the same two-wire line with matched impedance. It could be anywhere from a couple transformers and a few resistors and caps, to a very complicated arrangement with amplifiers, active noise cancelling and gain control circuits, etc. (There used to be dedicated ICs for those things.)
POTS, by its analog nature, is extremely flexible in practice. A couple 9V batteries are often enough to make two old phones work as intercoms. But the faster you want to go the more important it will be to match the expectations of a POTS line exactly.
Fabrice Bellard, because of course he did :), implemented his own version all the way to V.34 with parts of V.90 https://bellard.org/linmodem/ Currently actively maintained by Osmocom project https://osmocom.org/projects/linmodem "In Late 2021 we started a project to support AMR_Modem_Riser cards via a custom break-out board (#5294) and an associated FPGA softcore to interface the AC97 master interface with USB (audio)."
But it seems simpler in some ways than injection molding. You make a single die that's a 2D cross section, extrude as much aluminum as you want, cut it into pieces.
I think it's just the reverse of this. It's easier than ever to get custom injection molding done, even at relatively low scales. Yes, the setup cost for machining holes in extrusion is very low, but if you're going to make even 1,000 of something you might consider getting a low volume tool made.
Extruded aluminium cases are fairly popular for smaller production runs because they're generally off-the-shelf with only the faceplates being custom (usually laser cut and engraved). So the fixed costs are basically zero but the unit costs are somewhat high (aluminium is expensive). Lots of stuff is just made in large enough runs that molded parts become cheaper overall (very nonzero fixed costs but very low unit costs).
If you only need one than the cheapest is find a local machinest and say "make a case to fit" It will be all manual and designed on the mill/lathe except where experience says "better draw this part up first" (one in a while they will scrap a part because it doesn't fit, but overall still cheap). If you need 5-100 then draw it up in CAD and have a machinist (need not be local) throw it on their CNC machines. If you need 1000 or more then design an injection process. Where I put exact numbers that is because the overhead vs efficiency of the process makes this best, where I didn't put anything it is a judgement call, it isn't clear when exactly ones process should be abandoned for the next. (even then sometimes I'm wrong, but for discussion I'm close enough - if you are doing real world work consult a real manufacturing engineer)
Injection molding is great for making a lot of parts, but the cost of designing a working mold means the upfront costs are a lot higher and if you cannot reuse that mold enough to spread that cost across many parts it isn't worth doing.
Not sure what you mean, extrusions are by definition produced by extruding, not machining. The die needs to be machined somehow, but so do injection molds too; neither is more or less custom?
I wish I could get a good face-on view (scan?) with dimensions, of that old extrusion. It'd be fun to 3d-print a clone; of course it won't look the same but it would get some stuff in the right approximate shape.
Guess I should probably buy one, cad it up, and sell it again.
If it's just that classic style you are looking for, and not the exact Hayes design, you might find interesting options from Protocase, Metcase, Bud, or one of the others:
FCC rules around radio emissions used to be tougher, so aluminum was popular in early home computers. I'm not sure exactly when the rules changed, but seems like sometime in the last 1970s or early 1980s. then it took time for manufactures to realize plastic was enough cheaper as to be worth learning how to do.
At the time CPUs hit the 1GHz speeds, there were all sorts of discussions on the shielding so we don't start radiating ourselves. The internet is a fun place, facts be damned!
Aluminum extrusion requires that the PCB fit into the slots. Large PCBs are expensive to prototype and most of the space isn't necessary anymore.
Also the enclosures are quite costly in comparison to plastic, and most aluminum enclosures don't provide any meaningful benefit other than EMI shielding (when grounded).
They don't even act as a heatsink unless you go outside the generally expected methods. However at that point it's usually easier to throw on a heatsink and have ventilation holes.
We quickly learned how to do proper emf testing and design out leakage. From 1979 Atari 800 ~3kg of alloy extrusion we got to 1982 Commodore 64 with thin metal plate followed by ~1986 models using aluminum sticker rf shield, and that was all with only the most rudimentary engineering work. Nowadays you find source of radiation leakage and filter it out right there on the pcb before it becomes a problem.
It is a nice aesthetic right? The short answer is that in volume, injection molding is cheaper. That said, you can buy a wide variety of "standard" extrusion products if you want to build a custom case for something. This happens fairly regularly in custom instrumentation. Most recent example I saw as a tranceiver that used 80/20 quarter round extrusion (#1517) on the corners and sheet aluminum for the sides top/bottom. The front was likely laser cut or milled aluminum. I don't think it's been opened up yet for service so I don't know if there were any additional structural supports inside.
I did something similar with a Raspberry Pi inside as US Robotics Sportster 14400 Modem, running pppd over serial to give an old Mac internet access. I also rigged it to play the modem handshake when starting the PPP session.
49 comments
[ 146 ms ] story [ 177 ms ] threadEdit: There's also an S35212, which Google tells me is an "active filter for telecommuniations".
The rom is from AMD https://www.ebay.com/itm/303174798174
I can spot a DAC unit from Motorola too
Too late. Just last month we had to get one off of eBay in order to replace a dead one attached to a computer that, for legal reasons, cannot be upgraded.†
† Not being upgradable is one of the reasons it's isolated behind a dialup modem and not connected to the company's network. Some day I'll have to write a blog post about how a group of local politicians can write a law that ends up having that effect.
I would love to read about this :)
It would be fascinating to see what kind of machines are still out there lonely and waiting for someone to give them a call.
[1]: https://github.com/TheOldNet/theoldnet-wifi-firmware-binarie...
I was living in a ramshackle house and I wanted dial up internet so I went to the phone company, paid the deposit, and activated my home phone.
Got back home, set up my computer, started looking for the phone line. No phone line.
Went to the store, bought the phone jack and some cable, hooked it up to the box outside, fished it through the wall.
No wire stripper. Not going to go to the store for a cheap wire stripper when I have teeth.
Bit into the wire, stripped the first one. Bit into the wire. Stripped the second one. Third one. Bit into the fourth one and got my world rocked.
Duh. Stupid. Phone is live. Hooked everything up, plugged in a phone and it immediately rang.
I answered, "Hello?"
Some woman: "I've been calling you for hours now! Where is Jake?!"
"I don't know a Jake"
"Stop lying! I know you know Jake!"
"Ma'am, I just turned this phone line on a few hours ago. I don't know Jake. You've got the wrong number"
"Oh, well, if you see Jake tell him I'm looking for him."
"Will do..."
This woman was calling my new number and fried the stupid out of my mouth looking for some guy. Strange coincidences abound.
There can also be hundreds of volts on the line at various times, not to mention induced voltages during storms.
Once you've handled that, it should be fairly easy to generate the right signals and do handshaking. An RP2040 / raspberry pi pico should be more than adequate.
Status changed from Stalled to Resolved
% Done changed from 80 to 100
"The break-out board has been verified by tnt at CCC Camp 2023, where he successfully transmitted a Fax (using spandsp) via pulseaudio - alsa - usb-audio - iCE40 FPGA - AMR riser. Closing."
If I remember correctly as most of them were DSPs and need a driver to load a binary blob to work correctly. All of them had their own spin on the process. Most linux distros did not ship the blobs either. So you would have a bit of fun cracking it out of some random windows EXE just so you could put it somewhere the driver could reach it. It was worth the extra 20-50 bucks it would cost just to not buy one of those things and use it in linnx. Remember this was at a time when a bit of ram (1MB) would cost 100+ dollars. There was a reason they were cheap. They did not have enough hardware to run standalone and relied on the OS to do the loader work.
A phone on-the-hook appears like an open circuit to direct current. Off-the-hook the circuit is closed, and current starts flowing. (Pulse dialing and "flash" signals open/close the circuit, telegraph style.) And ringing on POTS is done by applying about 20 Hz AC to the line at around 100 volts -- enough to make an electric motor ring a bell, or unpleasantly surprise someone playing with the "low voltage" phone line.
So you need to block the AC ringing (and other spikes), block the DC bias voltage (while presenting a phone-like impedance to the line), and then join both the DAC and ADC to the same two-wire line with matched impedance. It could be anywhere from a couple transformers and a few resistors and caps, to a very complicated arrangement with amplifiers, active noise cancelling and gain control circuits, etc. (There used to be dedicated ICs for those things.)
POTS, by its analog nature, is extremely flexible in practice. A couple 9V batteries are often enough to make two old phones work as intercoms. But the faster you want to go the more important it will be to match the expectations of a POTS line exactly.
Tony Fisher wrote V.32 soft modem stack for SGI Indy back in 1996. York University couldnt handle hosting whole 8 megabytes of his stuff https://www.cs.york.ac.uk/news/fisher/home-page but at least they had the decency to upload it to github instead of just deleting https://github.com/university-of-york/cs-www-users-fisher/tr... Randy Rossi rewrote this project and got working V.21/23 https://github.com/randyrossi/fisher-modem
Fabrice Bellard, because of course he did :), implemented his own version all the way to V.34 with parts of V.90 https://bellard.org/linmodem/ Currently actively maintained by Osmocom project https://osmocom.org/projects/linmodem "In Late 2021 we started a project to support AMR_Modem_Riser cards via a custom break-out board (#5294) and an associated FPGA softcore to interface the AC97 master interface with USB (audio)."
V.21 modem implemented in Gnu Radio https://web.archive.org/web/20170627151353/http://aaronscher...
amodem - good source of ready made modulation implementations https://github.com/romanz/amodem
minimodem- simple radio link FSK modem https://github.com/kamalmostafa/minimodem
audsl - leased line project, not compatible with standard modems https://www.araneus.fi/audsl/ but might give some ideas.
https://biosrhythm.com/?p=1546
Injection molding is great for making a lot of parts, but the cost of designing a working mold means the upfront costs are a lot higher and if you cannot reuse that mold enough to spread that cost across many parts it isn't worth doing.
Just think about building a workbench if you were going to build it out of wood vs a mold. More screws parts and steps.
Guess I should probably buy one, cad it up, and sell it again.
https://www.protocase.com/products/electronic-enclosures/alu...
https://www.metcaseusa.com/en/Enclosures/Aluminum-Enclosures...
https://www.budind.com/series/general-use-boxes/ext-series-e...
Also the enclosures are quite costly in comparison to plastic, and most aluminum enclosures don't provide any meaningful benefit other than EMI shielding (when grounded).
They don't even act as a heatsink unless you go outside the generally expected methods. However at that point it's usually easier to throw on a heatsink and have ventilation holes.
But yes I do love aluminum extruded chassis.
Now I want one that fits in a USR Courier case.
https://youtu.be/De5ufcDueRU?si=cY7kKrlY8slFIM3G
I did something similar with a Raspberry Pi inside as US Robotics Sportster 14400 Modem, running pppd over serial to give an old Mac internet access. I also rigged it to play the modem handshake when starting the PPP session.
I suspect the wifi modem telnets. Does it ssh? I suspect the target use case is connecting to a telnet BBS from vintage hardware.