You are browsing as a guest. Sign up (or log in) to start making projects!

dankogranko

@dankogranko

Joined June 17th, 2026

  • 6Devlogs
  • 3Projects
  • 0Ships
  • 0Votes
high from soldering fumes
Open comments for this post

2h 29m 39s logged

Picoballoon - DEVLOG 4# 🎈
Hello guys!
I had litlle break last week, but im back at it. :cathello:

I’ve finally started to write my final micropython code for the balloon tracker. (hopefully) :D

I will copy and paste the code here. That way you can look trough it/correct me if needed. :)
(I’ve made a labels for each section)

So far code looks like this: :hackerbongocat:

#Some importing stuff
from machine import Pin, SPI, ADC, deepsleep
import time
import ucryptolib

#channels settings (frequency / spreading factor)

#There are 2 groups of channels.
#1. MIN_CHANNELS - Most important ones. One channel from each region. (in case of power saving mode)
#2. ALL_CHANNELS - All other channels for higher chance of being detected. (when power isn’t a problem:D)

#US spreading factor is set at 10, because of duty cycle limits.

MIN_CHANNELS = [
(868_100000, 12), #EU868 - 1.
(903_900000, 10), #US915 - 2.
(916_800000, 12), #AU915 - 3.
(923_200000, 12), #AS923 - 4.
]

ALL_CHANNELS = [
(868_100000, 12), #EU868 - 1.
(868_300000, 12), #EU868 - 2.
(868_500000, 12), #EU686 - 3.
(903_900000, 10), #US915 - 4.
(904_900000, 10), #US915 - 5.
(916_800000, 12), #AU915 - 6.
(917_600000, 12), #AU915 - 7.
(923_200000, 12), #AS923 - 8.
(923_600000, 12), #AS923 - 9.
]
#Delay between packets transmitions - radio stabilization

INTER_PACKETS_MS = 300 # 0.3s

#Transmition power set by voltage

POWER_HIGH = 16 #dBm 1.
POWER_MID = 14 #dBm 2.
POWER_LOW = 12 #dBm 3.

#VSYS Power levels

VSYS_HIGH = 4.0 #V
VSYS_MID = 3.3 #V
VSYS_LOW = 2.3 #V

#Time between transmitions based on the voltage level

SLEEP_5MINUTES = 5 * 60 * 1000
SLEEP_10MINUTES = 10 * 60 * 1000
SLEEP_15MINUTES = 15 * 60 * 1000
SLEEP_20MINUTES = 20 * 60 * 1000

#LoRaWAN ABP information from TTN console (fill in YOURS - I will replace them with 1) :-)

DEVADDR = bytes([0x11, 0x11, 0x11, 0x11])

APPSKEY = bytes([0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11])

NWKSKEY = bytes([0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11])

#MESSAGE number

FPORT = 1

#communitacion channel between Pico and RFM95W (SPI0) - it needs 3 signal channels (sck,mosi,miso)

spi = SPI(0, baudrate=1000_000, polarity=0, phase=0, sck=Pin(22), mosi=Pin(19), miso=Pin(16))

#Chip select pin (NSS/SS), reset pin, led pin)

cs = Pin(4, Pin.OUT)
cs.value(1)
rst = Pin(15, Pin.OUT)
led = Pin(25, Pin.OUT)

#RFM95W startup reset

rst.value(0)
time.sleep_ms (10)
rst.value (1)
time.sleep_ms(10)

#voltage measuring pin

adc_vsys = ADC(3)

#4 main tools for communication with RFM95W and voltage mesauring

#1. - write into RFM95W register

def write(addr,val):
cs.value(0)
spi.write(bytes([addr | 0x80, val]))
cs.value(1)
#2. - read from RFM95W register

def read(addr):
cs.value(0)
spi.write(bytes[addr & 0x7F]))
val = spi.read(1)
cs.value(0)
return value[0]
#3. - good nigt for the RFM95W (power save)

def RFM95W_sleep():
write(0x01, 0x00)
#4. - Measures capacitor voltage (calculates avarage voltage from 8 measurings - adds up all 8 of them, then divide them by 8 )

def read_vsys():
total = sum(adc_vsys.read_u16() for _ in range (8)) /8
#now convert raw 16bit number to voltage
return total * 3.3 * 3 / 65535

**Hope it will be readable somehow:D **
AI helped me only with minor things ( converting raw 16bit number, RFM95W registers)

0
0
5
Open comments for this post

2h 38m 2s logged

Picoballoon - DEVLOG #3🎈

Hi!

Yesterday I’ve finished the power and radio system.

Also decided to use foam cover instead of the 3D printed one. :agafoil:
Foam one weighs only about 9 grams and has better insulation for the components.

Testing the LoRaWAN connection :badly-drawn-radio:
I took a bus to the nearest TTN gateway. With the first testing code helped me Claude a lot, because my coding skills in micropython are pretty poor at this time. :D
I will lock myself in my room until I’m capable of writing it. (because AI micropython code pretty much screwed up the testing) :dumbass: - The radio was left on the default private-network sync word (0x12) instead of TTN’s public sync word (0x34). So the gateway never had a chance to decode it.

Instead got some basic MAC data from the gateway, at least i know the radio does work. :cat-chips:

I did look kinda funny with the laptop on the street tho. :)

0
0
18
Open comments for this post

1h 52m 14s logged

Picoballoon - DEVLOG #2 🎈

Hello!

These 2 hours i’ve been working on the solar power system, antenas, and last devlog. :sun-wx-67:

Why the solar system again? Because i screwed up first time making it. :sad-cat-thumbs-up: But nothing big. I have accidentally put the 2 supercapaticors on top of each other without isolation. :lightning-wx:

It was taking down energy so much, that at the end of the circuit was about 0.2 V, instead of 5V.
Now i soldered them next to each other. Everything is well isolated from now. :thumb:
Still need to wire them to the solar panel, but that will be easy.

Also wired two 7.5 cm copper antennas on the rf module. The 7.5 cm antenna length is a compromise across all three LoRaWAN frequency bands (EU868, US915, and AS923) 📡

Now the dilemma

Can i count time spent on the devlogs/repo as a project time? If you have any idea, please let me know. :)

0
0
20
Open comments for this post

6h 52m 13s logged

Picoballoon - DEVLOG #1 🎈

Hello!

This month i have been obsessed with picoballoons. :smile-hehe:

What is a picoballoon? ⬇️

Picoballoon is a helium/hydrogen balloon carrying light tracker beneath it. If you are lucky/build them correctly, they are capable of flying for couple of days/weeks in stratosphere. :earth:

They are equipped with long range radio transmitter 📻

I will be using LoRaWAN radio protocol (because I don’t have HAM radio license:D) It can send data packets on ISM band to a ground radio station.
(TTN gateway in my case)

I will further explain how it should work in further devlogs/README. 📎

Back to my logged hours. :smile-wx:

First hour

CAD design of tracker case in FUSION 360 (I will maybe not use it, because it is too heavy) I also printed it.

Rest of the time

Soldering hell :D
Accidentally broke 2 pads off on the RF module. (most important 2 :peace-and-tranquility: ) I had to desolder it and i need to replace it.
I didn’t test the solar power system yet. Hope it will work.

I didn’t record drawing the wiring, because I forgot to.

AI helped me by correcting my wiring scheme (I forgot some things while making it) :lol_emoticon:

I hope my english is readable, thanks for reading!

0
0
27
Open comments for this post

2h 17m 35s logged

Devlog 1 I cant play on drums… But i decided to build my own set of electrical drums anyway. :D . I got these piezoelectric 50 mm pads, some diodes, resistors and rasberry pi pico/arduino uno. . It will work by taking analog input from pads. Signal will process pico/uno, that will also act as a USB device. PC will then take the signal and turn it into drum sound. . You can take a look at my professional hand written wiring sketch. :) I have soldered and tested 4 of them so far.

2
0
41

Followers

Loading…