Keyboard Shortcuts
ctrl + shift + ? :
Show all keyboard shortcuts
ctrl + g :
Navigate to a group
ctrl + shift + f :
Find
ctrl + / :
Quick actions
esc to dismiss
Likes
Search
Arduino Alternatives
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 performance vs simplicity and cost. 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 |
¿ªÔÆÌåÓýThere are probably quite a few microcontrollers out there with more capabilities and more memory etc. ?I¡¯m not an expert having not really monitored this area at all, but I see two big caveats: 1. ?You have to have I/O. ?Arduino provides digital and analog easy to use functions, it was designed specifically for that, so not hard at all to do the I2C and to read and write analog signals. ? Some of these I2C based systems are pretty slow! ?One may end up wishing to use analog signals 2. ?You have to have real time response. ?No operating system not made for that will probably turn out to be a disaster. ? I run BPQ packet systems on raspberries all over my county, and I occasionally see rather significant delays ¡ª when the operating system decides it¡¯s time to do something other than your program, you just sit and wait..... you have no control. ? So that would require more complicated coding, and I¡¯m not sure you will be happy. ? By contrast, there are faster versions of microcontrollers that will function with the same or similar integrated development environment that will still give you real time response. ? I know that there are real time operating systems out there which you can run on far faster processors, so there are lots of options but the number of programmers available who have any clue how to operate them dwindles A knowledge of all the constraints that affect the entire system is important Gordon On May 9, 2020, at 11:48, Steve S via groups.io <skol0016@...> wrote:
|
On Sat, May 9, 2020 at 07:50 AM, Robert L Read wrote:
In fact Public Invention has defined two standards, one for Data and one for Control. The Data standard is in use, but the Control standard is not. The idea in both cases is to have C-language bindings that can provide both JSON and byte-level transport representations.Those look like interesting data/control exchange specs. The web browser based charting UI looks good. Definitely a good idea for a later enhancement after the first version of this ventilator is finished. I personally do not think any computer connected by a pluggable cable, such as a laptop via a USB cable, should be used in any part of the real time control of the ventilator. I do suggest a two possible processor solution such at a Nano doing low level mechanics, basic control and safety monitoring of the ventilator with a second processor, such as a Raspberry Pi doing the UI, ?advanced control and redundant safety monitoring. The two computers should be hardwired (an electronic interconnect, inside the box, like a ribbon cable could still be considered hardwired)) together mounted within the ventilator enclosure.? A laptop would be a great additional UI and could additionally provide high level intelligence and data storage/analysis for calculating settings from patient data to load into the ventilator, but not be involved in any real time control.? More at this link: /g/VentilatorDevelopers/message/1934 Tom, wb6b |
I've messed around with most of the Arduino family and also the STM32's, ESP32's. and Teensy's. All of these are programmable within the Arduino IDE and most of the libraries are supported, too. Of these, the Teensy is the most expensive at $20, but it is a powerhouse. The ESP32 is quirky and has pin placements that vary among manufacturers making it difficult to use. The STM32F103C8T6 ($5.00) is winning me over. It has the following features:
However, I just noticed that the barn door is open and the corale is empty. Jack, W8TEE
On Saturday, May 9, 2020, 11:55:52 AM EDT, Gordon Gibby <docvacuumtubes@...> wrote:
There are probably quite a few microcontrollers out there with more capabilities and more memory etc. ? I¡¯m not an expert having not really monitored this area at all, but I see two big caveats: 1. ?You have to have I/O. ?Arduino provides digital and analog easy to use functions, it was designed specifically for that, so not hard at all to do the I2C and to read and write analog signals. ? Some of these I2C based systems are pretty slow! ?One may end up wishing to use analog signals 2. ?You have to have real time response. ?No operating system not made for that will probably turn out to be a disaster. ? I run BPQ packet systems on raspberries all over my county, and I occasionally see rather significant delays ¡ª when the operating system decides it¡¯s time to do something other than your program, you just sit and wait..... you have no control. ? So that would require more complicated coding, and I¡¯m not sure you will be happy. ? By contrast, there are faster versions of microcontrollers that will function with the same or similar integrated development environment that will still give you real time response. ? I know that there are real time operating systems out there which you can run on far faster processors, so there are lots of options but the number of programmers available who have any clue how to operate them dwindles A knowledge of all the constraints that affect the entire system is important Gordon On May 9, 2020, at 11:48, Steve S via groups.io <skol0016@...> wrote:
|
I agree with this. There is at least one project, Delphi, which seeks to be the controller: Jenny Filipetti and I have?written?a document arguing for modularity:??of which the following diagram is the heart: On Sat, May 9, 2020 at 11:42 AM Tom, wb6b <wb6b@...> wrote: On Sat, May 9, 2020 at 07:50 AM, Robert L Read wrote: --
Robert L. Read, PhD Twitter: @RobertLeeRead @pubinventionPublic Invention:? Join Our Mailing list:?pubinv@... YouTube:? Medium:? |
On Sat, May 9, 2020 at 09:50 AM, jjpurdum wrote:
The ESP32 is quirky and has pin placements that vary among manufacturers making it difficult to use.Yes, I agree that this is a issue. One big problem is the ESP32 relies in external memory chips and it is easy to accidentally use one of the pins required for the external memory interface as an I/O pin. Although some ESP32 boards designer were smart enough not to route those pins as user I/O pins. But not all.? What I really like about the ESP32 is it has enough resources to run a web server and provide an embedded UI that I can access from my smartphone. Additionally, there are libraries that allow you to connect to your ESP32 contraption directly with a "hot spot" style WiFi connection or attach it to your WiFi network, that you can choose to configure from your smartphone once you make the "hot spot" connection.? Apparently the interrupt response time is rather variable. Likely due to a RTOS running on the chip as it splits time between the WiFi radio and your code. Here is a video that provides some information about how the ESP32 does in real time IOT applications.? He did imply that the testing he did was done with the primary core of the ESP32 and somehow did not utilize the second core.? Tom, wb6b |
On Sat, May 9, 2020 at 09:50 AM, jjpurdum wrote:
The STM32F103C8T6 ($5.00) is winning me over.Yes, the price performance for these, the "Blue Pill" boards, is really good. Both Blue Pills and Nanos are my goto boards.? For really low end stuff, I've been fiddling with the Nuvoton MS51FB9AE. I've modified an open source programmer utility to program them either on the Nuvoton developer board with its built-in programmer or the eBay clone programmers that cost in the $8 to $15 dollar range. These chips cost $0.24 and have a built in clock oscillator. You can literally wire them up to do something with no other support components such as crystals. (Well some bypass caps on the power are a good idea.) Using SDCC to program them in C.? Tom, wb6b |
I have sorted out the toolchain for the bluepill. here it is: On Mon, May 11, 2020 at 8:37 AM Tom, wb6b <wb6b@...> wrote:
|
On Sun, Jul 5, 2020 at 12:55 PM, Ashhar Farhan wrote:
I have sorted out the toolchain for the bluepill. here it is:Hi Ashhar, Read your bluepill info, very helpful information collected into one place.? A while back Roger Clark transferred his Arduino STM32 BBS to STM, that might have signaled the end of updates to his version of the hardware support libraries.?I checked and it looks like the?Roger Clark Arduino STM32 hardware support libraries are still being maintained. That is good. Even though the??might be considered by STM to be the "official" Arduino STM32 library (tool chain), many (maybe most) people seem to use the Roger Clark version.? The fact that there are multiple Arduino STM32 hardware support libraries is good to keep in mind, in case one is having problems compiling code, as it is possible you could be using a different version of the board's support library (tool chain) and should verify you are using the same one as the sketch author used.? Tom, wb6b |
All: I'm working on a new beginning C book to replace Beginning C for Arduino. The new book is Beginning C for Microcontrollers and features the Arduino family, but also the STM32F103, the ESP32, and the Teensy 4.0. I have yet to find any examples that run on the Arduino's that won't run on the STM32. It's a great little chip with a lot more resources going for it with only a marginal bump in cost. Jack, W8TEE
On Wednesday, July 8, 2020, 6:36:20 AM EDT, Tom, wb6b <wb6b@...> wrote:
On Sun, Jul 5, 2020 at 12:55 PM, Ashhar Farhan wrote: I have sorted out the toolchain for the bluepill. here it is:Hi Ashhar, Read your bluepill info, very helpful information collected into one place.? A while back Roger Clark transferred his Arduino STM32 BBS to STM, that might have signaled the end of updates to his version of the hardware support libraries.?I checked and it looks like the?Roger Clark Arduino STM32 hardware support libraries are still being maintained. That is good. Even though the??might be considered by STM to be the "official" Arduino STM32 library (tool chain), many (maybe most) people seem to use the Roger Clark version.? The fact that there are multiple Arduino STM32 hardware support libraries is good to keep in mind, in case one is having problems compiling code, as it is possible you could be using a different version of the board's support library (tool chain) and should verify you are using the same one as the sketch author used.? Tom, wb6b |
On Wed, Jul 8, 2020 at 04:32 AM, jjpurdum wrote:
I have yet to find any examples that run on the Arduino's that won't run on the STM32.Where I started to run into problems was with the various GUI libraries, the Adafruit GFX libraries and individual TFT drivers. (One was the Adafruit GFX library upgrading to allow non-square pixels, without backwards compatibility in the function calls.) Also, seems like I remember some incompatible library or naming convention issues when I tried to compile your Morse Code Tutor sketch using the "official" STM32 tool-chain. Switching to the Roger Clark version worked. I believe some people were installing the Arduino STM32 toolchain from a repository that had packaged Roger's toolchain with a frozen in time set of Arduino libraries. It was all several years old, but everything was frozen to a time where it all was compatible. Over time the various library authors introduced new features/enhancements that were not corrected for in the STM32 specific code in other Arduino libraries.? Maybe, some of these messier libraries are back in sync now. However, most of the time I can grab a Nano or a BluePill, whatever I have a spare board of within arms reach, compile the sketch and it just works. Which is great.? Tom, wb6b |
Hey folk, for those still with energy I think you'll all find lots of kindred spirits in the very active Slack run by volunteers at??? ? There are a variety of channels covering many ventilator related projects, both hardware and software. I'd love it if you dropped on on #project-ventos and they would welcome? your input on multiple channels. (Seriously we'd love your assistance and advice) Dr Gibby (and other doctors) would also be welcome to join the closed medical board channel.? On Thu., 9 Jul. 2020, 7:11 am Tom, wb6b, <wb6b@...> wrote: On Wed, Jul 8, 2020 at 04:32 AM, jjpurdum wrote: |
On Wed, Jul 8, 2020 at 06:32 PM, Erich Schulz wrote:
Hey folk, for those still with energy I think you'll all find lots of kindred spirits in the very active Slack run by volunteers at??? ?I'll check that out.? I learned a terrific amount about ventilators from this group, Gordon's work along with the rest. And reading the many resources pointed out, including yours. Just to check what I may have learned. The biggest thing I learned was to be effective, a ventilator has to be able to supply high percentages of oxygen, not just air. Although, it seems there are cases where CPAP and BIPAP machines have found to be valuable in Corona Virus treatment. So, the oxygen need may not be absolute.? Tom, wb6b |
Agree Tom. Oxygen supply will be critical. There are channels on Helpful that are looking at concentrators etc too. On Fri., 10 Jul. 2020, 7:35 pm Tom, wb6b, <wb6b@...> wrote: On Wed, Jul 8, 2020 at 06:32 PM, Erich Schulz wrote: |
to navigate to use esc to dismiss