Engineering and technology notes
IRNAS/IoT-battery-pack: PiRA – Power in Responsive Applications (IoT battery pack) developed for seamless use with a number of applications, primarily Safecast Soalrcast unit
IRNAS/arribada-amp: Arribada Arboreal Monitoring Platform aamp amp
Mini CNC Plotter – Arduino Based: 11 Steps (with Pictures)
Arduino CNC Shield – 100% GRBL Compatable
PCB Plotter schematic
(MMV) Reference · ESP8266 Arduino Core
Timing and delays
millis() and micros() return the number of milliseconds and microseconds elapsed after reset, respectively.
delay(ms) pauses the sketch for a given number of milliseconds and allows WiFi and TCP/IP tasks to run. delayMicroseconds(us) pauses for a given number of microseconds.
Remember that there is a lot of code that needs to run on the chip besides the sketch when WiFi is connected. WiFi and TCP/IP libraries get a chance to handle any pending events each time the loop() function completes, OR when delay is called. If you have a loop somewhere in your sketch that takes a lot of time (>50ms) without calling delay, you might consider adding a call to delay function to keep the WiFi stack running smoothly.
There is also a yield() function which is equivalent to delay(0). ThedelayMicroseconds function, on the other hand, does not yield to other tasks, so using it for delays more than 20 milliseconds is not recommended.
Source: Reference · ESP8266 Arduino Core
Ship gun fire-control system – Wikipedia
Ship gun fire-control systems (GFCS) are fire-control systems to enable remote and automatic targeting of guns against surface ships, aircraft, and shore targets, with either optical or radar sighting.
Most US ships that are destroyers or larger (but not destroyer escorts or escort carriers) employed GFCS for 5 -inch and larger guns, up to battleships, such as the USS Iowa. Beginning with ships built in the 1960s, GFCSs were integrated with missile fire-control systems and other ship sensors.
The major components of a GFCS are a manned director, with or replaced by radar or television camera, a computer, stabilizing device or gyro, and equipment in a plotting room[1]
For the USN, the most prevalent gunnery computer was the Ford Mark 1, later the Mark 1A Fire Control Computer, which was an electro-mechanical analog ballistic computer that provided accurate firing solutions and could automatically control one or more gun mounts against stationary or moving targets on the surface or in the air. This gave American forces a technological advantage in World War II against the Japanese who did not develop Remote Power Control for their guns; both the USN and IJN used visual correction of shots using shell splashes or air bursts, while the USN augmented visual spotting with Radar. Digital computers would not be adopted for this purpose by the US until the mid-1970s; however, it must be emphasized that all analog anti-aircraft fire control systems had severe limitations, and even the USN Mk 37 system required nearly 1000 rounds of 5″ mechanical fuze ammunition per kill, even in late 1944.[2]
The MK 37 Gun Fire Control System incorporated the Mk 1 computer, the Mk 37 director, a gyroscopic stable element along with automatic gun control, and was the first USN dual purpose GFCS to separate the computer from the director.
delayMicroseconds() – crash · Issue #2240 · esp8266/Arduino · GitHub
ESP12F
I’m working on a PWM Routine (not finished still in progress) which did crash for some reason (code#1)
reason is that your whole routine is fully blocking for the cpu and it takes more than the watch dog permits (thus triggering soft wdt reset). The reason why it does not crash when you add delay() is that delay() actually switches the context back to the system while you are delaying and feeding the watchdog this way.
void delayMicroseconds(uint32_t us){ uint32_t start = micros(); while(micros() - start < us){} } void delay(uint32_t ms){ uint32_t start = millis(); while(millis() - start < ms){ yield();//give the system a chance to execute } }
Source: delayMicroseconds() – crash · Issue #2240 · esp8266/Arduino · GitHub
