Tag: Tech

  • Drone Light Show (Part 1) – Research

    Drone Light Show (Part 1) – Research

    I’ve been recently looking into building custom drones for a light show. A drone light show is a fleet of drones with lights that fly synchronously to display an image or animation in the sky.

    Intel's 500 drone light show
    Intel’s 500 drone light show

    Each drone has a GPS tracking device to ensure proper distance and movement. One central base station on the ground has a laptop running the Skybrush server (more about that later), which communicates to the drones with movement controls and flight plans.

    My first step was researching software and what kind most people use. Was it free? What drones can it run on? Etc. Some quick googling revealed an excellent software called SkyBrush. Skybrush is open source and offers all the steps from planning your sky layout to executing the formation.

    Using their software starts with Blender (or SkyBrush Studio). They offer a blender plugin that lets you control speed and formation, which you can later export to code for the SkyBrush server to use on the field. Full page here.

    After finding SkyBrush, I looked at building custom drones. First, I found this article on the subject from DojoforDrones a couple of months ago. It’s a detailed post on how he built and configured drones to work with SkyBrush and perform full drone shows. He got away with spending about $899 on each drone. (He used a kit that he offered on his website for $899.)

    One of the most expensive parts of the setup ended up being the GPS. You would imagine using the same technology as any $200 Android would be cheap. However, the GPS system that he (and many others) used was using RTK (Real-Time Kinematics). Essentially, it uses not only one satellite, as in a standard GPS device but a minimum of 4 satellites; this improves accuracy as you get the full “3D” tracking of the satellites in different places in orbit. In addition to 4 satellites, you also use a base station that provides correction data to the drone.

    ↴ Fun Fact

    There are 4 current GNSS sattelite companies (countries):

    • Global Positioning System (United States)
    • GLONASS (Russia)
    • Galileo (EU)
    • BeiDou (China)

    www.geospatialworld.net/blogs/what-are-the-various-gnss-systems/

    RTK GPS example
    https://en.wikipedia.org/wiki/Real-time_kinematic_positioning

    One major con to this system is price. Pricing can be a minimum of $200 to quickly going over $400 just for the GPS system. The most popular one I’ve seen others use is the HolyBro F9P, primarily for its accuracy and “Plug’n’Play” with Skybrush and ArduPilot. The main reason SkyBrush doesn’t recommend using a standard cheap GPS device is its accuracy, which is not good enough for drones to operate close to each other without homing fails and possibly crashing with the other drones mid-flight. There is also an FAQ that answers this.

    There is also a super detailed video by DroneDojo on YouTube that tests the actual field differences in GPS systems. I encourage you to watch the whole thing, but the main synopsis is at 19:02

    Another factor in the base station setup is a Wi-Fi router. This communicates to the drones to update any pre-flight plans and to update information on the Skybrush server running on the laptop. Most people I’ve seen use a standard home Wi-Fi router they had lying around, and that seemed to do the trick. But this also requires each drone to have Wi-Fi onboard, which is relatively cheap, with good ones going for about $45.

    I briefly mentioned ArduPilot earlier; ArduPilot is the base firmware you would run the drone off of and what SkyBrush installs next to. ArduPilot (or ArduCopter, a branch) can run on almost any correctly wired flight controller, ranging from cheap to expensive. Also, being open source, it has many branches and modifications available for almost any hardware (foreshadowing next post). A popular flight controller I see referenced with SkyBrush is the HolyBro Pixhawk 6C. While not the cheapest option, it is the most Plug’n’Play with out-of-the-box support for the LEDs I would mount on the drone and the RTK Module.

    However, I have found exciting leads on cheaper alternatives to the most expensive parts of this project, including a more affordable RTK module…

    That will be covered in the next part of this series. In the meantime, I created a read-only Discord server that will be the main update to this project before blog posts.

    Useful links:

    SkyBrush FAQ https://doc.collmot.com/public/faq/latest/index.html

    “How I Build Custom Light Show Drones…” https://www.youtube.com/watch?v=qBjRaalXJmY

  • Enhancing Impact with Screenshots and Animations

    Enhancing Impact with Screenshots and Animations

    Something I’ve learned is that editing short clips (social media videos that are usually limited to 60 seconds) and inserting screenshots to get your point across effectively is hard. And after I’ve played around with a few different methods in attempts to improve that, I think I’ve significantly improved it.

    Last week, when I was working on editing a clip, I decided to experiment with screenshots; this time around, I tried an “on-screen look.” Instead of just slapping an image full of small text, I used a couple of really cool features in Premiere to animate, blur, and highlight the text to bring focus to the actual important part.

    Here are examples of a video that has editing and no editing of the screenshot:


    In the second example, I added a bunch of extra effects to get across the focus of the screenshot. One of those changes that I had never used before was the “Basic 3D” effect; it adds that tilting/pan animation, which really emphasizes the “on-screen” effect.

    Some more minor changes were the blurs. In the background, I added a stock photo of the topic (in this case, a girl crying) and some blur to blend it into the background. Another blur that I added was around the headline. A simple “Gaussian Blur” with an inverted mask did the trick. The highlighting effect was also done by simply keyframing two orange blocks with the opacity set to “Multiply,” which blended the colors, instead of just turning down the opacity for a transparent look, which would work just not as clean looking.

    Most of this I learned from a handy tutorial video by the channel Storysium. Which brings me to my next point:

    It’s easier than ever to start Video Editing

    The great thing about video editing is that almost everyone needs to do it. Thus, there are hundreds of thousands of tutorials on basically any way to edit. And all for free on YouTube. Most of my learning has been from just watching shorts, or other videos in which I see someone do a really cool effect, and then I look up or try to replicate that myself. I myself am still learning stuff, and I think I can still improve many aspects of my editing, but with the free use of YouTube and many people willing to share their presets for small prices, it’s a quick process to get started with video editing today.

  • 3D Printing an RC Plane

    3D Printing an RC Plane

    I spent about three weeks working on 3D printing an RC plane. I had initially searched for a somewhat easy RC plane to print and assemble as I’ve never had any experience with RC vehicles in general. I eventually found a good model that was both free and looked simple enough for me to be able to print. The model I ended up with was the Piper J-3 Cub by 3DLabPrint; 3DLabPrint is a Czech Republic-based company that designs 3D printable RC plane models. They have a bunch of options to choose from when it comes to RC planes.

    It took me about three weeks from starting printing to assembling electronics and crashing flying; I went with Polymaker LW-PLA, as they had a summer sale when I purchased; you can get a roll of plastic (and support me) by clicking here.

    3DLabPrint recommends their plastic, but the shipping would have been pricey as they are located in an overseas country. But there is a difference between PolyLight (3DLabPrint brand) and PolyLite (Polymaker brand). Polymaker prefoams the material, which makes it easier to print as it has very similar properties to regular PLA, and thus, I was able to print it at my stock PLA slicer profile. 3DLabPrint’s LW-PLA is not prefoamed and requires more tuning to compensate for expansion and other variables when it comes to printing.

    For the first couple of parts I printed, I hadn’t gotten the printer’s slicing profile correctly; for example, I accidentally added two bottom layers and two top layers, which I don’t need for this model as specified in the instructions. 3DLabPrint provides extensive instructions on how to assemble and prep your printer before printing. But after some trial and error, I got the slicer settings down and printed the rest of the parts. It took me about a week to print and assemble all the details, but I didn’t purchase the electronics till later in the following weeks.

    In total, I spent about 68 hours of just printing. That also includes any mistake prints and or extra parts, or multiple of the same parts, and other materials printed like the landing gear and tires. All the pieces were printed on my heavily modded Ender 3; I believe a stock Ender 3 (or similar-priced printer) should be able to print this material just fine. I would advise printing in 1.15 extrusion multiplier (or flow) in your slicer and printing a bit lower temps, at about 195°C for the hotend.

    If you don’t have a 3D printer, I recommend a Sovol SV06 for a cheap option or a Bambu Lab P1P if you want to go for a more quality and hassle-free brand.

    At first, I ordered the wrong parts; the ESC was made for drones and hadn’t come with a 5v line that was standard for RC planes. I returned it and got the correct one. (List of my configuration below)

    (affiliate links)

    The only problem now is that I have no idea how to fly an RC plane. I watched a couple of videos to check I got the directions right and propellor was working correctly, (thanks to the folks in PW3D’s discord channel, I could ask noobie questions and get informative answers.)

    I tried to fly and crashed it almost immediately, which I believe is due to user error and not a design flaw. At the moment, I need to repair it and attempt another take-off again. I can say I got it in the air (6-9 feet at least) with 75% throttle but had not correctly lowered the throttle, and it came straight down, cracking the wing assembly and a couple of other parts of the main body.

    Crashed RC Airplane

    Crashed on Aug 19th, 2023

    That’s been my experience so far on 3D printing an Airplane. If you have any questions or thoughts, leave them in the comments box below, and I’ll get back to you.

    *Disclaimer: Most products linked are affiliate links and will support me if purchased through them.

  • Optimize Invoice Management with Google Sheets, Make.com, and Monday.com

    Optimize Invoice Management with Google Sheets, Make.com, and Monday.com

    Last week I went down a slight rabbit hole while trying to figure out if it’s possible to create an automated invoice generator using Monday.com with Google sheets. Which was surprisingly more difficult than I thought.

    Originally this whole tangent started with following my brother Gideon’s tutorial on how to create automated invoices using Monday.com, the primary function was the following:

    Make.com integration with Monday scenario

    When a button is pressed inside monday.com, the invoice generation process starts:

    • First, it pulls information on the invoice, including the Name of the invoice, invoice number, etc.
    • Second, it gets the customer info, such as Name, address, email, and phone number. (Which pulls from a separate list on Monday)
    • Next, it grabs the list of subitems; in this case, subitems on Monday will be the items ordered on the invoice and renaming all of the information into variable names, making it easier to pull from later.
    • It uses the “{{VARIABLE}}” tag, which registers inside of make.com. Then it creates a Google doc from a template I started at once. It uses Google Documents and downloads a copy as a pdf. Then it inserts it into monday.com onto a predetermined column.
    • Once all of that is done, it updates the status in monday.com to indicate it ran successfully, then deletes the original Google doc so as not to take up space inside your Google storage.

    This is all done within 10 seconds, excellent, and well organized. Most of it runs pretty well. The setup process is pretty self-explanatory when creating it and relatively efficient.

    invoice output
    invoice input template

    The only downside is that admittingly isn’t even that bad. If any items are not filled in, the slots will be blank. If you had two things and there were six slots, there would be four extra empty rows, which can be annoying but isn’t detrimental to the functionality of this invoice.

    A reason why you can’t have make.com automatically delete extra rows is because of the Google API for Google Documents. Currently, you cannot add HTML straight through Make. But a platform that you can edit easily through Make is Google sheets. Google sheets work on a row-by-row basis, as you can delete whatever row you want specifically. Since naturally, it isn’t in.pdf format.

    An issue with using Google sheets is the formatting. Naturally, Google sheets don’t have its file type, nor does it default to pdf when you export (although you can choose to export to pdf.) This wasn’t easy to figure out. For one, I got a download link to my spreadsheet, and when you went to it, it started a download. But two issues; Monday’s “upload a file” module did not support using links to insert files into their columns, the second issue is that the file was only downloadable to those who had permission to download it; I could set it as “public” manually but not automatically. So if Make tried downloading it, it would deny its request due to invalid authentication.

    It took a lot of time to Google and research different ways to save a file automatically. I ended up asking in the make.com forum. I then got a response a couple of hours later.

    You should use the “download file” module of the Google Drive application and toggle ON the advanced settings and select convert file to pdf. This way you can use your PDF downstream in your scenario without making your document public.

    In this case, I would need to use the “Google drive” module, which takes more work to set up when using personal accounts (as listed in the documentation.) But once it is set up, it works amazingly well. Very simple when uploading to monday.com from there.

    Next was figuring out how to delete the rows and how many to delete. This was a more straightforward task. I used two math modules, one with the following formula:

    The formula for the first math module

    This calculates what row to start deleting by using the number 11, the row at which the spreadsheet item list starts. “___IMTAGGLENGTH___” is a value that contains how many subitems there are (or, in this case, items for the invoice.) If there were two subitems, it would output the number “13” I then use this with a “delete a row” spreadsheets module, which deletes the row “13” (or whatever the math output is.)

    Next is another math module that uses 23 (the ending row number of the spreadsheet’s item list) and subtracts it from the previous math output. Using the last number example, this calculation would be 10, indicating to delete ten rows (there are 12 rows total in the spreadsheet)

    second math formula module

    and finally, the actual deleting module setup. Which consists of a “repeater” module that will repeat any action after as many times as you want, in this case, 10. Which I set to be the output of the second math module. After the repeat module is a “delete a row” module that deletes the row that the first math problem generates, it would delete row “13”, but since it is inside of a repeating function. It deletes rows 13 and 10 times. Since Google sheets work in a way when you delete row 13, the row after becomes row 13, thus when deleting row 13, 10 times. This I found to be the most efficient way, as there is no way to delete multiple rows in the “delete a row” module.

    Final module setup

    You can see the final result in the video below: