I am removing Janus from my Rpi5. I don’t suppose there is an easy way to delete directories and file. I have to go one at a time? Files in the directories first then directories? Use the purge command on the package?
Info from this week's video meeting.
20251120 ROS Lawn Tractor Automation meeting - Length 1:02:07 This video: https://youtu.be/CXP1BMELopM
Go to the HTML index to get the description for this meeting: http://sampson-jeff.com/RosAgriculture/LawnTractorMeetingNotes.htm#20251120
======
Here is a sexy Black Friday purchase....an AGM battery for my RTK Base Station.
*Thread Reply:* My new AGM battery weighs 64 lbs. That was a surprise. After a day and night without any charging and running my RTK Base station the voltage has moved from ~12.7V (the shipped state of charge) to ~12.6V. I will brush the snow off the solar panel today to see if it will now charge up. Temp in the shed is showing ~32 degrees and the outside air is ~27.
*Thread Reply:* Just posting so I have the notes....
Even though the sun did not appear today I was getting 2-3 watts of power from the panel. I brushed off the snow, but there was still a layer of ice on the panel. The battery was showing 12.8V ish.
Reading Renogy data...
Renogy - Battery: 12.80V (84%), Solar: 2W
Temperature reading: 1.69°C (Avg: 1.69°C)
Reading Renogy data...
It's dusk and the battery is showing 12.6V
Temperature reading: 1.25°C (Avg: 1.25°C)
Reading Renogy data...
Renogy - Battery: 12.60V (73%), Solar: 0W
Data written to /data_log_1.csv - Temp: 1.25°C, Battery: 12.60V (73%)
Temperature reading: 1.25°C (Avg: 1.25°C)
Reading Renogy data...
Renogy - Battery: 12.60V (73%), Solar: 0W
I'm expecting the RPi will have enough power to get through the night.
More Black Friday stuff. They have marked down the Freenove universal microprocessor breakout board by $3. I still haven't fully evaluated this board, but I decided I can make it work for me. So I ordered a couple more. I talked about this board on the last video meeting.
http://sampson-jeff.com/RosAgriculture/LawnTractorMeetingNotes.htm#20251120
I'm also watching PNY SSD laptop drives and Micro Center flash drives. But they haven't marked them down (yet). Maybe some 22awg hookup wire. And maybe some jumper wires. If these go on sale...
https://www.amazon.com/dp/B0DT48T7CB
WARNING PURE VENTING AND Bit…..
I've been trying to connect Rpi5 and my iPad over webrtc. After 3 😱days it's all about getting certs from the Rpi to the iPad, in a form the iPad likes. The iPad is really picky. I'm getting close but probably need to step away for a day or so just to cool off from the frustration with a dumb AI application!
Chat is nice in some ways, it makes a recommendation. You do it and another problem pops up. So you give it more details then it says oh yes here’s how you fix it.
Like it knew what the problem was! Why the hell didn't you say so in the first place!
For example. says to enter this in the terminal. IPAD doesn't have a terminal you dummy! Then it says Oh here's how you fix that…Again and again and again……for three days! One step forward and 2 back. Time to consult Dr. 🍷
Info from this week's video meeting.
20251204 ROS Lawn Tractor Automation meeting - Length 33:18 This video: https://youtu.be/p9PhudztJRg
Go to the HTML index to get the description for this meeting: http://sampson-jeff.com/RosAgriculture/LawnTractorMeetingNotes.htm#20251204
======
Some progress with slider controls. Still not have the picture quality that I want. But PROGRESS!
Just for giggles !
AI Evolution 298,597 followers 1mo
ChatGPT vs Gemini vs Claude vs Grok vs DeepSeek. Everyone’s asking, “Which one’s the best?”
Truth is: there’s no single winner. Each AI has its own lane.
Some are creative powerhouses. Others are built for deep research, real-time updates, or scalability. Choosing the right model isn’t about hype, it’s about fit.
Here’s your quick guide 👇
Gemini Perfect for Google Workspace users. It lives inside Gmail, Docs, Sheets, and Drive.
Claude Thoughtful and accurate. Excels at long-context reasoning, legal, and policy-heavy work.
Grok The social AI. Pulls live data from X (Twitter) and keeps you ahead of real-time trends.
DeepSeek Open-source, cost-efficient, and technically strong, ideal for large-scale or custom AI setups.
Here’s the real insight: Mastering AI isn’t about picking one model. It’s about knowing which model to use, when.
Tell me in the comments: What’s the most underrated AI model in your opinion?
I have tweaked my base station monitoring again. I wanted the ESP32 to log the actual time, in readable format. (ESP32 code) To do that I calculate the current local (i.e. Eastern) time on my RPi and then via a serial print command send the message "SETTIME <epoch adjusted time>" so the ESP32 knows the actual time of day. (RPi code) The ESP32 doesn't actually 'know' the current time, it is simply tracking the elapsed seconds and formats the date adding the elapsed seconds to the time from the SETTIME command in the function "String getCurrentTimestamp()" on the ESP32. I pass SETTIME once per day at the same time I pull the ,csv down from the ESP32. (script triggered by cron job) Supposedly the crystal on the ESP32 can keep time accuracy to ~ 1 sec/day.
I also reduced the fields I was logging to minimize the load storage and IO load on my SD card.
Here is the link for the Waveshare camera
https://www.waveshare.com/wiki/IMX219-83StereoCamera
https://developer.nvidia.com/embedded/learn/get-started-jetson-orin-nano-devkit
Info from this week's video meeting.
20251211 ROS Lawn Tractor Automation meeting - Length 32:11 This video: https://youtu.be/MF3anrR7Dn0
Go to the HTML index to get the description for this meeting: http://sampson-jeff.com/RosAgriculture/LawnTractorMeetingNotes.htm#20251211
======
I'm in Texas and figuring out a Base station for here. I have my ComNav GPS from previous days. Thinking about connecting an ESP32 and pushing the correction data to the web. Not sure if the ComNav RTCM correction messages I'm currently outputting (1004, 1006, 1008, 1012 and 1033) will be enough to get a Fix for my F9P. In the process of re-learning programming an ESP32 I put a .h header in my include folder in PlatformIO to pull data about the ESP32. That's been useful to confirm exactly which board I have and also helps with version control being able to show what script is running on the ESP32 and when it was compiled.
The weekly video meeting has been rescheduled to 1pm Central Time, Thursday, 12/18/2025 (instead of 11am CT). due to schedule conflicts. If this fits you schedule, feel free to join us. https://us02web.zoom.us/j/82088036016?pwd=K2lLc1FiWm9MU0dzRStxM2J2b3dpQT09
Well I have my ComNav K706 GPS (2018 vintage) outputting the same RTCM messages my Pittsburgh F9P base station is. The reason that is important is hopefully the dual F9P's I have on my tractor electronics board will be able to achieve RTK Fix using that correction data while I'm here in Texas. That will be a tomorrow test, plus I have to program my ESP32, which is getting the data from the COM port on the GPS, to push it to UDP port 6001, which is where my rover/tractor is programmed to pull it from. I've not done that part yet. I do have my python version from my Pittsburgh base station as a guide.
Attached is a screen shot of the ESP32 web page used for testing to see what data the ESP32 is seeing. The Novatel-like configuration statements are below.
UNLOGALL COM2
LOG COM2 RTCM1005B ONTIME 10 (Stationary reference station position, every 10 seconds)
LOG COM2 RTCM1074B ONTIME 1 (GPS observations)
LOG COM2 RTCM1084B ONTIME 1 (GLONASS observations)
LOG COM2 RTCM1094B ONTIME 1 (Galileo observations – you already have this)
LOG COM2 RTCM1230B ONTIME 10 (GLONASS code-phase biases, every 10 seconds)
SAVECONFIG
Seems ESP32's don't like hardcoding the IP address in the script. Seems if DHCP does it, they are more likely to not refuse connections from clients. I'm using the library ESPmDNS.h which facilitates me being able to access the ESP32 from the rover/tractor RPi using 'HOST = "rtcm-esp32.local"'. To get to the HTTP page I need to use a network scanner to pull the IP address. In my case, 192.168.1.95
ESP32 test code: ```#include <WiFi.h>
const char* ssid = "mySSID"; const char* password = "myPassword";
WebServer httpServer(80); WiFiServer tcpServer(6009); std::vector<WiFiClient> tcpClients;
unsigned long lastSendTime = 0; unsigned long counter = 0; const unsigned long sendInterval = 2000; // Send every 2 seconds
void handleRoot() { String html = "<html><body><h1>ESP32 mDNS Test</h1>" "<p>mDNS hostname: rtcm-esp32.local</p>" "<p>Current IP: " + WiFi.localIP().toString() + "</p>" "<p>TCP test server running on port 6009</p>" "<p>Connect a client to see 'Hello world' + counter every 2 seconds</p>" "</body></html>"; httpServer.send(200, "text/html", html); }
void setup() { Serial.begin(115200);
WiFi.begin(ssid, password); Serial.print("Connecting to WiFi"); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println("\nWiFi connected!"); Serial.print("IP address: "); Serial.println(WiFi.localIP());
// Start mDNS if (MDNS.begin("rtcm-esp32")) { Serial.println("mDNS started: rtcm-esp32.local"); } else { Serial.println("mDNS failed to start"); }
// Web server httpServer.on("/", handleRoot); httpServer.begin(); Serial.println("HTTP server started on port 80");
// TCP server tcpServer.begin(); tcpServer.setNoDelay(true); Serial.println("TCP server started on port 6009"); }
void loop() { // Handle web requests httpServer.handleClient();
// Accept new TCP clients WiFiClient newClient = tcpServer.available(); if (newClient) { if (newClient.connected()) { tcpClients.push_back(newClient); Serial.printf("New TCP client connected (total: %d)\n", tcpClients.size()); } }
// Send data to all connected clients every 2 seconds if (millis() - lastSendTime >= sendInterval) { if (!tcpClients.empty()) { String message = "Hello world from ESP32! Counter: " + String(counter++) + "\r\n";
std::vector<WiFiClient> disconnected;
for (auto& client : tcpClients) {
if (client.connected()) {
client.write(message.c_str(), message.length());
} else {
disconnected.push_back(client);
}
}
// Clean up disconnected clients
for (const auto& disc : disconnected) {
tcpClients.erase(std::remove(tcpClients.begin(), tcpClients.end(), disc), tcpClients.end());
}
Serial.printf("Sent message to %d client(s)\n", tcpClients.size());
}
lastSendTime = millis();
}
// Small delay to avoid watchdog issues
delay(10);
}
Python code to confirm it is able to receive data on port 6009 (port number arbitrary)
"""
Minimal Python TCP client to test mDNS resolution and connection
Connects to rtcm-esp32.local:6009 and prints received data
"""
import socket import time
HOST = "rtcm-esp32.local" # mDNS hostname PORT = 6009
def main(): print(f"Attempting to connect to {HOST}:{PORT} ...") sock = socket.socket(socket.AFINET, socket.SOCKSTREAM) try: sock.connect((HOST, PORT)) print(f"Connected successfully using mDNS resolution!") sock.settimeout(5) # For non-blocking read with timeout
while True:
try:
data = sock.recv(1024)
if not data:
print("Connection closed by server.")
break
print("Received:", data.decode().strip())
except socket.timeout:
continue # No data yet, keep looping
except Exception as e:
print("Error receiving data:", e)
break
except Exception as e:
print(f"Connection failed: {e}")
print(" - Check that the ESP32 is running the sketch and on the same network")
print(" - On Raspberry Pi, ensure avahi-daemon is installed/running: sudo apt install avahi-daemon")
finally:
sock.close()
if name == "main": while True: # Auto-reconnect loop main() print("Reconnecting in 5 seconds...") time.sleep(5)```
*Thread Reply:* How did you discover/think about a avahi? makes things simple.. Soo there is no way a computer outside your local network can accidentently discover your address? You still stay secure?
Everything has to come off and get worked around the new Jetson. The mounting board is beginning to look like Swiss cheese. Maybe a new board is due. Did get JetPack flashed on a 128 gb card. Won’t know if everything works until next week.
I've started exploring programs, large language models, that Orin Nano can run. One is called Ollama. There are other reference on the web stating Ollama can run on Raspberry Pi 5. Hmmm
I Overview Ollama + YouTube videos often mean building tools to summarize or analyze YouTube content using local AI models, leveraging Ollama for running LLMs (like Llama 3 or GPT-OSS) on your machine for privacy, and using tools like LangChain to connect video fetching (transcripts) with model processing, creating custom AI-powered YouTube helpers for insights without cloud reliance. YouTube hosts tutorials on how to build these, from basic scripts to complex UIs, showing setup, code, and advanced features. How They Work Together Get Video Content: A script or app extracts the YouTube video's transcript (captions) or uses an AI to transcribe the audio if captions aren't available. Process with Ollama: The transcript is sent to an LLM running locally via Ollama (e.g., Mistral, Llama 3). Generate Insights: The LLM creates summaries, key points, or answers questions about the video content, all done on your device. Tools & Frameworks: LangChain helps chain these steps, while MSTY or other interfaces provide a user-friendly chat experience for your local models. This video provides a brief overview of how Ollama works with a YouTube video:
Info from this week's video meeting.
20251218 ROS Lawn Tractor Automation meeting - Length 41:26 This video: https://youtu.be/yOnEY03DSco
Go to the HTML index to get the description for this meeting: http://sampson-jeff.com/RosAgriculture/LawnTractorMeetingNotes.htm#20251218
======
I have RTK Fix with the help of my Texas base station which consists of my older ComNav GPS feeding my ESP32 which puts the RTCM corrections on the network using Wi-Fi.
Yeah that wiring job was poor so I have to go back and fix it on my LED light tower.
@JeffS just what your bot needs to do stairs!
It may be innocent but you never know these days! https://apple.news/Ax8IXXmnARwWL7GRAk1BN0Q
*Thread Reply:* Inside the pump house there is a Franklin Electric control box that is triggered by the pressure switch and sends power to the pump that is below ground at ~200 feet. An electrician, to get 110 volt for the light, connected a wire (black) to L1 and a wire to ground (white)
*Thread Reply:* @Al Jones n the past on our hobby farm, I have installed a few of those type of light fixtures. Insects usually get into the fixtures and caused us some problems. Eventually we transition to something like this: https://www.homedepot.com/pep/CANARM-All-Weather-1-Light-Pewter-Outdoor-Ceiling-Mount-with-Clear-Glass-BL04CWG-HD/204806358?gstore=&source=shoppingads&locale=en-US&fp=ggl&pla&mtc=SHOPPING-BF-CDP-GGL-D27L-027016INTLIGHTING-NA-NA-NA-PMAX-NA-NA-NA-NA-NBR-NA-NA-NA-NEW24PMAXTEST&cmmmc=SHOPPING-BF-CDP-GGL-D27L-027016INTLIGHTING-NA-NA-NA-PMAX-NA-NA-NA-NA-NBR-NA-NA-NA-NEW24PMAXTEST-22104522957--&gclsrc=aw.ds&gadsource=1&gadcampaignid=22104559161&gbraid=0AAAAADq61UfaNFBPuSSWLHglmncmNi93&gclid=CjwKCAiA09jKBhB9EiwAgB8l-PFzx8bl5xxMp2mhZxJCDEOgqHUqOBKTgsi-BytCoU-CFl4B6b2ExoCmG0QAvDBwE|https://www.homedepot.com/pep/CANARM-All-Weather-1-Light-Pewter-Outdoor-Ceiling-Mount-with-Clear-Glass-BL04CWG-HD/204806358?gstore=&source=shoppingads&locale=en-US&fp=ggl&pla&mtc=SHOPPING-BF-CDP-GGL-D27L-027016INTLIGHTING-NA-NA-NA-PMAX-NA-NA-NA-NA-NBR-NA-NA-NA-NEW24PMAXTEST&cmmmc=SHOPPING-BF-CDP-GGL-D27L-027016INTLIGHTING-NA-NA-NA-PMAX-NA-NA-NA-NA-NBR-NA-NA-NA-NEW24PMAXTEST-22104522957--&gclsrc=aw.ds&gadsource=1&gadcampaignid=22104559161&gbraid=0AAAAADq61UfaNFBPuSSWLHglmncmNi93&gclid=CjwKCAiA09jKBhB9EiwAgB8l-PFzx8bl5xxMp2mhZxJCDEOgqHUqOBKTgsi-BytCoU-CFl4B6b2ExoCmG0QAvDBwE
*Thread Reply:* Thanks @Bob Hassett You are definitely right about the insects. I cleaned out two mud dauber/dirt dauber nests from inside the fixture. Thanks for the suggested fixture.
Info from this week's video meeting.
20260101 ROS Lawn Tractor Automation meeting - Length 1:04:32 This video: https://youtu.be/cuojyTsqRnE
Go to the HTML index to get the description for this meeting: http://sampson-jeff.com/RosAgriculture/LawnTractorMeetingNotes.htm#20260101
======
My journey on resurrecting a 20 year old oscilloscope. I now know the BIOS freezes before any applications start. The problem is not an old HDD. Two theories on fixing that. One, easier, but unlikely, the CPU is overheating due to heatsink paste deterioration. Or two, more likely based on my symptoms, the capacitors on the motherboard power rail, have deteriorated and as they warm up they provide unstable power which causes the BIOS to freeze. So I need to pull out the cards and remove the motherboard. Then remove the capacitors.
Before removing the cards: After removing the cards: Six of the caps that I have removed and ordered replacements from Mouser:
@Al Jones Does the BIOS give you any beep codes as it refuses to boot? I see the image of the front looks like it has a built-in CRT display. Does that display anything? If not, can you plug in an external monitor?
The image of the front was in the last meeting video @1:01:20. http://sampson-jeff.com/RosAgriculture/LawnTractorMeetingNotes.htm#20260101
*Thread Reply:* Before I changed the battery I received a CMOS error. After a new battery that error went away. The scope does beep at ~.5 Hz for ~60 seconds. I don't know what that signifies. It might be that is stops when the BIOS freezes or its a normal startup process.
To be more clear about its behavior, as it is booting I can open the BIOS menu. After ~60 seconds it becomes non responsive. As an example I can go into the BIOS menu and use the up/down arrows to move around the menu. After it freezes, that ability stops.
Since I bought a CF Card and adapter to replace the HDD, I decided to try and load FreeDOS on to the CF Card. I relearned how to burn a CD and booted to the CD running FreeDos. The motherboard started the process and got to 4% before hanging.
I'm hoping my issue is old capacitors not delivering smooth power. Replacements arrive Tues/Wed. A guy at https://groups.io/g/HP-Agilent-Keysight-equipment/topic/117057746
suggested it could be an overheating CPU. I also ordered thermal paste and pads to cover that base too.
I'm using https://ntfy.sh/app to receive a daily notice of how many times the ESP32 booted. The flow is the ESP32 at the pump boots when the pump comes on, it radios the other ESP32 over LoRa of the event, that ESP32 makes an entry in the DB SQLite on the connected RPi which once a day sends an ntfy notice. There is also a process that runs on the RPi to check if the pump comes on three times in an hour. That would signal a problem. My next upgrade will be to move off the SD Card and use an SSD instead. That will be the next visit to Texas.
I was wondering about wifi on my Orin Nano. Internal vs external antennas for example. And which chip to use. Anyway I took a gamble and ordered the intel WiFi board. Then asked chat which was better.
Short answer: the one on the right (Intel 8265NGW) is the better Wi-Fi + antenna system overall, especially for reliability and RF performance.
Let’s break it down clearly.
⸻
Left image: AzureWave AW-CB375NF (likely Broadcom-based)
What it is • Commonly used in embedded boards (Jetson, industrial SBCs) • Usually Broadcom BCM43xx family • 2× U.FL antenna connectors (Main/Aux)
Pros • Compact, low power • Often well-supported on NVIDIA Jetson platforms • Fine for basic Wi-Fi + Bluetooth
Cons • Typically 2×2 Wi-Fi 5 (802.11ac) at best • Broadcom drivers on Linux can be: • Closed-source • Less tunable • Sometimes flaky with AP mode, monitor mode, or latency • RF performance depends heavily on antenna placement and board grounding
Typical real-world performance • ~300–500 Mbps max • Higher latency jitter • Less robust under interference
⸻
Right image: Intel 8265NGW
What it is • Intel Wi-Fi 5 (802.11ac Wave 2) • 2×2 MIMO, Bluetooth 4.2 • Uses Intel iwlwifi drivers
Pros (big ones) • Excellent Linux driver support (open-source, mature) • Very stable under: • High throughput • Long uptime • WebRTC / ROS / SLAM / SSH + video streaming • Better RF sensitivity and coexistence handling • Supports advanced features like: • Beamforming • MU-MIMO • Better roaming behavior
Cons • Slightly higher power draw • Slightly larger module
Typical real-world performance • 600–900 Mbps (with good AP) • Lower latency • Much more consistent throughput
⸻
Antenna system comparison
Both use U.FL connectors, so antennas themselves matter a lot — but: • Intel modules are more forgiving of: • Antenna mismatch • Cable length differences • Less-than-perfect ground planes • The Intel RF front-end and calibration is simply better
If you use the same antennas, Intel will still win.
⸻
Which should you use (given your projects)?
Based on your history: • Jetson Orin / NanoBot • WebRTC video • SLAM / visual odometry • Remote control + telemetry
👉 Intel 8265NGW (right) is the correct choice
Reasons: • Lower latency = better teleop control • More stable bandwidth = cleaner video • Better coexistence with USB, CSI, and IMU timing • Fewer Linux driver headaches
⸻
Final verdict
Feature Left (AW-CB375NF) Right (Intel 8265NGW) Linux driver quality ⚠️ OK ✅ Excellent Throughput ⚠️ Medium ✅ High Latency stability ⚠️ Variable ✅ Very stable RF robustness ⚠️ Average ✅ Strong Robotics / SLAM use ⚠️ Acceptable ✅ Preferred
Winner: 👉 RIGHT (Intel 8265NGW)
If you want, next I can: • Recommend specific antennas (2.4 vs 5 GHz, gain, cable length) • Explain Main vs Aux orientation • Help you choose best Wi-Fi card for Orin Nano (including Wi-Fi 6 options)
*Thread Reply:* Link to YouTube video: (1) An Open Source Motorized XYZ Micro-Manipulator - Affordable sub µm Motion Control - YouTube
*Thread Reply:* @Al Jones Very interesting! I'm thinking the concept might be good feed back system for robot odometry. Well worth investigating.
I was able to get FreeDOS installed on a compact flash and it had 1980's games
Info from this week's video meeting.
20260108 ROS Lawn Tractor Automation meeting - Length 1:10:53 This video: https://youtu.be/Uy2iT6DxPFw
Go to the HTML index to get the description for this meeting: http://sampson-jeff.com/RosAgriculture/LawnTractorMeetingNotes.htm#20260108
======
This was just posted to Home Brew Robotics list. It is a list of links for books, courses and random robotic resources. https://github.com/mithi/robotics-coursework
*Thread Reply:* This is a close up of the IC alignment. The 'magic' I see is the top of integrated circuit is aligned with the bottom of the magnets.
The frustrating part of using a chat as you can only submit a few questions then you get locked out and you have to wait. I got locked out about 3 o’clock and they say I can’t submit any more questions until 7 PM yuck!
I got an email from Adafruit saying they won't be carrying the Teensy boards any longer. https://blog.adafruit.com/2026/01/12/discontinuing-the-teensy-at-adafruit/?utmsource=Adafruit+Products+Newsletter&utmcampaign=2be87dce81-EMAILCAMPAIGN202601130250&utmmedium=email&utmterm=0-2be87dce81-114397237|https://blog.adafruit.com/2026/01/12/discontinuing-the-teensy-at-adafruit/?utmsource[…]1130250&utmmedium=email&utmterm=0-2be87dce81-114397237
Info from this week's video meeting.
20260115 ROS Lawn Tractor Automation meeting - Length 49:56 This video: https://youtu.be/xJ2DGuKfuiU
Go to the HTML index to get the description for this meeting: http://sampson-jeff.com/RosAgriculture/LawnTractorMeetingNotes.htm#20260115
======
After taking advice from chat to use Samba, I’m finding it to be very much a rabbit hole. Very complicated and probably overkill for what I wanna do immediately: .Remote control and drive my bot around from any browser. So now I have to figure out how to get rid of everything related to Samba, undo it, clean it out and go back to web RTC rabbit hole…Oh well.
My apologies for posting that Facebook. It was not intended to be posted here. My bad I'm trying to delete it.
I've been spending weeks trying to figure out proper versions of Linux, JetPack (operating system), firmware , etc. Any way nothing worked. Then I found out Nvidia probably never flashed the essential embedded eMMc. That device didn't have the necessary software to boot up. The solution is to connect a laptop to Orin nano by using usb A to usb C high speed data cable. Only then can the eMMc be flashed from laptop to Orin Nano, with the essential software..ARRRRG! Luckily one is available at an Ace Hardware in Grand Rapids. OF all places. Looks like road trip time.
Claude was a big help and reassuring;
. This is what Claude has told me; No, you didn’t erase the eMMC. Here’s why: What You Did: 1. Shorted FC_REC to GND - This only puts the device in recovery mode (a waiting/listening state). It doesn’t write or erase anything on its own. 2. Shorted some GPIO pins - While potentially risky, this wouldn’t trigger an eMMC erase operation. To Erase eMMC, You Would Need: ∙ Be in recovery mode AND run specific erase commands via SDK Manager or command-line tools ∙ Or be booted into Linux and manually format the eMMC ∙ You did neither of these What Actually Happened: The Orin Nano likely came from NVIDIA without a proper OS installation: 1. You said it was boot looping from the moment you first powered it on - that’s not normal for a new device 2. The Boot Manager shows no eMMC boot option - meaning there was likely never a valid OS installed 3. The “No valid offer over IPv4/IPv6” network boot error confirms the eMMC is empty or corrupted Bottom Line: You didn’t break it or erase it. It came in a bad state from the factory - either: ∙ Shipped unflashed by mistake, OR ∙ Had a corrupted/incomplete factory installation This is actually not uncommon. Sometimes dev kits ship without the OS pre-installed and you’re expected to flash it yourself. You still need to flash JetPack via USB recovery mode - which brings us back to needing a working USB data cable.
I'm on a role. Only took 3 hours to get Firefox working on the desktop.yuck
Beginning to see some light..
I should say, beginning to ssh into the Rpi5, by way of laptop wireless to the router then cable to the Rpi5.
Info from this week's video meeting.
20260129 ROS Lawn Tractor Automation meeting - Length 48:42 This video: https://youtu.be/0xZxMygjXQY
Go to the HTML index to get the description for this meeting: http://sampson-jeff.com/RosAgriculture/LawnTractorMeetingNotes.htm#20260129
======
Changed motor controllers from sawtooth to mmd10 and eliminated 1 Pca board. Next is all battery power setup!
@Al Jones I see there are several free examples of OTA on the web site. https://randomnerdtutorials.com/?s=ota
*Thread Reply:* @JeffS Thanks for sharing. I found the articles very interesting. Adding this to my list of projects I might get to 😉
Info from this week's video meeting.
20260205 ROS Lawn Tractor Automation meeting - Length 48:08 This video: https://youtu.be/3pVQcfCzLsE
Go to the HTML index to get the description for this meeting: http://sampson-jeff.com/RosAgriculture/LawnTractorMeetingNotes.htm#20260205
======
I think the blurry picture is the result of finger prints when I was moving the iPad. Maybe I've got some lens cleaner around here that might help.
'ROI" stands for region of interest in my code where I monitor if my water pump light comes on. It is subtle, but over time my Logitech USB camera has dropped down about 6 pixels below my initial setup. The red arrow is the placement of my light. This sagging is another reason why monitoring using the electrical circuit is a less fragile solution. Anyway, I now have a routine to run between 11pm and 6pm to calculate and update the x, y coordinates for the brightest spot. Seems python has a function for "centroid calculation". I can then set the other regions relative to the light position. These are used to compare brightness levels to detect when the light has actually come on. Like I said, its fragile.
*Thread Reply:* Not perfect yet, but better. Last night the program self-adjusted to move the area of interest higher by 5 pixels.
Some progress, We have keyboard control for drive motors and Logi 720p camera calibrated servos. Now the real work starts.
@Al Jones I was rewatching this weeks video meeting. Al said he has a 12v pump that he want to drop 40 feet into a well. Keep in mind that pumps are rated in "head" (how far it will lift water against gravity). Either check that spec ahead of time, or don't be fooled into thinking your well dry if you don't get water at the surface.
*Thread Reply:* It's really just for a test. I can't imagine this pump would stand up to much abuse. If I can get a few hundred gallons a day I would be happy. I will put it in a 4" pipe and try and keep the cold water flowing over the motor to keep it as cool as possible. At least that is what I'm thinking.
*Thread Reply:* It says right there in the title "Max Head 230ft", and that is certainly greater that 40ft.
Long video, but interesting to see how he replaced the proprietary engine ignition system with an off the shelf ABS sensor and HEI unit. https://www.youtube.com/watch?v=I5cpMHBEngs
Long story short..I know just enough to be dangerous!
At the end it lists several options going forward. I’m going to stop at this point and think things over. Any suggestions of which option I should start with? All of them one at a time?
What mistakes have I made during this project
First off: you haven’t been careless — you’ve been ambitious, and this project sits right at the intersection where a lot of smart people trip. That said, there are some recurring mistakes/patterns that have been slowing you down. I’ll be very direct but fair, and I’ll also tell you how to avoid them going forward.
⸻
The big-picture mistakes (the ones that cost the most time)
This has been the #1 time sink.
Examples from your logs: • Switching JetPack versions and networking method and services • Editing motor code while also rewiring grounds • Disabling NetworkManager while debugging SSH • Testing Wi-Fi + Ethernet + USB gadget simultaneously
Why it hurts: When something breaks, there’s no way to know what broke it.
Fix: From now on: • One change • One reboot • One test • One log
No exceptions.
⸻
Networking is not passive — it’s an active system.
You: • Disabled NetworkManager without a fallback • Expected the NanoBot to remain discoverable after reboot • Switched subnets (192.168.50.x → 192.168.4.x) without reconciling routes • Assumed the laptop would auto-adapt with only USB
Reality: Linux networking is deterministic. If a service is off, nothing compensates.
Fix: Pick ONE networking authority: • NetworkManager or • systemd-networkd
For your project → NetworkManager wins.
⸻
You went headless before the system was stable.
That caused: • Locked screen with no recovery • SSH dependency while networking was unstable • Reboots with no visual feedback • Panic resets during motor testing
Fix: Rule going forward:
Never go headless until motors are proven safe
HDMI + keyboard is not a luxury — it’s a safety system.
⸻
This one is important.
You experienced: • Motor running and not stopping • Power cycling as the only kill switch • Software dead zones not yet calibrated
That’s dangerous (for hardware, not you).
Fix (non-negotiable): • Hardware E-STOP always inline • Motors default to disabled on boot • Software enable only after: • Web UI connected • Keyboard focus confirmed
You’re already moving this direction — just needed earlier. Technical pattern mistakes
At times: • Pi was controller • Then Jetson was controller • Then Pi was bridge • Then NanoBot hosted UI
That’s a recipe for confusion.
Fix: Lock the roles:
Device Role Jetson Orin Nano Brain + vision + Web UI Raspberry Pi 5 Motor I/O + real-time tasks Laptop Operator console No overlap.
Examples: • Custom all-in-one scripts before minimal test • Complex services before manual run works • WebRTC + camera + motors at once
Fix: Baseline ladder: 1. Motors move safely from CLI 2. Motors stop safely 3. Web UI shows status 4. Web UI controls motors 5. Cameras 6. WebRTC
Never skip rungs.
⸻
Common pattern: • “It should be on the network” • “That service should be running” • “The IP should still be the same”
Linux does not care what should happen.
Fix: Before every assumption:
ip a ip r systemctl status <service> journalctl -
You’ve started doing this — good sign.
⸻
The subtle but important one
Disabling: • NetworkManager • Desktop • Login manager
…was done to “simplify”, but it removed safety rails.
Fix: Use defaults until the robot works. Then optimize.
⸻
The good news (this matters)
Things you did RIGHT • You didn’t fry hardware
• You noticed runaway motors immediately
• You kept logs
• You asked before randomly reinstalling (later on)
• You persisted through real complexity
Most people abandon projects at this stage. You didn’t.
⸻
If I had to summarize in one sentence
You tried to build a production robot before building a prototype robot.
That’s not stupidity — it’s overconfidence mixed with ambition.
⸻
Going forward: your new operating rules 1. HDMI until motors are safe 2. NetworkManager stays ON 3. One device = one role 4. One change at a time 5. Motors disabled by default 6. Logs before guesses
If you follow just those, progress will suddenly feel easy.
⸻
If you want, next I can: • Create a “known-good recovery checklist” for when things break • Lock in a final network topology that won’t surprise you • Or help you restructure the project so this chaos never repeats
Just tell me which one.
This is a photo of a communications receptacle on a MEP-805B generator. Another side project to read the status messages using an RPi. First step is to DIY a plug.