This is a custom ESP32S3 prototyping board i built to troubleshoot the issues. It Started With a Simple Problem I was testing the EvilCrow Cable Wind — a USB HID device built around the ESP32-S3 that executes keystroke injection payloads over WiFi. Everything seemed fine: the keyboard HID was typing correctly, the web interface loaded, basic commands like RunWin worked. But ServerConnect and ShellWin did absolutely nothing. No error. No feedback. Just silence. Digging Into the Code The first thing I found was this pattern — repeated across four commands: ORIGINAL — DANGEROUS if (!clientServer.connect(serverIP, serverPort)) { while(1); // hangs forever if TCP fails } ⚠ Critical Bug If TCP connection failed for any reason, the device entered an infinite loop with no timeout, no error output, and no recovery path. Ever. But there was more. The bugs were stacking: critical TCP failures were environmental: listene...
Here is a thing that i have faced few times when it comes to GPS data. Below is the GPGGA string from NMEA data receives from GPS. I have highlighted the latitude and longitude from the string. $GPGGA,081902.00, 0412.75469 ,N, 07332.48758 ,E,1,08,0.97,10.7,M,-93.5,M,,*41 Latitude = 0412.75469 Longitude = 07332.48758 If you want to plot this in google maps or any other platform you need to convert this data to decimal degrees, which will be easy to point the location rather than using raw data. In order to do that please follow these steps and write your own math function for this. For my purpose i am using my own function to handle the conversions. First lets start with latitude. Get rid of the zero first. rawdate = 4 12.75469 in this case 4 is the degrees which is in blue color and minutes in green Formula: degrees = 4 minutes = rawdate - (100*degrees) minutes = 412.75469 - (100*4) minutes = 12.75469 So to find out the decimal ...