12-14-2020 08:57 AM
Hi,
I have a custom board in the following setup: PC <--> #USB <--> FT231 <--> #UART <--> uC <--> #I2C <--> BNO055
Is there a way to make this board work with Development Desktop? I could implement the needed firmware in the uC to forward the messages, but I couldn't find anything about the details. I'm not even sure, if it is proprietary info or not.
Could you help me where to start?
Thank you!
Solved! Go to Solution.
12-14-2020 09:17 AM
Hi Sir:
I only can suggest you how to connect because I also don't have any experience.
Maybe you should consider shuttle_id how to connect. You can get BNO055 shuttle schematic from the following link:
https://www.bosch-sensortec.com/products/smart-sensors/bno055.html
And BNO055 shuttle_id is 000011001, corresponds to AX/AY/AZ/AMUX/CODE4-CODE0.
12-15-2020 01:08 PM - edited 12-15-2020 01:12 PM
Yes ! The communucation protocol between Application Board 2.0/BNO USB stick and Development Desktop 2.0 software is proprietary.
But most protocol details are exposed in COINES software source code. You could make use of them ! 😀
[Hint : Check coinesAPI/pc/coines.c and coinesAPI/pc/coines_defs.h ]
Development Desktop fetches board information at startup like how coines_get_board_info() would do
Development Desktop (PC ) sends AA 06 02 1F 0A 0D
You reply from microcontroller UART as AA 0F 01 00 42 1F 00 19 00 34 00 11 03 0A 0D
The 7 bytes (7 to 13) highlighted in red are the information bytes
00 19 - Shuttle ID
00 34 - Software ID (Firmware version - v3.4)
00 11 - Hardware ID (Hardware revision - v1.1)
03 - Application Board 2.0
Source : BST-COINES-SD001.pdf
int16_t coines_get_board_info(struct coines_board_info *data)
{
int16_t rslt;
if (data == NULL)
return COINES_E_NULL_PTR;
comm_intf_init_command_header(COINES_DD_GET, COINES_CMDID_BOARDINFORMATION);
rslt = comm_intf_send_command(&coines_rsp_buf);
if (rslt == COINES_SUCCESS)
{
data->shuttle_id = (coines_rsp_buf.buffer[6] << | coines_rsp_buf.buffer[7];
data->hardware_id = (coines_rsp_buf.buffer[8] << | coines_rsp_buf.buffer[9];
data->software_id = (coines_rsp_buf.buffer[10] << | coines_rsp_buf.buffer[11];
data->board = coines_rsp_buf.buffer[12];
}
return rslt;
}
You can do the same for I2C configure/read/write, SPI configure/read/write by checking the following functions
12-17-2020 09:22 PM
Excellent answer! Thanks a lot, I really appreciate that!