- I am attempting to connect the KFX to a microcontroller - through the Serial port.
the maximum baud rate that the external microcontroller will accept is 38400.
Where can I change the serial port configuration of the KFX.
(I have used the control panel to customise my RC button commands with ZIGMO.)
- Will the KFX run on 5 volts, or must it be 3.3volts?
- Are there any other settings that I might need to change to use the Serial signal?
I’m sending a single byte without any other characters required with each button push.
You can change the Baud rate using Base Station. Open up the connection to the module using the USB Configuration Adapter and select Device Configuration in the Top left. There should be a Baud rate setting listed there. If its greyed out then change the setting below it to RS-232 and change the buad rate above.
The KFX must run on 3.3 volts or the RF chip will be damaged
There aren’t as far as I’m aware. You should be able to configure the byte to be sent out from the standard KFX configuration in Base Station. This application is a little outside of the design scope of these so it hasn’t been tested to do this.
The baud rate field was blocked out and I was able to change it as you directed. However I’m worried about using RS-232 as I understand the range of voltages is greater then my receiving circuit can handle. I think the protocol I need is called TTL and should present either 0 or +3.3V at the serial pin. It is the same requirement as for an Arduino.
Which of the protocols listed would meet that requirement?
For troubleshooting purposes, I intend to connect the KFX Serial to an Arduino with the intent of reading the Serial input to confirm if its a simple single byte being sent (without e.g. line-feed or a carriage return), and playing with available parameters to try to achieve that. But first I need to know which protocol will export just 0 or +3.3 volts (no negative) to protect the receiving circuit.
Thank you for your help.
That field determines timing parameters and compensation for byte packets. It won’t effect the voltage output.
The module doesn’t do any level shifting on-board so it will output a 3.3v signal over the UART.
I’m trying to troubleshoot and attempting to read the KFX Serial TX pin through an Arduino (without success, I am new to Arduino and exploring different options)
What I just discovered is that whenever the KFX is powered up, I can read 3.3 volts between ground (10) and the TX (2) pins (before touching the remote)
What might cause this?
The TX output is a UART signal, it is always high, it asserts low during communications. This is standard for all UART signals.
Thanks for information, knowing the KFX was likely working normally allowed me to confidently carry on with the Arduino sketch, which appears to be working well now.
However, for buttons configured with a single byte value, I only get a value of “FF” for each button press, and for buttons with 2 bytes, mainly “DF” but sometimes “FF” randomly, independent of the data value associated with the RC button, as configured in base station.
(Raw protocol is selected.)
1a) Will the Base Station “Set Destination Address” function affect the Serial output? 1b) If so can I disable it?
- Is there another option I need to set for the KFX Serial Tx - to output the unique value (a binary or Hex equivalent, from 0 to 255) which was associated with each RC button in Base Station?
Can you screen cap the set destination address you’re referring to and send it over? Base station covers a lot of products and that sounds more like a Digi RF module setting (long range 900MHz or 24GHz module).
Random data coming out sounds like it could be a Baud Rate issue. Can you go back into device configuration on the KFX and make sure that the baud rate of 38400 took?
There shouldn’t be any additional settings. If you open a serial port to the device (with base station closed as it will consume the COM port) you can take a look at the data without having to swap the module around.
I’ve attached screen shots of the different windows.
For testing have been using a Baud Rate of 9600 set on both Arduino and KFX.
Please recommend a Windows program to read the serial output to the USB port
To read the serial port, use the “COMM Operator” button, this should launch the software you need for testing. You do not need the “Set Destination Address” or the “API Codec” windows, they are not relevant to your application.
- I used Coolterm to read the USB port connected to the Zigmo/KFX. Attached is a screen shot, from left to right are buttons 1 2 3 4 8, each pressed once.
Buttons 5 6 7 do not show anything although they show active in base station ( highlights green in box).
- ON Base Station main screen, on the left is a check box “USe API mode when possible” i’m not sure where to set this , if I turn it off it comes back on next time in, and then turning it off deletes my remote button settings.
Please see screen shot ( and more) you requested - in my previous email.
Bottom line, KFX is not outputting programmed values.
Attached is the same result in CommOP.
- As with other monitors, still do not see unique values for each button. The difference between buttons is based on the number of bytes. (buttons 3 and 4 are 2 bytes, others 1 byte)
- I reentered the values for all 8 buttons and still buttons 5 6 7 don’t show any result. although they show activity ( green box) in Base Station.
What can I try next?
Is there a reset function for the KFC, so I can start from the beginning?
I just tested it and did get it working on my computer.
I did notice that the API check on the main screen messes around with the KFX window. This looks like a bug in base station. You should leave this checked as its a Base Station setting and won’t effect the KFX module.
So leave that Use API mode when possible checked, go into the KFX Configuration, make Sure Raw is selected, make sure the data on the left looks correct, hit Store Configuration Settings.
I noticed that if the Use API mode when possible is selected some of the data defaulted to 255.
All of my settings matched yours, but that checkbox did alter the way settings were read and probably written
I’ve found the issue. It seems baud rate does not change in KFX.
If I use 115K it works fine, I get exactly what I enter.
If I change the KFX baud rate to 38.4K and configure the monitor for 38.4, I get junk
If I change the KFX baud rate to 38.4 and configure the monitor to 115K - it works!!
But my max baud rate for the receiving device is 38.4K
Can I do anything? ( is there a hardware option to set 38.4K?)
What are my next steps?
The baud rate changed on my KFX.
Can you try changing it again while making sure that Use API when available is checked? Also make sure to hit the Store configuration settings and wait for it to not be greyed out.
Same problem. When I open the config screen it shows 38.4, I select store and wait for the EEPROM Save to finish ( as always). I select Read - it shows 38.4 ( doesn’t change).
“Use API…” - selected ( did not touch)
Start Coolterm monitor - and it only works with 115K
Note: I’m using RS-232 Serial for Uart interface tech
I’m attaching a screenshot of my device configration.
What version of Base Station are you using because yours looks slightly different?
Base Station V4.0.8
Device Firmware V3.12 IORelay.com
Your Screen Shot shows Run Mode. Mine always shows Configuration Mode
If I select it (I have not been doing that) A window opens but i’m not able to change it to Run mode
For all configuration screens - I have been using the Store function and when finished, closing the window by using the Windows X
Just in case, I disconnected from Zigmo and connected to Arduino - same thing, if I set the sketch baud rate to 115K it works (using D4 as RX), but not if the sketch is set to 38400. Then reconnect to Zigmo and base station - in config it shows 38.4K
I’ve tried running base station as an admin - it didn’t help.
Can you try power cycling by disconnecting it and reconnecting it over USB to see if that gets it out of config mode?