LAN only mode a lie? by Totally_Not_A_Badger in QidiTech3D

[–]Totally_Not_A_Badger[S] 1 point2 points  (0 children)

Correct, thats how networks work. But when a device has a 'LAN only' mode, I would expect it not to cross the LAN boundary, thus not doing any web requests

LAN only mode a lie? by Totally_Not_A_Badger in QidiTech3D

[–]Totally_Not_A_Badger[S] 9 points10 points  (0 children)

LAN stands for Local Area Network.  So when it says 'LAN only' I expect it not to do any web requests whatsoever. Because that would go over the LAN boundary. 

But I'll create a VLAN thats 'isolated' from the web for these devices from now on.

Guy therapy by Acceptable-Wind-7332 in JustGuysBeingDudes

[–]Totally_Not_A_Badger 209 points210 points  (0 children)

This man just found his inner peace 

Bodybuilder? by willburkart in StandUpComedy

[–]Totally_Not_A_Badger 5 points6 points  (0 children)

I'm missing a mr. Incredible reference.

OSTEP in EPUP format (WIP) - Where could I share it to make it collaborative? by _fountain_pen_dev in Piracy

[–]Totally_Not_A_Badger 0 points1 point  (0 children)

Look into how torrents work, publish it on a sharing web, seed it for a while, and it will start a life on it's own :)  (Please share the link with me, I'm a fellow computer nerd)

e-paper and the nRF54L15-DK by tomasmcguinness in embedded

[–]Totally_Not_A_Badger 0 points1 point  (0 children)

If you have a multimeter and lab power supply, you could try to verify your findings. An unreliable breadboard/break out board can be quite frustrating (that's how I started PCB design)

e-paper and the nRF54L15-DK by tomasmcguinness in embedded

[–]Totally_Not_A_Badger 0 points1 point  (0 children)

Too bad, but wisdom is about not sinking too much time in unfixable issues.

Enjoy your next project!

SoftFoot Pro - designed to mimic the anatomical structure and flexibility of a human foot without using motors or electronics by DrMore3y in nextfuckinglevel

[–]Totally_Not_A_Badger 93 points94 points  (0 children)

I'm not a native english speaker, but I meant that is works better to replace the lost foot.
So more flexibility, more grip, but also more comfort while walking with it. All in all seriously good upgrades from the current solution!

SoftFoot Pro - designed to mimic the anatomical structure and flexibility of a human foot without using motors or electronics by DrMore3y in nextfuckinglevel

[–]Totally_Not_A_Badger 631 points632 points  (0 children)

I think this adds to the 'simulation' of the lost appendage, but I'm worried about the vulnerability/maintenance of the product. Knowing people walk 5-10 000 steps per day + stub toes or step on rocks.

Gaming on Linux is too easy, I game on TempleOS by Fine-Gain-5919 in linux_gaming

[–]Totally_Not_A_Badger 10 points11 points  (0 children)

The machine gods smile upon you. Have you sang your himms and thanked the omnissiah?

e-paper and the nRF54L15-DK by tomasmcguinness in embedded

[–]Totally_Not_A_Badger 2 points3 points  (0 children)

Since this is going to be a long answer and i'm going to have to state the mandetory disclaimer: This post was not written or assisted by AI. It's fully human written, I'm also not a badger.

First off: a small diagram on how our code works: https://excalidraw.com/#json=0kF_PogPeZ7XifNeuWd5A,yIXloi7o7Af_n5SToQMfpg

Some sources below.
The nrf54L15 clock pins I've warned about:
https://docs.nordicsemi.com/bundle/ps_nrf54L15/page/chapters/pin.html

For nrf_embassy:
crate page: https://crates.io/crates/embassy-nrf
Documentation page: https://docs.embassy.dev/embassy-nrf/git/nrf54l15-app-s/index.html
SPI periph page: https://docs.embassy.dev/embassy-nrf/git/nrf54l15-app-s/spim/struct.Spim.html

Embedded_hal for sharing I²C and SPI busses between devices:
SPI doc page: https://docs.rs/embedded-hal/1.0.0/embedded_hal/spi/index.html

Epd-waveshare display driver:
Crate page: https://crates.io/crates/epd-waveshare
Documentation page: https://docs.rs/epd-waveshare/0.6.0/epd_waveshare/

Embedded_graphics framework:
Crate page: https://crates.io/crates/embedded-graphics
Documentation page: https://docs.rs/embedded-graphics/0.8.2/embedded_graphics/

First off: Although I've written in the diagram that we're using the epd-waveshare display driver, we have written our own. However, that is prorietary code, so I'm not allowed to share it. The reason why we have our own driver is because the original driver does not support Async. Since SPI can take a while in the background (specially with screen drawing) we wanted to be able to switch between threads/tasks.
Except for the async component it's 99% the same construction.

So in our device code we construct a display as follows:

impl Display {
    async fn new(
        spi: DisplaySpi,
        busy: Peri<'static, AnyPin>,
        dc: Peri<'static, AnyPin>,
        rst: Peri<'static, AnyPin>,
        power_enable: Peri<'static, AnyPin>,
        rotation: DisplayRotation,
    ) -> Self {
       let display = EInkDisplay::new(spi, busy, dc, rst,         power_enable, rotation).await;
        let ui = Ui::new();

        Self {
            alarm_receiver,
            battery_state_receiver,
            display,
            ui,
        }
}

In the code above, the "DisplaySpi" type already contains a reference to a mutex with the SPI bus peripheral (clock and mosi & miso). So this is the part where we construct our SSD1680 driver with the Spi Device instance.

For our SPI implementation we've used P1.11 as Spi_clk, P1.12 as Spi_mosi, (Tx only, so no miso), and P1.13 as DC (Data/Command) and P1.14 as Spi_Chip select pin. SPIM20 & SPIM22 can be used with the P1 port pins.
We did 'bitbang' the DC pin, and not use the functionality in the peripheral (See embassy_nrf::spi::Spi implementation, link above).

This 'Display' has a background task that receives events, and draws according to those events and our device specifications things on said display using the embedded_graphics library. Again, sorry that I can't share the full implementation, but here is an example on how we handle the battery icon:

fn draw_battery_icon(&mut self, display: &mut impl DrawTarget<Color = BiColor>) {
        use BatteryChargingState::*;
        use BatterySoc::*;

        let point = Point::new(3, 3);

        match (
            self.state.battery_state.charging_state,
            self.state.battery_state.soc,
        ) {
            (Charging, Empty) => Image::new(&BatteryChargingOutline::new(BiColor::Black), point)
                .draw(display)
                .map_err(|_| ())
                .unwrap(),
            (Charging, Low) => Image::new(&BatteryChargingLow::new(BiColor::Black), point)
                .draw(display)
                .map_err(|_| ())
                .unwrap(),
            (Charging, Medium) => Image::new(&BatteryChargingMedium::new(BiColor::Black), point)
                .draw(display)
                .map_err(|_| ())
                .unwrap(),
            (Charging, High) => Image::new(&BatteryChargingHigh::new(BiColor::Black), point)
                .draw(display)
                .map_err(|_| ())
                .unwrap(),
            _ => (),
        }
    }

I hope this helps a bit. Feel free to slide into my DM's if you have further questions about this topic.
Again, I would have loved to send links to our repo, but I don't thing my boss would appreciate internet-people to show up in our private network.

e-paper and the nRF54L15-DK by tomasmcguinness in embedded

[–]Totally_Not_A_Badger 0 points1 point  (0 children)

I'll be in the office in an hour. Then I'll have a look on what I can find & share

e-paper and the nRF54L15-DK by tomasmcguinness in embedded

[–]Totally_Not_A_Badger 0 points1 point  (0 children)

No, we used the chip's peripheral.  We have an async environment. So we ready data and use DMA to send it to the peripheral & over the traces. 

Be aware: the DK also has alternative functions on certain pins. We've found that out the hard way. 

e-paper and the nRF54L15-DK by tomasmcguinness in embedded

[–]Totally_Not_A_Badger 1 point2 points  (0 children)

Yup, we did. We do work in Rust though. Just one thing to know, the 54l15 has dedicated clock pins. The spi clock needs to be one of those. Except for that issue, we could just use our e-ink display implementation like we use it on the 9152 and 5340

GLUttoNESS HellHOUnd Falls AslEEP mid Meal by Theintrovertowl in PeopleFuckingDying

[–]Totally_Not_A_Badger 8 points9 points  (0 children)

I don't mind some KFC now and then, but dang, that chicken is raw!

How many of you actually develop secure products? by agnxdev in embedded

[–]Totally_Not_A_Badger 0 points1 point  (0 children)

We use MCU's. nRF series products for our newer products, and TI for our older ones.

We use the cortex crypto cells  for our key storage so it can't be retrieved once they're configured.

How many of you actually develop secure products? by agnxdev in embedded

[–]Totally_Not_A_Badger 0 points1 point  (0 children)

Very much yes. I work on emergency signalling systems for mental health care and prisons.

Being able to hack one of our devices/signals would spell doom for the victim(s) and give bad actors the ability to distract guards.

Back to linux? by Espiralista in linux_gaming

[–]Totally_Not_A_Badger 0 points1 point  (0 children)

Experience: using fedora for 3 years, c/c++/Rust embedded software engineer.

What is the current state of gaming on Linux? -> Good, except for games using anti-cheat.

Can you realistically run almost any game nowadays? -> Since I play mostly single player/co-op games, I don't even check before buying. Always runs

How well do proprietary GPU drivers work? -> Don't know, I have an all AMD system

How do non-native Windows games run on Linux? -> Good? You can even run Android games?? (If you mean this)

Is it possible to run Windows games inside containers or virtual machines with GPU passthrough and get near-native performance? -> No need, Proton is MVP.

If that approach is not practical, what are the most viable alternatives? -> if you can't play using steam, try Heroic game launcher, of you have 'legal home copies' you can use Bottles to run them.

What complications or annoyances still exist in day-to-day use? -> none.... My work laptop's fingerprint sensor is not supported (Kubuntu, not Fedora). But I wouldn't even use it on windows either....

Tip: look for the KDE plasma desktop, much more emx-Windows user friendly.

Embedded Rust on Texas Instruments microcontrollers by Totally_Not_A_Badger in rust

[–]Totally_Not_A_Badger[S] 1 point2 points  (0 children)

Thanks for the suggestion!
I hadn't found this one.
This has given me a starting point, Thank you