<< return to Pixycam.com

Pixy doesn't work

I found that when my Pixy worked for a while, Pixy had no image out. And after powering off, it could be restored after a period of time. I guess it is caused by the temperature rise of the chip. Has anyone encountered a similar situation? Thanks for your help.
By the way,
We found when it happed , M4 is running, but M0 did not start, resulting in no images.
We tested at room temperature 25 degrees

How did you determine that the M0 did not start. Are you developing your own firmware?


Yes, I developed the firmware, and I add log here

Normally, we can see the log, but when this problem occurs, no log output.

The problem happend even though I use the official firmware. I develop the firmware only to find what the problem is .
Heating the mcu, and you will see it easily。
Any idea about this problem? Thanks for your kindly help.

Can you see the debug messages from the M4 side? If so, can you describe how you are sending the debug messages from the M4 side?


Yes, I can see the debug message from M4. In fact we made a new board but use the
official circuit diagram. And we changed the debug port from PORT3 to PORT0 by redefine “USED_UART_DEBUG_PORT”.
I did a more detailed debugging. Here is the modification I made in “pixy_init.cpp”

By the way, I made a initialization of UART0 like this

 void __start_debug()
 #if 1 // ??????????????
      UART_FIFO_CFG_Type ufifo;
      UART_CFG_Type ucfg;

     scu_pinmux(0x2, 0, (MD_PLN | MD_EZI | MD_ZI | MD_EHS), FUNC1);           // U0_TXD 
     scu_pinmux(0x2, 1, (MD_PLN | MD_EZI | MD_ZI | MD_EHS), FUNC1);           // U0_RXD
     scu_pinmux(0x1, 3, (MD_PLN | MD_EZI | MD_ZI | MD_EHS), FUNC0);           // turn SSP1_MISO into            GPIO0[10]
     scu_pinmux(0x1, 4, (MD_PLN | MD_EZI | MD_ZI | MD_EHS), FUNC0);           // turn SSP1_MOSI into GPIO0[11]

     // regular config       
   ucfg.Baud_rate = 115200;
   ucfg.Databits = UART_DATABIT_8;
   ucfg.Parity = UART_PARITY_NONE;
   ucfg.Stopbits = UART_STOPBIT_1;
   ucfg.Clock_Speed = CLKFREQ;

   UART_Init(LPC_USART0, &ucfg);

   // config FIFOs
   ufifo.FIFO_DMAMode = DISABLE;
   ufifo.FIFO_Level = UART_FIFO_TRGLEV0;
   ufifo.FIFO_ResetRxBuf = ENABLE;
   ufifo.FIFO_ResetTxBuf = ENABLE;

   UART_FIFOConfig(LPC_USART0, &ufifo);

   // enable interrupts

   NVIC_SetPriority(USART0_IRQn, 0);


Then I tesed the normal and the abnormal situations, here is the log
Normal situation:

    [21:34:54.539]←◆M0 start
    ----start: 1551
    ---- rcs enable: 2940
    ---- ADC init: 4851
    ----SCTInit: 6586

    [21:34:55.036]←◆----CameraInit: 498453
    ---M-0c rs_tsatratr
    t_m0: 500564
    ----g_chirpM0: 503291
    ----flash_init: 505200

    [21:34:55.166]←◆----led_init: 628021
    ----prm_init: 630555
    ----pwr_init: 632229
    ------pixy init

    [21:34:56.157]收←◆timing: 16 19 1626 14614

Abnormal situation:

     ----start: 1549
     ---- rcs enable: 2938
     ---- ADC init: 4849
     ----SCTInit: 6584

    [21:32:37.938]←◆----CameraInit: 498451
    ----cr_start_m0: 500562

    [21:32:38.942]←◆----g_chirpM0: 1502503
    ----flash_init: 1504357

    [21:32:39.068]←◆----led_init: 1627264
    ----prm_init: 1629886
    ----pwr_init: 1631647
    ------pixy init



    [21:37:03.697]收←◆timing: 16 19 1626 14614

Compare with the two log files, we can see that in abnormal situation, there is no log output in M0,

mine pixy2 mcu is also getting too hot even after 2 to 3 min.
But its still working and I dont know why its getting that hot.

Pixy and Pixy2 do run pretty hot. Pixy2 tends to run hotter because it uses a smaller package processor, but still dissipates the same amount of heat. If your Pixy is working fine, it’s a good sign :slight_smile: