This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

SDK15 Invensense MPU9250

Hi, we switched from your competition to your platform. I know you wrote somewhere that you cannot provide examples for every sensor out there. But your Nordic Dev Zone is a bit messy, information cluttered everywhere. And soon, information is also outdated by your own updates.

If we would talk about motion sensors, I know there are like only two manufacturers: Invensense & Bosch.

Your competition has better community and also the owners themselves care more and provide basic examples on everything. I'm not asking you to do so. Just motion sensors, there is not many vendors and you have 50+ similar questions about motion sensors. It would be good, responsible, western EU style behavior, if your management would get some feedback from community managers. If so many people asking about issues or examples. You can have better ROI and save resources here, if you would, by all the years, provide some, even basic example. You have MPU in your documentation, but that does not stand for motion processing unit, it is some memory protection unit instead (only adds to confusion when googling).

We have met on CES at Las Vegas, you ask for some feedback, how to get better than competition. Your competition have better examples of how easy is to use their product. How good is time to market. Here I see only messy forum and customer rant about the same thing again & again and it is more than 1 year.

And before you will send here the unofficial Michael's github, I want to say that it was for SDK14. Not for SDK15. Next it does not use Invensense DMP driver.

I want to use eDMP motion driver by Invensense. Read quaternion (4D vector) and use their pipeline and configuration. Because, unlike Bosch with second ARM coprocessor, Invensense requires to load their driver in your firmware memory, in order to get these data. You can find many examples on Sparkfun, Adafruit, not to mention Arduino community itself. Also other ARM vendors provide at least one example.

I'm not asking you provide examples on every sensor out there. Just, when it comes to market share, there is only Invensense and Bosch with MPUs. That would be quite basic bluetooth beacon example in 2019.

So my question is: can I get SDK15 working with MPU9250 using DMP? On various boards including ESP, NXP, Arduino, it is really a matter of minutes and then companies, your customers, can focus on developing the product and time to market is acceptable. Here with Nordic, my experience so far, is that the community is not exchanging projects as it should and Nordic company is not doing anything to bring more customers on their platform. What took me one day on other platforms, is impossible to accomplis on SDK15.

I think it is start of 2019 and time to rethink this whole community / customer / startup / manufacturers strategy.

  • Hi, oh I want upload jpg screenshot now and your upload form even does not work and it want me to input image dimensions. It should not want this information from user. Does Facebook ask for image dimensions when uploading picture?

    Anyway I tried what you suggested. I spent 3 hours configuring linker & preprocessor. 

    You think this is normal? Insert one by one? No IDE auto import, no Nordic script for autoconfiguration of project?

    Cannot post screenshot here, cannot insert code. The form is loading forever. I have 100Mbit connection and other websites works. Looks like even Dev Zone is down.

  • ../../../config
    ../../../../../../components
    ../../../../../../components/ble/ble_advertising
    ../../../../../../components/ble/ble_dtm
    ../../../../../../components/ble/ble_link_ctx_manager
    ../../../../../../components/ble/ble_racp
    ../../../../../../components/ble/ble_services/ble_ancs_c
    ../../../../../../components/ble/ble_services/ble_ans_c
    ../../../../../../components/ble/ble_services/ble_bas
    ../../../../../../components/ble/ble_services/ble_bas_c
    ../../../../../../components/ble/ble_services/ble_cscs
    ../../../../../../components/ble/ble_services/ble_cts_c
    ../../../../../../components/ble/ble_services/ble_dfu
    ../../../../../../components/ble/ble_services/ble_dis
    ../../../../../../components/ble/ble_services/ble_gls
    ../../../../../../components/ble/ble_services/ble_hids
    ../../../../../../components/ble/ble_services/ble_hrs
    ../../../../../../components/ble/ble_services/ble_hrs_c
    ../../../../../../components/ble/ble_services/ble_hts
    ../../../../../../components/ble/ble_services/ble_ias
    ../../../../../../components/ble/ble_services/ble_ias_c
    ../../../../../../components/ble/ble_services/ble_lbs
    ../../../../../../components/ble/ble_services/ble_lbs_c
    ../../../../../../components/ble/ble_services/ble_lls
    ../../../../../../components/ble/ble_services/ble_nus
    ../../../../../../components/ble/ble_services/ble_nus_c
    ../../../../../../components/ble/ble_services/ble_rscs
    ../../../../../../components/ble/ble_services/ble_rscs_c
    ../../../../../../components/ble/ble_services/ble_tps
    ../../../../../../components/ble/common
    ../../../../../../components/ble/nrf_ble_gatt
    ../../../../../../components/ble/nrf_ble_qwr
    ../../../../../../components/ble/peer_manager
    ../../../../../../components/boards
    ../../../../../../components/drivers_nrf/usbd
    ../../../../../../components/libraries/atomic
    ../../../../../../components/libraries/atomic_fifo
    ../../../../../../components/libraries/atomic_flags
    ../../../../../../components/libraries/balloc
    ../../../../../../components/libraries/bootloader/ble_dfu
    ../../../../../../components/libraries/bsp
    ../../../../../../components/libraries/button
    ../../../../../../components/libraries/cli
    ../../../../../../components/libraries/crc16
    ../../../../../../components/libraries/crc32
    ../../../../../../components/libraries/crypto
    ../../../../../../components/libraries/csense
    ../../../../../../components/libraries/csense_drv
    ../../../../../../components/libraries/delay
    ../../../../../../components/libraries/ecc
    ../../../../../../components/libraries/experimental_section_vars
    ../../../../../../components/libraries/experimental_task_manager
    ../../../../../../components/libraries/fds
    ../../../../../../components/libraries/fifo
    ../../../../../../components/libraries/fstorage
    ../../../../../../components/libraries/gfx
    ../../../../../../components/libraries/gpiote
    ../../../../../../components/libraries/hardfault
    ../../../../../../components/libraries/hci
    ../../../../../../components/libraries/led_softblink
    ../../../../../../components/libraries/log
    ../../../../../../components/libraries/log/src
    ../../../../../../components/libraries/low_power_pwm
    ../../../../../../components/libraries/mem_manager
    ../../../../../../components/libraries/memobj
    ../../../../../../components/libraries/mpu
    ../../../../../../components/libraries/mutex
    ../../../../../../components/libraries/pwm
    ../../../../../../components/libraries/pwr_mgmt
    ../../../../../../components/libraries/queue
    ../../../../../../components/libraries/ringbuf
    ../../../../../../components/libraries/scheduler
    ../../../../../../components/libraries/sdcard
    ../../../../../../components/libraries/slip
    ../../../../../../components/libraries/sortlist
    ../../../../../../components/libraries/spi_mngr
    ../../../../../../components/libraries/stack_guard
    ../../../../../../components/libraries/strerror
    ../../../../../../components/libraries/svc
    ../../../../../../components/libraries/timer
    ../../../../../../components/libraries/twi_mngr
    ../../../../../../components/libraries/twi_sensor
    ../../../../../../components/libraries/uart
    ../../../../../../components/libraries/usbd
    ../../../../../../components/libraries/usbd/class/audio
    ../../../../../../components/libraries/usbd/class/cdc
    ../../../../../../components/libraries/usbd/class/cdc/acm
    ../../../../../../components/libraries/usbd/class/hid
    ../../../../../../components/libraries/usbd/class/hid/generic
    ../../../../../../components/libraries/usbd/class/hid/kbd
    ../../../../../../components/libraries/usbd/class/hid/mouse
    ../../../../../../components/libraries/usbd/class/msc
    ../../../../../../components/libraries/util
    ../../../../../../components/nfc/ndef/conn_hand_parser
    ../../../../../../components/nfc/ndef/conn_hand_parser/ac_rec_parser
    ../../../../../../components/nfc/ndef/conn_hand_parser/ble_oob_advdata_parser
    ../../../../../../components/nfc/ndef/conn_hand_parser/le_oob_rec_parser
    ../../../../../../components/nfc/ndef/connection_handover/ac_rec
    ../../../../../../components/nfc/ndef/connection_handover/ble_oob_advdata
    ../../../../../../components/nfc/ndef/connection_handover/ble_pair_lib
    ../../../../../../components/nfc/ndef/connection_handover/ble_pair_msg
    ../../../../../../components/nfc/ndef/connection_handover/common
    ../../../../../../components/nfc/ndef/connection_handover/ep_oob_rec
    ../../../../../../components/nfc/ndef/connection_handover/hs_rec
    ../../../../../../components/nfc/ndef/connection_handover/le_oob_rec
    ../../../../../../components/nfc/ndef/generic/message
    ../../../../../../components/nfc/ndef/generic/record
    ../../../../../../components/nfc/ndef/launchapp
    ../../../../../../components/nfc/ndef/parser/message
    ../../../../../../components/nfc/ndef/parser/record
    ../../../../../../components/nfc/ndef/text
    ../../../../../../components/nfc/ndef/uri
    ../../../../../../components/nfc/t2t_lib
    ../../../../../../components/nfc/t2t_lib/hal_t2t
    ../../../../../../components/nfc/t2t_parser
    ../../../../../../components/nfc/t4t_lib
    ../../../../../../components/nfc/t4t_lib/hal_t4t
    ../../../../../../components/nfc/t4t_parser/apdu
    ../../../../../../components/nfc/t4t_parser/cc_file
    ../../../../../../components/nfc/t4t_parser/hl_detection_procedure
    ../../../../../../components/nfc/t4t_parser/tlv
    ../../../../../../components/softdevice/common
    ../../../../../../components/softdevice/s140/headers
    ../../../../../../components/softdevice/s140/headers/nrf52
    ../../../../../../components/toolchain/cmsis/include
    ../../../../../../external/fprintf
    ../../../../../../external/segger_rtt
    ../../../../../../external/utf_converter
    ../../../../../../integration/nrfx
    ../../../../../../integration/nrfx/legacy
    ../../../../../../modules/nrfx
    ../../../../../../modules/nrfx/drivers/include
    ../../../../../../modules/nrfx/hal
    ../../../../../../modules/nrfx/mdk
    ../config

    Even if I would reuse project you created before as you suggest in other forum posts, you use absolute paths. Or lets say you use relative path in absolute position. So I would need to create new project also in Examples directory in order to reuse this. Someone had to create it the first time. I wonder, did they add it one by one manually? There should be either OS environment variable or IDE variable like ${ProjectDir} or ${NRFSDK}. This is the worst case scenario now.

  • Ok, code snippet inserted. Uploading image still not working. I'm on Google Chrome / Windows 10. I hit File Upload. Choose file (jpg screenshot) from my PC. It will not save it in the form and it automatically reopens Choose file window in infinite way. Looks like JavaScript issue on your website.

  • Yes, after yesterday's pain I know. This was meant to be feedback for Nordic. Because I cannot imagine, some of their engineers study university, got bachelor or master degree. And then he setup one time example projects in Keil or Segger with 300 directories, one by one, mouseclicking. More professional approach would be to write some script that would scan directories and output these dependencies, which then can be copy-pasted to Keil or Segger. But as none of such scripts exists in NRF SDK. I was interested in official response, how they can create some project. Like they cannot compete even Arduino with this approach. It should be big feedback for them to change their mindset completely. Because next time, I don't want to get stuck with such company if this happens :-D

Related