Henrik Forstén
hforsten.com · Personal blog · on HN since 2012
Henrik Forstén builds homemade radar systems, including synthetic aperture radar, along with embedded Linux and electronics projects.
What HN saysHN commenters praise his radar articles as clear explanations of a complicated topic and useful for their own sonar work, and cite his Python integer trick.
46HN people shared it
20linked it in comments
30stories submitted
2.5Kstory points
6 months agolast shared
2012people per year2026
Most-shared posts
- 1Homemade synthetic aperture radar6 people · 154 points · first shared 2015 · 29 comments on HN
- 2Homemade polarimetric synthetic aperture radar drone5 people · 644 points · first shared 2025 · 60 comments on HN
- 3Making an embedded Linux computer5 people · 275 points · first shared 2014 · 21 comments on HN
- 4Evolutionary algorithms and analog electronic circuits5 people · 235 points · first shared 2012 · 53 comments on HN
- 5Redefining the Number 2 in Python5 people · 1 points · first shared 2012 · discussion on HN
- 66 GHz frequency modulated radar4 people · 261 points · first shared 2014 · 84 comments on HN
- 7Synthetic-Aperture Radar Imaging3 people · 26 points · first shared 2020 · 2 comments on HN
- 8Synthetic aperture radar autofocus and calibration2 people · 201 points · first shared 2025 · 16 comments on HN
- 9MIMO Radar Antenna Arrays2 people · 98 points · first shared 2021 · 7 comments on HN
- 10Identifying Stable Diffusion XL 1.0 images from VAE artifacts (2023)2 people · 69 points · first shared 2023 · 24 comments on HN
- 11Building a Homemade Vector Network Analyzer with 6GHz Bandwidth2 people · 3 points · first shared 2016 · discussion on HN
- 12Radar Phase Measurements2 people · 1 points · first shared 2023 · discussion on HN
- 13Homepage2 people · first shared 2016
- 14Homemade 6 GHz pulse compression radar1 people · 438 points · first shared 2024 · 116 comments on HN
- 15Designing a low-cost high-performance 10 MHz – 15 GHz vector network analyzer1 people · 102 points · first shared 2025 · 25 comments on HN
What HN people wrote when they linked it
anovikov · 2025-04-15
You gotta get a downconverter and a bias-tee to power it (or use the bias-tee built in the RTL-SDR if the downconverter is 4.5 volt - most aren't though). Then you can access high-freq. 10+ GHz must be a satellite right? There's no way for terrestrial to work at that freq.
And yes this is all easy this day. Hard stuff comes when you transmit, and harder yet when you do both. Then you can do crazy things, but that isn't at all easy... Like https://hforsten.com/ is doing. Still accessible from components pricing and regulations perspective, to almost everyone.
belzebalex · 2024-04-04
This is incredible.
I've wanted to thank the author for a while for his past articles [1][2] which have been a wonderful source of information when working on my sonar systems [3]. This article again explains really well a complicated topic. Please, keep up the great work!
[1]: https://hforsten.com/radar-phase-measurements.html
[2]: https://hforsten.com/6-ghz-frequency-modulated-radar.html
[3]: https://twitter.com/alextoussss/status/1756371553460121766
emusan · 2024-01-25
If you're interested in the cantenna radar you might also find Henrik Forsten's radar interesting: https://hforsten.com/6-ghz-frequency-modulated-radar.html. It uses largely the same high-level design, but is a bit more integrated as a single unit (rather than a series of minicircuits components).
I've built the MIT radar before and it is a great way to learn the basics of radar!
In either design you can likely get away with <$500 worth of materials.
Henrik has follow-up blogs adding and modifying this design for more functionality, it's a pretty neat project to follow!
knome · 2019-06-17
This is an excellent question with a generally fun answer, at least in python 2.
https://kate.io/blog/2017/08/22/weird-python-integers/
http://hforsten.com/redefining-the-number-2-in-python.html
I found these offhand, but I'm pretty sure I saw this trick earlier than 2017.
maccard · 2019-04-23
> In Python, all data (even simple integers) are all allocated on the heap.
Total sidebar, this leads to one of my favourite programming language "quirks" - you can redefine the value of 1! http://hforsten.com/redefining-the-number-2-in-python.html
okramcivokram · 2016-12-31
> If someone was to go through and by themselves solve every little problem associated with radar and build a microwave-based radar system I'd be really fucking impressed.
Check out Henrik's Blog http://hforsten.com/
semi-extrinsic · 2016-09-11
Here is a really great writeup from a guy building his own radar. Look at e.g. the SAR images right at the end.
http://hforsten.com/homemade-synthetic-aperture-radar.html
defrost · 2025-10-12
Homemade synthetic aperture radar (2015) - https://news.ycombinator.com/item?id=10387360
https://hforsten.com/homemade-synthetic-aperture-radar.html
https://hackaday.com/2019/08/15/bike-mounted-synthetic-aperture-radar-…
celegans25 · 2025-02-17
Henrik has a blog post about a SAR radar he made from a couple years ago that goes into a bit more detail about how it works https://hforsten.com/synthetic-aperture-radar-imaging.html
fooblaster · 2022-02-02
I've been somewhat disappointed that the learning material around mimo radar processing that can be done with popular TI automotive radar chips (and others) is somewhat limited after you get through with the absolute basics.
TI's documents are a good starting point: https://training.ti.com/sites/default/files/docs/mmwaveSensing-FMCW-of…
But it doesn't really go into the different schemes for sending out orthogonal waveforms from the transmitters, the design of 2d arrays, much of the basic signal processing (windowing, matched filtering), etc.
I was pleased to see https://hforsten.com/mimo-radar-antenna-arrays.html pop up on hacker news quite a while ago, which was very interesting. Goes into how to plot the beam width for a mimo array, with some nice python code. I want more, but I'm afraid I won't get it unless I read through a phd thesis. Any ideas/tips?
jcims · 2018-08-08
Newer version in this post - http://hforsten.com/third-version-of-homemade-6-ghz-fmcw-radar.html
An interesting application of CW radar - http://hforsten.com/heartbeat-detection-with-radar.html
At 45 years old I feel like I've learned quite a bit, but when I read stuff like this I wonder if there are enough years left in my life to learn what to takes to put something like this together.
I will say that the little CW doppler radar boards are fun to tinker with. You can get them on amazon for <$10 shipped, power them with 5 volts and just wire the output to a microphone jack.
https://www.amazon.com/SMAKN-Microwave-10-525GHz-Doppler-Detector/dp/B…
This is what a coin toss over a 10GHz doppler device sounds like: https://www.youtube.com/watch?v=8riretP8ylE
techbubble · 2017-08-14
Thanks for the tip. I found a post [0] describing genetic algorithms for circuit design that helped clarify the process. Coincidentally, the circuit described has a component that does nothing.
[0] http://hforsten.com/evolutionary-algorithms-and-analog-electronic-circ…
Bedon292 · 2016-08-22
Perhaps something like this instead? http://hforsten.com/homemade-synthetic-aperture-radar.html It would still give some interesting information.
kersny · 2016-07-28
Its been done, but AFAIK not with hand etching: http://hforsten.com/making-embedded-linux-computer.html
I don't think you can do high frequency RAM lines with hand etched boards or BGA escape routing without vias, but two layer prototype boards are pretty cheap these days.
dmpatierno · 2014-07-13
More info on the toaster oven: http://hforsten.com/toaster-oven-reflow-controller.html
hornetblack · 2014-01-28
It is possible to do some evil hackery and change the value of integers in the small number cache.
http://hforsten.com/redefining-the-number-2-in-python.html
ye · 2013-12-15
DNA is not just a sequence that encodes proteins. We just found out there's a secondary higher level code in it:
https://news.ycombinator.com/item?id=6896779
And then there's RNA, which can fold and form structures, sort of like proteins.
Anybody who has ever seriously dealt with things produced by evolution knows that evolution "cheats" and optimizes when constrained by resources, producing structure upon structure upon structure, crazy indirection and non-obvious side-effects, as long as it helps the goal (survival and reproduction usually).
That's why I don't think human brains will be understood any time soon. We might figure out all the layers, but to figure out all the hidden structures would take a superhuman AI.
EDIT:
Example of circuit design by evolutionary algorithms:
http://hforsten.com/evolutionary-algorithms-and-analog-electronic-circ…
7373737373 · 2021-07-27
Absolutely not, unfortunately. One of the architectural issues plaguing even comparatively memory-safe languages is the fact that there is a global scope that's accessible from anywhere. In some Python versions even numbers or truth values could be redefined. [0]
This makes it impossible to sandbox functions or imported modules, because they can communicate arbitrarily. But communication/access security is not the only problem. Resource security is something I haven't seen any significant language (besides Java perhaps) try to approach - being able to limit the memory and cpu usage of a (part of a) program. Modern languages should make it possible to do both with just a few lines of code.
I recommend reading about Capability Security[1], the E language[2] and the Principle of least Authority (POLA) [3]
[0] https://hforsten.com/redefining-the-number-2-in-python.html
[1] http://www.cap-lore.com/CapTheory/
https://en.m.wikipedia.org/wiki/Capability-based_security
[2] http://www.erights.org/
[3] https://medium.com/agoric/pola-would-have-prevented-the-event-stream-i…
These originated in the mainframe era, in a connected world before the internet, at the inception of the first multi-user systems: https://github.com/void4/notes/issues/41
pdabbadabba · 2015-10-14
Previous discussion of a similar project, by [evidently] the same person: http://hforsten.com/6-ghz-frequency-modulated-radar.html
As before, this is totally awesome---until the FCC (or other national spectrum regulator) shows up at your door...
Here is an assortment of things that the author might be interfering with in the neighborhood of his 5.5 GHz carrier frequency: https://wirednot.wordpress.com/2014/01/07/what-else-is-in-the-5-ghz-sp…
Some of this is the sort of stuff you really don't want to interfere with--both for safety reasons, and because of the likelihood of enforcement.
Next time I suggest that the author look into whether his jurisdiction will grant him an experimental license so he can do this legally. In many jurisdictions that is cheap and easy (unless, of course, you want to operate in a band where the interference risk is just too high).
Edit: I see the author is in Finland. Unfortunately for the author, I'm guessing this changes nothing since these frequencies are regulated both nationally and internationally. But it does mean that there is probably some local variation in the exact services that might be subject to interference. And who knows: maybe in Finland the 5.5 GHz band is a "do whatever you want at any power level you want" band. But I doubt it...
hwillis · 2014-12-03
The radio waves are collected at points and don't have any x or y data, so making an image out of it is pretty challenging and usually requires moving the radar beam. He just kept the beam still, so the only things you can really see are things that move.
In the image, the bottom axis is distance(calculated from the time the reflection took/the frequency output by the mixer), the color is the strength of the reflection, and the left axis is the time. He walked away from the setup and then back, visible as the two lines, which fade out almost completely as he changes direction, because he is far away and therefore looks smaller to the radar.
http://hforsten.com/static/img/fmcw/football_field_range.png
From this data you could theoretically build an image of his upper torso and head, but it would be very blurry. His arms and legs were not static, and the radar doesn't know how they were moving, so they would just show up as blurs.