Making ESP32-S3 Pins HIGH During BootLooading? - esp32

We have to make HIGH the GPIO4 pin of ESP32-S3 during boot.
We use esptool.exe in Windows to lood "bootloader.bin" or similar. But we don't know how to edit/change "bootloader.bin" file. Also we don't have any experience to make HIGH or LOW a pin of ESP32-S3 during bootloading. Can someone help us? Thank you.

Related

Connect to hidden WiFi "network", transmit data and reconnect to original network

I have very little experience with non-embedded programming, so i wanted to do a sanity check before I go down this path.
Basically just need to know whether the titular line of actions are possible to do as a 1-click solution in Windows:
Disconnect from current WiFi Network.
Connect to hidden network (An ESP8266).
Transmit data.
Disconnect from hidden network.
Reconnect to original network, which may be any network.
I am not looking for someone to make this for me, I just need to know whether i have to change approach :)
To clarify a bit, the fans on my Lenovo Legion y530 is a pain in my backside, and there doesn't seem to be a way to fix it in software/bios.
So i have decided to make a small, non-intrusive ESP8266 based board that goes between the fans and motherboard, to smooth out the changes in fan-speed, and force the fans to stay above certain speed.
My problem is, i want to be able to adjust this minimal fan speed, as well as the size of the averaging on the PWM signal from the motherboard, so i need to be able to communicate with the ESP8266, without modifying existing hardware on the laptop (and without having to take it apart).
I could go with an ESP32 and use bluetooth, but that would quadrouple the hardware cost, so rather use the 8266.

Getting started with microchips

I am curious about small processor (whats the correct term?) chips that I can interact with my cell phone. But my current internet searches have made me realize how ignorant in this technology I am. Can anyone suggest a good starting point for learning & working on these? Here is what I am thinking of:
wifi and/or bluetooth enabled
Write and secure code to put onto the chip ( bluetooth?)
general and affordable chip technology I can buy to start coding on and learning more about this.
what languages and OS are supported
I know this is very vague, but this is such a new domain to me, I am not sure where to get started.
You could do worse than purchase a Raspberry PI. It has Bluetooth (get a PI 3), It's also designed to be cheap enough to mess about with without worrying too much if it breaks.

DMA from Linux kernel-space to PCIe card

I am trying to write a linux driver for a PCIe device - the Adlink PCIe 7300A High-Speed digital-IO card.
The driver works fine for normal memory transfer, but attempting to use the card's bus-mastering capabilities to initiate DMA transfer of a buffer from CPU memory to the device's output FIFO buffer simply does not work.
I have been trying to solve this problem on the order of weeks, not on the order of days.
Any insight at all would really really be appreciated.
Driver code -- https://github.com/sbrookes/timing_driver_sdarn/blob/master/kernel_land/timing.c
Device Datasheet -- http://www.acceed.com/manuals/adlink/P7300A%20Manual.PDF
PLX 9080 PCI Interface chip Datasheet -- http://www.der-ingo.de/bin/milanhelp/PLX9080.pdf
I can not explain how much I would appreciate any bit of insight.
Thank you,
Scott
I seem to have solved the problem. It seems like there was an incorrect condition in the interrupt handler that was aborting the DMA transfer at the wrong time, never letting the transfer even begin.
A serious "duh" moment, but it took serious struggle to find it.
As per the comments, sorry if I polluted SO with my desperation. Still learning how to be a good citizen.
Not sure if the code linked above will remain static as my project changes or whether that link will reflect the most current version. Basically just be careful not to abort your transfer at the wrong time.

Does anyone know how to modify/disable the blinking power LED when OS enter into sleep mode?

Does anyone know how to modify/disable the blinking power LED when OS enter into sleep mode?
Or is it feasible to do this by using OS?
Does the power LED only controlled by hardware?
Or OS could modify it?
Thanks,
I just removed the wire for the power led from the motherboard...
Not a nice solution, but the f***g led is not blinkg anymore.
To my knowledge, it is generally controlled by hardware, though this is not standardized. Hardware control is definitely the most simple, although that hardware could be a BMC or microcontroller that could be accessed from the host. Long story short though: no, I don't think you can modify it.
That's my two cents, anyhow.

How can I programmatically stop a notebook battery from charging?

There is some easily available information on finding the status of a battery, or whether it's charging or not. (GetSystemPowerStatus API or System.Windows.Forms.SystemInformation.PowerStatus).
I want to be able to stop a battery from charging based on some criteria, e.g. battery power > 20%.
Is there an API to do this?
I think it's impossible, because you have need some API for battery or battery charger.
And this API can provide to you manufacturer of notebook and battery or battery charger support this.
I honestly don't know, but I'd have a look at the APM or ACPI APIs.
Other than that, the only option I can think of right now is a USB controlled robotic arm that ejects the battery when you need to stop charging, but that's probably not what you are looking for, and borders on the complicator's glove in terms of level of over-engineering. :)
I would just get a UPS and programatically tell it to cut all power... most should have an interface for doing this. Otherwise, as someone already said - a computer-controlled power strip would do it ^^
I've actually played with this idea when I was testing/writing about way too many new laptop models a while ago and the battery testing was annoying to set up, monitor and analyze.
I wrote an app that would do exactly everything (setup, listening, measuring, reporting) except unplugging the power and then replugging it and starting the computer again...
One of the options is to get hold of the device(I) for battery (Microsoft ACPI-Compliant Control Method Battery).
Listen for PowerNotification events forever. On each notification check the PowerStatus of the battery.
There are APIs for all of the above purposes in .Net and win32
Keep the device(I) disabled as long as the powerstatus is >threshold. Enable it as soon as goes below that or when you are not on AC power (i.e. before removing AC power, your continuously monitoring software should enable that battery device - or you manually enable it).
hmm,...this is a very buggy solution, but it can achieve what you want, although you have to be very careful.
Actually I use such a charge limiter. There is the control software - a Python script that monitors the battery level (psutil module) and controls external hardware - i.e. a switch that can be software controlled. I have Energenie and TP-Link homeplugs plus my own hardware contraption.
As it is for home use the software it's not polished at all, but with minimal effort can be adapted to any OS or hardware.
Let know if interested. The software lives here: CCC

Resources