¿ªÔÆÌåÓý

ctrl + shift + ? for shortcuts
© 2025 Groups.io

Arduino Alternatives


 
Edited

Erich Shulz mentioned in message #2131 that pairing an arduino with a laptop could improve UI performance. I think laptops, or expanded computing options in general is worth further consideration for future models so I decided to move it to its own topic.?

To start with, I want to say this is a discussion for future design, not a critique of the current design. I believe the current arduino based system is the best answer to the original design goal of a rapidly designed, rapidly built, and rapidly deployed system which was inexpensive and didn't impinge on the already strained medical supply chain.?

Improved processing power is something I've been thinking about from the beginning. The current design with the arduino has many limitations, however, it does what it was designed to do. From what I've seen, our device provides the best balance of simplicity and cost vs performance. I don't know of any other system that provides nearly the same functionality while still being build-able from home.??
Though as others have suggested, there's no reason to settle on one system, there is no one size fits all. For the sake of discussion, I'll outline my thoughts on the subject here

Erich,?I agree that using a laptop would provide vastly more computing power, but would be a much more expensive and complex system. It also begs the question, why bother with an arduino at all? If you have a laptop connected, we just run everything off that? Another possibility is to include the code for laptop interface in the arudio and let the user decide whether or not to use it. It's something to investigate as the software evolves. One concern I have up front is the fact that connecting or disconnecting a serial device (such as a laptop) automatically reboots the arduino which could be a problem if the laptop is ever disconnected or fell asleep etc.

Another possibility that has been brought up here and with other groups is a raspberry pi (RPi), either alone or pared with an Arduino. The Pi Zero can be obtained for around $5 US and has virtually all the capabilities of a laptop including keyboard and mouse support, usb input/output, wifi, bluetooth, HDMI output, and well designed and documented touch screen comparability. I have a personal remote data cloud and ad blocking server running on a Pi zero in my home, they're amazing little devices. And they run on 5v just like the Arduino. However, the programming is a bit more complex, and since it's an actual computer running linux there are many background and underlying processes that need to be taken into account as they could lead to instability. The programming considerations are greater than simple arduino/C++ coding. Additionally, since it's running an OS, it must be shut down properly to avoid system corruption. That being said, there are small relatively cheep hardware systems that can detect loss of mains power and then use a battery to keep the Pi running long enough to properly shut down. This could be a standalone system, or tied into the battery backup already implemented in the current vent design. There were also questions early on about RPi's availability and supply chain. I think for these reasons and others, it made sense to avoid RPi's for the first round, but I think they're a great candidate for V2.

I'm also curious what impact a paired computer be it laptop or RPi would have on the arduino speed. Moving the heavy processing off the arduino would obviously help, but on the other hand, serial communication is a bit slow and becomes blocking if the buffer is overloaded. So the process of moving data off the arduino might cause more delays than it fixes.?

Another option is the use of a more powerful and/or dual core project board. For example ESP-32 boards are about the same price as arduino nanos but include two cores, each far more powerful than the nano's atmega280. They can be programmed with arduino IDE and use very similar code functions. It could be possible to dedicate one core to vent functions and the other to display/io functions. However, dual core programming adds a whole new level of complexity in design, and might make it less accessible as fewer users will be able to understand/modify the code if needed.

These are just my thoughts as a hobbyist, I'm curious to hear what others think. Particularly professional programmers.

Steve S



Join [email protected] to automatically receive all group messages.