diff --git a/README.en.md b/README.en.md new file mode 100644 index 0000000..6d0ff23 --- /dev/null +++ b/README.en.md @@ -0,0 +1,227 @@ +

+ 📡 Micro Radar +

+
+ a tiny open-source flight radar for your desk +
+

+ drawing +

+

+ PREREQUISITES - ASSEMBLY - USAGE - FAQ +

+ +## Prerequisites + +At the core of this project is the ESP32-C3 module with an integrated 240x240 IPS screen. No soldering required. The module does all the heavy lifting. + +I used dark grey PLA filament for the print, but any colour will work just fine. For the lens (optional but recommended), you'll need clear-drying epoxy to secure it (not super glue, which will fog up the lens. Ask me how I know.) + +### Tools you'll need + +- Small screwdriver (for M2 screws) +- Soldering iron (for setting the threaded inserts) + +Set up a clean, organised workspace before you start. You'll be handling small components and epoxy, so a dedicated area helps. Keep a damp cloth nearby for cleaning if needed, and ensure your soldering iron has adequate ventilation. + +### Shopping List + +Everything you need is below. I've linked products I used and recommend for ease of build, though alternatives exist on Amazon and elsewhere. If you deviate from this hardware, you may need to modify the enclosure and/or code. + +- [ ] [1.28" Round GC9A01 240x240 IPS Display Module with ESP32-C3 (no-touch)](https://www.aliexpress.com/item/1005008482665220.html) +- [ ] [USB-C Ribbon Extension Cable (5cm, CMUP-CFPCB-BK)](https://www.aliexpress.com/item/1005005371248824.html) +- [ ] [M2 Heat-set Threaded Inserts (+ soldering iron)](https://www.aliexpress.com/item/1005008493831823.html) +- [ ] [32.5mm Round Mineral Glass Lens (optional, recommended)](https://www.aliexpress.com/item/1005004783554496.html) +- [ ] [Gorilla Epoxy (necessary for fitting lens, useful anyway)](https://www.amazon.co.uk/Gorilla-Glue-25ml-Epoxy/dp/B009NQQJFC) + +### Accounts / API + +This project uses OpenSky's API for retrieving flight data. + +I highly recommend making an account, as it's free, and allows the radar to make many more requests per day (400 -> 4000), which makes the live view much more accurate. However, it isn't necessary if you prefer. + +You can sign up [here](https://opensky-network.org), or search "OpenSky". + +Further info on what to do with the account is in the usage section. + +## Assembly + +Once you've got all the parts, assembly typically takes 1-2 hours (excluding print time). + +**I strongly recommend reading the [Usage](#usage) section before you start assembly.** It'll help with troubleshooting if anything goes wrong. You might want to test the firmware and your hardware before closing everything up. + +### Step 1: 3D Print + +FFCBBECA-6165-4138-8C84-16AB375511A2_1_105_c + +Print all four STLs from `./hardware/stl/`: + +- Main enclosure +- Front plate +- Bezel +- 2 spacers + +### Step 2: Heat-set Threaded Inserts + +**You'll need:** Soldering iron, M2 threaded inserts + +Start with the front plate: insert 2mm M2 threaded inserts into the larger holes using the soldering iron. + +IMG_7882 + +Next, the two spacers. These might warp slightly, that's fine. Insert 6mm M2 inserts into each. + +IMG_7887 + +Finally, the main enclosure. Insert 5mm M2 inserts. + +IMG_7891 + +Et voilà. + +IMG_7896 + +### Step 3 (Optional): Fitting the Lens + +IMG_7902 + +**You'll need:** Clear-drying epoxy, small applicator (match or cocktail stick works) + +This is the fiddliest bit. Keep it neat and you'll avoid frustration: + +- Apply epoxy to the front plate, not the lens +- Lower the front plate onto the lens (easier to manage excess epoxy) +- Have a cleaner ready for the edges (I used nail polish remover, your mileage may vary) +- Less is more with epoxy +- Work on a surface that won't bond to epoxy + +IMG_7911 + +Let the epoxy cure according to its label before moving on. + +### Step 4: Bezel + +**You'll need:** 2x5mm M2 screws, 2x10mm M2 screws + +Secure the bezel to the front plate using 2x5mm M2 screws through the threaded inserts you added earlier. + +IMG_7914 + +Screw 2x10mm M2 screws through the remaining two holes. They should protrude from the back. + +IMG_7915 + +Peel the protective film off the screen and position it over the lens. The screws you just inserted will guide the display into place. + +Before clamping it down with the spacers, **make sure the antenna is attached to the module**. Press it down firmly onto the flat surface until it clicks. Orientation doesn't matter, but you do need this connection otherwise you won't get any WiFi signal. + +IMG_7917 + +IMG_7920 + +Now screw the spacers into those protruding screws to clamp the module in place. I recommend keeping the board plugged in at this point to help with alignment. Don't use much force, too much pressure will stress the screen. + +Once you're happy with the alignment, you can add a small amount of epoxy around the module to lock it in place permanently (optional, but recommended if you're happy with the build). + +### Step 5: Final Assembly + +**You'll need:** USB-C ribbon extension cable, 4x7mm M2 screws, optional rubber feet + +Attach the USB-C ribbon cable to the case with the provided nuts and bolts. + +IMG_7921 + +IMG_7923 + +If you like, remove the supports from the bottom and insert rubber feet. + +IMG_7924 + +Plug in the board, then attach the front plate using 4x7mm M2 screws. + +IMG_7925 + +Done! + +IMG_7930 + +## Usage + +### Flashing the Firmware + +You'll need [VS Code](https://code.visualstudio.com/) with the [PlatformIO IDE extension](https://marketplace.visualstudio.com/items?itemName=platformio.platformio-ide) installed. Once installed, restart VS Code, open the repository folder, and dependencies will pull in automatically. + +Plug the board in via USB-C, then hit the upload button (→) in the bottom status bar. If the board doesn't reboot with the new firmware automatically, hold the BOOT button on the back and press RESET once, then release BOOT. + +The board should auto-detect, but if you hit an upload failure, check that the correct board is selected in the status bar. If it still won't upload, try: + +- Disconnect and reconnect the USB cable +- Check that your cable supports data transfer (some USB-C cables are charge-only) +- Try a different USB port on your computer + +Read more about PlatformIO [here](https://docs.platformio.org/en/latest/). + +### First Boot + +On first boot, the radar broadcasts a WiFi hotspot called `MicroRadar-Setup`. Connect to it from your phone or laptop and a configuration page will appear automatically (or go to your browser if it doesn't). Enter your WiFi credentials and hit save. The board will restart and connect to your network. + +If the hotspot doesn't appear straight away, give it a moment. If it still hasn't appeared after 30 seconds, exit the WiFi settings on your device and go back in to force a refresh. It'll usually show up then. + +### Configuration + +Once connected to your network, the radar config is accessible at [http://microradar.local](http://microradar.local) from any device on the same network. + +Here you can set: + +- **Location** (latitude and longitude): the centre point of your radar +- **Radar radius**: how wide the scan extends (in degrees, 2 degrees is the limit to avoid rate limiting) +- **Display options**: toggle visual elements +- **OpenSky credentials**: your client ID and secret (if you've made an account - again, highly recommend!) + +image + +If you've made an OpenSky account (which I highly recommend), you can find your credentials under your account settings at opensky-network.org. With authentication, you get 4000 requests per day instead of 400, making the live view much more accurate. Read more about the API [here](https://opensky-network.org). + +This configuration page is accessible anytime the device is connected to WiFi, so you can tweak settings whenever you want. + +That's it! Once you've configured everything, you should see a live view of all flights over your location. Enjoy :) + +IMG_7935 + +## FAQ + +> the port is busy or doesn't exist + +Restart VS Code *after* plugging in the device. If VS Code was already open, it may default to a stale port from before the device was connected. + +If that doesn't work, look for the button with a small "Plug" icon on VS Code's bottom bar (it might say "auto", "cu.usbmodem101", or similar). Click it and select the option that shows your device's name. +

+ +> the 3D print failed + +If you're using a Bambu Lab printer, make sure you're opening the `.3mf` file, since it includes the correct print bed and settings. + +Using a different printer? Open an [Issue](../../issues) and I'll try to help where I can. +

+ +> `ModuleNotFoundError: No module named 'intelhex'` when building + +This appears to be a Windows-specific issue. Either of these should fix it: + +**Option A:** +1. Open the PlatformIO terminal (PlatformIO sidebar → Miscellaneous → PlatformIO Core CLI) +2. Run `pip install intelhex` +3. Rebuild + +**Option B:** +1. Open a new terminal in VS Code (Terminal → New Terminal) +2. Run `python -m pip install intelhex` +3. Rebuild + +## Notes + +> Designed and developed as part of a wedding present for a mate who loves aviation (congratulations to both him and his wife!) + +> Inspired by [therealhacksaw](https://www.instagram.com/therealhacksaw/)'s desk radar + +> Built with ♥︎ in London