home.social

#picow — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #picow, aggregated by home.social.

  1. Finished building my new hardwired split mechanical keyboard this weekend! #3dprinted based on my own design, spray painted and powered by a pair of Raspberry Pi Pico W’s. Of course, it’s running my fave #keyboard firmware #KMK! Sadly #CircuitPython doesn’t yet support BLE on the PicoW so it’s not wireless yet, but I’m just counting down the days!

    (more details in the image alt text!)

    #olkb #splitkeyboard #ergokeyboard #mechanicalkeyboard #pipico #picow #raspberrypi #handwiredkeyboard

  2. Right, current status with all my mucking about with #Rust on #RaspberryPi #PicoW: yvan.seth.id.au/rusty-pico-w-c

    With all the hard work done by embassy, picoserve, and libscd — I can display some sensor data on a web page served by the PicoW... this has taken me at least 5 days. 😅

    It's a steeper learning curve than I expected!

    A bunch more work to do, but right now I really need refresh my Python knowledge. As ever it's hard to know what things to focus on in my limited time... I've got it boiled down at present to refreshing myself on Python and C++ whilst learning some Rust... with the goal of hopefully being able to prove my employability.

  3. Hurrah... my #Rust based #PicoW SCD40 CO2 sensor thing is working. Had a few gnarly problems, have some definite concurrency issues going on I think, I need to dig deeper into how the whole async/mutex situation in Rust/embassy works. But we were also self-DoS-ing as the sample HTTP code I started with had keepalives on, which just doesn't make any sense for this use-case. The moment I added the JS stuff it broke, turn off the keepalives: no problems!

    So now I have a page served by the Pico which has the CO2 PPM, temp, and humidity being updated every couple of seconds.

    This forms a base for adding further/different sensors and expanding on that, learning as I go, as always. Want to get the built in RTC working, and timestamp results, and store in flash with a bulk-get capability.

    And on the topic of flash, need to work out persistent configuration too.

    Fairly happy with that at day ~5 of using Rust for the first time.

  4. FUCKING A!

    I have a #Rust programme on my #RaspberryPi #PicoW that reads data (an u16) from a sensor and you can then get that data from a web request. HUGE ACHIEVEMENT.

    It has taken me like… a large chunk of three days… To get to this point from having code that reads the sensor and serves web requests. 😂 I feel like a moron. But hey, I've only been coding Rust for ~5 days. Probably taking the hard path by going straight into embedded with no::std…

    It has taken so many attempts to get to grips with scopes, mutables, Rust's bloody intense syntax, etc, etc… but in the end I've worked out a way to pass a u16 to both spawned workers via some sort of a Mutex. I think I might have an extra level of indirection I don't need… but fuck it, I'll take that I can do this at all as a win.

    Now I can take it outside (i.e. not USB-tethered) and see what it reads as an outdoor CO2 PPM measurement.

    (I could have had this working in C++ in… minutes, but no, I'm a masochist.)

    #embedded #embassy

  5. RIGHT. Fucksake! Arghhh...

    I have a solution to this, I do not like my solution to this, but it is a solution...

    I reverted my project to use embassy from GitHub again.

    I have then grabbed picoserve from GitHub and I have edited the relevant Cargo.toml to use the embassy packages from GitHub.

    An in my project Cargo.toml I have referenced my downloaded and modified picoserve instead of using Crates.io... because no matter what I try I cannot make this work using Crates.io packages.

    I have now successfully compiled the project modified to use picoserve, loaded it onto the #PicoW, and it runs and serves a "Hello World" via HTTP.

    #Rust #RaspberryPi #Pico #Embassy

  6. So, another #Rust #embassy #PicoW question.

    I started out with embassy examples and had a working thing that compiled and ran on a Pico W.

    But then I wanted to use picoserve and this ran me into some dumb looking dependency problems.

    I fixed that by following advice to remove the git entries from my Cargo.toml.

    However I then have a linker error, one that can be fixed by removing build.rs - but then I get a binary that doesn't work on the Pico W: "entry point is not in mapped part of file"

    I think that this is because build.rs was adding these linker arguments: -C link-arg=--nmagic -C link-arg=-Tlink.x -C link-arg=-Tlink-rp.x.

    Any one of these being there causes the linker error. I assume something is missing from what needs to be linked in, thus the "undefined symbol" errors. But WHY is this different with the only difference being getting the same versions of packages from git vs crates?!

    Edit: hacked a solution, see down-thread

  7. Today I successfully got #Rust code working for a #RaspberryPi #PicoW board! Not bad. All credit goes to the toolchains and projects... my efforts here are purely exploratory / discovery. My current status is I got some Pico / Pico W sample code working and then merged some samples together to form a foundation I'll build more code on top of. The merged code achieves:

    1. DHCP to local network
    2. Listen and respond to TCP
    3. Poke a GPIO (blink)
    4. Logging to USB-TTY

    The real TL;DR is: The embassy project seems to be the best starting point for Rust on a Pico W. (Not a Pico 2, this is an older RP2040 board.)

    The long version is: yvan.seth.id.au/rusty-pico-w.h

    #microcontrollers #pico

  8. I've hacked together a CircuitPython library to UART boot the RP2350. The two bin files it's uploading just cycle through the LEDs in different directions.

    I still have no RUN pin so I'm using one of my USB Power Switches to power cycle the board.

    #CircuitPython #RP2350 #RP2350A #PicoW #UARTboot #Electronics

  9. I kinda wish that #nabucasa / #homeassistant would officially adopt #wled like they did with #esphome so the project can get more dev resources (and finally bring Wled to the #raspberrypi #picoW )

  10. I think I've confused my poor #PicoW running #CircuitPython. It thinks I've pressed a reset button the board doesn't have 😆 (I shorted another USB port on the HUB).

    You are in safe mode because:
    You pressed the reset button during boot.
    Press reset to exit safe mode.

  11. Kamarád mě poprosil o PWM kontroler na ventilátory do racku, který bude schopný se připojit k #HomeAssistant.
    Koncept by byl. Otestoval jsem připojení k HA a základní výstup ovládání. Ještě mi zbývá vyzkoušet zapojení na nepájivém poli a pokud to bude fungovat, tak objednat tišťák. Samozřejmě k tomu ve finále přibude i nějaká krabička 🙂

    #KiCad #Raspberry #PicoW #tinkering

  12. This is a story about how a flaw in PCB design can severely impact network performance, especially with the #RaspberryPi #PicoW.

    Below are some pictures (apologies for the quality) showing two versions: the production revisions (in white) of the @sidecartridge and a new prototype in development (in black).

    The production versions adhere to the Raspberry Pi engineers’ PCB design guidelines for optimizing network performance using the Infineon CYW43 WiFi and Bluetooth chip on the #PicoW. These devices are able to detect several WiFi networks in my area, including my own—CHISMEROUTER_RPT, 4 meters away, and CHISMEROUTER, 20 meters away behind walls.

    In contrast, the prototype deviates from the recommended design and includes two copper layers directly under the #PicoW, which is a significant error. As a result, the device’s performance drops dramatically, barely detecting any of the nearby WiFi networks.

    Is this prototype viable? Clearly not. However, despite the poor network performance, it’s a valuable part of the learning process. It’s helping me redesign the @sidecartridge Multi-device network stack to handle low-quality connections better. As expected, some users blame the device when they experience weak WiFi signals. The @sidecartridge aims to address this, and I’m working on it.

    BTW, the pictures are from the forthcoming firmware release v1.0.0

  13. Pimoroni just released a WiFi enabled pico2 plus, beating raspberry pi to wireless rp2350
    shop.pimoroni.com/products/pim

    A touch expensive at £16.80, but ordered one !

  14. The next days I will upload:
    #RunCPM Update v6.6 for
    RPi #Pico & #PicoW
    #TTGO #VGA32
    Windows 32bit & 64bit

  15. So for what it's worth while the family have been away my "recreational" evening hacking has been to create an #ultrasound depth sensor in #micropython on the #picow: github.com/stsquad/mp-depth

    I've done my best to ensure well formed #bluetooth #ble packets have gone out but my phone monitoring tools seem confused. However I think the next thing I need to check is my bluetooth proxy is picking up the packets.

  16. Well I think I have the #picow broadcasting some #bthome #bluetooth #ble advertising packets but so far #homeassistant isn't seeing anything. I might have to enable the #android debug settings to see the data in my snooping app. Although I could also take advantage of the piece and quiet and watch an old TNG episode. Choices choices...

  17. Well I think I have the #picow broadcasting some #bthome #bluetooth #ble advertising packets but so far #homeassistant isn't seeing anything. I might have to enable the #android debug settings to see the data in my snooping app. Although I could also take advantage of the piece and quiet and watch an old TNG episode. Choices choices...

  18. Well I think I have the #picow broadcasting some #bthome #bluetooth #ble advertising packets but so far #homeassistant isn't seeing anything. I might have to enable the #android debug settings to see the data in my snooping app. Although I could also take advantage of the piece and quiet and watch an old TNG episode. Choices choices...

  19. Well I think I have the #picow broadcasting some #bthome #bluetooth #ble advertising packets but so far #homeassistant isn't seeing anything. I might have to enable the #android debug settings to see the data in my snooping app. Although I could also take advantage of the piece and quiet and watch an old TNG episode. Choices choices...

  20. Well I think I have the #picow broadcasting some #bthome #bluetooth #ble advertising packets but so far #homeassistant isn't seeing anything. I might have to enable the #android debug settings to see the data in my snooping app. Although I could also take advantage of the piece and quiet and watch an old TNG episode. Choices choices...

  21. I just printed out this case on my -Mini printer. I was using their Basic PLA White filament.

    Code and case design from

    instructables.com/Pico-Unicorn

  22. Just setup my to work with ! Now I can intergrate it with my PC Desktop RGB!

  23. @themagpi Finishing off my pair of Farnsworth's ( from Warehouse 13 fame.)

    They can talk to each other with both audio and video, either both on the same network or externally via a python "Strowger" server (I decided against calling this Exchange) over UDP

    Each contain a PI #PicoW a Circular display, microphone, speaker and a camera

    Details on the build extremeelectronics.co.uk/farns

    @Raspberry_Pi

    #MagPiMonday #rpi #RaspberryPi

  24. @themagpi I've been slowly checking a design for an event/temp/humidity logger. The #PicoW should spend most of it's time powered off until the RTC/pin change wakes it. At the cost of a few uA (and £) I'm using an I/O expander to record what changed/woke it so reading GPIO isn't a high priority after power up which should make the code a little easier.

    I also bodged up a 3 to 4-pin cable to repurpose the I2C port for UART "print" debugging when it's on battery 😇 .

  25. Does anyone know of a very budget friendly #servo driver board for use with a #raspberrypi #picow and 2 very small RC #servos?
    I'd not have access to any other power sources outside of the Pico's USB

    Or can I just wire them to the board?

  26. Well I've gotten the #embassy #rust example running on my #picow and connecting to the network. Now I need to choose a #nostd #mqtt library to do the integration with #homeassistant

  27. …got everything working! Wrote a quick web server in MicroPython to serve the pm25 measurements from the sensor. But not only that, the @Raspberry_Pi #PicoW fits neatly inside the #IKEA #Vindriktning, and then it all closes up cleanly. Pretty pleased with how things turned out!

  28. Well that all ended up a bigger project than intended, but finally releasing my #GalacticUnicorn clock, which includes a mounted drive so you can configure your WiFi details.

    Still more things to add, but overall a fun exploration of the #PicoW C SDK.

    github.com/ahnlak/uniclock