Monoprice sells a neat wall-brick that takes two sockets and provides three sockets and two USB charging sockets.
However, it did not charge my phone, so I took it apart. The first step is to remove the center screw that normally attaches to the wall sockets. After that, there's a large number of plastic clips to deal with.
Once the case is cracked all the way around, it opens up easily. The device has two separate sections - one for AC and one for USB. There is also a green LED that is driven directly from the 120 Volt input with a diode and a resistor. I cut it off because it was too bright for my bedroom.
It appears the AC-DC conversion is done by first rectifying the AC into high voltage DC pulses, which are filtered through some larger capacitors. I think that the yellow box on the right is not a transformer, but is a giant coil used for the DC-DC conversion process to generate 5 Volts.
Now to the task at hand - converting this charger to charge my phone. The USB interface is on a small daughterboard perpendicular to the AC-DC-DC converter board. It is fed 5 Volts by the headers in each corner. The two copper planes on the daughterboard are 5 Volt power and Ground. Following the 5 Volt, ground, and USB lines, we see that R19, R20, R21, R22, and R23 are resistors or at least resistor pads for the left-hand USB port. R15, R16, R17, R18, and R24 are the pads for the right side port.
For USB-DCP, at most one resistor is required per port. This means that this charger is using some sort of weird proprietary charger. The ePanorama Blog confirms that this is an Apple compatible charger. However, Apple compatible chargers are incompatible with my phone, which requires either USB-DCP, or it must enumerate before charging. The solution is simple, remove the Apple resistors and bridge the data+ and data- lines yourself. I had a little trouble with a solder-bridge that I could not find, so instead of using R23 and R24, I soldered the data+ and data- lines directly, and cut the traces to the voltage divider network. And now my phone charges.
I'll start with the single ethernet port device. After removing the two screws, there's a pair of plastic fins you can see below. Just squeeze the case to get them loose.
Once inside, we see a clear delineation between the powerline networking side, and the low-voltage and ethernet side. There's an INT5500 on the board, which is standard for the 85Mbps devices, along with some companion chips. Nonvolatile storage for the INT5500 is provided by the serial flash near the crystal. There is little public documentation on the INT5500, but it is more than a simple bus converter. The INT5500 can also communicate over ethernet. This is primarily used to configure encryption for the powerlink links, which is very useful if you live in an apartment or duplex. The AC fins are soldered directly to the PCB, so I did not take photos of the reverse of the board.
Now on to the larger device. Pull the three screws. One is hidden under the sticker, and two are under the furthest feet.
Once the screws are released, the whole case flips open like a clam. The front edge acts like a hinge. Once the top case is off, the board slides out easily.
The front of the board is where all the good bits are. Backside photos are up on flickr too though. The same INT5500 chip and friends are present for powerline network conversion. In addition, the 4-port switch is provided by a Marvell 88e6060 6-port switch chip. The 88E6060 is designed for precisely these switching applications - it has 4 ethernet ports configured for external access and two ports that support RMII or MII interfaces for interfacing to a microcontroller.
That about wraps it up. These units appear to work pretty well, but only if placed on the same half of the power lines. Usually AC power comes in to a house at 220 Volts that is generated by two opposite phases. These phases are split to make 110 Volt circuits for different parts of the house. However, I suspect that if you have a pair of utility sockets where your power comes in to the house, you may be able to place a powerline network adapter on each phase, and connect them with ethernet to ensure a good connection.
So, a few weeks ago I bought a ham radio. Kenwood made a series of these radios, TS-680, TS-680s, TS-140, and several others during the late 80s and early 90s. They're mostly solid-state with tube-based final amplifiers. However, there are a few niceties missing that are available on current radios. These include the lack of a simple computer-control port.
Kenwood did add a small expansion slot though, that can hold a card called an IF-10C. The IF-10C consists of an 8251 USART configured asynchronously, a clock generator and divider circuit, and some inverters. This must be coupled with an IF-232 device that sits outside the radio and converts the inverted logic back and then level shifts it to normal RS-232 levels. Finally, you need another device - a USB to serial adapter to connect to a legacy-free PC. Lastly, Kenwood doesn't sell the IF-10C any more, and they are around $80 used. I can do better.
Over the last week, my TS-680s has been flipped on its back, Z80 CPU bus wired into a breadboard. Instead of wiring up a USART and level-shifter, a faster and more direct solution is to use an FTDI USB FIFO like the FT245R. However, the FT245R is not a direct replacement for the 8251 CPU interface - some external logic is required. Here's what the control lines look like when just combining the read and chip-select lines, along with the write and chip-select lines.
Here's what happens:
- The RXF line goes low to signal that there is a byte available.
- Nearly 40 microseconds later, the Z80 responds to the interrupt, chip-selects the UART, and reads a byte from the FIFO, clearing the RXF event
- The Z80 reconfigures the 8251 interface for command/status mode, and reads the status register. It is important to note that the Z80 bus uses pull-up resistors.
- Due to the lack of a status register, the Z80 sees the following: Framing error, break signal, parity error, and overrun error.
- Due to the error condition, the Z80 sends the following bytes to the UART, a byte with the reset bit set, a mode-configuration byte, and a command-byte to enable the UART
- Due to the error and break signals, the Z80 ignores input
So it appears that an emulated status register is also required. The proper solution would be to use a tri-state buffer, but one can also take advantage of the bus pull-ups by using simple NPN transistors to pull the lines low when needed.
And after adding the transistors, here's what happens:
And now the radio responds with IF00014249290, which is the current frequency, and some additional status text.
- A simple streaming H.264 latency reduction trick
- Video over a simplex 56k UART
- Disassembling ELF files with Beyond-Compare
- The Costs of Thread Synchronization
- A New, Future-Proofable Archive Format
- Advantages of Reader/Writer locks on small single-core systems.
- Hooking ARM IRQs with FIQs
- Kraken-II: A small virtual machine.
- libgraphoscope: a project in need of a newer name
- Atari Flashback Controller Pinout and Frame
- Atari Flashback Controller Teardown
- Game:Pickin' Duino
- Project: pyGNU
- Retraction: BSidesKC Samsung Presentation
- Exploring HP's FAT Filesystem
- 555 Timer Schematics and Math
- Robot Cupcakes
- a Time-Lapse Shutter Release
- Inside the LinkStar ViaSat Satellite Modem
- More Remote Shutters
- a Universal Canon Remote Shutter
- Poking around an Ademco RapidEye Multi
- PPPRS launches Kickstarter
- Poking around a Pelco CCTV DVR
- Das Motorsportspiel Liga
- 3rd Party Canon Remote Shutter Teardown
- Kansas City Mini Maker Faire: Parkville photos are up
- Building an Office Bike Rack for $30.
- RSAXVC.NET: Now a real website
- DefCon, with Penn and Teller
- AT&T 2Wire DSL Modem Teardown
- Bike Camping at Middle Creek Lake and Park
- boot-animator: part2: Command-Line flags
- Gaining root on Samsung FemtoCells
- boot-animator: convert videos to android boot animations
- CCCKC: PianoBar Player
- Taking apart a PQI IDE Flash Card
- Building a Coin Sorter
- Building a Garmin Montana Motorcycle Mount
- How to Visit 4 HackerSpaces and have an Awesome Weekend
- Learning about HammerSpace's Andover Controls Systems
- Have you seen these flowers?
- Porting Debian to the G-Tablet
- A Walk in the Park
- BreezeCom BreezeAccess AP with Special Guests: Charles Huber and Doug Kelly
- Litronic Argus 2202 PCMCIA Teardown
- Is it really easier to write the second time?
- RHex Feature: Fast Editing
- RHex Feature: File Identification
- Introducing... RHex
- Notes on Throttle Cable Replacement
- More Samsung SCS-2U01 GPS logs
- One little, two little, three little endians
- Samsung SCS-2U01 GPS Logs and Possible Tamper Switch
- My Favorite 64-bit Porting Guide
- Sprint / Samsung AIRAVE SCS-26UC Console Captures
- Libcutter now draws G-Code
- Taking Apart the Symbol AP4131
- Opening the 3Com WL306 / 3Com Access Point 8000
- Inside the Adtran TSU100
- Verizon / Samsung SCS-2U01 Port Scan
- Verizon / Samsung 3G SCS-2U01 Serial Console Captures
- Update on Hulu for Android
- Sprint / Samsung AIRAVE Photos Up
- Samsung / Verizon SCS-2U01 GPS Captures
- You stay away from here!
- You know you've been using Google Reader too long...
- Google Analytics License Plate Game
- SCS-2U01 Teardown Photos Up
- Hulu Flash Update
- Running Hulu on Android
- Opening and Getting Console on AT&T U-Verse 3800HGV-B
- Changing your Google Chrome Flash Version
- eZ430-F2013 Development Tool
- Well this is interesting
- My SCS-26UC4 is bricked
- OpenCaching.com RSS converter Online
- The Original Red Vs. Blue
- DeWalt DC9096 Battery Pack Teardown
- Rooting the Astaro AP-30
- Samsung SCS-26UC4 Web Interface Password
- Digilent BASYS2 FPGA
- Focus Enhancements TView Gold VGA->NTSC/PAL Converter Teardown
- Astaro AP30 Teardown
- My very own OBJ Viewer
- This Post is for the UNIX Users
- How to stop AutoBoot on the Samsung SCS-26UC4
- Where to get your Samsung Femtocell Source Code
- Mounting ISOs in HP-UX
- SCS-26UC4 Teardown Photos up
- Sometimes 64 bits just aren't enough.
- Attaching a Console Cable to the Samsung/Verizon SCS-26UC4
- Freespace 2 and Prime Factorization
- New Neighbors
- libcutter/Cricut SVG Support
- Building FS2_Open on OpenSolaris
- Building OpenAL on Solaris
- Cricut USB Protocol Reversed
- NA-FS, Not Actually a File System
- Toshiba T135D
- My Toshiba T135D Came in the Mail Today
- My HP 311 went back in the mail today!
- My HP 311 came in the mail today!
- Srsly Subversion, Srsly?
- XEvil 2.02 on Mac!
- OISC Hardware: DC Supply and Clock Generator
- Disappointment with the NComputing L120
- Syntactic Sugar
- OISC Hardware: Program Counter
- Attach a DC Utility Port For Extra Peripheral Power
- Who Knew, GNU?
- Hacking up the Computer Lab International et3000w and et5000n
- Modular RISC Machine: Design Process
- Ghost in the Shell
- Core Failure
- Cheapest webcam on ebay, now with OpenCV support!
- A New Idea about Realtime Image Processing
- So, apparently MT works in ELinks
- Finding a New Fileserver OS: Step Four - Debian Saves the Day
- Design of an Modular, Arbitrary word length RISC machine
- Finding a New Fileserver OS: Step Three - Giving Up
- Finding a New Fileserver OS: Step Two - Testing
- Finding a New Fileserver OS: Step One - Filesystems
- JAUS: a testament to poor design and early adoption.
- Searching, Sorting, and the Memory-Time Tradeoff
- Complex Computational Systems: Planning is Key
- Robotics, Pervasive Computing and Mobile Connectivity
- A New Home