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.
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.
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
Excellent answer! Thanks a lot, I really appreciate that!