@Rudshep … Curious to know what protocol you’re planning on running over the RS485…
Until I can decide on something better, I’m presently running a roll-my-own minimal transport frame around MQTT messaging — which happens to be what all the devices in my system end up connecting to, one way or another. Though the current 5-byte collision detection window bothers me somewhat… On the upside,
I’d prefer CAN, but it’s small message size (especially carrying rather long-winded JSON MQTT messages), makes that option kind of painful… Knowing that the message will at least arrive in one piece, means a little EtherTen can quite happily process a multi-kb JSON message, with a simple state machine picking out the bits it cares about and ignoring the rest. That falls apart somewhat with the possibility that two or more messages may end up getting interleved due to the dinky 8-byte data packet limit. [edit: wrong inter-whatsit-word]
I regularly shudder at the idea of using a 32-bit monster to control a relay, or read the state of a switch. I’m struggling to resist the move to ESP32’s and the likes, and most of my DIY toys are still Arduino based — hence my delving into RS485. But there are two major issues there…
Firstly, I would like over-the-wire updates… It’s on my TODO list, to look into Arduino boot loaders that update off of SD card (if anyone knows of a good one) — I’d think, in particular, it should detect an image on SD card, verify the integrity (mostly just to make sure the image isn’t truncated or something obvious like that), preferably verify that it’s not the one presently loaded already, and then load and boot the new image. It would then be the job of the program to receive a new image, write it to the card, and trigger a reset. The ability to select a second fallback boot image if, say, a GPIO pin is held during boot, would also be of benefit to make recovering from a broken update sane.
And secondly, what I really don’t get, is why having Ethernet support so often costs more than most other entire development boards? I suppose the benefit of the ESP32’s, is they’re large enough to simply toss the entire networking stack and everything else in alongside the program you’re writing; point in fact, is the EtherMega I have sitting beside me, with a USB chip, and an Ethernet chip, both of which are somewhat more capable than the rather dinkly little ATmega holding my program.
On those grounds, I have to confess I’m slowly coming around to accepting the 32-bit monster for my 2-bit programs, if it means that one chippy can do the lot (especially if there’s room left for a bit of crypto goodness, which so far has been depressingly absent)… But, I’m most definitely wanting wired, not wifi, for most things… So the regular ESP’s are still a no-go for me without the addition of some kind of wired networking.
Soooo… my list, ends up being much the same, except I don’t so much care about Ethernet, since RS465 will do, and cheaper, but I do want OTA/OTW, preferably without having to cut the available program memory in half since it’s typically a little on the limited side as it is.