ESP32 : Error when activating Wi-Fi interface - wifi

I recently purchased an ESP-32 that I use with MicroPython for a web server via Wi-Fi. Everything works very well and I decided to buy 4 more.
But on none of the 4 works when I enable the Wi-Fi interface.
I get this error everytime :
>>> import network
>>> wifi = network.WLAN(network.STA_IF)
>>> wifi.active(True)
Brownout detector was triggered
ets Jun 8 2016 00:22:57
rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
I already searched on the web but I found nothing to solve my problem (changing usb cable, switching usb port, resetting and flashing micropython again... nothing works) and that on all of my 4 ESP-32
Do you have any idea of what is the problem and how to solve it ?
Infos:
D1 mini ESP-WROOM-32
MicroPython version: MicroPython v1.11-580-g973f68780
Power : 5V from computer usb
rshell

The problem is that the esp32 is drawing to much power during WiFi transmission, and the voltage drops below a threshold causing brownout. If you are not using the 3.3V pin to drive additional components (or the GPIO pins for LEDs), this should not happen and is due to poor board design. To work around, you could try the following things:
Add a capacitor between 3.3V and GND (as close to the chip as possible)
decrease current draw, e.g. by:
powering external components with 5V from USB
removing LEDs from the board (desolder)
reducing WiFi transmission power (if possible)
reducing the chip frequency e.g. to 40 MHz: machine.freq(40000000)
reduce/disable the brownout threshold (probably requires compilation of micropython)

Related

Beaglebone can't start OS after unplugging supply power

I'm using beaglebone black (Debian OS, MySQL are installed).
After unplugging supply power and not using 24 hours.
I can't start my beaglebone.
It's only birght LED D4 and power LED.
How can i start my OS?
I just try to use usb cable and access to beaglebone at 192.168.7.2. but request time out.
The most likely issue is that the operating system has become corrupted by the unexpected shutdown. The same thing can happen with a regular computer and has happened with my own beaglebone black when I pulled the power plug while testing some circuits. I would suggest trying to boot off of an SD card. If you have anything on there you want to save, you can use the live SD card OS to retrieve the data from the embedded flash. If the SD card also doesnt boot, then you may have a hardware issue and a serial to USB cable plugged into the debug header would probably be needed to try and get more information as to why it is not booting.

ZTE Open with Firefox OS as WiFi hotspot

I would like to use this Firefox OS device as WiFi hotspot (with a Mac).
I have noticed some slowness. Does anyone know if that might be due to the WiFi receiver/emitter in the ZTE Open being a low quality component?
Is there any software (Mac preferred) that might enable me to tell where does the low performance come from (connection to the network -speed/latency-, wifi hotspot data exchange)?
Interesting question. One thing you could test on the device itself with JavaScript, is the connection speed and if it's metered. Hardware could potentially come into play here as well.

USB connection trouble

I am currently running a robotic's project using an Hokuyo (URG-04LX-UG01 - http://www.hokuyo-aut.jp/02sensor/07scanner/urg_04lx_ug01.html). This one is plugged to my computer using USB. Although it creates the port "/dev/ttyACM0" when I plug it, I can't connect to it using the associated library (serial connection error). Until here, nothing's strange, bugs or misprogramming happens but here is my problem :
When I plug the hokuyo to an USB HUB, which is also plugged to my computer, I can connect to it and everything works perfectly.
My laptop is a samsung 900x3c running Linux Mint 15.
Do you know what an USB HUB changes in the USB communication ?
Is there a link with my laptop ? (I used to face the same problem using an ARM-Based embedded computer)
Is it possible to fix the issue without using any hardware solution ?
If it's not, is there anything more compact than an USB HUB which could fix it ?
Thanks !
Is your USB-HUB powered from external power adapter? URG-04LX-UG01 seems to consume 2,5W/5V=0,5A. This is limit for USB. Laptop USB ports are not so powerful and if device consumes a little bit more than max, then they just cut the power.
Update
The device is USB 2.0 Full Speed. I've seen USB controller, that had problems with USB 1.0 or USB 2.0 devices. Hub presents itself as USB 2.0 High Speed and handles USB 2.0 Full Speed transparently for the Laptops USB controller. Do you have another Laptop/PC to check this?
I'm kind of late on my feedback for that issue, but better late then never so :
I've been able to determine that the whole issue came from my USB cable. Somehow there was an electrical issue in that cable and the computer-or the hokuyo- was not able to properly communicate through it. I think that the USB HUB was somehow able to correct theses electrical issues.
Anyway, problem solved !

How to detect a usb host connection on a usb device system in C?

I am pretty new to Linux so I apologize if I will ask some really simple stuff.
I am working on a custom board with SAM9G25 and Angstrom distribution as operating system.
The board as to act as a USB Device (Mass storage device), when will be connected to a Host computer. Right now I am simply enabling and removing the g_mass_storage module and the things are working fine.
In the final version, I need to manage the g_mass_storage module according to the connection and disconnection of a USB cable. I tought to use VBUS as an interrupt (also polling will be fine).
Here it comes my problem.
Since the VBUS GPIO is handled by the USB driver i cannot read it's status from userspace. I only see an interrupt count in /proc/interrupt.
I am asking if there is a way to get an interrupt (from the Driver) or to be able to read the VBUS GPIO value when the usb cable is connected/disconnected from the system.
I apreciate any kind of help.
I know this is a bit old, but I found the same problem, and found from userspace you can view the connection status from the udc sys class device. For example, on my architecture the status of USB can be viewed from:
/sys/class/udc/ci_hdrc.0/status
PC connection: configured
Power adapter: powered
Disconnected: not attached
I've read the AM335x architecture can be observed from:
/sys/class/udc/musb-hdrc.0.auto/current_speed
Best of luck

What is the code in Arduino Wi-Fi Shield?

I want to learn Wi-Fi for embedded devices, and I come across the Arduino Wi-Fi shield. I know the shield need to connect with a basic Arduino board such as Arduino Uno. There is an Atmel UC3A MCU on the Wi-Fi shield, and there is a ATmega328 on the Uno. I downloaded the Wi-Fi Shield Library, there are some example codes. Yet, I found that the code in the examples are only for the Arduino Uno board.
For example, to connect to a Wi-Fi network, it just sends a command by SPI out, such as SpiDrv::sendCmd(SET_NET_CMD, PARAM_NUMS_1);. I think the UC3A on the Wi-Fi shield board is responsible to receive this message and do something with the Wi-Fi chip HDG104.
In fact, to learn implementing Wi-Fi I think an important part is to learn how the UC3A works with the Wi-Fi chip. Hence where can I get example code which was written for the Wi-Fi shield MCU?
Also, if I want to build the hardware myself, can I just using the UC3A MCU only? UC3A is a powerful MCU, but I worry it will be too busy.
you can find everything on the official github repository!
here the link to the official binary and source code of the official WiFi Shield firmware! you can also find arduino's library, everything has been uploaded just 13 days ago
enjoy
https://github.com/arduino/wifishield/tree/master/firmware

Resources