| README.md - brcon2025-hackathons - Bitreichcon 2025 Hackathons | |
| git clone git://bitreich.org/brcon2025-hackathons git://enlrupgkhuxnvlhsf6lc3fz… | |
| Log | |
| Files | |
| Refs | |
| Tags | |
| --- | |
| README.md (3058B) | |
| --- | |
| 1 # Seeed farm live at: nc bitreich.org 7000 | |
| 2 | |
| 3 Welcome Seeed Farmer! | |
| 4 | |
| 5 Let me show you the way around: | |
| 6 | |
| 7 ``` | |
| 8 ((( [] [] [] ))) .-------. | |
| 9 \ | / _[] ))) | | | |
| 10 ((( []__\ |/ / | | | |
| 11 _\\||_/ ((( usb-wifi----/=======/--------bitreich.org | |
| 12 /______/-----------usb-serial--/=======/ | |
| 13 '------' =======' | |
| 14 | |
| 15 ESP32-C3 boards Laptop doing SSH port forwarding | |
| 16 Connected on USB HUB | |
| 17 ``` | |
| 18 | |
| 19 For you that means visitting bitreich.org on port 7000 and you will | |
| 20 be given one gopher seed! You can use that tool to farm the seed: | |
| 21 | |
| 22 ``` | |
| 23 $ sh client.sh | |
| 24 MicroPython df05cae on 2025-07-24; ESP32C3 module with ESP32C3 | |
| 25 Type "help()" for more information. | |
| 26 >>> | |
| 27 ``` | |
| 28 | |
| 29 That's it fellow farmer! Nature is this generous, you just have to | |
| 30 bow down and put down a seed, you'll see a tree growing! | |
| 31 | |
| 32 ## Programming the farm | |
| 33 | |
| 34 Now you can whisper python runes to the tree, and it might grant | |
| 35 your wishes... | |
| 36 | |
| 37 ``` | |
| 38 >>> from network import WLAN | |
| 39 >>> from socket import socket | |
| 40 >>> # Connect to WiFi | |
| 41 >>> # Connect to Internet APIs | |
| 42 ``` | |
| 43 | |
| 44 Every seed has an IP address given by DHCP, with a port redirection | |
| 45 done on bitreich.org for it: | |
| 46 | |
| 47 - 192.168.66.3:70 is accessible from bitreich.org:7003 | |
| 48 - 192.168.66.4:70 is accessible from bitreich.org:7004 | |
| 49 - 192.168.66.5:70 is accessible from bitreich.org:7005 | |
| 50 - 192.168.66.6:70 is accessible from bitreich.org:7006 | |
| 51 - ... | |
| 52 - 192.168.66.123:70 is accessible from bitreich.org:7123 | |
| 53 - 192.168.66.124:70 is accessible from bitreich.org:7124 | |
| 54 | |
| 55 In this repo, you will find the scripts that make maintain the farm: | |
| 56 | |
| 57 - forward.sh - to maintain the port forwarding | |
| 58 - server.sh - that runs session.sh on every incoming connection on port … | |
| 59 - session.sh - that connects to the seed with python access | |
| 60 - client.sh - that's for you! run this and you can send python commands … | |
| 61 | |
| 62 ## Quick-start on MicroPython seed farming | |
| 63 | |
| 64 The seeds run https://micropython.org/ as a firmware! | |
| 65 | |
| 66 That way you can run python program directly bare-metal: python is your … | |
| 67 | |
| 68 There is a `example.py` that shows you how you can connect | |
| 69 to the farm WiFi and get outta here on the world wide gopher. | |
| 70 | |
| 71 Every time you connect to the farm with `client.sh`, you will get a new … | |
| 72 It will be completely reset using `machine.reset()` and you'll be having… | |
| 73 fresh new seed to plant! | |
| 74 | |
| 75 The seeds are boards called Xiao ESP32-C3: | |
| 76 https://wiki.seeedstudio.com/XIAO_ESP32C3_Getting_Started/ | |
| 77 | |
| 78 Here, you can use this page to understand how WiFi and network | |
| 79 handling works: | |
| 80 https://docs.micropython.org/en/latest/esp32/quickref.html#wlan | |
| 81 | |
| 82 Here, you can lookup the networking functions of MicroPython, | |
| 83 which use the same API as Python: | |
| 84 https://docs.micropython.org/en/latest/library/socket.html | |
| 85 | |
| 86 Here, you can see instructions to run a MicroPython simulator | |
| 87 on your desktop and connect to Internet with it too: | |
| 88 https://github.com/micropython/micropython/tree/master/ports/unix | |
| 89 | |
| 90 You will have a `micropython` program that you can run to test programs | |
| 91 that work just like on the seeds. |