13 ms·
The void left by the parallel port
- jpm_sd 10y agoThis is a cool hack, but I think the article would benefit from a deeper explanation of why "USB to serial" worked and "USB to parallel" would not.
- tyingq 10y ago>> "USB to serial" worked Somewhat. The combination of vendors sunsetting older chipsets (Prolific HX), and their reaction to counterfeit chips makes the USB-to-Serial world a huge pain in the ass. I'm hopeful the CH340 chipset eases the pain of supporting non-tech end users with these things.
- janekm 10y agoCH340 has no practical Mac support last I tried. Try CP2102, works great and cheap too.
- voltagex_ 10y agoOh boy - looks like the same kinds of problems that happened when Microsoft started enforcing driver signing. https://tzapu.com/making-ch340-ch341-serial-adapters-work-under-el-capitan-os-x/ https://tzapu.com/making-ch340-ch341-serial-adapters-work-un... How difficult would it be to write a driver for these adapters from scratch?
- tyingq 10y agoSigned drivers for OSX do exist now: http://blog.sengotta.net/signed-mac-os-driver-for-winchiphead-ch340-serial-bridge/ http://blog.sengotta.net/signed-mac-os-driver-for-winchiphea... But...I'll check out CP2102.
- kirrent 10y agoUSB to serial worked because he could do larger transfers of data to the AVR which would then do low latency byte by byte writes to the device when polled.
- VLM 10y agoHere comes a mostly true simplification. Printers speak an extremely low level protocol of "Once the printer ready pin indicates the printer is ready, load up one byte of data across 8 pins, smack a pulse out that says yo here is another valid byte, wait a bit, then repeat until you run out of data in the buffer to print". This is actually not too far from how parallel port hardware and port driver OS software worked. In practice the hardware ends up as something like 10 general purpose TTL IO ports, in fact in the REALLY old days our NON-integrated parallel printer ports used actual 8 bit latches like you'd see on memory busses from S-100 cards and stuff. Not the abstract concept of a latch but an actual TTL DIP chip like a 74LS373 or whatever printers use (I don't remember inverting or not or whatever) Newer hardware is way more complicated and "automated" and "buffered" but at some level the original PC compatible API locked down how low level it had to be and you have to be able to at least pretend you're GPIO to be "IBM PC Compatible". Standards being a great idea there are of course at least four SPP, EPP, and some others that spec'ed slightly more advanced but whatever. So the high level protocol PLUS industry monopoly compatibility meant if you sell it as "IBM PC compatible" its gotta be able to speak at a 10+ pins of general purpose IO level. The USB replacements do something different and appear to be printers and can no longer implement general purpose IO they implement "print a character" at the USB level not bit fiddling. I've not written a USB driver for a printer (on either side) so I'm a little fuzzy but what I've heard second hand is the USB level lives at an abstraction of "here's a packets worth of UTF-8 stream" Note that there were weird situations for RS-232 serial where you'd synthesize signals by weird pulsing of DTR leads or CTS or whatever that can be pretty well messed up by transitioning to a USB implementation of "heres a bit stream". I guess another way to look at it, is its easier to maintain compatibility across hardware generations for a single stream of bits so serial has it easy, whereas parallel was always a mismatch of high level byte transfer vs GPIO in the same system. The USB emulators only mass market making a printer work, not concerned about providing 10 or so pins of GPIO. There is other fun... to a first approximation (aka its untrue) no one implemented multipoint networks on parallel ports. So latency was approximately zilch and much hardware hacking relied on that. USB of course is shared and totally non-deterministic and just maintains a long term average bandwidth. So trying to synthesize a beautiful sine wave works fine on actual hardware, not so well over a jittery USB. Its very much like the technical challenge of output sound to a local sound card vs stream VOIP across the public internet, which is really hard.
- kirrent 10y agoI think this article explains pretty well why we don't need a parallel port anymore. Rather than outfitting every computer with a complicated and slow port we can have faster, smaller, and more flexible solutions using extra processors in our devices. While I appreciate the ability to control so many IO lines directly I just don't really see the use case anymore and this comes from someone who went down the whole design a new CNC controller because the old one used parallel. No-one ever designs new hardware anymore and bemoans the lack of parallel port that would make their job easier. The void is only legacy hardware that is difficult to use these days.
- iheartmemcache 10y ago>> No-one ever designs new hardware anymore and bemoans the lack of parallel port that would make their job easier. Did you even skim the article? Not only did he identify a painpoint (whether or not you feel it, he did), but he wrote a solution, took the PCB to production, and open sourced the whole thing. That's the exact opposite of most of the tech articles which sit around and complain about the lack of solution. Hey OP, way to go man. Setup a Patreon, and I'll throw a tenner your way just to see what you come up with next. Like AvE, mikeselectricstuff, SpritesMods, you're a "do-er" and I'm sure whatever you do will be mighty interesting.
- GFK_of_xmaspast 10y agoKirrent said "new hardware", the one in the article is 20-ish years old.
- kirrent 10y agoLike I said, I understand the pain of interfacing with legacy hardware but I thought his solution demonstrated perfectly why we don't need a parallel port any more. I didn't mean to imply that OP was complaining about the lack of a parallel port and I enjoyed his post very much.
- qb45 10y agoTwo issues you are completely ignoring are "barrier to entry" and "PITA factor". I can control a bunch of LPT-attached LEDs with two lines of shell script or bitbang SPI/1W/whatever with a screenful of C. No reason to design one-off PCBs and make those external devices "smarter" than they need to be.
- Aqwis 10y agoSo why do those "cheap USB to parallel port converters" only work with printers?
- simcop2387 10y agoTiming mostly. These kinds of devices are using the parallel port to "bitbang" everything. Because of that they need rather precise control of timing in order for things to happen when they expect. The USB devices usually just let you send a stream of bytes and they go out without much control over how fast they change. There's apparently some people making usb devices for things like Mach3 and they have some links to them: http://www.cncrouterparts.com/my-computer-doesnt-have-a-parallel-port-can-i-just-get-a-usb-p-154.html http://www.cncrouterparts.com/my-computer-doesnt-have-a-para...
- nitrogen 10y agoAnother reason a long time ago was that you could control the built-in port's I/O lines directly by writing to a legacy IO port with a single assembly instruction. Any code written that way would not work with the USB adapters.
- toomuchtodo 10y agoI used a Geckodrive controller to connect via USB to the interface I needed to drive three stepper motors (and speed control for the drill motor) for the CNC mill I built. Works natively with Mach3. The timing is then offloaded to the microcontroller (in this case, the Geckodrive). http://www.geckodrive.com/geckodrive-step-motor-drives/g540.html http://www.geckodrive.com/geckodrive-step-motor-drives/g540....
- nictinkers 10y agoThat Geckodrive product appears to connect via a standard parallel port. I don't believe Geckodrive has a USB breakout board. You're possibly using the SmoothStepper from Warp9, the KFLOP board from Dynomotion, or one of a couple of Chinese products of widely varying quality. Once upon a time, the upper end of the market used expensive dedicated hardware for CNC motion control. The low end of the market used commodity PCs ruining the signals out the parallel port. Nowadays, the high end of the market is using PCs to do complex motion control (with computer vision etc) and the low end is using variants of Arduino boards with firmware like GRBL. With GRBL, the G-code itself is fed out the USB in a serial stream and the hardware does the motion calculations. Having the motion control in dedicated hardware is much nicer than having it on a PC with an operating system that can interrupt the fast timing loops and as hobby electronics gets more capable, you're going to see this set up more and more.
- neckro23 10y agoI found out about the CNC thing recently while trying to get a hobbyist CNC machine set up. My immediate reaction was "Parallel ports? What is this, 1985?" Turns out, there isn't really any getting around it. It's parallel port or GTFO. This is how I also learned that dirt-cheap PC motherboards still have parallel ports built in. The higher-end ones generally don't.
- vibrolax 10y agoIt's not quite GTFO, but you do have to spend a lot more than the $15 it costs for an opto isolated parallel port to stepper interface board. My celeron j1900 does about 20k steps/second with low jitter on LinuxCNC
- speeder 10y agoMy recently purchased ASRock Z97 Extreme4 has a Serial port header... I am here thinking what sort of thing I should build and hook up to it, just because I can
- exDM69 10y agoYeah, I was surprised to find out a serial connector in my brand new (2015) motherboard. The previous motherboard I had didn't have headers for serial although there probably was one or more hidden on the board. You could plug in a VT10x or a similar dumb terminal in your brand new PC :)
- 13of40 10y agoYou can get a PCIe bus parallel card on Amazon for about $10 or $15. I've got one I use for programming an older FPGA board.
- cnvogel 10y agoOh, yes. The great Xilinx Parallel Cable III. Still works a treat!
- throwaway7767 10y ago
- kazinator 10y agoThe tinkering void left by the parallel port is pretty much filled by microcontroller-based systems-on-a-chip that are smaller than the plastic casing of a parallel connector. Progress giveth, progress taketh away.
- comex 10y agoPlus, in that timeframe, FPGAs have become much cheaper and more powerful, providing tinkerers a step up from bitbanging.
- JustSomeNobody 10y agoBitbanging was part of the fun. That's kinda the point most are making here.
- jdietrich 10y agoBitbanging hasn't gone away. If you want to write assembler on an 8-bit micro, you can do it on a $4 dev board. That board can run on AA batteries and be embedded into other projects. If you want to spin your own boards, you can get 10cm*10cm boards from China for less than a dollar. We are living in a golden age of hardware hacking. Modern computers aren't particularly amiable to bare-metal programming, but we have truly incredible microcontrollers available at very low cost. We also have excellent gratis and libre toolchains for microcontroller development. Once you have a little experience working with microcontrollers, you realise the incredible possibilities available to us today. The ZX Spectrums and C64s we loved haven't gone away, they've just turned into tiny chips that cost less than a newspaper.
- jonknee 10y agoIndeed: > I made a PCB that fits into a standard D-Sub 25 connector housing with a micro USB port where the cable usually comes out
- Gracana 10y agoThere's still a niche for interactive hackable systems that's not really filled.
- zorpner 10y agoWhat we really need to bring back is the BeBox Geekport: http://www.hardwarebook.info/GeekPort http://www.hardwarebook.info/GeekPort
- erbo 10y agoThis gets me wondering: how close is this to, say, the Raspberry Pi GPIO connector? Could someone make a Pi-to-GeekPort converter? Would that even be practical for anything?
- gizmo686 10y agoThe Raspberry pi has 26 pins (not all of which are IO), and the geekport has 37 (again, not all of which are IO, but still has more IO ports than the Pi). This means that a full converter would require some intelligent circuitry to multiplex the PI's GPIOs. The bigger problem is that the geek port has some 12V pins, and analog pins, neither of which the Pi supports. Again, this can be solved with some circuitry in the converter. Using this converter would require the software running on the PI to be aware the intelligent circutry and either have driver support for it, or operate at a low enough throughput to bitbang in userspace.
- ZenoArrow 10y agoCould use the Beaglebone Black, it's has more than enough GPIO pins and has dedicated coprocessors for bitbanging, which improves throughput and latency. http://kilobaser.com/blog/2014-07-15-beaglebone-black-gpios http://kilobaser.com/blog/2014-07-15-beaglebone-black-gpios http://hackaday.com/2014/06/22/an-introduction-to-the-beaglebone-pru/ http://hackaday.com/2014/06/22/an-introduction-to-the-beagle... My favourite use of the Beaglebone Black so far is as the core of Bela: https://www.kickstarter.com/projects/423153472/bela-an-embedded-platform-for-low-latency-interact https://www.kickstarter.com/projects/423153472/bela-an-embed...
- smcl 10y agoThink with the BBB you have to be super careful with those GPIO pins (more so than the RPi apparently) - have heard of people having fried their Beagle as a result of a tiny mistake.
- cortesoft 10y agoWhat about just installing a parallel port on your computer? http://www.amazon.com/StarTech-com-Express-Profile-Parallel-Adapter/dp/B001Q7X0Z8 http://www.amazon.com/StarTech-com-Express-Profile-Parallel-...
- raimue 10y agoAnd miss all the fun hacking a custom solution? ;-) At least USB also works on a laptop, which is easier to put next to the console in the living room.
- downvotemyjokes 10y agoThat will likely suffer from the same drawbacks as 'installing' a parallel port via USB. You still lack the timing precision required to bitbang out many of these protocols.
- jbott 10y agoShouldn't the PCIe bus fix that problem? I would assume the reason why usb converters do not work would be due to the fact that usb uses a host controlled polling system, resulting in discrete timing that can only be as precise as the bus speed.
- laurencerowe 10y agoI think the timing problems are caused by the USB protocol. A PCI parallel port shouldn't suffer from those problems. (I think they were originally connected over the ISA bus, with the ISA controller connected to the PCI bus once that was introduced.)
- i736680 10y agoUSB latency is generally 0.25ms. PCI-Express latency is around 250ns. That's three orders of magnitude lower. I'm not sure how you can say that this will suffer from the same problem.
- downvotemyjokes 10y ago
- jheriko 10y agoi love stories like this. kudos to the author for taking it all the way to the finish line.
- zw123456 10y agoAnd don't forget about the venerable FTDI FT232R chip which has the very useful "Bit Bang" mode http://www.ftdichip.com/Support/Documents/AppNotes/AN_232R-01_Bit_Bang_Mode_Available_For_FT232R_and_Ft245R.pdf http://www.ftdichip.com/Support/Documents/AppNotes/AN_232R-0... I use those FT232R puppies a lot for all kinds of things that the old PP was good for, programming FPGA's, testing out a new chip or circuit before going to MCU etc. It is very simple and inexpensive, and much faster than the PP was.
- marshray 10y agoFuck FTDI. https://www.google.com/?q=ftdi+brick https://www.google.com/?q=ftdi+brick
- yuhong 10y agoI wonder if the counterfeit chips has this mode or not.
- kps 10y agoI remember this: the counterfeit does, and it works better, because the cloners followed the data sheet and not the errata. http://www.eevblog.com/forum/microcontrollers/ftdi-gate-2-0/msg859741/#msg859741 http://www.eevblog.com/forum/microcontrollers/ftdi-gate-2-0/...
- paulgerhardt 10y agoThey apologized for that and pulled the update. When they did so, do you think they came to terms with why that line of reasoning was wrong and should be given a second chance or were their reactions purely reactionary? A huge percentage of their chips are used specifically for software integrity validation (aka 'security dongle') - that has to warp their threat modeling.
- kqr2 10y agoThen they decided to break it again (albeit without bricking it): http://hackaday.com/2016/02/01/ftdi-drivers-break-fake-chips-again/ http://hackaday.com/2016/02/01/ftdi-drivers-break-fake-chips... Instead of bricking fake chips, the latest FTDI drivers will inject garbage data into a circuit.
- raimue 10y agoNow add a SD card slot and you could load all games you ever owned from it without a computer.
- billforsternz 10y agoThe parallel port was great for simple bit-bash interfacing and I miss being able to do such hacking on contemporary PCs. I remember fondly a hacking war story from the late 80s. I had just purchased a Mephisto 68000 dedicated chess computer for my own recreational enjoyment. The embedded dev lab where I worked won a new contract and the hardware dudes decided a 68000 was the way to go. Not content to wait weeks, maybe months for first hardware, I decided to get some early experience by hacking at my chess computer. Basically I opened it up, reverse engineered the keyboard scanning hardware (which was implemented with standard jellybean CMOS logic), and commandeered a couple of inputs and outputs for my own purposes. I hooked these up to the printer port of my PC. Then I worked out a simple serial bit twiddling scheme to exchange bytes a bit at a time and coded it up in C as a kind of software serial port. On the PC side I ended up with something that looked just like a simple terminal that happened to talk out the printer port. On the Mephisto side, I replaced the 64K byte EPROM with a 128K byte EPROM. I changed the cold boot vector to point at "my" 64K, which first checked to see if the printer port was hooked up. If it was hooked up, then the CPU stayed in "my" area and ran a monitor I had coded up for the occasion. If it wasn't hooked up it vectored back to the original boot code and the chess computer worked as well as it ever did. I layered a loader on top of everything and enjoyed loading simple cross compiled C programs on my new 68K computer, (complete with 16K RAM).
- gozur88 10y agoThe best part of this is you were able to do all that without losing your chess computer. I miss those days as well. It's a lot easier to repurpose things made out of through-hole mounted 7400 series logic than all the custom surface mounted stuff you see today. On the flip side, though, back then to make your own boards you had to shell out thousands of dollars for the software and more thousands for a prototype run.
- billforsternz 10y agoIndeed. As a software guy I was sufficiently proud of my hardware effort that I neatly organised everything as a flying lead coming out of the Mephisto complete with strain relief and a tidy professional looking connector. Not as good as a mounting the connector flush somehow, but pretty good for me. It's still in my cupboard and it still worked well (as a chess computer) last time I tried it, although after 25+ years I wonder whether the EPROM is due to start shedding bits. Trying it out as a 68K dev board is more problematic - for reasons discussed in the main article - occasionally I consider having a go but these days I usually find life is too short for those sorts of things.
- ryan-c 10y agoThis reminds me of junior high and high school, making PC peripherals that used the parallel port based on schematics I found on the internet. It was a lot of fun. I remember building a link cable for my TI-89, NES and SNES controller adapters, a programming cable for a radio shack universal remote, AVR programmers, and other things.
- DanBC 10y agoI made a little toy resistor ladder digital to analogue convertor. I used this with NO$GB Emulator for authentically horrible sound, but you could buy commercial product - COVOX Speech Thing - so it was supported by a few commercial games too. http://www.epanorama.net/circuits/dacs.html http://www.epanorama.net/circuits/dacs.html It's a really simple circuit, and pushing stuff out the parallel port was also really easy.
- garyrichardson 10y agoI thought this was going to be about the space where a parallel port used to be on the back of your computer. Was I disappointed.
- byuu 10y agoProps to innovating a solution. But since this is SNES related ... I've been working with people over the years on an SNES<>PC interface. Idea being, you could dump SNES games from the cartridge port to the PC. Or you could upload hardware diagnostic/test programs (for emulator development) from the PC to the SNES, and then read back the results to the PC for analysis. Or just do crazy stuff like linking multiple SNES units together, support netplay on real hardware, download an unlimited amount of game level content, mix in audio from the PC via SNES commands, etc. Here's the history: http://i.imgur.com/ucxVbJa.jpg http://i.imgur.com/ucxVbJa.jpg We started with the SNES controller port and used bit-banging code to a MAX232N, and connected the other serial end to a PC serial<>USB adapter. This worked out to around ~4KiB/s that we could transfer. After that, I moved to a TTL-232R-5V cable, and spliced it directly to an SNES controller. Same speed, but a lot less bulky. The speed killer was having to bit-bang everything. The SNES has DRAM refresh cycles that stall out the CPU for a short duration on every scanline, so that greatly impedes the maximum baud rate you can bit-bang at. Then I found out about the Teensy, which has a synchronous UART mode. Just connect another line that you strobe when new data is available on your pin. They have software drivers that simulate USB serial UART, so you just compile that in and flash it onto the chip. This got us up to around ~30KiB/s, but that was still rather slow. Finally, we moved on to targeting the expansion port on the bottom of the SNES. It exposes the entire 8-bit data bus. And so we connected that to an FT232H board, which has built-in 1024-byte smoothing buffers in each direction. From the SNES' perspective, it's just like a parallel port. From the PC's side, it's just like a virtual COM port. This lets us hit ~160KiB/s in both directions, and that's with code to verify data is available/can be sent from both ends of the connection on every single byte transferred either way. The device itself is actually USB high-speed, so we could max out the SNES' 2.68MiB/s transfer rate, but we would lose the ability to ensure data or buffer space was available during DMA transfers, so it wasn't as reliable to do that. ... Moving on to the Super Wild Card ... that thing is just a relic. It's unable to dump games that use the SA-1 coprocessor (Mario RPG, Kirby Super Star, etc), or memory map controllers (Star Ocean, Tengai Makyou Zero, etc), making it quite limited. The device we've built can dump games over a USB interface. Takes about ~20 seconds a game, and can dump absolutely every game in the library. And the dumper is written in pure C/C++. About 200 lines of code to support every possible cartridge type. When it comes to playing games, the SWC can't play anything with any coprocessors (all the aforementioned games; plus DSP games like Super Mario Kart, Pilotwings, Top Gear 3000, etc) [well, some of these copiers supported DSP-1 pass-through, not sure if the original SWC supported that or not]. On this front, the sd2snes is a vastly superior solution. You can put the entire SNES game collection onto a micro SD card, and run anything the SWC can, plus the DSP games as well. All the same, even if it's not the optimal solution, I still give props to the author of this hack. It's definitely cool to restore these old copiers, if just for the novelty factor. I'm reminded of a guy who built his own SWC DX2 CD-ROM drive interface for loading games, because the CD drives are much less common.
- IvyMike 10y agoOne of the coolest class projects I worked on in school back in the mid 90's was a compiler for TTL_PAPERS, which was a hardware-assisted low-latency interconnect between PCs used for barrier synchronization. It was also correspondingly low bandwidth, but for the cases where synchronization was your bottleneck, it was hard to beat it. More info from the inventor (Hank Dietz) here: http://aggregate.org/TechPub/ICPP95/icpp95.html http://aggregate.org/TechPub/ICPP95/icpp95.html
- xirdstl 10y agoAh, the pre-USB interfaces. The most fun I had was figuring out how to read the input from an old shipping scale which had serial port output. That powered my keg monitoring server, which I eventually wrote mobile apps for. It was the best side project I've worked on!
- deleted 10y ago[deleted]
- rocky1138 10y agoI'm having the exact same problem with my Atari Jaguar, modified to use BJL (Behind Jaggy Lines), which is a replacement ROM chip that lets you upload games directly to the Jaguar's RAM using a Parallel cable plugged into the second controller port. New PCs don't have a Parallel port and the USB adaptors don't work :( I've been considering trying to build something using my Raspberry Pi or get into Arduinos to try and fix it, but I'm not really capable with hardware stuff. http://jaguar.linkovitch.me.uk.s3.mytilde.co.uk/bjl/about.html http://jaguar.linkovitch.me.uk.s3.mytilde.co.uk/bjl/about.ht...
- protomyth 10y agoI miss the 9-pin joystick ports more than the parallel ports. I hooked a photocell to the paddle pins on one and had a huge amount of fun. I remember Be had a huge port on the BeBox for hacking.
- donatj 10y agoIt was called the geek port. I never had one but read a ton about them back in the late 90s. I was a true BeOS fanboy back then and tried my hardest to run it as my primary OS. I usually ended up back in Windows 2k sadly.
- fit2rule 10y agoI'm really bummed at how quickly perfectly working and valid technologies just get discarded when the new hot stuff comes out .. take, for example, SCSI. SCSI was ubiquitous in computing, its everywhere. I have a 19" case full of perfectly working drives. But can I, for the life of me, find a modern SCSI adapter with ease these days - say, USB-SCSI? Nope. Its just been discarded like yesterdays cheese. Same goes for the Parallel port. What used to be a perfectly cromulant means of wiring up some I/O for quick hacking has now been supplanted by a drawer full of Bus Pirates .. Meh.
- rlonstein 10y ago> USB-SCSI? Nope. Its just been discarded like yesterdays cheese. It's for that reason I've kept around the oddities like the Castlewood Orb USB-SCSI cable and the Iomega JAZ cables. A couple of years ago I used the Orb's USB-SCSI with an external power supply to fire up an old drive and check the contents. Sometimes you just need it. Keep an eye (in the USA) on http://www.shopgoodwill.com/ http://www.shopgoodwill.com/ sometimes these things turn up.
- StillBored 10y agoEbay has dozens of them, although the prices are outrageous. I even see the adaptec usb->scsi converter I had a few years ago. The problem with them is that there compatibility seems pretty limited, especially if you try to attach an old scanner, tape drive, etc.
- beeswax 10y agoMan we were proud when we soldered our own Covox DACs for the LPT; Our MODs sure sounded awesome on those :) And I didn't know DOSBox has an emulation for those, nice!
- digi_owl 10y agoOne of the most intriguing uses of a parallel port i have seen was back in the early days of digital sat coding. It was a crude PCB, some wires, and a old IBM PC. The PCB was shaped such that it fit the receivers card reader, along it was 4 lanes going from the contact pads to the other end that protruded from the reader, from there went 4 wires that was poked into specific holes in the parallel port, and then a program was fired up on the PC that did the decoding.
- cnvogel 10y agoI think you are referring to a “Season 7” interface by which a PC could emulate a smart card for pay TV encryption. One side was a PCB the shape of a SmartCard, only slightly longer. The part protruding from the satellite receiver/TV decoder had a single 74hc driver on it (I think an open collector driver of some sorts to handle the half duplex, bidirectional, data pin of the smartcard interface).
- philjohn 10y agoI have a rather faded memory of using a parallel port to transfer files between our old 386 computer and the shiny, new, Pentium that replaced it ... much faster than using floppy disks and this was before everything came with an ethernet port!
- rlonstein 10y ago> I have a rather faded memory of using a parallel port to transfer files Indeed. It was called "Laplink" though that was a trademark (https://en.wikipedia.org/wiki/LapLink_cable https://en.wikipedia.org/wiki/LapLink_cable). In addition to the Laplink brand software there was Interlink which Microsoft bundled with Win95 iirc, FastLynx (FastLink? my memory is also fuzzy), and a bunch of shareware/freeware from the era (I remember simtel). I was a field service engineer in the early 90's and carried around a six-headed parallel/serial null modem cable just for this. I also got my hands on a few of those (awful) Xircom Parallel-Ethernet adapters some time later and those were just the thing for ruining an entire day getting some awful old machine backed up onto Novell NetWare.
- paddi91 10y agoWhoever is interested in buying one: https://aisler.net/tltx/swc_usb/swc_usb https://aisler.net/tltx/swc_usb/swc_usb
- sdk77 10y agoI fondly remember a university project where we made an mp3 player - hardware based around an Intermetall (MAS) chip and the software to drive it. This was late 90's and the run of the mill 486 struggled to play 256kbps mp3's. I designed an interface around a PAL chip that received nibbles from the parallel port and serially sent them to the decoder chip. The program to parse the mp3 and bit-bang the parallel port I wrote in Turbo Pascal, and it actually did an amazing job, up to 320kbps mp3 could be played. Fun fact: the PAL originally couldn't quite keep up, so I had to increase the supply voltage (as well as the clock voltage level) and attach a heatsink to it!
- GnarfGnarf 10y agoThe parallel port was really neat. I once connected my furnace to a PC, to track when the thermostats were opening the hot-water valves. My house has hot-water heating (as opposed to electric or hot air). I would occasionally observe the furnace coming on for a few seconds, then shutting down. I suspected a malfunction. So I connected the 24 v. valves that control the flow of hot water to the radiators, to relays. Each relay opened/closed a pin on the parallel port. I wrote a program to record the status of the parallel port. I was able to determine that the furnace was coming on at the very end of a heat cycle, just when the room had reached temperature. The furnace would kick in just before the room stopped asking for heat. So it was OK after all.
- gaze 10y agoI feel like PCI and ISA have left holes as well. PCI/e is a fiendishly difficult protocol
- justinlardinois 10y agoDefinitely an interesting story, and I'm loving the other ones that come up in this comment thread. But I have to say the article name is a little overbearing. USB serves the same purpose parallel ports originally did plus more. Yes, devices designed for the parallel port might have trouble playing with modern hardware, but you're just as likely if not more to have drivers that don't run on modern operating systems and are closed source so you can't do anything about it.