KISS FC is a F3 flight controller designed by Flyduino for Mini Quad. In this post we will walk through the features of the KISS FC, compare it to CleanFlight/Betaflight, and explain briefly how to set it up.
Get your KISS FC from Flyduino.
Sorry for the long post, it took me a long time to finally setup the KISS FC on my quad, and during the time I learned quite a lot about this FC. I hope this is useful to someone who are considering this flight controller.
Table of Content
- Hardware Spec
- Differences from Cleanflight
- Info about the software
- My Review
- Setting up KISS FC
- Things to Improve
Last Updated: 05/Mar/2016, Thanks to Artur Banach. for taking some of the beautiful pictures.
Specification and Hardware
I am not sure if KISS really stands for “keep it simple stupid” or “keep it super simple”, but the idea of this FC and its software are to make things simpler.
Here are the hardware features that the KISS flight controller offers:
- STM32 F3 MCU with MPU6050 Gyro/ACC
- Input voltage: 2-6S LiPo
- 6 motor outputs – supported frame configurations incluces Bi-copter, Tricopter, Quadcopter, Hexacopter
- Integrated 500mA 5V BEC (78M05G) – which means you can power the FC directly from LiPo battery, and the FC can power the RX too. Flyduino ensured us that this LDO is very immune to voltage spikes that could be caused by active braking. It also works as the VBAT pin
- Supports Telemetry data from KISS 24A ESCs (battery voltage, current or ESC temperature)
- Supports SBUS + Smart Port Telemetry (and several other radio receivers and telemetry)
- Reverse polarity protection
The KISS FC is a 32-bit flight controller with F3 processor, just like the SPRacing F3, LUX or Tornado. The KISS FC is currently using its own custom firmware, but because of the same processor, Cleanflight might be ported in the future. The hardware of the KISS FC is simple, no baro, no mag, no flash memory chip.
Size and Layout
The dimension of the board is 38 x 36 x 8.4mm (including connectors), and it weights 4.6g.
The mounting holes are 30 × 30mm, which is just 0.5mm smaller than other FC of similar size. That’s why you might find yourself having to push the FC down the nylon screws.
Similar shape to the LUX F3, both look like an “H”. It uses solder pads rather than traditional pin holes. I think the intention is to do wire direct soldering, rather than using header pins.
With the ESC telemetry, it is able to report current draw, RPM and temperature of each ESC, which then can be displayed on the OSD.
There are dedicated pins on the FC that receive telemetry data, one for each ESC (TRX pin – between PWM pin and GND). They are using hardware serial on the processor.
Differences from other F3 FC
Most of the F3 Flight controllers these days run CleanFlight (CF) / Betaflight (BF), so we will compare the new KISS FC firmware with them.
I think the 2 main differences that are really matters to general users are: the support for ESC Telemetry, and Felix’s custom firmware. (Felix – designer of KISS FC). In my opinion the differences in firmware are:
- CF and BF are open source, while KISS FC firmware is closed source.
- Some say there are too many features in Cleanflight that are unnecessary (for racing mini quad). In KISS GUI, there are only 2 tabs with the most basic settings
- In CF there are complex CLI commands and parameters, and there is no CLI in KISS
- Frequent Betaflight and BLHeli Updates – Betaflight is great, it really gives you great performance, but unfortunately the experimental nature of the firmware means there will be frequent updates. Constantly keeping up with the rapid development is a pain if you just want to fly
- BF and Raceflight are trying to run as fast as they can with looptime (where Raceflight is doing 8khz at the moment). KISS FC still runs at 1Khz and reportedly having good result
The firmware is written from scratch, and the PID controller is complete float point based. But there is no alternative PID controller choices like those in Cleanflight.
PID values has lots of decimals, that’s good for fine tuning.
GUI – KISS FC’s Configurator
Just like Cleanflight, KISS FC uses a Chrome APP to configure the KISS FC. There are only 2 tabs currently (Configuration and Data Output), and there is no CLI commands at all.
In comparison, here is the GUI from Cleanflight. It’s just amazing how many tabs there are now :) Some people love it some don’t.
There is also handy feature where you can choose your air frame in the GUI (either pre-sets or uploaded by other users), and it will populate PID settings for you. However not everyone uses the same motor, ESC, props so that might not be the most useful thing.
There is software filtering option in the GUI. If your quad has bad vibration that you cannot tune out with PID, you can try to increase the filter to reduce the noise. Here is more info about how to setup the filter.
Telemetry now works with several systems including Frsky, Jeti and Graupner. Some others are being worked on at the moment including the D4R-II.
Flyduino has also written a custom firmware for the Micro MinimOSD, which they also sell (their own version). I bought some micro MinimOSD from Banggood they work just fine. Here is how I setup minimOSD for KISS FC.
Currently there is no support for OSD menu like the one in MWOSD, where you can change PID and rates, even OSD settings using your TX.
My thoughts about KISS FC
Right now, I don’t think KISS is better than CF/BF or vice versa, they each has its strengths and weaknesses.
There was a learning curve when I was learning to set up the KISS FC. But I think for a complete new user, the KISS FC approach might still be easier to learn thanks to the much simplified user interface.
Customer service is also excellent from what I have seen. Friends around me that has a problem with their KISS boards or ESC’s seem to always get taken care of.
However KISS FC is still in a very early stage, and for most users it’s not as simple as just “plug and play”. Hopefully this will improve soon as time goes on. It’s already looking much better now than than 3 months ago.
Software side of things
As a first time user, I find firmware update a bit inconvenient. In CF we can do it right in the Configurator, but with KISS FC you need do it with a third party program, that only runs on Windows OS! There are also a couple of drivers you need to download first to connect your board to the computer.
To flash firmware, you will always have to have the bootloader pins shorted, which means you probably have to take your quad apart every time you update the FC firmware. I saw people doing mods like adding a switch to the boot pins, but it’s supposed to be “simple”, right? :) Hopefully there will be software workaround to avoid shorting the boot pins, or in the next revision board adding a push button or micro switch.
Be aware that settings are lost after each firmware flash so screen grab the settings first! (we need that “backup” button in the GUI! :) )
The setting up part isn’t perfect yet, but I got to give them a thumb up for the flight performance. This KISS FC + 24A ESC combo feels super responsive. Control is very sharp and no matter how hard you slam those sticks the quad just stay at the spot, very controllable!
Probably not the most accurate description of the experience, it feels like I was ice skating :)
Here is my first ever flight with the KISS (seriously, first time outdoor!) PID and rates are not tuned at all, but still flew pretty well.
And there is tuning. I fly both KISS setup and Betaflight + BLHeli setup, I feel like on the KISS FC I can tune the quad to 80% very quickly (in fact default PID works for many people), but that last 20% is challenging (it’s just hard to tune out the overshoots and the rate is a bit difficult to judge). While on CleanFlight or Betaflight, it takes longer to get to 80%, or even 99% but you can get there eventually because of all the granule settings.
I also blame blackbox :) I rely so heavily on that stuff I nearly forget how to tune a quad without it. And I really hope KISS can introduce blackbox, it’s so useful!
Hardware side of things
To be honest I am not a fan of the KISS FC board layout, the location of the pins are not convenient IMO. At the moment those pins are all at the same side, on both top and bottom of the board. I think they should look at LUX’s approach.
Not sure why they choose to use solder pads either (probably because of easier circuit layout?), which to me, is easy to delaminate. I personally would prefer header pin holes just so we have more freedom working with them.
I love the ESC telemetry feature, being able to see current, temperature and RPM is awesome! However you can only use this feature with the KISS 24A ESC, and it means more money to spend :)
Pass-through ESC programming is NOT supported on the KISS FC, due to the 5V drivers at PWM outputs (that makes it more resistant against electrical interference). This means when there is an ESC firmware update, you will have to update the ESC one by one. It’s not a huge problem for KISS ESC users since there isn’t frequent update anyway. Probably more of a problem for BLHeli users, such as Littlebee 20A or XM20A.
Setting up KISS FC
Just briefly explaining what I went through when setting up mine, and some findings that weren’t mentioned in the manual.
I have taken some screenshots from the manual, just for the convenience of myself and some others. Here is the link to the manual of V1.05. But because they seem to update it quite frequently with a different file name (link), always use the link on their product page instead.
Firmware Update – First time user
- Download KISS FC Flight Control GUI from Chrome Store
- To connect to the GUI, google “STM32 Virtual com port driver” and download the driver first (I still need to install that driver although my computer works fine with any Cleanflight boards either F1 or F3)
- Download DfuSe Demo program, which is used to upload the firmware to your FC
- If the DfuSe Demo program doesn’t detect any available DFU device, you will have to remove the existing STM32 Bootloader driver (ZADIG), and install another driver for the bootloader device in device manager
- Short the bootloader pins, before you plug in the USB cable (keep that short until flashing is finished)
Powering the KISS FC
The voltage input is labled “VIN” on the board. It actually acts as the VBAT pin as well, so you should connect this to your LiPo voltage, same as your ESC’s.
There is an onboard votlage regulator that convert the lipo voltage down to 5V for your FC and RX. Avoid powering any other 5V device from the FC just to prevent regulator overheat, it’s rated for 500mA only.
- Download MinimOSD firmware from the KISS FC product page.
- Flash firmware same way you would normally do with MWOSD firmware (upload sketch from Arduino IDE).
But because OSD menu is not supported yet, to change OSD settings, such as what you’d like to display, you need to flash the MinimOSD firmware again.
To to that, go into the code, find “CONFIGURATION” section, to disable an option, just put a // before it. For example if I don’t want to see ESC current, I would do this:
//============================= #define DISPLAY_RC_THROTTLE #define DISPLAY_COMB_CURRENT #define DISPLAY_LIPO_VOLTAGE #define DISPLAY_MA_CONSUMPTION #define DISPLAY_ESC_KRPM //#define DISPLAY_ESC_CURRENT #define DISPLAY_ESC_TEMPERATURE
On your OSD, the abbreviations stand for
- AT = total current
- KR = rpm*1000
- co = mah consumption
It’s best not to power your OSD from your FC, but rather from an external 5V sournce like a voltage regulator, to avoid overheating the LDO on the FC.
By the way the OSD display can be switched using AUX4 channel if it hasn’t been assigned a function (e.g. from displaying full telemetry data to just displaying voltage).
SmartPort Telemetry for X4R-SB
I guess majority of the people will be running X4R including myself, so you might want to set up SmartPort Telemetry. It’s extremely easy, just plug and play.
But make sure you have the latest FC firmware, I think support for Smart Port was only available since V1.02 Beta7.4.
Follow this connection diagram from the manual, once you have selected Frsky SBUS as your receiver type, Smart port should start working.
Currently these telemetry data are supported:
- VFAS (the lipo voltage in V)
- Current (the total current A)
- Fuel (the used mAh’s)
ESC Connection and Setup
Note that the motor layout is not the same as it is on Cleanflight boards! It’s actually like OpenPilot, which is clockwise.
I just soldered the ESC directly to motors (RS2205), and it spins counter clockwise. You can change motor rotation by shorting the JP1 bridge on the ESC.
You don’t need to run calibration if you are using KISS 24A according to the manual. If you are running BLHeli ESC’s, read on.
There is no motor tab in the KISS FC GUI, so we will have to use the old school way of ESC calibration.
- Set min throttle to 2000
- click save
- unplug and plug back in FC
- arm quad
- plug in lipo
- hear beeps
- hear beeps
- unplug lipo
Saving GUI Settings
Be aware that the KISS FC has a safety feature, when it detects any input voltage of higher than 6V, it won’t save any settings from the GUI, because it “thinks” it’s connected to a LiPo not USB cable.
So whenever you have problem saving settings, first thing to check the voltage powering your FC. If you power on the quad with LiPo first, then connect USB, you won’t be able to save settings either.
As stated in the Manual:
If Min Command is set to 1000 and the Arm function is assigned to a switch on your radio, Airmode is activated automatically.
So if you arm with a switch
- Min command = 1000 => airmode
- Min command = 1001 Or Above => No Airmode
Be extra careful with Airmode though, because you cannot assign a switch to it, and it doesn’t have the safety feature in betaflight, it will spool up on the ground if you don’t take off soon enough due to I term error building up (I would say 3 to 5 seconds?). For those who worry about this can use “idle up” switch, that works as an “Air mode” switch. But the two approaches work differently in the PID side of things, so you will probably feel the difference too in the air.
The buzzer doesn’t beep when you activate it, and only makes a continuous high pitch noise. Here is where I connected it.
The values of the filter could be a little confusing. The “high” and “low” is NOT the amount of filtering, but rather the frequency it’s trying to filter out. For example, if you craft oscillate only a little, you can try “high”, but if the vibration is extremely bad, then you can try “low”, or something in between.
It’s recommended not to set it “off” right from the beginning, it’s best to tune your PID with default setting (“high”) to make sure it’s working fine before setting it “off”, if you wish.
If you want the motors to stop straight away in a failsafe then set the “FS level mode” number to 0.
KISS Carrier PDB
You can also get the KISS Carrier PDB that is designed for the KISS FC and KISS 24A ESC’s. It will clean up your wiring immensely, but just be aware of the size if it will fit your frame.
The plastic connectors on the side are for connecting the FC to the KISS Carrier PDB (which you can buy separately), and one of them is for Spektrum Sat.
There are two ways of connecting the FC to the PDB: 1. Direction wiring.
2. Using the 6 pin JST connection cable.
But it looks like it only connects 1 TLM pins in both cases (even the 6-wire connector only has 4 PWM, 1 GND and 1 TLM), so not sure if it only reads telemtry data off 1 ESC or still all of them.
Things that can be improved
- Make mounting holes pattern 30.5mm x 30.5mm, which is the standard, as well as most mini quad frames are designed for this size
- USB connector comes off – it seems to be a very common problem with the KISS FC. I read somewhere that the USB port is kind of acting as a heat sink for the BEC on the other side of the board. That gets me thinking if your BEC gets too hot maybe it melts the solder? That’s a reminder anyway not to power any extra 5V device from the FC
- Manual – Still a lot of work for the Flyduino guys. For example things like TPA is not explained in detail how to use. Also the English translation can be improved too
- GUI – 1. Save button confirmation? Or notification saying setting are saved? 2. maybe bring back motor tab for check motor rotation? and for calibrate ESC; 3. we need a way of backing up settings, maybe a “backup” button!
- Maybe add a flash memory chip just in case blackbox would be implemented, or ported to cleanflight?
- Board Rotation – at the moment you can only rotate the board 180 degree, but would love to see the same freedom we get on Cleanflight
- Pin layout – ESC connections at each corner, top of the board
- Add OSD Menu support! For changing OSD settings easily, and PID and rates adjustment