An affordable foghorn for a boat

This project has way more to do with hardware than the code, obviously. But when looking for an electronic fog horn they were first hard to find, then ridiculously priced. I will get some pictures in here at some point, but it is essentially built from a megaphone similar to the yellow one below, that I got from AliExpress for pretty cheap. I used a nano board and a buck converter to take the boat’s nominal 12 volts down to whatever the megaphone required. The prototype was 6 volts, but the production model was 12V. I still used the $1.50 buck converter for voltage stabilization as boat voltage can swing

Read More »
some code

Arduino functions and passing arguments or variables to get things done. This may be simple for you, and once upon a time, I probably understood it. But being over 70 years old and coming back to “programming” or “coding” or whatever you young folks call it, it has involved a lot of head scratching. I use this page as a reminder to myself, because by tomorrow I will have forgotten it already. But here is what I figured out about functions, and passing variables (or arguments) one way and the other in Arduino or ESP32 using the Arduino version of C++ . Maybe this will help someone. Arduino functions and passing arguments or variables BASIC To call the function: myFunction(

Read More »
our Gemini

Arduino NMEA GPS replacement for paddle wheel transducer -not NMEA2000

Arduino NMEA GPS code to replace paddle wheel transducer uses GPS module TTL to RS232 converter, all code and wiring included. While it is all in the code, the kind of pseudocode is: Read GPS output at 9600 baud (that is the GPS default) Get rid of everything except $GNVTG sentence Convert $GNVTG sentences into valid $SDVHW,0.0,T,0.0,M,0.95,N,0.0,K*7E sentence (the SD seems to be something Garmin MAY want) create and add a checksum in after the conversion add the carriage return and line feed (yeah, totally weird eh) send it out of the Arduino as TTL (0 to +5v) at 4800 baud (4800 is what Garmin wants) convert the TTL signal

Read More »
factory reset

esp32 arduino a “factory reset” capability to add to your code

This is almost too simple to post, but hey, someone may be stumped. I am only including a short code snippet, and it WILL matter where this function appears. At least it does in this case as I am using it to store a Preference value in esp32 flash memory. As it is in “setup()” it is only going to run once, so there is no second chance, as there often is in parsing variables in a function that runs in a loop. Without further ado, the code.

Read More »

esp32 arduino attachInterrupt() with isr function and passing variables via struct

For how it works, see the comments in the code. the serial output is below the code to see the code I used to come up with this see: Using esp32, which lets you use attachInterrupt() on every pin, unlike with the Arduino, which depends on the card and only works on some pins. The code can also be a little simpler (not explained here). The isr function capability is truly powerful, particularly when combined with the struct (structure) note the use of the code, IRAM_ATTR DON_isr() that forces RAM to be used instead of flash. DON_isr is just the name of the function, You can name it whatever you

Read More »

esp32 Arduino easily create a function from working code in arduino framework

How to easily create a function that can be called from anywhere using existing code that already works. Use this approach to clean up your code, make it “readable” as well as easier to edit, maintain and improve. This is done in the visual micro IDE, which runs on top of visual studio. Both apps are free, but you can pay the visual micro people $12 a year for an astounding piece of work. But the technique shown here will work on ANY editor, including the Arduino IDE. It is not rocket science and there is nothing unique or original here, but it took me many hours over many months

Read More »

Esp32 find multiple esp-now slave MAC addresses automatically

This is part of a larger project that uses the esp32 as a tank level sensor for a boat. But of course, it could be used in any situation that uses non-metallic tanks. This code handles up to three slave cards, but it could be extended to more than three. The code that does the job is mainly one function, but some variables are set in other places and the standard esp32 connection code has some flags added to it, but is primarily that provided by Espressif (the people who make the esp32). At present, the MAC address of the master card does need to be hard-coded into the sketch

Read More »

esp32 tank sensor gauge using esp-now

esp32 tank sensor gauge using esp-now on a boat. The project is to create a “touchless” tank level gauge. “Touchless in this case means a sensor does not need ot go inside the tank. While it is for my own boat, the idea is it will be easy to install and use and potentially a product could be made from it. It should work for water tanks, fuel tanks and even blackwater tanks as long as they are not metal tanks. The basic functionality is to have five “sensors”, aluminum tape that will show full, 3/4, 1/2, 1/4 and empty. Maybe on empty all the LEDs flash and a buzzer

Read More »
tank guage

Esp32 tank sensor gauge, using Arduino framework, developed with visual micro: page 2

page one of this project Progress, but not there yet. Currently, it does the following. This is the master code, the slave code is separate. Queries up to three slave/sensor/sender units display the tank level readings on one set of 5 LEDs. A second set of 3 LEDs tells which tank is being read; 1, 2 or 3 a request to calibrate the empty tank can be sent from the master. The MAC addresses of the slaves are collected. So far, only one MAC (of the master) has to be input into the code, the rest is automatic. I am working on getting the master MAC collected also. The system

Read More »

PlatformIO CLI problem with PATH on Windows 10 -SOLVED

at the page the doc shows the following You need to edit system environment variable called Path and append C:\Users\UserName\.platformio\penv\Scripts; path in the beginning of a list (please replace UserName with your account name). To solve PlatformIO CLI problem with PATH What I have found is that you DON’T put a ‘ ; ‘ semicolon at the end but you DO put a ‘ \ ‘  C:\Users\UserName\.platformio\penv\Scripts\ and this is a back-slash , (not the forward // slash that you may be more used to using) THEN restart widows. How I got there was go to the search in the lower left, corrner in Windows-10 , type in environment variables, click on the thing that

Read More »
SeaTalk NG

Raymarine great instruments, horrible cabling system. SeaTalk NG (no good)

Okay I am very very annoyed. I have been using Raymarine for well over 20 years and probably before that. SeaTalk , SeaTalk2, nmea 0183 to SeaTalk, Mostly been very happy. On my second Axiom but come on, this SeaTalk-ng cable is GARBAGE. It could just be called SeaTalk-G . Yes, I realize the concept was good, and they did everything they could to be backward compatible, koodoos for that. But over $50 for a 1 foot cable?? $30 for and end-of-line resister that you can not remove from the connector without breaking it. What is below is simply a shared opinion from a guy who studied electronics back when

Read More »
fuel guage

Tank level sensor using esp32 Arduino framework using capacitive sensor

Update using a single esp32 capacitive sensor io pin instead of 5 The original design used 5 aluminum tape strips, very complicated to install and also not as reliable as expected. AND this requires the soldering of 4 additional wires on each sensor module. so here is what is happening so far, all current WORKING CODE is included. Now we are just using one esp32 Capacitive sensor io pin Design specs (current) sense liquid from non – metal tank uses esp-now protocol, wifi without the need for a router, up to 3 tanks (more are possible but, just three for now). Esp-now connection between sensor modules and control / display

Read More »
sales process

Zapier alternative Make dot com

Click the link below. Enter your name, scroll down and click the button to get started for free. Click this link to try Make . Com a better tool for integration of apps and systems integration FOR FREE.. Better than Zapier. So here are my reasons. I was in the systems’ integration business from about 1993 till about 2005. We used to do it all “by hand” so to speak, connect systems together for big companies. Then the internet happened and everyone and their dog started putting apps online (including us). Zapier Alternative. Zapier is probably the most known name, but what is happening is straightforward, but not always simple.

Read More »
Latest posts by Don Winchell (see all)
Please share it. Thanks!