I have an issue with the WiFi shield. As you can see in the picture below, I am experimenting with the Arduino Mini and the WiFi shield.
I have read the tutorial-guide and connected all the necessary pins between the Mini and the shield. I use the example code which is provided in the tutorial, e.g. reading the WiFi shield's MAC-address or scanning for networks near me.
But anything I get is the error message, that the shield is not connected. But there is a connection between the two Pin 7's (the handshake pins) and even to any other required pin.
I even support my circuit with an additional power supply of 5V (the voltage regulator in the picture), so what's wrong with it? Or might it be that the WiFi shield itself is damaged or has a malfunction? How to verify this?
One last question is: Do they deliver the shield with an installed firmware or does the user have to install it?
The code I use is for example:
uint8_t wl_status = 0;
void setup()
{ // code to run once
// Open serial communications
Serial.begin(115200);
Serial.println("*** Arduino board online ***");
// check for the presence of the shield:
wl_status = WiFi.status();
if (wl_status == WL_NO_SHIELD)
{
Serial.println("-E- WiFi shield not present");
// don't continue:
//while(true);
}
else
{ // Initialize Wifi
Serial.println("-I- Initializing Wifi..");
printAddress(1);
// Scan for existing networks:
Serial.println("-I- Scanning available networks..");
listNetworks();
}
Serial.print("-D- Wifistatus : ");
Serial.print(wl_status, DEC);
Serial.println("");
}
The printAddress()-function simply prints out the MAC-address of the shield.
Have you tried removing the jumper? It puts the shield in programming mode. Picture here
I proved whether a different power source will work or not; the problem still remained.
Arduino support suggested that we should use the SPI connection of the board instead of wiring. It was worth a try, so I combined the WiFi-shield with an Arduino Uno and could finally start practising. Forget the Arduino Mini and use Uno or Mega instead.
According to the startup trouble, the current firmware version still has bugs, e.g. connection dies after a few seconds both on server side and client side. I recommend checking the Git repository frequently for updates. Issue #9 (Connection dies after a few seconds) has been solved on server side only, however the problem still exists on client side. I will wait for the next version of the firmware.
Related
I will ask a question about my STM32F407 Discovery board. I want to learn about external interrupts and I was making a small circuit. I connected PH0 to my button and PH1 to the LED. But these pins are connected to the mcu's crystal pins. But I didn't know it at that time. I was press button that is connectet to 5V. And my IDE won't connect to my board for debugging debugging. I can connecting to my board via ST Link Utility and I can do a full chip erase with no errors. Then I turn back to code in Atollic, press the debugging button and I get this error messages:
Error in executing 'cont' command ...
CM4 Failed to read all registers
FAILED to REGISTER Values from the target
Target is not responding, retrying...
*some messages in between*
warning: Remote failure reply: E31
Remote failure reply: E31
Remote connection closed
Quit
And then I turned off the debug screen to try again but I can't because Atollic can't find any ST Link devices. This is the error message:
Target no device found
Error in initializing ST-LINK device.
Reason: No device found on target.
Note: My PC recognize my board in Device Manager.
How can I solve this problem. ST Link Utility connects to my board succesfully, My PC connects to my board. I tried St link firmware upgrade but I got more errors. Like this.
Failure at line: 13 in "Target Software Startup Scripts"
You probably have ST Utility still connected to your MCU. This results in Atollic not beeing able to connet to the MCU. Either close ST Utillity or press the disconnet button.
Since you can erase it your MCU should be ok and you chose one of the few 5V tolerant pins but it would be better practice to use 3V.
Another reason might be the option bytes if the read out protection got set to level 1 or 2 the debugger is sometimes not able to reset those and is therefore not able to read out the register.
I was solve a lot of problem. Firstly I found a problem. This is a my DCMI_Config function. In this function I have a lot of pin definition. GPIOA caused my problem.
GPIOA-> MODER = 0x00002200; //GPIOA 4,6 Set Alternate Function for DCMI
This line has my problem. I was search Discovery schematic and I found something. PA4 pin connected to Discovery's voice uc as I2S3_WS. Is this cause any problem?
I have arduino atmega2560 when i upload blink code than it shows error
avrdude: stk500v2_ReceiveMessage(): timeout.
I have checked the COM port is correct also that the driver is correctly installed.
Why would I be receiving a timeout error?
The possible reasons:
Faulty communication cable
Wrong com port selected
Wrong device model selected
Baud rate settings
Driver related issues
I think your arduino got bricked. But first try to reconnect it and upload your program.
Second try to disconnect any rx or tx pin connected. Third if your arduino is bricked, try to check this article for full solution of bricked arduino. Programmer is not responding arduino
I'm using stm32l151 and I want to use usb peripheral in cdc mode. I used stm32 cubeMx to generate the project. however the function CDC_Transmit_FS() always return USBD_BUSY. can anyone help me?
Here is my code:
while (1)
{
CDC_Transmit_FS(Buffer, 6);
HAL_Delay(2000);
}
I only added the above code to the project created by STM32cubeMX but it didn't work.
STM library is buggy and it stalls when you for example try to send many larger packets of data.
There is a problem with the windows drivers and there are quite long delays between packets. So 12MB is quite difficult to archive - using CubeMx I could only have about 3-4Mb (12MB when packet is sent).
Another problem I had - I needed to send some data to the device bofore I could transmit next packet (max 8kB in my case), otherwise it stalled randomly.
Fortunately, the problem is solved and I can receive data in the PC from the STM32. There was a problem in my terminal software. I used serial port manitor to monitor the received data from the serial port, however this serial monitor software do not open the serial port by itself and if any other software opens the serial port and receives the data, it monitors data receptions. I didn't know that.
Thanks
Uploading sketches to my arduino uno worked fine. Now uploading won't work. I get the following error. Is there a way to reset my board? Using the built-in reset button does not help. Error:
Arduino: 1.0.6 (Mac OS X), Board: "Arduino Uno" Binary sketch size: 7,878 bytes (of a 32,256 byte maximum) avrdude: stk500_recv(): programmer is not responding
Please give any information on how to fix or reset the board.
there are many reason and you need to try 2 or 3 different operations in order to understand why avrdude is not responding
First, check serial port on Arduino IDE, then check what kind of board you have selected in IDE.
Have you left some connected on pin 0 or 1 of your board? They are serial TX and RX used by FTDI to write the sketch on your Atmega, I don't know why but sometimes if you left something connected there, you could have some problems during upload.
Hope this will help you!
This is a code, part of my project;
//----------------------------------------------------------------------------
// USB: Virtual COM ----------------------------------------------------------
//----------------------------------------------------------------------------
USB_Interrupts_Config();
Set_USBClock();
USB_Init();
while (bDeviceState != CONFIGURED)
;
//----------------------------------------------------------------------------
// Main Loop -----------------------------------------------------------------
//----------------------------------------------------------------------------
while(1)
{
USB_printf("Main Function");
GPIO_SetBits(GPIOC, GPIO_Pin_10);
Wait(200);
GPIO_ResetBits(GPIOC, GPIO_Pin_10);
Wait(200);
}
After plugging my usb to the Circuit, Virtual COM Port Driver installation finishes correctly and LED blinking is also OK.
But when I try to connect COM port via Hyper Terminal or 3th party tools, I can not
achieve it.
Is there any opinion?
Thanks..
I had similar issue with a slightly different wording - it is possible to connect to the device until it's reset. My custom board would enumerate VCP correctly but would not connect after device reset. Turns out, that USB host keeps the enumerated address for the device, while device looses its address after reset/reprogramming. To avoid such issues, software reset should also perform USB physical layer reset (disconnecting pullup on D+/D- pin, depending on the speed used). In such a case it should be possible to connect to the device after disabling and then re-enabling it in the device manager or re-plugging
Not Necessarilly the answer but may be worth checking.
If your periodically send information out of the COM port and it appears your program does ( never used STM32 ), Windows (hyperterm so I assume windows XP) can detect that as a serial mouse and enumerates it as a mouse thus opening the port and preventing any other application from using it.
We have had many issues with this with our devices (CP2103's from SiLabs), and also is a common problem with GPS recievers.
This answer GPS Detected as serial mouse as a good description of the issue and possible workarrounds.