Skip to content
View in the app

A better way to browse. Learn more.

Ham Radio Base

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.
☀ Solar
SFI 121
SN 99
A 11
K 3 Unsettled
X-Ray B8.6
Wind 423.4 km/s
Aurora 4
Updated 11:30 UTC HamQSL · N0NBH
Day 80/40m Poor 30/20m Good 17/15m Fair 12/10m Fair
Night 80/40m Fair 30/20m Good 17/15m Fair 12/10m Poor

Callsign Lookup
_
Vanity Call Signs Available
Enter filters above and click Search.
ⓘ Callsign lookups are in real time via the FCC database. Vanity callsign availability is refreshed daily at 6:00 AM CST. The vanity search may be unavailable for a few minutes during this update.
Live DX spots
Live DX Spots — 70cm via PSKReporter · scroll or pinch to zoom
Band
Mode
Time
Loading map data…
MHz DX Spotter Info
Recent spots —
Select a band above to load spots
Ready — select a band to fetch live spots

using arduino to control my antenna rotator - anyone else gone down this rabbit hole

so i've been messing around with an arduino mega for the past few months trying to automate my yagi rotator and honestly it started as a simple weekend project and now ive got like 4 breadboards on my desk and a half-finished python script running on a pi 4 thats supposed to talk to the arduino over serial but keeps dropping bytes randomly

the basic idea is the pi handles the logging side and interfaces with my logging software via a virtual com port, and the arduino does the actual PWM stuff to drive the rotator controller. been using a cheap ACS712 current sensor to detect when the rotator hits the mechanical stop instead of relying on the potentiometer feedback alone which works surprisingly well actually

main issue right now is the serial communication dropping out. im using 9600 baud which should be plenty stable but every 20-30 minutes i lose sync and have to restart the script. tried bumping up the buffer on the pi side, tried hardware flow control pins, nothing seems to stick. wondering if anyone else has done something similar or if theres a better way to handle this kind of arduino-pi handshaking for long running stuff

also if anyone has opinions on whether i should just ditch the pi and run everything on the arduino with an ethernet shield id be curious, the pi feels like overkill for this but i like having linux available for the logging part

  • Replies 1
  • Views 35
  • Created
  • Last Reply

Top Posters In This Topic

Featured Replies

yeah ive been down exactly this hole, took me about 3 months to get my setup stable. the random byte dropping thing is almost certainly a timing issue on the python side - the default pyserial timeout settings are kind of garbage for long running scripts. what worked for me was implementing a simple checksum on every message, like just XOR all the bytes and append it, and then on the arduino side reject anything that doesnt match and send a NACK back. once i did that my script ran for weeks without losing sync

also check if youre running anything else on the pi that might be hammering the CPU periodically. i had the same dropout issue and it turned out to be the automatic security updates kicking in and spiking the load enough to miss serial bytes. disabled that and it got way better immediately. 9600 should be fine for rotator control honestly, you dont need much bandwidth for position data

dont ditch the pi, having linux there is worth it for the logging stuff alone. i tried doing everything on an arduino with the wiznet ethernet shield and while it works its painful to debug compared to just ssh-ing into a pi and tailing a log file

one thing i did on my rotator project was switch from serial to i2c between the pi and arduino which sounds weird but actually worked out better for me since i had the devices right next to each other anyway. though if youre routing cables any distance at all stick with serial or maybe look at RS485 which is what some of the commercial rotator controllers use internally

Guest
Reply to this topic...

Affiliate Disclosure: As an Amazon Associate, Ham Radio Base earns from qualifying purchases. Some links throughout this website may be affiliate links. If you purchase a product through one of these links, we may earn a commission at no additional cost to you. Your support helps us continue creating free articles, tutorials, reviews, and resources for the amateur radio community. N0TLB © Ham Radio Base - Powered by the Ham CQ DX Community. All rights reserved.

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.