-
Whoa success! I managed to send audible voice msg from t-deck #reticulum to MeshChat. Three days struggle 😭 The culprit was the tight loop of screen refreshing, keyboard poll, LoRa poll and i2s mic capture. It turns out esp32 core was skipping bytes from the mic which caused the codec to encode partial voice, causing inaudible msg. I gave preference to i2s bus and now the msgs are good enough and go over LoRa to meshchat successfully. Now i have voice and image transport on t-deck!
-
I spent all day yesterday (I shouldn’t have): 1. Trying to resolve microreticulum transport issue. I can’t test/fix properly unless I reduce the dbm of tree nodes and simulate network and not going up and down the roof all the time; 2. Tried to implement voice msg in t-deck #reticulum micropython firmware. I got the receiving part ok on codec2 3200, but can’t make it send proper voice. There’s some weird math going on which I can’t fix right now. I suspect the mic capture quality is bad.
-
Damn, I got kicked in the balls by #reticulum’s Mark Qvist himself 😂 I was playing with MeshChatX and it never occurred to me that images send by reticulum chat apps are in Webp format. This means I have to implement decoder for this format for micropython (or C) and to be small enough not to choke the microcontroller. Esp32s3-cam has native jpeg and I already decode this on t-deck ok. So Mark says JPEGs are obsolete and chat app should’t support it (at least for sending)
-
I guess i need to read a bit more for #reticulum mode gateway and mode boundary, which apparently can isolate segments of the mesh. What i found is that it’s not good idea to put mode full on LoRa interface and suck all TCP traffic into the Lora mesh.
-
2. Afaik there was no guard in microreticulum firmware, so once the flash was filled in, the routes are not saved, announce cache is not saved
3. This causes ping-pong of own announces between transport nodes, filling up the air, before the #reticulum dedupe threshold is triggered.
4. I’ve put a guard to delete old cache files once the the free space reaches 25%The joy of experimentation and going up and down the roof few times 😂
-
When I’ve put up #reticulum nodes out in the wild and the (LoRa part) network grows, some problems start to surface, mainly due to hardware constrains. It turns out nrf52840 based nodes are good for battery efficiency, but the insufficient flash, is kind of bummer. The problem was
1. routing is saved on the flash - 1 file per heard node. However LittleFS works with 4kb per block, which means we are wasting precious space as most of the block is empty. So the free 76kb is exhausted really fast -
Second try with solar #reticulum transport node - this time a bit higher on the chimney. Current path: laptop TCP -> RPI with Rnode and TCP (transport enabled) -> solar transport node (modified microreticulum firmware). Good passthrough for announces to a 1km away second solar node, but can’t get msg past that first solar node. The first solar node itself replies with battery status. I guess i need to refresh the second solar node with the last modifications/fixes.
-
Going beyond the home lab, today i put up 2 more #reticulum transport nodes with modified #microreticulum firmwares (responding with battery % on msg). I managed to get messages through from about 7km away with 3 hops over LoRa and 1 TCP interface. Obviously the ultimate goal is to send an image at that distance, I but need to fix some bugs on the t-deck firmware because it failed me.
-
I’ve added jpeg view on the #reticulum t-deck #micropython chat app. Looks so cool 😁 I have to make a video about this. Basically when t-deck sends “image” keyword to the camera node, the former gets back a camera capture and can show it on the screen. I do some centering and resizing to fit it on 320x240 on the deck’s screen. Again, for the sake of speedy jpeg decoding, I compiled a C module with micropython bindings.
-
@nodestar umm i’d revise this statement “Reticulum to run on hardware that Python never could reach.”. Have a look at my #micropython implementation here. It’s a working implementation on esp32s3 and rp2040: https://github.com/varna9000/micropython-reticulum
-
I fixed the bug! As a result of the efforts 3 major #reticulum micropython improvements:
1. Added IFAC support - now node can join password protected interfaces
2. Implemented the cryptography modules in C with #micropython bindings with fallback to native module The result on this is mind blowing: complete decode chain reduced from 3 sec to 75 ms!
3. Camera works! You can select quality and resolution of the image. I’m still to test over LoRa but on TCP receipt it’s almost instant.
-
Whoa #reticulum #micropython #camera ! It’s working! Currently testing TCP interface only. Also a bug i need to go around - if MeshChat tries to initiate Link, the confirmation packet from esp32 doesn’t get the confirmation, so MeshChat keeps retrying. However if I send opportunistic msg, esp32 initiates the Link and the image gets sent successfully. Good progress anyway 🥳🎉
-
Guess what I will be trying with #micropython #reticulum next 😁
-
New updates of the rnsd-menubar #reticulum #macos app. Searchable, clickable #nomadnet lists which open the pages. I think I’ll leave this app like this. No need to re-invent MeshChat. Chnages are uploaded to GitHub: https://github.com/varna9000/rnsd-menubar
-
I've implemented imperfect rns:// scheme into MacOS rendering #reticulum #nomadnet pages through rnsd-menubar app. It basically converts micron to html, so it can be shown on the browser. Unfortunately I can’t open rns:// in the same tab I type the address - it has to be a new window - but it’s still Safari. This essentially can enable putting rns:// links in regular html pages <a> tags and if you click it will open the nomad page in new window.
-
ok I'm leaving this flaky #nomadnet #reticulum setup on for few days. If anyone wants to test it try connecting to tcp interface rn.varnatransport.com:4243 The node announces itself every 5 minutes so you should see it and then you can open the page.
-
Just added particle sensor sds011 to the #micropython #reticulum firmware. On the image below you can see a #nomadnet page showing both bme280 and sds011 readings. I need a custom PCB to get rid of these jumper wires 😁 The lxmf node example can also return the value of the sensors, when it receives keyword “sensor”.
-
Trying e32-900t20d lora interface with #reticulum on #rp2040 board. SDR catches the announce burst but on the other side it seems my FTDI adapter is dead. Cant receive or transmit even with raw serial ( I should with these modules)
-
Right. The #micropython #reticulum port is getting actually quite usable. With addinng direct link messaging and file transfers, we can actually:
1. Put a stand alone #nomadnet page on an esp32s3 microcontroller,
2. Connect some sensors to it and put it into a solar powered enclosure
3. Fire up the LoRa radio chip
4. Put it up somewhere on a high treeand you can serve information pages with files (even camera pictures or sound recordings) and live sensor data over LoRa purely off grid!
-
I need volunteers for a test. I’m hosting #nomadnet #reticulum page on my experimental micropython esp32s3 node. Could you connect with nomadnet capable browser (MeshChat would do fine) with a tcp interface to rn.varnatransport.com:4243 and see if you can load the page? On the page there’s a link with mp3 - easter egg message (2kb) 😁 The page is hosted on the esp32s3 itself (below). I’ll leave the node online for few hours to see if it’s stable with more than one link (me).
-
Latest changes (mainly #Nomadnet node for page hosting and bug fixes) uploaded to the repo: https://github.com/varna9000/micropython-reticulum
-
After some more testing, I could load #nomadnet #reticlum page over LoRa. The page is hosted directly on the esp32s3. I made also dynamic loading of the bmp280 sensor data 😄 If you just run normal node, the example node responds to “sensor” keyword and echoes back the sensor data. So either works fine on all three tested interfaces - TCP, UDP and LoRa (Rnode).
-
Now it’s quite easy to hook bme280 via i2c and show sensor data on #reticulum #nomadnet page, just using standalone esp32. No additional hardware needed. The page is served off the esp32 with #micropython
-
I’ve managed to tweak the config and compile #reticulum #rnode firmware for the Heltec Wireless Stick Lite v1. It’s not officially supported but it works. If someone is interested, I can upload it to GitHub for public use.
-
Got my first #splitkeyboard today and I’ve started putting the caps on. I bought them separately and I didn’t realize until that moment that a) I have to buy small keycaps for some of the special keys and b) my key chord muscle memory has to change drastically! Also how do you #emacs users do C-x on split keyboards? I used to press X with index finger (not touch typist) now I have to do it with ring finger I guess. It’s going to be an adventure.
-
I can now send #meshtastic message over LoRA radio by talking to my phone. Apple doesn't want to support Bulgarian as dictation languages, so I made a #shortcut, so when I speak to Siri in English it makes a get request to Google translate and returns the text in Bulgarian, then it sends it via Mestastic app to the network. Perfect workflow when driving and want to message the local network.
-
I have significant document base in the cloud storage which I want to index and be able to search through on my #macos without downloading the files locally. Is there any third party (preferably OSS) solution to do this. Bonus points if it integrates with #spotlight #Search #indexing
-
Well fuck! Can’t be more classic mistake - swapping tx and rx! Cutting traces and bodging the tx( the one I really needed) fixed but .. brand new pcb ffs. #meshtastic #uart #RaspberryPico
-
It was quite annoying I couldn’t use `set-mark` and delete with Backspace in #iterm2, just like I do in #emacs. Normally with #zsh you can only copy the selection. I’ve just found about ZLS widgets, with which apparently I can achieve this functionality and be consistent with my Emacs editing workflow. I’ve made a public gist with the code you need to add to .zshrc, if you, like me, are using backspace to delete selections. https://gist.github.com/varna9000/528829e1bbaccf4745e80f24be145837
-
New addition to my #meshtastic solar node #enclosure. I've put a hole for magnetic waterproof usb port at the bottom of the box. This way, when I need to re-flash or reset the node I don’t need to unseal the whole box and take it off the tree 😁 Also, I’m making side licks for first time, so hopefully they work as intendend
-
Well, after experimenting few hours with #offlineIMAP, I find it unstable and slow. Moving to #imapsync (perl based) now, which has better Q&A and Gmail settings. Also it explains and handles Gmail IMAP quota, like 2500Mb daily download. Man, I’m so keen to get this data out of Gmail. Archiving email on #selfhosting is kind of frustrating, but satisfactory.
-
@[email protected] to be honest, I haven’t dug too much in chips other than the most popular ones - atmega, attiny85, esp8266/32 and now ch32v003. I’m doing electronics more on a hobby level. I’d go for rp2040, since #zeptoforth already supports it quite well and Raspberry Pi Pico board is quite cheap. If you want to build your own board I guess you’ll want to look what chips #zeptoforth or #Mecrisp Forth variants support.
-
🤯 It looks like I'm in some kind of weird exploratory state of obscure super niche topics. I’ve been reading and testing #forth language (#gforth) all day yesterday, for no reason. Then I decided to check if someone has ported it to another super niche microcontroller - #ch32v003, and it turns out someone has! https://github.com/gravitydiv10/ch32v003-forth on the top of that, the person looks like an #emacs user, judging by the org-mode file in one of their other repos and the posts in the Chinese emacs forums. 🤯
-
The f**ing Samsung scx-3405w works on MacOS only with driver for ML2070! After 2y gathering dust because the actual model driver doesn't work, an obscure reddit post finally solved the mystery. #printerdriver
-
Why does my Macbook Pro energize *every* time it passes through airport X-ray? It gives me shock when I pick it up from the tray. It’s suppose to be isolation coated! #staticelectricity #Airport #MacBook
-
I’m so hooked to this, that I feel I waste my time on project, instead of doing something to earn money. At least I’m learning C as I go along. I wrote the interface part of a simple wifi manager for my serial card for #apple2 in #cc65. It is suppose to talk to zimodem firmware on the esp8266 in a way that seems native to the apple2. #retrocomputing
-
I managed to rewrite my custom serial card firmware in #cc65 It’s way easier to work with strings in C compared to assembly. I had a minor hiccup with the pointers but I think finally got the grasp of them. Since I dont have any serial buffer but just one byte register, I found that using printf() with screen scroll actually cant catch up the serial speed. Using cputc() is doing well but no screen scroll. I ended up delaying the speed a bit on the esp8266 side and using printf(). #apple2
-
Another learning breakthrough :ablobcatrave: I’ve managed to write a small ca65 assembly program which prints text on the screen. I burnt it onto an EEPROM and started it from the #apple2 slot 5 with ‘pr#5’. It took me some time to wrap my head around how to make the memory map of the ROM but it worked and I’m so happy #retrocomputing #cc65
-
Just fixed my #cc65 boilerplate for #apple2 Now after compiling, the makefile inserts the new #ProDos image into Virtual][ emulator (MacOS) and “brun”s the project file. This speeds up the dev process quite a lot. #retrocomputing In case anyone needs it: https://github.com/varna9000/cc65-template-project
-
Can’t believe I managed to rewrite this in C #cc65 😁😁😁 Never touched ansi C before, only some Arduino and mainly Python. #apple2 #retrocomputing #LoRa #weatherstation
-
I think I got obsessed with #cc65 compiler. I abandoned all work until I made a C program for my #apple2 clone which reads a contemporary, but converted image from the file system and shows it on the screen. I'm not even a C programmer. #prodos #pravetz8 #retrocomputing