hexagon-shaped radar. 6 antennas, 1 brain. default 24Ghz, maybe will plan for more frequencies
# Prepare machine
sudo usermod -aG input $(whoami)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Restart your machine
git clone --recursive https://github.com/prisect/hexar# Build and run
cargo build
cargo run --release- 6 antennas
- hexar sdr card
- USB-to-TTL converter (CP2102, FT232RL)
- UART interface (3.3V / 5V)
- central processing unit/FPGA
- Arduino nano & duo
- *used LD2412 and LD2450, Hi-Link Electronics, 24GHz mmWave
- RS232+BT
- GY-4988
- nRF24L01
- Doppler Radar RS3400 (77GHz)
- Doppler Radar KLC-6 (24GHz)
- GPS+RTL
- Power regulator (YL105)
- (optional) XY42STH34-1504A (High Stepper motor)
- (optional) Op Amp
- (optional) LNA nooelec SAWBird+GOES L-band for l-band, see bottom
- rust tc
- cargo
- gcc
- make
- cmake
- toml
Carrier frequnecy 24GHz 77GHz
Signal bandwidth 15kHz 0.15MHz
Transmit power 20 +/- 1 dBm 25 +/- 2 dBm
Antenna Gain 20 dB 20 dB
H-plane beamwidth 80 deg 15 deg
E-plane beamwidth 12 deg 15 deg
- pyserial >= 3.5
- numpy >= 1.21
- matplotlib >= 3.5
- scipy >= 1.8
- pyqt5 >= 5.15
- rclcpp
- std_msgs
- sensor_msgs
- geometry_msgs
- nav_msgs
- tf2_ros
- rosbag2
- rviz2
LD2412 and LD2450 driver, made in rust.
i've also tested something completely different, i might add it or implement it later in some sort.
using the Dish Tailgater’s poorly documented “nudge” command, which moves the antenna in very small steps. each azimuth nudge is about 0.2 degrees, though elevation nudges later proved inconsistent.
i wanted to improve the original low-resolution scan of the clarke belt, where each pixel represented one degree of azimuth and elevation. scanning 180 degrees of southern sky took over three hours, which was the fastest possible due to antenna firmware limitations.
below is a close-up of the inset from the original image, still using the low-resolution scan where each colored square is one degree by one degree.
originally, i scanned in alternating directions to save time, but motor backlash, indexing errors, and inconsistent nudge distances caused the image to drift diagonally. after repeated suggestions, i switched to single-direction scans, sacrificing aesthetics but finally making high-resolution imaging work.
i wasn’t sure the higher resolution would help, since the dish beamwidth exceeds one degree, but the finer 0.2-degree steps produced a clearer image despite some remaining noise and reflections.
here is an diy l-band (~1.7GHz). in addition to the wood pieces, it needs some kind of ground plane (using an aluminum pan lid), some stiff wire (pre-coiled around a 1/5″ PVC pipe), an SMA connector, and an LNA. also might use something like this. but, i like k-band more, it's just, more efficient i would say.
