If you like my project vote for "A Smarter Tricopter - Yuri Tikhonov"


Good day comrades!

Today I want to talk about my first and second applications for the PSoC 4. But we'll start with my new testing station.



On my small, but cosy workplace you can find:


  1. 23" PC monitor
  2. Multimeter (UNI-T UT61C)
  3. Drilling tool (Makita 8391)
  4. Soldering iron (NoName)
  5. Multitool (Gerber Suspension)
  6. Universal testing station
  7. Piece of russian nature outside the window


Let's learn more about by testing station:



I used this station for demonstration of my graduation project a few years ago, now I just modified it to work with PSoC and Arduino.


It consists of:

  • A. Current shunt
  • B. Power switch
  • C. 2S LiPo (aka autonomous power supply)
  • D. Breaboard
  • E. Arduino Duemilanove (with ATmega328p)
  • F. Part of my old MSP430 RF project
  • G. MSP430 LaunchPad (with MSP430G2553)
  • H. CY8CKIT-042 PSoC 4 Pioneer Kit
  • I. LCD with I2C interface


My first application was traditionally HelloWorld. You can see it on the previous photo. I just connected PSoC 4 to LCD via I2C and sent a phrase "PSoC 4 is ready!".



However after some time of work this LCD went to another world... I found out the problem but this week I have not enough time to repair it


Meanwhile at the moment I start developping a new application.

Tricopter's firmware consists of some parts:

  1. UpTime system
  2. System of communication with the receiver
  3. UART module for configuration and telemetry
  4. Virtual EEPROM for work with configuration parameters
  5. IMU module (gyro, acc and mag).
  6. Communication module for BLDC ESC's and servo
  7. PID controller and so on


This week I start from p.1 and p.2 but I try to communicate the PSoC with PC via UART:




In this screenshot you can see the 'PSoC schematicos' of this application:


  • Yellow: In my application I need two arduino funcitons: delay(ms) and micros(). So I create this 'yelow block' to calculate uptime (operation time). It looks simple but in PSoC 4 I found an interesting situation: we can only communicate clock-block output to clock input of any other blocks! For example I can't connect clock-block derectly to pin. But I found a solution! I read this article and add a TFF block to my application.
  • Blue: As you know I like MultiWii 2.0 so I just rewrote RX.ino file for a PSoC.


As a result I managed to read all the necessary signals with Rx/Tx system and transfer them via the UART on the computer:



On forthcoming week I plan to realize all necessary UART functions and probably to communicate PSoC with standard MultiWii PC application. See you next week!


1PSoC 4 Tricopter Part #1Introduction
2PSoC 4 Tricopter Part #2Purchase of components from Farnell and HobbyKing
3PSoC 4 Tricopter Part #3PSoC firmware: upTime & Rx
4PSoC 4 Tricopter Part #4PSoC firmware: UART & MultiWii GUI
5PSoC 4 Tricopter Part #5PSoC firmware: EEPROM emulation
6PSoC 4 Tricopter Part #6PSoC firmware: Servo & ESC control
7PSoC 4 Tricopter Part #7PSoC firmware: IMU, LED's & PID
8PSoC 4 Tricopter Part #8Hardware: PCB
9PSoC 4 Tricopter Part #9Hardware: tricopter's frame
10PSoC 4 Tricopter Part #10Hardware: YAW mechanics & motors
11PSoC 4 Tricopter Part #11Hardware: ESC's, wires & misc
12PSoC 4 Tricopter Part #12Final: The first fly


If you like my project vote for "A Smarter Tricopter - Yuri Tikhonov"