bool expbrdTest()
{
  bool status = true;

  if(!isInit)
    return false;

  // For production test
  if (expbrdIsPresent(EXPBRD_VID_BITCRAZE, EXPBRD_PID_ET))
  {
    status &= imu6ManufacturingTest();
    status &= exptestRun();
    if (status)
    {
      DEBUG_PRINT("Expansion port test [OK].\n");
    }
    else
    {
      DEBUG_PRINT("Expansion port test [FAIL].\n");
    }
  }
  status &= owTest();

  return status;
}
void expbrdInit()
{
  if(isInit)
    return;

  owInit();
  expbrdScan();

#ifndef FORCE_EXP_DETECT
  if (expbrdIsPresent(EXPBRD_VID_BITCRAZE, EXPBRD_PID_LEDRING))
#endif
  {
    neopixelringInit();
    DEBUG_PRINT("neopixelringInit ok\n");
  }

  isInit = true;
}
void expbrdInit()
{
  if(isInit)
    return;

  owInit();
  expbrdScan();

#ifndef FORCE_EXP_DETECT
  if (expbrdIsPresent(EXPBRD_VID_BITCRAZE, EXPBRD_PID_LEDRING))
#endif
  {
#ifndef BRUSHLESS_PROTO_DECK_MAPPING
    // Can't have LED-ring and brushless breakout at the same time
    // as they share TIM3
    neopixelringInit();
#endif
  }

  isInit = true;
}