RyanDiLorenzo-U04JGJN2B40

RyanDiLorenzo-U04JGJN2B40

0-day streak
https://scrapbook-into-the-redwoods.s3.amazonaws.com/97583431-c33f-4344-a252-cd50c9ba1821-image.png
slack emoji
summer-of-making emoji
[reposting because hakkun was down] I embarked on a LORA journey a failed miserably, but in process learnt so much about communication protocols like SPI and I2C on a ESP32. A few months ago I had a "vision" for using LORA for off-grid communication after receiving my inspiration from The Trail projects and the Helium Crypto Miner which also uses LORA. I took a look at LCSC and managed to find one of the cheapest LORA modules called the LLCC68 at the low end of 4$ USD per module which is cheap in comparison to the 10$ of more popular chips that do the same thing. I thought to myself, this was amazing, I can't wait to bring cheap LORA into the technology ecosystem and have everyone using it. Boy was I wrong. After receiving a pouch of the 10 LORA modules on a breadboard, I thought to plop it on a breadboard connect some wires and have it hooked up to the ESP32. But noooo, the module uses smaller and less common 1mm spacing for it's pins instead of the common 2.54mm, devastated as I was I designed a PCB to allow me to adapt it as seen in the photo. I got the PCB, soldered it to the module and using some test code to see if it could communicate it with, nothing. After hours of troubleshooting I realised I had flipped one of the pin headers on the PCB so the traces were incorrect, 🤦‍♂️ . I fixed the PCB, ordered another, it came and I tested it. The test code sort of worked and it recognised that something was there, so I went to find the actual code that would allow me to communicate with it. This is where majority of my time was spent sorting through code and changing parameters to make it work with my module. I looked at several Arduino libraries for a ESP32 and my specific LORA module, and I went with trying RadioLib and EByte_LoRa_E220_Series_Library. Immediately with both and other libraries, I had trouble communicating with the module once again, I had checked everything, the wires, solder joints and hardware I was using. After reading a lot of forum posts and threads online using the ESP32, it was the pinout. The ESP32 has 2 serial peripheral interfaces, VSPI and HSPI. VSPI being considered default and more commonly used. I just kind of assumed all these libraries would use VSPI unless they specified otherwise in their documentation. Looking through the library's code, I found a mention of HSPI and when I changed the pins to HSPI to reflect this, it worked, sort of. I had gotten a new error message (finally), invalid header: 0xffffffff , not much better than the last. The maintainer of the repo suggested I used a Logic Analyser to see if there were any issues with the module. There and then I bought and learned how to use a logic analyser and analysed the SPI pins for how they communicated. I found nothing useful with this but thought it was neat using the logic analyser. More research into using HSPI for the ESP32 turned up to be that when the MISO pin (pin 12) is set high, it changes something in the internal voltage regulator making it crash. I couldn't find a way around this other than changing a ton of code in that library for it to use VSPI instead. I gave up here, it's like trying to balance something without a centre of gravity to balance on. I feel this is absurd that something like this is so difficult to use. That's why the price was so slow eh? There are still many things I could try, different libraries, rewriting the SPI protocol, trying different microcontrollers, but I'm just not at that capacity right now to do that; which is why I am leaving it open to y'all. If you've read through my terrible no-good LORA journey, I will offer to ship you a LORA module and PCB free of charge assuming you're located in Canada for you to test yourself. Message me for details. Link to RadioLib Issue.
https://scrapbook-into-the-redwoods.s3.amazonaws.com/b82179f5-634d-4fba-b85a-85786e579b3b-image.pnghttps://imgutil.s3.us-east-2.amazonaws.com/b8ea914f660dac9b554f3f261f9bd643a5ec3d5b72c2ea131df07909f8230ccb/e7816d36-c1ad-48f6-a2f1-668b9f278d22.png
I embarked on a LORA journey a failed miserably, but in process learnt so much about communication protocols like SPI and I2C on a ESP32. A few months ago I had a "vision" for using LORA for off-grid communication after receiving my inspiration from The Trail projects and the Helium Crypto Miner which also uses LORA. I took a look at LCSC and managed to find one of the cheapest LORA modules called the LLCC68 at the low end of 4$ USD per module which is cheap in comparison to the 10$ of more popular chips that do the same thing. I thought to myself, this was amazing, I can't wait to bring cheap LORA into the technology ecosystem and have everyone using it. Boy was I wrong. After receiving a pouch of the 10 LORA modules on a breadboard, I thought to plop it on a breadboard connect some wires and have it hooked up to the ESP32. But noooo, the module uses smaller and less common 1mm spacing for it's pins instead of the common 2.54mm, devastated as I was I designed a PCB to allow me to adapt it as seen in the photo. I got the PCB, soldered it to the module and using some test code to see if it could communicate it with, nothing. After hours of troubleshooting I realised I had flipped one of the pin headers on the PCB so the traces were incorrect, 🤦‍♂️ . I fixed the PCB, ordered another, it came and I tested it. The test code sort of worked and it recognised that something was there, so I went to find the actual code that would allow me to communicate with it. This is where majority of my time was spent sorting through code and changing parameters to make it work with my module. I looked at several Arduino libraries for a ESP32 and my specific LORA module, and I went with trying RadioLib and EByte_LoRa_E220_Series_Library. Immediately with both and other libraries, I had trouble communicating with the module once again, I had checked everything, the wires, solder joints and hardware I was using. After reading a lot of forum posts and threads online using the ESP32, it was the pinout. The ESP32 has 2 serial peripheral interfaces, VSPI and HSPI. VSPI being considered default and more commonly used. I just kind of assumed all these libraries would use VSPI unless they specified otherwise in their documentation. Looking through the library's code, I found a mention of HSPI and when I changed the pins to HSPI to reflect this, it worked, sort of. I had gotten a new error message (finally), invalid header: 0xffffffff , not much better than the last. The maintainer of the repo suggested I used a Logic Analyser to see if there were any issues with the module. There and then I bought and learned how to use a logic analyser and analysed the SPI pins for how they communicated. I found nothing useful with this but thought it was neat using the logic analyser. More research into using HSPI for the ESP32 turned up to be that when the MISO pin (pin 12) is set high, it changes something in the internal voltage regulator making it crash. I couldn't find a way around this other than changing a ton of code in that library for it to use VSPI instead. I gave up here, it's like trying to balance something without a centre of gravity to balance on. I feel this is absurd that something like this is so difficult to use. That's why the price was so slow eh? There are still many things I could try, different libraries, rewriting the SPI protocol, trying different microcontrollers, but I'm just not at that capacity right now to do that; which is why I am leaving it open to y'all. If you've read through my terrible no-good LORA journey, I will offer to ship you a LORA module and PCB free of charge assuming you're located in Canada for you to test yourself. Message me for details. Link to RadioLib Issue.
https://scrapbook-into-the-redwoods.s3.amazonaws.com/2132ae04-630c-49b9-8b6d-192c5fcf398c-image.pnghttps://imgutil.s3.us-east-2.amazonaws.com/b8ea914f660dac9b554f3f261f9bd643a5ec3d5b72c2ea131df07909f8230ccb/bc796277-2ec6-4199-9676-afafa7f8484f.png
For the past few weeks now, I've been working on OnBoard's very own Grafana dashboard for statistics data of how it's doing as a whole. Tracking submissions, submission times, reviewer times and average grant values and more to know how to improve our strategy and make it easier for hack clubbers to get their PCB grants. It's made in Rust and fetches data from AirTable, HCB and GitHub APIs all while dockerized. It's my largest project dealing with APIs and JSON and I've learned so much throughout the process. This project singlehandedly introduced me Docker by creating my own docker image along with learning about Prometheus Exporters in Rust. I'm finally releasing a V1 stable and while it may not have all the data and be 100% bug free, I'm hoping people can use this project to make their own Grafana dashboards on other YSWS projects. See the Docker Image See the Code See the Dashboard
https://scrapbook-into-the-redwoods.s3.amazonaws.com/05b42077-9ae4-4837-972e-08037a3078df-image.pnghttps://imgutil.s3.us-east-2.amazonaws.com/8cf2c9c103d241d2681cccbac85a6bb29c7507b74c2d0fa56157e8531895434e/48fa2eab-b49d-49a3-9aa2-81460311cd1d.png
made this cool peliter cooler cooling contraption that might be going on my 3d printer motors to keep em extra cool for no reason :) I need to find a better way to mount the fan though….
spring-of-making emoji
3d-printer emoji
cooll-dino emoji
I'm working on my Svelte and Rust website today, I fixed the images on the site by moving the images into src/lib/images instead of /src/assets. Then I added a git commit section to show the latest commit it sees. My only issue so far is getting Rust to work on the browser, it works fine on localhost but not when I publish the site. It seems to be some issue with this github.com/tauri-apps/tauri-invoke-http
https://scrapbook-into-the-redwoods.s3.amazonaws.com/036a7559-17b4-4360-b653-9a04d497df44-image.pnghttps://imgutil.s3.us-east-2.amazonaws.com/ea107136d811aa39a1807ee2f835efc9b25074df1b5db757982c7771dd16a782/967709e3-57c0-4a1d-88e3-7b0b98e3a9e2.png
spring-of-making emoji
svelte emoji
rustlang emoji
github emoji
My Tauri Svelte app finally built! After spending hours yesterday fiddling with Cloudflare Pages build tools, then finding out I actually needed to build from Github Actions, then spending many more hours late at night yesterday and earlier today, I finally got it to build successfully!
https://scrapbook-into-the-redwoods.s3.amazonaws.com/33b3d279-14ee-46c7-b5a9-45bb77183f2d-image.png
spring-of-making emoji
github emoji
svelte emoji
I got the CH32V003F4U6 RISC-V microcontroller today and I wanted to program it with the USB protocol to make flashing a whole lot easier. To flash this microcontroller you need another microcontroller called the WCH-LinkE Mini. I plugged the WCH-LinkE flasher into my computer before installing custom drivers for it and got some cables to connect the flasher to the actual microcontroller. After this I tried to get the compiled binary file to flash after seeing they only have the C code, the instructions looked simple enough, just a simple "make build" command in the directory? I must have spent an hour and a half troubleshooting on why I was getting strange compilation errors and "SYNTAX ERROR IN LINE 502 OF FILE", it turns out that you have to copy another Github Repo's source code into a folder on the USB repo which contacts the C protocol file. Finally it compiled into a binary then I saw it wanted me to use the offical Wch-Link Programmer tool which I couldn't find a working website anywhere - the official website was down and there were no copies. I finally found and decided on using one built in Rust and after learning how to use the flash command, I kept getting the same generic "No microcontroller found". Another one and a half hours pass and on the readme file on the main repo, in small words it says to use the PD1 pin. Everywhere else I'd looked they said to connect to the SWIO pins or the UART pins and nowhere else said to use this specific PD1 pin only. At last, I finally got it to flash successfully, but upon connecting the USB-C cable right to the microcontroller, it wasn't showing up on Windows with the default pinouts. In the instructions though, it said to change the USB-C pin depending on what the microcontroller is connected to, seems simple right? Wrong, I purchased the microcontroller dev board off AliExpress and there was no mention anywhere of the pins or a pinout of where the USB-C data positive and negative lines are connected to. Not even any other github repos or anywhere had something that looked exactly as the PCB dev board I got. My next task is to reverse engineer the traces to figure out what exact GPIO pin the USB-C data lines are connected to, but this will prove to be tricky... Or maybe I can message the AliExpress seller but who knows when they'd reply. TLDR: It still doesn't work after all the issues I've had, the problem I'm facing now is the proprietary PCB I got from AliExpress which they won't post the schematic to.
https://scrapbook-into-the-redwoods.s3.amazonaws.com/d8d59c57-cac8-4622-8eee-231a0165f3d8-img_2127.jpg
pcb emoji
I wanted to use my Pine64 but kept running into a thermal runaway error because I didn’t have a powerful enough USB-C power supply; so I created my own using a 750W 12V HP Server PSU and a USB-C Trigger board. It will technically fry any USB-C device that doesn’t work on 12V so just don’t plug anything else into it…
https://scrapbook-into-the-redwoods.s3.amazonaws.com/b9bbc9f9-7d03-4244-945b-a355381c0348-img_2084.jpg
My cat's automatic litter box recently stopped working and it's around 300$ for a replacement which we were thinking of doing. I thought I could take a look at it and see if I could try to fix it. I initially thought the motherboard traces were corroded and not making contact so I tried to reflow the solder but no luck. The motherboard and microcontroller pre-installed had no documentation or help guides other than contacting the company to buy a replacement. I decided to try if I can use a Wemos D1 Mini ESP8266 microcontroller to control it, and after many hours (6) later I present to you a polarity switching circuit using 3 SPDT relays, a step-down buck converter to convert the 18V power from the built-in power on the cat litter to 12V the relays could use. Then after a lot of trial and error I found the perfect transistor (2N2222) in my transistor kit to convert the 3.3v logic levels from the ESP8266 to the 12v or something that the relays can use. Some of my trouble could be avoided if I used the correct DPDT relay modules meant for this, but this is all I had on hand. It's not quite finished since I still need to hook up the 2 sensors and 2 end stops to make it safe of course, but it's coming along and now the hard part is down. In the end, I'm going to open source a schematic design and order a PCB to contain everything.
https://scrapbook-into-the-redwoods.s3.amazonaws.com/c63630ae-8a1f-4ebd-887d-dbac2e06c161-img_1871.jpghttps://scrapbook-into-the-redwoods.s3.amazonaws.com/408057ff-4ea9-4133-aa42-73f6f7aa6b0e-img_1870.jpg
I had 2 IT people come from the school board to tell us how they hundreds of school networks across Ontario. They were nice and explained a lot, they were less in depth than I would have liked but that’s only because I know a lot already.
https://scrapbook-into-the-redwoods.s3.amazonaws.com/916b6dfc-43cd-45b5-83db-9344032ce9bd-img_1793.jpghttps://scrapbook-into-the-redwoods.s3.amazonaws.com/710cbd7d-c375-4f71-b517-da6264beecb0-img_1796.jpghttps://scrapbook-into-the-redwoods.s3.amazonaws.com/80e42d25-8e89-4b3d-9310-644b2604e7d9-img_1794.jpg
Finally had a chance and some money to replace my laptop's battery and thermal paste, it went from 46% wear level and in critical condition battery with a always thermal throttling CPU to a completely new battery with double the capacity and -25C with no thermal throttling.
https://scrapbook-into-the-redwoods.s3.amazonaws.com/60cbadf4-d9a5-4906-bf72-36763c4e501c-image.pnghttps://scrapbook-into-the-redwoods.s3.amazonaws.com/e75a38be-9d6d-476e-8ea2-9aa3fc690530-image.png
My LED light strip project is basically done, just in time for New Years Dinner! I used an open source program called WLED on a Wemos D1 Mini (ESP8266). I bought a 12V 50A PSU (overkill for 2 light strips) to power 2 WS2815 12V LED light strips (planning to add more). All I need to do is safety proof it by adding a fuse and wrapping everything in electrical tape, and it should be good.
https://scrapbook-into-the-redwoods.s3.amazonaws.com/ca77f6f6-f39a-4e5a-ad04-290b24f4b67a-img_0804.jpghttps://scrapbook-into-the-redwoods.s3.amazonaws.com/c10de418-032c-4886-90cb-a2d71a71bc92-img_0791.jpghttps://scrapbook-into-the-redwoods.s3.amazonaws.com/5d2f6e71-f5b3-485d-b07a-680be649134a-img_0805.jpg
wom emoji
yay emoji
Ardunio with a relay and boost converter to power many LEDs in series for a school computer engineering project.
I soldered RJ45 wiring to Arduinos cables for no specific reason and it works! Ignore the tablecloth burn by my heatgun.
https://scrapbook-into-the-redwoods.s3.amazonaws.com/a03bd31c-b748-4da6-8083-dbe49ce71300-img_0538.jpg
New sensor I setup to view the temperature inside my house, grafana.limeskey.com/inside. I had an issue with nginx because I have 2 sensors and didn't want to create a new subdomain. Instead I set it to send data to a path /device1 , which almost worked but nginx also forwarded that subdomain to Prometheus exporter translator which didn't like the path. After struggling, I was able to strip the path in my nginx config by doing this,
location /device1 {
    rewrite ^/device1(.*)$ $1 break;
    proxy_pass <http://192.168.1.100:9983>;
}
After some other smaller issues, it finally worked! My physical sensor supports TVOC, but the docker I'm using to make the data useful to Prometheus does not support TVOC. For a later date I might try to look deeper into this. hub.docker.com/r/timmy1e/airgradient-prometheus
https://scrapbook-into-the-redwoods.s3.amazonaws.com/74f38cf6-e5ef-46b1-a562-409195eefb9d-image.png
Just doing a random java project to gain experience working with math and for loops
https://scrapbook-into-the-redwoods.s3.amazonaws.com/31624555-29d1-42de-809c-39e2f2549a9f-image.png
java_duke emoji
I printed out my kernel logs to try to troubleshoot my kernel crash.
https://scrapbook-into-the-redwoods.s3.amazonaws.com/83116595-4be9-4e8d-9566-f36bc8b16f88-img_0282.jpg
After months of procrastination, I fixed the button issue on my website. It's only a small issue, but before the bubbles looked like they overlapped and it was very bad to view on mobile. I had 2 issues, my website would not deploy on Cloudflare pages because my node version was too old, I thought I had fixed this but it didn't work, turns out there was a small whitespace in my environment variable. Second issue with the buttons, I had just set a manual spacing option thing instead of having the flex box handle everything.
https://scrapbook-into-the-redwoods.s3.amazonaws.com/2132015e-0f29-4223-91ea-93ff9d0beedd-image.png
I setup a Arch VM on my NAS. Took 2+ days and lots of excruciating pain but I did it and now I get to brag.
https://scrapbook-into-the-redwoods.s3.amazonaws.com/50d6c3d9-7c57-46d6-b710-aa19c2bfd279-image.png
nice100 emoji
I have been trying to get better at Rust, so I created a small program to help me learn and practice coding. It's called PasswordLLM (bad name, don't ask) and it gives you various details about a password you enter into it. Look at the source code / run it here: github.com/VerisimilitudeX/PasswordLLM
https://scrapbook-into-the-redwoods.s3.amazonaws.com/8de681b6-d0e2-4f81-a997-2cacca1ce29a-image.png
I relocated my server into the Rosewill RSV-L4500U 4U Server Chassis, took approximately 3 hours and it was worth it.
https://scrapbook-into-the-redwoods.s3.amazonaws.com/a535c598-c3ae-4123-9b0c-436bbad5ec27-img_2102.jpghttps://scrapbook-into-the-redwoods.s3.amazonaws.com/88989e46-8020-4ba4-b98c-593476396f7d-img_2110.jpghttps://scrapbook-into-the-redwoods.s3.amazonaws.com/da3fa9e1-4628-44e0-a08d-d622b3786ffb-img_2107.jpghttps://scrapbook-into-the-redwoods.s3.amazonaws.com/71baff97-4b31-47b5-9856-8824117bc1cd-image.png
I am trying to setup my air quality sensor with Prometheus and Grafana but am having some trouble.. I will keep on troubleshooting!
https://cloud-89e481kdf-hack-club-bot.vercel.app/0image.pnghttps://cloud-5jm58mit2-hack-club-bot.vercel.app/0image.pnghttps://cloud-9il1l75gi-hack-club-bot.vercel.app/0image.png
wom emoji
This is the air quality sensor i'm doing by AirGradient, I decided to make 2 since I had extra parts. I had some trouble at the beginning and messed up a lot of the solder so now I have to take some components out and replace/re-solder them. It's a big challenge de-soldering anything because those copper pads are so fragile and just fall off. I have some extra parts so I should be ok. My friend told me I'm also holding the soldering iron on the solder too long causing some burns which I see. They both do work (have to flash a new microcontroller though) and most of the sensors show up which is great.
https://cloud-d95xz78om-hack-club-bot.vercel.app/0img_0714.jpghttps://cloud-8rcvzobi0-hack-club-bot.vercel.app/0img_0713.jpg
wom emoji
winter-hardware-wonderland emoji
I just installed and deployed a new 1TB Crucial P3 NVME SSD to hopefully fix my CPU IO Wait issue caused by a torrent docker container I have. It's been slowing down my whole system and I've been struggling with this problem for a long time now. So far looks so good and the issue seems to be gone. Let me know if you have any tips on how to better log processes with IO Wait, currently I've using some type of plugin called "IOTop" and I'm using Prometheus with Grafana to display the data.
https://cloud-5qzudfl5y-hack-club-bot.vercel.app/0image.png
docker emoji
wom emoji
winter-hardware-wonderland emoji
I am trying to make a almost-impossible to block Wireguard or OpenVPN server, here's a diagram of my solution of ways they can possibly block it. Let me know if you have more suggestions
https://cloud-p2xflsy2r-hack-club-bot.vercel.app/0vpn_config_pub_.jpg
wom emoji
https://cloud-6eietuth8-hack-club-bot.vercel.app/0image.png
wom emoji
https://cloud-4rwmgcicl-hack-club-bot.vercel.app/0image.png