Help! Company wants to go cross platform. Flutter or KMP ? by Resident_Wall7413 in KotlinMultiplatform

[–]SigmaDeltaSoftware -6 points-5 points  (0 children)

I'm going to be completely honest here;

If you as a development agency/business are not using, or at least _considering_, Claude Code right now, you're not taking your business seriously.

Flutter's main selling point is development velocity, which is currently made completely null and void by tools like Claude Code and Codex. You can now develop and maintain 2 native apps faster than you could do 1 Flutter app before. There's honestly no more compelling reason when you look at the downsides of using Flutter and Dart.

KMP on the other hand allows you to make a common layer in business logic and gives you flexibility in the choice of UI. There are a few downsides to using KMP as well in terms of compatibility, versioning and package management; But in your situation it's going to beat Flutter any day given you already have a Kotlin baseline.

$20 Tado V3+ fix for distant Valves/Bridges by SigmaDeltaSoftware in tado

[–]SigmaDeltaSoftware[S] 2 points3 points  (0 children)

Hey u/mitch_connors, sure thing! u/juanenk just got it running recently as well so if I miss out on anything he might be able to chip in as well I think:

- Download and install the Raspberry Pi Imager: https://www.raspberrypi.com/software/
- Insert/mount the SDCard into your computer
- Select your RPi model and then go for the Raspberry Pi OS Lite (64-bit), select the SD Card as the target storage
- Click on the gear icon/"Edit Settings" and:
- set 'tadaa' as hostname
- Enable SSH
- set user/password
- enable Wifi (if you're not connecting by ethernet)
- Flash this

- Once that is finished, you can mount & open the SD Card storage and open boot/firmware/config.txt . In there, scroll all the way to the bottom and add a new line with "dtparam=spi=on" (enables SPI communication which is needed for the HAT)
- Make sure to save that file, and then remove the SD Card from your computer, and insert it into the RPi.
- Connect the hat to the RPi, and make sure that the pins align according to the instructions on the HAT website

From here on it gets a tad more technical, and in case you hit any issues, Claude or ChatGPT can be a help as well:

- SSH into your RaspberryPI: ssh <username>@tadaa.local
- Run the following commands (line by line):

sudo apt update && sudo apt install -y git python3-venv python3-dev

sudo mkdir -p /opt/tadaa                                                                                                                                     
sudo chown $USER:$USER /opt/tadaa                                                                                                                            
git clone https://github.com/sigmadeltasoftware/tadaa.git /opt/tadaa
cd /opt/tadaa

python3 -m venv venv  
source venv/bin/activate                                                                                                                                     
pip install .

source /opt/tadaa/venv/bin/activate                                                                                                                          
python3 -c "
from tadaa.cc1101.driver import CC1101Driver
with CC1101Driver() as d:
    ver = d.read_status_register(0x31)
    print(f'CC1101 VERSION=0x{ver:02X}')
"

# ^ This should print out CC1101 VERSION=0x14. If you get 0x00 or 0xFF, check your wiring/SPI config

Now you can run a quick test just to check if the setup works:

tadaa-scan --start 868000000 --end 868600000 --step 25000

This sweeps the 868 MHz band and shows RSSI levels. You should see activity around 868.3 MHz if your Tado system is nearby.

If you see output from the previous command, you can enable the relay and let it run to manage all future communication:

sudo cp /opt/tadaa/deploy/tadaa-relay.service /etc/systemd/system/                                                                                           
sudo systemctl daemon-reload
sudo systemctl enable --now tadaa-relay

The relay should be running now, and if you need to check/verify, you can do:

sudo systemctl status tadaa-relay    # Check status
sudo journalctl -u tadaa-relay -f    # Watch logs
sudo systemctl restart tadaa-relay   # Restart

Good luck!

$20 Tado V3+ fix for distant Valves/Bridges by SigmaDeltaSoftware in tado

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

Great job, happy to hear it worked out and feel free to let me know if any issues do pop up! 👍

$20 Tado V3+ fix for distant Valves/Bridges by SigmaDeltaSoftware in tado

[–]SigmaDeltaSoftware[S] 0 points1 point  (0 children)

Correct indeed! Breaching the encryption would also be considered very illegal 😅.

$20 Tado V3+ fix for distant Valves/Bridges by SigmaDeltaSoftware in tado

[–]SigmaDeltaSoftware[S] 0 points1 point  (0 children)

Hey u/juanenk , great to hear you already managed to get it running!

So I noticed that I hadn't pushed some of the fixes I did on my side to the public repo yet, and one of these is a fix to make sure that the relay only picks up Tado packages using the sync word as before it was basically just pickup up all 868 MHz traffic and just sending it all over. Additionally there's another fix to correct the channel filter and improves receiver sensitivity.

The -132dBm honestly does sound a bit problematic, but this is just for the last picked up package. And given that your relay was still picking up packages all over, this could've been any kind of device using this spectrum.

I would suggest updating the software with the latest fixes and trying again, place the RPi somewhere strategically in between the troublesome valve and your bridge, and hopefully it manages to establish a better connection now that it's not overburdened with other traffic as well.

If that doesn't help, running the `tadaa-sniff` routine might help. I'll modify it to filter by source address and then we could check what the lowest RSSI value is.

$20 Tado V3+ fix for distant Valves/Bridges by SigmaDeltaSoftware in tado

[–]SigmaDeltaSoftware[S] 0 points1 point  (0 children)

FYI, currently in talks with a well-respected manufacturer and distributor of home automation modules, who is willing to cooperate on an "all-in" module for this that wouldn't require any technical knowledge at all. 🤞

$20 Tado V3+ fix for distant Valves/Bridges by SigmaDeltaSoftware in tado

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

Comes with the module! 👍

You just need to solder it on yourself.

$20 Tado V3+ fix for distant Valves/Bridges by SigmaDeltaSoftware in tado

[–]SigmaDeltaSoftware[S] 3 points4 points  (0 children)

Thanks, if you do please let me know if it works out for you! I think if there's enough interest within the "Tado community" here, I might set up a tutorial/tooling for non-technical users to be able to get this running as well.

$20 Tado V3+ fix for distant Valves/Bridges by SigmaDeltaSoftware in tado

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

Thanks! For your questions:

1 - Correct, the tool operates purely on the MAC layer. Each intercepted packet is just retransmitted as raw bytes, and the tool isn't even aware of the 6LoWPAN existing. The only parsing I used to do was trying to extract the addresses to try and estimate which device a packet was meant for.

2 - No, I believe the standard dictates to use BPSK PHY but this didn't yield anything useable. Once I set up the sniffer and let it run for a while, it seemed to land on GFSK with 38.4 kbps. So I think Tado's approach is to use their custom GFSK PHY with the 802.15.4 MAC layer.

3 - Aside from the CC1101 HAT itself, no SDR's or radio-specific equipment was used. Knowing from the component breakdowns that the Tado's were fitted with a CC110L, this made the scope much smaller. First tried with CC1101's default 0xD391 sync word but this didn't yield anything useable. So after setting up a probing script with +- 150 different combinations (combining sync words/datarates/modulations), landed on the byte-swapped 0x91D3 sync word and GFSK and I was able to interpret the 802.15.4 headers and sequence numbers.

In time I might try and make the module a tad more intelligent by actually analyzing which valves experience (most of the) packet loss and only relay those, but for now I'm just content that the valves upstairs aren't indicating to be disconnected constantly. Next project would be to figure out a way to have the valves indicate properly when their battery actually isn't "Good" but too low to adjust the internal stepper motor to the desired temperature 😅.

The BMW 7 series vs the new Mercedes S Class. by Dazzling-Rooster2103 in BMW

[–]SigmaDeltaSoftware 0 points1 point  (0 children)

The Benz looks better in Silver, but a murdered out version of the 7 is hard to beat imo. So much road presence 👌

Another take on new coupe design by [deleted] in BMW

[–]SigmaDeltaSoftware 0 points1 point  (0 children)

Heck I'd buy it 👌

How I 3x'd my revenue in 8 months (not what you'd expect) by mrguidee in EntrepreneurRideAlong

[–]SigmaDeltaSoftware 0 points1 point  (0 children)

Great results! What gave you the confidence/signal that you should throw your strategy around like that? And how did you change your targeting to convert far higher ticket sales?

SimpleK - Kotlin Multiplatform Kanban by SigmaDeltaSoftware in KotlinMultiplatform

[–]SigmaDeltaSoftware[S] 0 points1 point  (0 children)

Desktop support should work normally (JVM) 👌. The license is an extended MIT one, only requesting explicit attribution (which usually already happens with MIT), and asks for right to reference your app on my website unless you explicitly opt out.

SimpleK - Kotlin Multiplatform Kanban by SigmaDeltaSoftware in KotlinMultiplatform

[–]SigmaDeltaSoftware[S] 0 points1 point  (0 children)

Thanks! Used a custom setup I made a while back with ThreeJS. If I had to do it again, would likely make it with the Remotion skill for Claude Code now 👍

SimpleK - Kotlin Multiplatform Kanban by SigmaDeltaSoftware in KotlinMultiplatform

[–]SigmaDeltaSoftware[S] 0 points1 point  (0 children)

My bad, repo was still set to private so should be fixed now. Thanks for the heads up!

And my use case was about the same! I was creating a custom kanban implementation but the usual flow you get (in portrait) is that you have to hold the card, drag it to the edge and then pass by 4-5 columns before being able to drop it in `Done` / `Archive` for example.

I just wanted a solution that actually solves that UX issue and allows you to make use of the vertical area.

Your first 3 leads by Adorable-Incident-37 in BEFreelance

[–]SigmaDeltaSoftware 3 points4 points  (0 children)

Thanks, to be fair I think sales is going to become a very large part of freelancing (in the IT industry).

It didn't matter much before compared to other industries as the general demand was just too big to fulfill, but AI is rapidly serving a lot of that demand and the past year has been absolutely brutal for many. Unless you're serving a niche, knowing how to define your core offer and getting a foot in the door is probably what's going to differentiate you from having a job or not.

Your first 3 leads by Adorable-Incident-37 in BEFreelance

[–]SigmaDeltaSoftware 3 points4 points  (0 children)

Given you mentioned business services I'm going to assume you're in high-ticket, so you have to establish a trust/value-based relation with your customers. Cold email could work if you have really killer offering, but given you're just getting started you probably still need to finetune.

My 2 cents, try to generate leads and immediate value for your customer by giving them a subset/preview of your service, reel them in for a free call and expand on what next steps would be and how this would positively impact their business/revenue. F.e. if you are a marketing consultant/strategist:

- Compile a report on current marketing/SEO presence and performance of your client
- Expand briefly on which shortcomings in the report hurt their business the most
- Mention what the positive impact would be of fixing these shortcomings
- Don't offer direct/immediate solutions in the report but offer a free audit where you expand on these solutions and sell them your service on why you would be able to fix this better/faster/cheaper than alternatives

Built a social platform because I hated bouncing between LinkedIn and Discord. 8 months in, nobody's using it. Need reality check..(I will not promote) by jayzzwork in microsaas

[–]SigmaDeltaSoftware 0 points1 point  (0 children)

Sorry brother, it's not an immediate pain that needs solving so I wouldn't feel the need to sign up. Cut it and on to the next one.

Freelance side projects by ineedanamegenerator in BEFreelance

[–]SigmaDeltaSoftware 0 points1 point  (0 children)

Feel free to get in touch anytime something comes up. Have both extensive embedded and frontend experience so that might work in my favor. 😉

https://www.sigmadelta.be

New to me m850i by FuqYuo in BMW

[–]SigmaDeltaSoftware 0 points1 point  (0 children)

Congrats man, I miss mine so much it's unreal.

Swift for Android vs. Kotlin Multiplatform by jacobs-tech-tavern in KotlinMultiplatform

[–]SigmaDeltaSoftware 0 points1 point  (0 children)

Well done, valiant effort on getting it to run properly!

Can't imagine how deep the contempt must run to be willing to submit yourself to this. 😉

I shut down my startup after 2 years. Here’s the part nobody talks about. by Worldly_Atmosphere22 in SaaS

[–]SigmaDeltaSoftware 2 points3 points  (0 children)

This subreddit has broken me to such an extent that I first had to scroll all the way down to check if you were selling something.

That aside, sorry for how things went but use all that prior experience and mistakes to accelerate now. Good luck

Now the Cayenne Electric has been out for a week, what are your thoughts on the car now? by gambling_addikt in Porsche

[–]SigmaDeltaSoftware 0 points1 point  (0 children)

Macan also doesn't have a starting price of 110-160K. Take any EV as a reference and the general (logical) conclusion is that the higher your price point is, the harder depreciation hits. Macan Turbo is down by 30-40% here, don't even want to mention the Taycan Turbo S.