home.social
  1. Whoa success! I managed to send audible voice msg from t-deck 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!

  2. 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 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.

  3. Damn, I got kicked in the balls by ’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)

  4. I guess i need to read a bit more for 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.

  5. 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 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 😂

  6. When I’ve put up 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

  7. Second try with solar 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.

  8. Going beyond the home lab, today i put up 2 more transport nodes with modified 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.

  9. I’ve added jpeg view on the t-deck 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.

  10. @nodestar umm i’d revise this statement “Reticulum to run on hardware that Python never could reach.”. Have a look at my implementation here. It’s a working implementation on esp32s3 and rp2040: github.com/varna9000/micropyth

  11. I fixed the bug! As a result of the efforts 3 major micropython improvements:

    1. Added IFAC support - now node can join password protected interfaces

    2. Implemented the cryptography modules in C with 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.

  12. Whoa ! 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 🥳🎉

  13. Guess what I will be trying with next 😁

  14. I have ported @scummvm to LilyGo t-deck ( esp32s3) And I have no cardreader to put a game to test it right now. Have to wait couple of days. 😭😭

  15. New updates of the rnsd-menubar app. Searchable, clickable 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: github.com/varna9000/rnsd-menu

  16. I've implemented imperfect rns:// scheme into MacOS rendering 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.

  17. ok I'm leaving this flaky 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.

  18. Just added particle sensor sds011 to the firmware. On the image below you can see a 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”.

  19. Trying e32-900t20d lora interface with on 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)

  20. I’m not sure why fucks up the sessions and the key codes every now and then. This is suppose to be Ctrl-x for exiting Nano/Pico on MacOs. If i restart the terminal/session it would work ok. anyone else experiencing the same?

  21. Right. The port is getting actually quite usable. With addinng direct link messaging and file transfers, we can actually:

    1. Put a stand alone 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 tree

    and you can serve information pages with files (even camera pictures or sound recordings) and live sensor data over LoRa purely off grid!

  22. I need volunteers for a test. I’m hosting 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).

  23. Latest changes (mainly node for page hosting and bug fixes) uploaded to the repo: github.com/varna9000/micropyth

  24. After some more testing, I could load 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).

  25. Now it’s quite easy to hook bme280 via i2c and show sensor data on page, just using standalone esp32. No additional hardware needed. The page is served off the esp32 with

  26. I’ve managed to tweak the config and compile 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.

  27. Got my first 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 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.

  28. I can now send message over LoRA radio by talking to my phone. Apple doesn't want to support Bulgarian as dictation languages, so I made a , 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.

  29. I have significant document base in the cloud storage which I want to index and be able to search through on my without downloading the files locally. Is there any third party (preferably OSS) solution to do this. Bonus points if it integrates with

  30. 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.

  31. It was quite annoying I couldn’t use `set-mark` and delete with Backspace in , just like I do in . Normally with 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. gist.github.com/varna9000/5288

  32. After two years of on and off the project, I sent the wifi card I’m designing. I put a ROM but it’s not fully wired as it should be. on the other hand should be ok, since it's tested on breadboard/protoboard. One more project close to be “finished”

  33. Trying dark theme on my . It looks nice and soft, but I’m already colour coded for Dracula. I hope it’s not too difficult to switch brain.

  34. New addition to my solar node . 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

  35. Archiving (really moving out of it) to a local server. And I see this: ETA: Saturday 11 October 2031-10-11 03:59:37 +0000 UTC 187823394 s 527170/574668 msgs left. Great only 6 years to complete the archive 😂👍

  36. Well, after experimenting few hours with , I find it unstable and slow. Moving to (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 is kind of frustrating, but satisfactory.

  37. After trying all free serial programs from AppStore, I’m convinced that good old (installed from homebrew) is still the best, most stable and feature rich interface for interactive serial communication with microcontrollers.

  38. @[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 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 or Forth variants support.

  39. 🤯 It looks like I'm in some kind of weird exploratory state of obscure super niche topics. I’ve been reading and testing language () all day yesterday, for no reason. Then I decided to check if someone has ported it to another super niche microcontroller - , and it turns out someone has! github.com/gravitydiv10/ch32v0 on the top of that, the person looks like an user, judging by the org-mode file in one of their other repos and the posts in the Chinese emacs forums. 🤯

  40. 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.

  41. 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!

  42. I wasted whole day today to rewrite the challenge in assembly. I feel strange satisfaction of the result 😂 The binary is almost 4 times less the size of what I’ve made in C lang.

  43. ok, so doesn't actually run bash upon start. If I run /bin/bash, all my usual environment is working.

  44. How to “source venv/bin/activate” in in through TRAMP ssh session? It doesn’t seem to find ‘source’. It’s highly specific but it’s annoying that I can’t do that.

  45. 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 in . It is suppose to talk to zimodem firmware on the esp8266 in a way that seems native to the apple2.

  46. I managed to rewrite my custom serial card firmware in 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().

  47. 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 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

  48. Just fixed my boilerplate for Now after compiling, the makefile inserts the new image into Virtual][ emulator (MacOS) and “brun”s the project file. This speeds up the dev process quite a lot. In case anyone needs it: github.com/varna9000/cc65-temp

  49. Can’t believe I managed to rewrite this in C 😁😁😁 Never touched ansi C before, only some Arduino and mainly Python.

  50. I think I got obsessed with compiler. I abandoned all work until I made a C program for my 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.