Hacking a printer’s WiFi module.

A cousin of mine dropped over to my house an out of economical repair inkjet printer. HP Photosmart Plus All-in-One B209a to be exact. I dismantled it and kept the main board and the motors. While trashing the left overs I noticed the WiFi logo on one of the plastic covers. Immediately picked up the main board and there was a daughter board. I took the board out (standard 0.079″ [2 mm] pitch connector) and saw an Atheros chip. AR2524-AQ1C. I knew by heart it was an Atheros USB WiFi chip. A free WiFi USB dongle maybe? Lets find out.

3627648

module-1

The first thing I had to do was to have a look at the connector. 8 pins in total. Locating Vcc was piece of cake! Pins 1 & 2. Ground was also trivial. Pins 3,4 and 8. Pins 5 & 6 were connected to a tiny ferrite transformer, so one must be D+ and the other D- of the USB differential data bus. The only one remaining to identify was pin 7. I thought it should be something like module enable/disable pin. Pull it low/high to Enable/Disable the module or something similar. I decided to leave it unconnected.

header

I had also to convert the USB’s +5 volts to +3.3 volts for the module. So I bodged together a 3.3 volts voltage regulator.

regulator

The next thing to do was to find an old USB cable and bodge everything together.

module-2

module-3

module-4

Time to connect it… I immediately run lsusb. Success!

0ace:1215 ZyDAS ZD1211B 802.11g

After that I installed the z1211-firmware (Firmware for the in-kernel26 zd1211rw wireless driver). There you go. A free WiFi USB dongle. Actually I am writing this post while connected to the Internet using the salvaged WiFi card.

Advertisements
This entry was posted in Electronics, Miscellaneous, Science and tagged , , , , , , , , , , , , , , , , , . Bookmark the permalink.

17 Responses to Hacking a printer’s WiFi module.

  1. Galane says:

    Nice! Now how about those “winprinters” that have zero onboard “smarts” and rely on the host PC to control 100% of everything? They’re basically a stepper motor breakout board connected to a parallel port and the printer driver is specialized motion control software. The USB ones are a bit more sophisticated to deal with taking commands over USB, but the positioning of the paper and printhead and where the ink is applied is controlled by the host.

  2. sam says:

    i tried the same hack as i had an old broken wifi hp printer laying around. my wifi card is different from yours though. it is a broadcom bcm94319wlusbn4l card. it has got the same 8 pin setup. so i soldered a 3.3v regulator and a usb cable together. now lsusb only gives: Bus 001 Device 006: ID 0a5c:bd16 Broadcom Corp. Is this a dead end or do you have any sugestions on how to get this thing to work? i dont think there are any drivers but im not sure.

  3. Alex Sanders says:

    do you think it could be possible to separate the card reader and scanner from the dead printer?

    • Alex Sanders says:

      Maybe the Touchsmart display? very same model

    • alexkaltsas says:

      The specific printer didn’t use a distinct usb host chip via USB, SPI or a similar bus. It was using the usb host capability of the SOIC running a GNU/Linux flavor. So you can;t separate the card reader. The same goes for the scanner.

      • Alex Sanders says:

        Thanks for your answer, I wanted the reader for a project, and the scanner so I can ditch the rest, but I guess I will find it some room till I get another scanner.

  4. I had also one lying around and saw this post. hooked it up to my arduino trough the 3.3v pin and the rx tx. saw it on the screen as a 802.11b/g lp/sc usbless adapter. but it cant find drivers for it. any ideas?

  5. This is a great Post i have the exact board for years and i just stumbled here. Always wanted to use this for something! Now i can 🙂

  6. Bill says:

    Hey i have a similar HP Printer Wifi Module.. i wanted to use it with my Raspberry Pi 2 B. Mine is Model Number: SDGOB-0892

    I am going to follow your instructions and try and hook mine up like you did with yours. How did you figure out that the module runs on 3.3V? Is the Voltage Regulator absolutly nessessary?? I also read somewhere that the module also works with SPI as well as USB. Please Email me back. any info would be greatly appreciated. I am new to this kind of hardware hacking and am eager to learn..

    • alexkaltsas says:

      If I remember correctly, I plugged the main board to it’s power supply and measured 3.3 volts to the header of the module. If Raspberry-Pi has a 3.3 volts rail you can use, the regulator isn;t necessary. I don;t know for the SPI aspect of this module.

      • Bill says:

        thats actually a great idea. i also want to make a usb plug chord that i can use if i wanted to plug the unit into a desktop computer via usb. In that case i guess i would need the regulator. Thanks for the info and the quick response!

  7. Bill says:

    I have found myself a LD1117A resistor.. SOT-223 style.. http://www.st.com/content/ccc/resource/technical/document/datasheet/a5/c3/3f/c9/2b/15/40/49/CD00002116.pdf/files/CD00002116.pdf/jcr:content/translations/en.CD00002116.pdf it is similar to the one in the picture.. i am having trouble trying to get it wired. from videos online it shows they use all three terminals on the resistor.. in the picture above it only shows you connected to two of the three. can you elaborate on the wiring of your voltage regulator so i can try and wire mine? Thanks.

    • alexkaltsas says:

      The heat sink (red circle) is the ground and it is connected directly to the middle pin. I have soldered the heat sink to the ground of the board. In your case though the heat sink is the Vout pin.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s