Notifications
Clear all

Which microcontroller for home information display?

16 Posts
5 Users
2 Likes
815 Views
jBo
 jBo
(@jbo)
Member
Joined: 3 years ago
Posts: 100
Topic starter  

Hi All,

The photo is my take on the 8x8 LED displays, inspired by Bill's excellent video LED Displays with Arduino. I found it pretty easy to get set up, tweak the code for my pins, etc. This is good.

For a demo, I started with the Parola Print Test, inserting a fake temperature; see photo.

LED8x8x4 demo Temperature

 I recently upgraded to the Arduino 2.x IDE, and like it well enough. I think I can add an actual temperature sensor and display that value, as I've done before, following Bill's examples.

This uses an Arduino Nano. I also want to include the time, from an NTP server, so I need WiFi. I know there are ways to add Internet capability to an Uno or Nano, but that just seems overcomplicated for my use. To move this from a demo to a real info device, I figure I should just pick another microcontroller, one which has built-in WiFi.

My question is, which one?

Thanks for any opinions!

John

In theory, theory and practice are the same.
In practice, they're different.


   
Quote
Will
 Will
(@will)
Member
Joined: 3 years ago
Posts: 2529
 

@jbo

The display looks good.

Take a closer look at the Pico W. It has WIFI capability and, better still, Bill's already done a video on it.

Anything seems possible when you don't know what you're talking about.


   
ReplyQuote
jBo
 jBo
(@jbo)
Member
Joined: 3 years ago
Posts: 100
Topic starter  

@will  Thanks, I will. I have seen it. I kind of thought that the assessment from Bill, and others in the community, was that Arduino IDE on the Pico was just not ready for prime time. That there were other C++ development paths, but they were nowhere as easy as the Arduino IDE.

Perhaps I misremembered, or my info is now out of date, so it's good that I asked. Thanks again, John.

In theory, theory and practice are the same.
In practice, they're different.


   
ReplyQuote
Will
 Will
(@will)
Member
Joined: 3 years ago
Posts: 2529
 

@jbo 

I think there's still a way to go before the PICO's full potential is available from the Arduino IDE, but it's an interesting device. Sounds like it doesn't quite meet your requirements (yet :)).

Anything seems possible when you don't know what you're talking about.


   
ReplyQuote
Ron
 Ron
(@zander)
Father of a miniature Wookie
Joined: 3 years ago
Posts: 6965
 

@jbo I am curious to know what you and many others think an IDE is, and how a different one will change what code can be executed on a particular device?

First computer 1959. Retired from my own computer company 2004.
Hardware - Expert in 1401, and 360, fairly knowledge in PC plus numerous MPU's and MCU's
Major Languages - Machine language, 360 Macro Assembler, Intel Assembler, PL/I and PL1, Pascal, Basic, C plus numerous job control and scripting languages.
Sure you can learn to be a programmer, it will take the same amount of time for me to learn to be a Doctor.


   
ReplyQuote
robotBuilder
(@robotbuilder)
Member
Joined: 5 years ago
Posts: 2042
 

@zander 

"C/C++ IDEs are used to program code for a specific platform or platforms, and have integrated features specifically designed for use within these platforms including capabilities to compile, debug, or intelligently complete code automatically."

 


   
ReplyQuote
(@davee)
Member
Joined: 3 years ago
Posts: 1680
 

Hi John @jbo,

re: Pico was just not ready for prime time

This is probably one of those 'it depends who you ask questions' ...

   I just did a 'mini-feasibility study' ( https://forum.dronebotworkshop.com/technology/power-off-sleep-circuit-based-on-real-time-clock-ds3231/), which coincidentally was my first experience with a Pico (not a Pico W), that I bought a long time ago but never used. Please note this was very limited in scope, but my impression is that Pico works with Arduino 2.0.x, but your choice of libraries that have been 'updated' to include Pico support is limited, compared to 'more traditional' Arduino boards.

I occasionally had a fight making it download new code .. curiously it seemed more reliable from Windows host than Ubuntu host ... but it was probably my naiviety with the board, and all of my development used the Ubuntu host... if I got stuck, I simply downloaded Blinky under Windows, and then reverted to Ubuntu to download the code I wanted!

As it happened, the main library I used was one of those that hadn't been updated, but the only thing I needed, but not 'obviously documented', was how to define which pins had been chosen for I2C bus ... which was two one-line method calls ... it appeared most Arduino boards only had one option as to which pins to use, whilst Pico had about 6, so some Googling was needed. Everything else I tried, just worked, but of course your experience could be different

So if Pico W appeals to you, I would start by looking to see if you can find libraries to meet your needs ... and look to see if it supports Pico W ... and even if they are not officially supported, they might be usuable. I have the impression MicroPython has had more attention by Pico users, so perhaps there is less momentum to support C++.

Of course, many of the ESP8266 & ESP32 variants also support WiFi. This family clearly get Espressif support, though that does not mean every library will be supported either.

Sorry, this is not a 'solid' answer ...perhaps others can be more authoritative.

Good luck with your research and project, Dave


   
ReplyQuote
jBo
 jBo
(@jbo)
Member
Joined: 3 years ago
Posts: 100
Topic starter  

I watched that video again, for the Pico W. I guess I was confused: he demonstrated a whole bunch of sketches working with WiFi and the Pico W, on Arduino 2.x IDE. So this is great. I'll get out my Pico Prototyping board, built courtesy of 

Build a Pico “Uno” – Prototyping with the Pico

... and get started. 😀 

In theory, theory and practice are the same.
In practice, they're different.


   
ReplyQuote
Ron
 Ron
(@zander)
Father of a miniature Wookie
Joined: 3 years ago
Posts: 6965
 

@robotbuilder Sort of, what an IDE is at its core is a way to create the command line for the gnu compiler and associated tools. The code completion is an EDITOR function, not a compiler function.

My point is the actual command line that does the compile and link could care less what fancy IDE created it. Therefore, all IDEs designed for a specific hardware/software combination will all work and produce similar, if not exactly the same executable.

Yes, different IDEs may have different editor functionality and even different debugging capabilities, but the core build function will be the same.

A good example is the difference between Arduino IDE 1.8.19 and 2.0.4. They have different visual looks, different 'Find' syntax, different debug abilities and probably a few I am forgetting, but they use the same compiler and the same libraries. Preferences are still a mystery to me, though. I can only find one file but the two IDEs can have some differences in their preferences.

First computer 1959. Retired from my own computer company 2004.
Hardware - Expert in 1401, and 360, fairly knowledge in PC plus numerous MPU's and MCU's
Major Languages - Machine language, 360 Macro Assembler, Intel Assembler, PL/I and PL1, Pascal, Basic, C plus numerous job control and scripting languages.
Sure you can learn to be a programmer, it will take the same amount of time for me to learn to be a Doctor.


   
ReplyQuote
Ron
 Ron
(@zander)
Father of a miniature Wookie
Joined: 3 years ago
Posts: 6965
 

@davee @jbo A 'correctly' coded library will have a library.properties file containing an architecture record. Many will say *, which means any, but it may be that the library's maintainer is negligent and has not updated the file. As Dave said, try first to find a library for what you want that explicitly states it supports the rp2040. Failing that, try one or more sample sketches that come with the library to make sure they work on the PICO, I would look for a sample that is as close to what you want to do like a web server, as an example.

First computer 1959. Retired from my own computer company 2004.
Hardware - Expert in 1401, and 360, fairly knowledge in PC plus numerous MPU's and MCU's
Major Languages - Machine language, 360 Macro Assembler, Intel Assembler, PL/I and PL1, Pascal, Basic, C plus numerous job control and scripting languages.
Sure you can learn to be a programmer, it will take the same amount of time for me to learn to be a Doctor.


   
ReplyQuote
Ron
 Ron
(@zander)
Father of a miniature Wookie
Joined: 3 years ago
Posts: 6965
 

@jbo FYI, use the reply icon at the bottom of the reply so that the author's name is automatically inserted. You can add additional names as I did for you in my reply to @davee Dave.

First computer 1959. Retired from my own computer company 2004.
Hardware - Expert in 1401, and 360, fairly knowledge in PC plus numerous MPU's and MCU's
Major Languages - Machine language, 360 Macro Assembler, Intel Assembler, PL/I and PL1, Pascal, Basic, C plus numerous job control and scripting languages.
Sure you can learn to be a programmer, it will take the same amount of time for me to learn to be a Doctor.


   
ReplyQuote
jBo
 jBo
(@jbo)
Member
Joined: 3 years ago
Posts: 100
Topic starter  

@zander Hey Ron, excellent question. Early on in my programming career, on S100, Rolm/DG systems, later VAX,  we had no such things as integrated environments. Edit with "ed", compile/link, test with some kind of debugger if I was lucky, then repeat. In teams, our tool chain was already prescribed, but I still learned a lot, even if I've forgotten a lot now, too. 😉 

Fast forward to late 80s, I used Macintosh Programmer's Workbench (MPW), more than just an editor, but way short of the IDEs of today. For me, the key is how much I have to memorize and retype, vs what the environment exposes gradually, via menus, button options, etc. I enjoy spending time on the Linux command line, but am not as productive as through the GUI, say Arduino IDE. There are lots of libraries already provided, plus more available in an easy to understand way. That's just me; others may have different results. - John

In theory, theory and practice are the same.
In practice, they're different.


   
ReplyQuote
Ron
 Ron
(@zander)
Father of a miniature Wookie
Joined: 3 years ago
Posts: 6965
 

@jbo I go way back, too. Check my profile. At first, the code completion and the popups might be good reminders, but now they are mostly just annoying. Dive in with the Arduino Samples under File/Examples/Built in. Good luck.

First computer 1959. Retired from my own computer company 2004.
Hardware - Expert in 1401, and 360, fairly knowledge in PC plus numerous MPU's and MCU's
Major Languages - Machine language, 360 Macro Assembler, Intel Assembler, PL/I and PL1, Pascal, Basic, C plus numerous job control and scripting languages.
Sure you can learn to be a programmer, it will take the same amount of time for me to learn to be a Doctor.


   
ReplyQuote
jBo
 jBo
(@jbo)
Member
Joined: 3 years ago
Posts: 100
Topic starter  

@robotbuilder @zander

That's a decent definition. I think that's what people expect when they think about the tradeoff between a barebones editor and a full environment. Of course, what some consider "full" leaves others wishing for more features. I used OpenSCAD for years, for designing objects for 3D printing, and still enjoy it, but OnShape lets me do more things, faster. Similarly, my "third career" was developing in 4D (4d.com), where "full environment" meant code editor, dedicated language, awesome debugger, forms editor, event handling help, client-server session control, database engine. That was all quite a lot, especially starting in 84, before it was a given that Ethernet would win for networking, over whatever IBM had (token ring?), and before the Web was invented. All that said, many programmers think it's just too much in one basket; each to his own.

In theory, theory and practice are the same.
In practice, they're different.


   
ReplyQuote
robotBuilder
(@robotbuilder)
Member
Joined: 5 years ago
Posts: 2042
 

@zander 

Sort of, what an IDE is at its core is a way to create the command line for the gnu compiler and associated tools. The code completion is an EDITOR function, not a compiler function.

I would have said that the core function is an editor with menu items that execute saved commands that use the edited text without having to go to the command line to set the compiler path, compiler command, run command and all that stuff you used to have to do at the command prompt.  All that stuff is hidden and handled automatically.  I like it.  As a hobby programmer I had trouble trying to install libraries for c++ editors like code::blocks it was a complicated messy business.  Never did get a graphic library installed properly.  I like IDE's that do all that automatically and thus work first time every time.  Installing libraries with the Arduino IDE is a breeze.


   
jBo and Ron reacted
ReplyQuote
Page 1 / 2