Showing results for 
Search instead for 
Did you mean: 

Battery-powered STM32L4 Discovery kit (B-L475E-IOT01A) ST_LINK chip will not allow code to execute unless plugged into USB port.



I've built a project with the B-L475E-IOT01A Discovery Kit that is intended to be a battery-powered stand-alone unit. I've wired it to be powered via the 5V Arduino header and set the 5V jumper appropriately. However, the unit will not start executing code from the microcontroller unless the USB for the ST_LINK is plugged in and enumerated on a PC. It kind of defeats the purpose of a battery-powered stand-alone unit. I have some experience with other ST discovery kits with a ST_LINK debugger/programmer on-board and all I've needed to do in the past was program the unit in "Release Mode" to get it to work without any interference from the ST_LINK chip. That doesn't work in this case- the MCU chip gets power, but seems to be held in reset or startup by the ST_LINK chip without the USB being plugged in. Any ideas?


Associate III

I don't have this board nor do I know the particulars of how it works. I am trying to go after the low-hanging fruit here. In ST Micro Document UM2153 page 16 or so talks about 5V_VBAT and jumpers to pins 7 and 8 controlling the 5V Battery supply.

  • Does this document UM2153 apply to your board?
  • Is page 16 of UM2153 relevant to your scenario?
  • If yes on previous question, have you considered applying the jumpers to pins 7 and 8? (Again I do not have this board so I don't know if this will damage anything or not)
  • If yes to previous question, please understand I am only trying to help and not be insulting and you can safely ignore this answer.

Reread your post. You already applied the jumper... sorry...


Thanks, JWill. I went and revisited the jumper on 7 and 8 (5V_VBAT). Having the jumper there vs. on the 5V_ARD jumper or unpopulated fixed it.

Just for posterity, I'm using an external 5V switching supply to more effiecintly drop the voltage from a 12V battery. Using the onboard regulator through the VIN pin was dissipating too much heat and wasting a ton of battery life. I have the 5V from the external supply tied onto the 5V bus side of the supply select jumpers (pin 10 of JP4) as the Arduino header is occupied by a LCD display and is inaccessible. I was using the system with the jumper unpopulated as the 5V supply was tied directly into the board's 5V bus. The system wouldn't start on battery power alone. With the 5V_VBAT jumper in place, whatever the 5V_BAT signal is attached to allows the system to startup on its own now. What is confusing is that that net 5V_VBAT goes nowhere on any of the schematic sheets or on the power tree diagram of the user manual (UM2153); maybe someone at ST can clarify/correct this.


Blink regularly an led in your code to know if it is clock accuracy for usb or code running rootcause possibility. Some board get precuse 8 mhz mhz from st link, if unpowerrd mcu will use hsi.... also there is a usart connected to stlink, any current drain or else there? Stlink controls reset pin, disconnected?

Sure. I am glad you got it working. Is that switching supply equivalent to PWM'ing with a cap(acitor) for smoothing? If it is, that is definitely better than dropping voltage as heat dissipation. I am looking at the schematic/power tree on page 18 in UM2153. I think I see what you mean: You would think by applying 5V on the bus side the LDO's would not know or care where that 5V came from. So if I understand your question correctly, why should the 5V make things work only when the JP4 jumper pins 7 and 8 are shorted? It seems to go from the external 5V source to bus/LDOs based on the schematic. I agree: I would ask some of the ST Micro top brass around here.