Monthly Archives: October 2013

Datalog memory for AIO boards (or any Arduino board with ISP)

Following board can be used for any board with working SPI on ISP connector but is primary targeted for copters.

Biggest difference between Crius AIOP v.1 and v.2 is 16Mb dataflash on board. ArduCopter have same capability but Crius v.1 or Hobby King clone AIO clone don’t.

Dataflash logs can be really useful during tuning of your copter so I decide to extend standard boards with this new capability.

Result is small PCB board with LE33 voltage regulator (and two capacitors) to provide 3.3V VCC voltage for memory and Atmel AT45DB161D memory with 2MB (or 16Mb) capacity. Memory is SPI so we can create board as attachment to ISP connector on AIO board.

There is also one more wire needed for CS – I used pin 33 (originally used for camera trigger from RC receiver, not used in most cases) which is connected by wire with board.

How it looks can be seen here :

Result attached to Multiwii Pro with Mega 2560 XCopter board

Result attached to Multiwii Pro with Mega 2560 XCopter board

It is my first SMD so sorry for quality. Fortunately, SOIC 8 and 1206 sized parts can be soldered at home with reasonable soldering stuff without major problem. Also DPS can be done by photo etching easily (see other blog post for detail).

So here is schematic, board and pdf for your DPS :

ISP Memory Schematic

ISP Memory Schematic

Board

Board

ISP Memory DSP

Also you need short update in your MegaPirate NG code (for arduino look for standard DataFlash library)

1. locate Dataflash folder in Libraries

2. change pins settings in DataFlash_CRIUS_AIOP2.cpp  code

// arduino mega SPI pins
#define DF_DATAOUT MOSI // MOSI
#define DF_DATAIN MISO // MISO
#define DF_SPICLOCK SCK // SCK
#define DF_SLAVESELECT 33 // SS (PB0)
#define DF_RESET 32 // RESET (PG0)

where DF_SLAVESELECT is your chosen pin on board. DF_RESET should lead to unused pin although is not used for board.

3. set your config to Crius V2

#define PIRATES_SENSOR_BOARD PIRATES_CRIUS_AIO_PRO_V2

 

Compile code, put your board on your copter and done.

Now you have dataflash logs capabilities and you can measure your vibrations or other stuff on copter.

 

Easy way how to create PCB at home

Couple of points how to create PCB at home. I am not talking about double sided PCB’s for Arduino or other big stuff. It is better to order them already ready from China or SparkFun. But sometimes you need small board for some additional stuff.

So how to do it easily :

1. Let’s use SMD – 1206 sized and SOIC chips are fully ok for home use and soldering

2. Install CAD Soft Eagle – free version is enough for target boards

3. Prepare board in Eagle – if you need cross lines (one side PCB), you can use wire or you can use 0R as bridge and you can have it wire less :-)

4. Print it on normal paper with your standard InkJet printer, mirrored and with max available DPI

5. Use PCB with some positive layer – in Europe is available “Positiv 20″ spray which will put positive layer on pure board , in size which you want

6. Make paper transparent – I am using mighty WD-40 oil. Just spray it, take down exceeding oil and paper is transparent enough

5. Put paper with inkjet down to board and let UV light work on it. UV light can be tricky – it is not to easy get but you don’t need special UV light. For example – lot of halogen lights or cheap desktop lamps with G23 bulbs produce enough UV light to work with PCB with distance like 5 cm /2″ and for 5 minutes or so (test your own to get proper timing). I am using cheap IKEA lamp for light over table. I just put it closer to PCB if I want to develop PCB. Perfect 2in1 solution :-D

6. Follow manual for your positive spray to make it finished (7% of sodium hydroxide)

7. Make PCB etched with FeCl (slower but safer than other more aggressive etching agents)

 

On the end , you will get really nice PCB developed at home, without special stuff like laser printer, transfer foils or UV light.