3. Electronics design and production

Making PCino


I used Eagle for designing.

V1.0 schematic & V1.0 board

I found this version is very hard to connect the trace, then I made these changes:
* delete 3 capacitors
* delete the LEDs and resistance for TX & RX
* delete the RST pin head
* make pin headers separate(one for analog pins, two for digital pins)
* add LED and resistant for SCK

V1.1 schematic & V1.1 board

Then I rearranged the layout of componens and got the version 1.2:

V1.2 schematic & V1.2 board

Export images form Ealge

Because it was the first time to use pads. After export the PNG files I found the name of pads still exsist when I using layer management the I found the solution:


on the top bar, click Options-> Settings->Misc, and unselect ‘Display pad names’, ‘display signal names on pads’ and ‘display signal names on trace’

Then I used photoshop to process the PNG files for my board, adding some icron on it and named it PCino(My Chinese name PanCheng + Arduino).

The PNG file for milling:


Milling and soldering:

I used fabmoudles to creat the G code…Uploading to the machine(SRM-20) …Making… Then I got the board:


use steel wood to clean glitch is very useful

Boom list:

Start soldering:

Use the soldering paste on the pins needs to be soldered then use the soldering blade to touch all the pins to heat them together then put the solder on the blade and let it flow to the pins. Remove the soldering blade and all the pins will be finished at one time.

Here is a very beautiful video to show the process:

If you put too much solder then you can use the desoldering wick to suck the redudant solder. But make sure to remove the wick together with the soldering iron.

After soldering my PCino finally showed its beautiful face to me:

But I found some problems:

I resoldered the pads…used knife to separate two connected traces and sacrificed one trace(for one Analog pin) which can’t be separated from other pin…then I got the board. I tried to use the FABISP to burn bootloader, but it didn’t work. So I decided to make a new one.

Version 2

The first version has Reset pin in FTDI pin headers which means it will go through a 22uF capactior. That will resulting in difficult to upload program through FabISP because FabISP needs a RST pin. So I add an independant RST pin header and chage some valu problem.

After some inspection, I found the Problems: * The capacitor close to crystal 16MHz should be 22pF not 22uF, otherwise the Arduino IDE will not recoginize the board.

Test with FABISP

Then I used FABISP to burn bootloader. It works. And the next step is try to use the programmer(FABISP) to upload a blink program to test:

Looks like it goes very well. So I tried to move on- connected the FTDI to upload program. But I forgot I have uploaded the blink program and replace the bootloader. So it is doomed not work.


After burn the bootloader, DO NOT use programmer to upload program anymore if you want to use FTDI to upload program.

Test with FTDI

After burning the bootloader again, I tried to used the FTDI to upload blink test again. But it still didn’t work. So I checked again and found the problem:
* The capactior close to RST pin should be 0.1uF not 22uF, otherwise even I can use the FTDI to get signals from serial monitor but I can’t use it to upload program.

Then I replaced the capacitor and tried to upload again, it finally worked.

After that I know all the function goes very well then. And myown Arduino - PCion is finished.

MY final project board

PCino for hive table

For my final project, because I need 6 pins on each side of the hexagon to ensure each side can transform signals. So each pinheader which I want to use should be multiply by 6. They are: SDL, SDA, IN, OUT and GND. Each wire will be connect with magnet.

  • SDA & SCL is for communction between boards.
  • IN & OUT is for Domino function.
  • GND is to ensure every module is at the same ground for better performance. And this GND pin is necessary even each module has an indepenant power supply.

Here is the connection way:

Important pinheader names and numbers: * D9 - Neopixel x1 * D7, D8 - TouchSensor Give/Taken x1 * D8 - TouchSensor pin x1 * A4 - SDA x6 * A5 - SCL x6 * D5 - Domino IN x6 * D6 - Domino OUT x6

Design process:

Fabrication process:

Final outcome:

Power supply board

On account of each my table module needs an independant power supply and the neopixels need more current then the control board. So I have to make a power supply board to give out different voltage and current.

Voltage test:
I tried to use bench power supply to give 9V(because I plan to ues 9V battery as power supply) to the board then used multimeter to check the voltage. looks like the 3.3v is more accurate then 5v.(but I think 8v is still work for the NeoPixel).

Then I made a current test. Connecting the Power_supply_board, PCion and NeoPixel to see if it works:

Everything looks good, my PCion doesn’t burned and the NeoPixel light on.


PCion.brd(last version)
PCion.sch(last version)
PCion_for_hive_table.brd(final project board)
PCion_for_hive_table.sch(final project board)