Converting Parallel Port CNCs To USB

If you’re looking for a small, benchtop CNC machine for PCBs and light milling the ubiquitous Sherline CNC machine is a good choice. There’s a problem with it, though: normally, the Sherline CNC controller runs off the parallel port. While some of us still have a Windows 98 battlestation sitting around, [David] doesn’t. Instead, he built a USB dongle and wrote the software to turn this mini CNC into something usable with a modern computer.

First up, the hardware. The core of this build is the rt-stepper dongle based around the PIC18F2455 microcontroller. With a bare minimum of parts, this chip converts USB into a parallel port for real-time control. It’s fast — at least as fast as the parallel port in the ancient laptops we have sitting around and plugs right into the CNC controller box for the Sherline.

The software is where this really shines. the application used to control this dongle is a hack of the EMC/LinuxCNC project written in nice, portable Python. This application generates the step pulses, but the timing is maintained by the dongle; no real-time kernel needed.

There are a lot of choices out there for a desktop CNC machine made for routing copper clad board, wood, brass, and aluminum. The Othermill is great, and Inventables X-Carve and Carvey are more than up for the task. Still, for something small and relatively cheap, the Sherline is well-regarded, and with this little dongle you can actually use it with a modern computer. Check out the demo video below.

Continue reading “Converting Parallel Port CNCs To USB”

Error: LP0 On 🔥

You don’t need fancy ICs and DACs to build a sound card for a PC. As [serdef]’s build over on hackaday.io shows, all you really need is a bunch of resistors. [serdef] built a clone of a sound card released for PC in the 80s, but with a few improvements. This mess of resistors features the best 8-bit sound you can get with a low-pass filter, volume divider, and a handy DB-25 connector.

The design of this LPT0 sound card is pretty much the same as when it was introduced to the world as the Covox Speech Thing. This ‘sound card’ was designed to clip onto the parallel port of a computer and send the 8-bit I/O of this port through a resistor ladder. Plug a pair of speakers into this thing, and you have a sound card that is completely made out of resistors. It was cheap, and in the demoscene it was popular.

There are a lot of amazing demos out there using this resistor DAC thing, and [serdef] has videos of his project playing a lot of them. You can check that out below.

Continue reading “Error: LP0 On 🔥”

USB to DB25 Adapter Uses GRBL For Parallel Port CNC Communication

With the continuing manufacture of new computers, there is a clear and obvious trend of the parallel port becoming less and less common. For our younger readers; the parallel port is an interface standard used for bi-directional communication between a computer and a variety of peripherals. The parallel port’s demise is partially due to the invention of the USB standard.

If tinkering with CNC Machines is one of your hobbies then you are familiar with the parallel port interface being fairly popular for CNC control board connections. So what do you do if your new fancy computer doesn’t have a parallel port but you still want to run your CNC Machine? Well, you are certainly not stuck as [Bray] has come up with a USB to Parallel Port Adapter solution specifically for CNC use.

A cheap off-the-shelf USB to DB25 adapter may look like a good idea at first glance but they won’t work for a CNC application. [Bray’s] adapter is Arduino-based and runs GRBL. The GRBL code is responsible for taking the g-code commands sent from the computer, storing them in a buffer until they are ready to be converted to step and direction signals and sent to the CNC controller by way of the parallel port DB25 connector. This is a great solution for people needing to control a CNC Machine but do not have a parallel port available.

[Bray] is using a Raspberry Pi running GRBLweb to control his adapter board. However, there are other programs you can use to communicate with GRBL such as Universal G-Code Sender and GRBL Controller.

The board has been created in Eagle PCB Software and milled out using [Bray’s] CNC Router. The design is single-sided which is great for home-brew PCBs. He’s even made a daughter board for Start, Hold and Reset input buttons. As all great DIYers, [Bray] has made his board and schematic files available for others to download.

Bit banging through a USB parallel port adapter

If you’ve ever looked into low-level parallel port access you may have learned that it only works with actual parallel port hardware, and not with USB parallel port adapters. But here’s a solution that will change your thinking. It borrows from the way printers communicate to allow USB to parallel port bit banging without a microcontroller (dead link, try Internet Archive).

Sure, adding a microcontroller would make this dead simple. All you need to do is program the chip to emulate the printer’s end of the communications scheme. But that’s not the approach taken here. Instead the USB to RS232 (serial) converter also pictured above is used as a reset signal. The strobe pin on the parallel port drives an inverter which triggers a thyristor connected to the busy pin. Thyristors are bistable switches so this solution alone will never clear the busy pin. That’s where the serial connection comes into play. By alternating the data transmitted from the computer between the bit-bang values sent to LP0 and 0xF0 sent to the serial connector the eight parallel data bits become fully addressable. See the project in action in the clip after the break.

Hackaday Links: November 4, 2012

Wait, you’re using a Dremel to cut PCBs?

Cutting copper-clad board or – horrors – depanelizing PCBs is a pain if you don’t have the right tool. Over at Hub City Labs they’re using a small, cheap metal shear & break. Bonus: it can cut and bend sheet metal, so the Hub City folks can also make enclosures.

Color Codes? Yes, Color Codes.

[Joe] sent in a cool utility he whipped up called resisto.rs. Plug in a resistor value, and it’ll spit out the 4-band, 5-band, and surface mount labels for that resistor value. Pretty neat.

Parallel Ports

Parallel ports may be a dying breed, but that didn’t stop [Electroalek] from putting together a VU meter that connects to his LPT port. It’s an extremely simple design; just connect some LEDs and resistors to the pins of a parallel port, and you can easily control them via software on a computer. Playing around with an LPT port used to be common knowledge, so we’re glad to see [Electroalek]’s work here.

The power is out, but Radio Shack is still open

[Jason] is stuck in New Jersey without power and needed a way to charge his phone. He whipped up a cell phone charger using an RC car battery and an LM317 voltage regulator. It’s an easy circuit to piece together, and judging from [Jason]’s picture will hopefully keep his cell phone charged until the power comes back on.

Shooting 50 Nerf darts all at once

If [Rob]’s project log is to be believed, it looks like they’re having a lot of fun over in the Sparkfun warehouse. They decided to have a full-scale Nerf gun war for a summer intern’s last day. [Rob] came up with a DIY Nerf shotgun that shoots 50 darts across the room, just waiting to be found sometime in the next decade.

There’s a great video of [Rob] firing the single barrel (yeah, they made a trident-shaped one as well) gun at well prepared but unsuspecting coworkers. Be sure to check out the comments of this post to see Hackaday readers frothing at the mouth because PVC pipe isn’t a pressure vessel guys. You’ll all surely die.

Hacking a parallel port flash memory programmer

[Pulko Mandy] doesn’t use his flash ROM programmer very often, but he does use it. When he tried to get support for a new chip and the manufacturer suggested he just buy a newer version he decided to hack the programmer and it’s software instead.

This device connects to the parallel port and was intended for use with MS-DOS systems (no wonder there’s no longer support from the company). The board uses logic chips to add read and write function. So the first step was to analyze how they connect together and come up with a set of commands. While at it he also made some changes to the board to bring the voltage more in spec and ensure the logic levels on the parallel port met the correct voltages.

His plan was to use the board with a Linux system so the parallel port interface can stay. He used what he learned from the hardware inspection to write his own interface in C++. It works with a chip he was able to use under the MS-DOS software, but he hasn’t gotten it to work with the chip that sparked this adventure. If you’re familiar with how the AT29C040A works please consider lending a hand.

Accessing an SD card through a parallel port, just because

[Vinod] sent in a very cool build he says is somewhat of a ‘mad project’: he mounted an MMC and SD card under Linux using the parallel port on his computer. Even though parallel ports are getting rarer these days, we absolutely love [Vinod]’s dedication and willingness to dig around the Linux kernel.

The hardware portion of the build is very simple – just an SD/MMC header and a few resistors wired up to a parallel port. The software side of the hack gets pretty interesting with [Vinod] building a kernel module, something we rarely see on Hackaday.

We’d have to agree with [Vinod]’s ‘mad project’ sentiment, if only because of the terrible throughput of [Vinod]’s adapter; it takes him more than a minute to transfer a 1.5 MB file onto the SD card – terribly slow, to put it mildly. Nevertheless, we’ve got to respect [Vinod] for pushing the limits of uselessness and still building something cool in the process.