Carbon Project - The Hardware
Well guys there's a lot of people excited to build this project and I'm very pleased with it. The first information that I can give you is the price, it's around US$50 (a little bit more or less). I will publish the bill of material later in this post. Let's start!
The carbon is an intrusive project, I mean you should solder a lot of wires on controller board (This may cause controller's destruction, so don't blame me if that happen). Let's start with eletrical schematic that can be seen in picture 1.
As heart of this project I'm using a STM32F407 microcontroller featuring 32-bit ARM Cortex-M4F core, 1 MB Flash, 192 KB RAM. The board used has a lot of components that won't be used in this project. But this is an cheap board so i think that is ok. This microcontroller family has an important feature that it has two USBs.
The input of the circuit is done by usb connector, that is used to plug a full speed USB HUB. The keyboard and mouse will be connected into this HUB. The microcontroller will process these inputs and select the appropriate behaviour in the output pins. The UART connector is optional and used to see the log output.
All these pins with BTN_ prefix will be soldered in some point in controllers PCB (showed later) , the resistor in serie is just for limitation of current and for circuit isolation.
The two DAC's(Digital to Analog Convertion) is for the sticks. These components are responsable for translate values in a range of 0 to 4096 (12 bits resolution) to tension from 0 to DAC_VREF. So when the stick is in the rest position the value will be approximately 2048 and in output of the DAC will be about 1.65 Volts.
The DFU (Device Firmware Upgrade) button and the circuitry around it is for firmware and profiles update. This will be done through the second USB that will be configured as device. This port is the way that PC will write the profiles built using the configuration software.
If you are interested to see the Dualshock4 teardown, follow this link: http://imgur.com/a/ytRW5/embed.
In picture 2 the top of board is showed. There are three buttons that should be soldered here(BTN_OPT,BTN_SHARE, BTN_TOUCH). The two red rectangles shows the vias that should be scratched on other side in order to solder other buttons.(showed later). And the green rectangle with two *, is the easy solder method but using it the buttons of controller will not work anymore(if DS4 is cheap in your country, this is a good choice for soldering).
In the next picture we have the board bottom in a closeup showing the points where the other buttons should be soldered. This part is the worst because the vias are too close each other, so take care with this part. This is the why of use top side of board is more easy.
In the next picture we have the board bottom again, but this time showing the points where the sticks and last buttons should be soldered. In red rectangle you can see where should scratched to solder the wires for buttons showed in previous picture.
In the next picture we have the USB board that can be found on bottom of the controller. So in this point we will provide the 5 Volts to feed the internal battery of controller. Notice that you cannot feed the project using the internal battery of controller.
In next picture you can see the wires on board:
The last picture is jut to you remember that all wires from controller should be soldered in to MODU connector. There's an exact position for each wire, this position can be found in schematics, for example: A21 means pin 1 of connector A2, A210 means pin 10 of connector A2 and so on. If you make a mistake wiring that you probably will have a big headache, so be carefull.
Bill of Material
This information is just for reference the description and product's URL are in portuguese, so if you're in another country, please use the Manufacturer reference number. The components are THT(Through-hole technology) to be easy to solder. This list doesn't includes the universal board.
PLEASE DON'T TRUST IN THE LIST BELOW - USE THE "BOM" THAT CAN BE FOUND IN DOWNLOADS AREA.
Distribuidores e Alojamento de Fios 2X20P DUAL ROW
Mouser ref: 571-2-826925-0
Manufacturer ref: 2-826925-0
Distribuidores e Alojamento de Fios REC 2X20P VRT T/H
Mouser ref: 571-7-534998-0
Manufacturer ref: 7-534998-0
price: $5.97 (I guess that is possible to find something more cheap)
Fio de conexão 30AWG KYNAR INSUL 100' SPOOL WHITE
Mouser ref: 801-R30W
Manufacturer ref: R30W-0100
Placas e kits de desenvolvimento - ARM STM32F407 HIGH PERF DISCOVERY BOARD
Mouser ref: 511-STM32F4DISCOVERY
Manufacturer ref: STM32F4DISCOVERY
Conversores analógico-digital - ADC Dual 12-bit SPI int
Mouser ref: 579-MCP4922-E/P
Manufacturer ref: MCP4922-E/P
price: $2.76 each
Conectores USB 4P 'A' RECEPTACLE
Mouser ref: 571-292303-1
Manufacturer ref: 292303-1
20 resistor 220R
2 resistor 10K
2 resistor 22R
1 capacitor 1uF
2 capacitors 100nF
If you think I forgot or wrote something wrong, fell free to correct me.
Eagle file of schematics (Download this file from Downloads area)
I beg you to share your concerns and issues with other users, so if you think in make a board for this project, try to ask to others if they are interested and make a number for all. So please share knowledge.
Soon I will reactivate the forum (I'm using the easydiscuss from stackideas, but months ago a guy got register a bunch of users, so I disabled this functionality).
The firmware and PC software will take a longer. for those people that have urgency but have a G13 can provide the firmware with no profiles configuration yet. these guys will have to play with my profile.
Enjoy and happy build!