Challenger RP2040 Wi-Fi: A better Raspberry Pi Pico W than the Raspberry Pi Pico W?
ฝัง
- เผยแพร่เมื่อ 28 ส.ค. 2024
- Built using the same chip as the Raspberry Pi Pico, the Challenger RP2040 has everything the Pico has, but more. Including Wi-Fi and Bluetooth, 8MB of flash, USB-C, a Neo Pixel, LiPo battery charging and so on. Here is my full review.
Buy one: ilabs.se/produ...
Let Me Explain T-shirt: teespring.com/...
Twitter: / garyexplains
Instagram: / garyexplains
#garyexplains
I'm an engineer but I still appreciate how you have done all the heavy lifting on these videos, making it a breeze for me just to jump in and create something instead of spending all the time doing preliminary research nose in the spec sheets.
I am glad you found it useful. 👍
Great explainer video. Challenger 2040 is 3-4x the cost of Pico, but the battery charging circuit alone is worth the extra $$. I'm very nervous about DIY power - esp mains and/or charging circuits. I might be willing to pay $15 for this board knowing I get battery charging.
I've been looking for a board for a controller project and this is the only board that meets and even exceeds what I need.
Those requirements being 14 digital io 4 analog inputs a charging circuit and Bluetooth. If you know of another board that meets this tell me.
I work on embedded devices. If you can put the ESP32 to sleep, then this is a very good board. There are applications where you need some heavy computation, like in reading accelorometers. If certain condition is met, you need to send the data over the interner or bluetooth. Then you wake up the ESP32, to make some more heavier computation and send the data wirelessly. I've worked on such systems using an Attiny85 as the "always on" uC, but it was not enough power for me. This board, RP2040+ESP32, is an ideal solution for me.
According to the spec WiFi is provided by a ESP8285 chip which is part of the ESP8266 family. This makes more sense than putting an ESP32 chip on the board since ESP32 is also a dual core MCU with lots of GPIO pins and features including micropython. You would not really need the RP2040 chip if there was also ESP32 on the board.
The version I have has the ESP32-C3, as I say in the video, i guess that is a new revision.
@@GaryExplains The -C3 is the RISC-V based espressif chip.
Indeed
the C3 version is only a single core chip btw.
Indeed
Would always be interesting to see what extra opportunities having that extra ESP32 chip gives :-)
I'm trying to think of an application that requires an RP2040 in addition to an ESP32. I've done a lot of bit-slice in my career. AM2900x3wide, 68332 TPU before there was an assembler, Moto DSCs and even EPROM based. Somebody give me a challenge. What does this combo really bring to the table above just an ESP32? It has a core dedicated(?) to comms, leaving the other core for you. Also has FreeRTOS built in. Is it all so that you can write in a higher level language?
I work on embedded devices. If you can put the ESP32 in deep sleep, then this is a very good board. There are applications where you need some heavy computation, like in reading accelorometers. If certain condition is met, you need to send the data over the internet or bluetooth. Then you wake up the ESP32, to make some more heavier computation and send the data wirelessly. I've worked on such systems using an Attiny85 as the "always on" uC, but it was not enough power for me. This board, RP2040+ESP32, is an ideal solution for me.
@@AZOffRoadster A few things. It's an ESP8285 not an ESP32. This is terrible disappointing and cheap skating of them. Why? Well Espressif do not develop anything for the ESP82* series anymore. They are end of life. So the AT Command firmware (which I will come to), is the old out of date one with bugs. The NEW V2. AT Command firmware is only available for the ESP32 and contains built in support for Webservers, and MQTT connections direct from the module, not on the ESP8285 though. At least they added flash memory for it, as by default it has too little to install much. However with the AT Command firmware on there, you get Basic Wifi +Bluetooth classic. So you can do audio and calls etc.
By the way. The Wifi chip is flashed with the AT Command firmware. This is a basic "teletype" interface using a single bi-direction UART (Serial). You send it commands like:
+JAP MySSID MyPasscode
and it responds with
OK
WIFI CONNECTING
WIFI CONNECTED
The trouble comes when you want to make a TCP connection (or 2). I'm not sure the AT command version on the ESP8285 allows more than one connection. However the data arrives like this:
+TCPRECV:1:4232
You then send:
RECV 1:4232
and the next 4232 bytes it sends you is binary data. 1 is the stream id.
I'm sure someone will have wrapped this in a driver (hopefully) because handling an asynchronous UART command channel at the same time as trying to asynchronously pick you data back out of it on the data stream is not trival or easy.
I know this because my current project is designing a dev board just like this, except with more professional MCU. An STM32F411 + an ESP32 WROOM 3E. Set up the same way, even the WS2812 but with a 2.8" TFT color screen as well. In my case I expose the ESP32 System Serial so you can, if you choose, reflash the ESP32 to do what you want.
A note. The ESP8685 AT Command firmware may, or may not support OTA Updates. If it does support that, then you can point it to an HTTP URL to find it's firmware and it will flash itself. Thus, you might be able to reprogram it. Good luck getting to any of it's pins though :(
THIS is a great improvement. Wireless is really something I want, but they Pico W is sold out everywhere. I would get a few of these, a great alternative to the ESP. Sadly, out of stock
Both if the MicroCenter stores in Atlanta have stock today. 1 per family.
can't wait for mine to arrive!
Thank you for this! Excited to get started
The LiPo charging built in is pretty huge
Why wouldn't we want to explore how we can take full advantage of the ESP32? Especially if it can be set up for remote programming via wifi, and, perhaps to send python programs to the RP2040.
Challenger and a space shuttle?? Only 80's kids will understand the horror.
I would like to know the difference between requesting from a ntp server and the world time API. I have done some application that uses ntp server without adding the json library. Thank you for the video.
I've just bought something with a similar architecture. It is currently on its way. Some of the ESP32 pins are brought out. I'm looking forward to seeing what I can do with it
A video to show one core updating a display with data generated by the other core would be good. Preferably in Arduino.
Looks extremely familiar with adafruit feather 32u4 bluefruit. I think you literally can build a keyboard with that thing too
Excellent thanks.
So many possibilities!
3:13 +1 for interested in a follow up video about the dynamic between the two microcontrollers on the one board 👍🏻
Thanks for a well executed review! Is the 11520 baudrate a typo in line 75? shouldn't it be a more familiar 115200?
At around $15 US vs $6 US for the Pico W is the extra features worth it?
Am I missing something. I tried this and I couldn't load the neopixel library. You have to download these from a separate source and load them onto your board separately. The process is not as simple as you describe.
Thanks for the vid. PiHut also has stock, but none of the details mention Ble. What flavour of Ble does it have, and does it have software support? 👍🏾🤓
I have something like this made by Lilygo, but I think this looks more integrated. Very cool!
Looks nice, but it's almost $40 USD with shipping.
The more features the more money. Developing and testing is not cheap.
But the title suggests it's a pico w replacement, at 40$ is not even close versus $5
It is also available from tindie www.tindie.com/products/invector/challenger-rp2040-wifi/
@@GaryExplains ok that's a little better about $20, if we can ever get them under $10 I definitely want to try it.
@@billhall1555 and the other features it has magically come into existence for $0 ?
But esp32 already can micropython and it has wifi and Bluetooth. What would be the motivation?
For lots of reasons starting with the fact that the RP2040 is more powerful than the ESP32-C3, then compatibility with the Pico ecosystem, plus many more reasons.
@@GaryExplains thanks
Pico boards now have arduino support? That's great news to me, I wonder how many of the usual graphics, lcd, sensor, audio libraries have been ported.
is there a 3d printed case with cutouts (for headers) and pin lables?
One thing that makes me dubious of the value of the RP2040 for high performance projects is that it really only has RAM and that it therefore has to load applications serially from an external FLASH into a mere 264k of RAM. When you consider that RAM has to contain the bootloader (from FLASH) and all the other basic stuff it's really going to be doing a lot of swapping in and out. Add to the the inherently inefficient ISA and bloat you need to deal with the peripherals in ARM, I just wonder.
What kind of high performance projects are you talking about?
@@GaryExplains I've played around with ARM M0 processors for a while, and simple things take 16k to 32k (house keeping). This means you only get ~8 house keeping things in RAM at a time. printf is about 4k, and I think a graphical UI ends up being nearly half the RAM. Setting and clearing a pin takes about 3us on M0 without function swapping and if you add your GUI and not too much else I think you get into the realm of memory swaps. If you want to anything realtime beyond that you would see performance degradation. These are only guesses at this stage based on a few 1000 lines of written code.
But the RPi Pico has a XIP, so it doesn't need to copy the content of flash to ram to execute it
@@michabarnas612 I'm talking about the serial flash that stores the applications. It has to down load it. If it doesn't then it can only execute each instruction after it's downloaded which means no pipelining
@@michabarnas612 This is from the description "The RP2040 uses a small internal flash for a bootloader and a larger external flash for everything else". The external FLASH is serial!!
I don't see the OCD connection, is that available on this board?
13:48 Sorry to be picky but just a note for next time if you could please zoom in more for this program (or if there’s an option to make the text larger within the application?). Cheers 👍🏻
Yes, I understand and will try better, but the code is also in my GitHub repo, so you can go look at it directly.
@@GaryExplains cheers 👍🏻
Considering how many new devices are unavailable to buy and try, I ordered a couple. I'm keen to try getting the PPP protocol to work on an ESP32 to interface with some retro devices also. My order came to ~$39 USD including shipping which was ~$7.50, I think that also included an exchange rate fee (paypal). I'm also wondering if it's possible to replace the 8MB flash with something larger like you could with the ESP8266.
Hi Gary, off topic but are you gonna do some more Speed Test G videos again? Really miss them
Gary - great video. do you know if this board supports I2S or any DAC functions so that it could be used for audio?
LOL! Just completed a Teensy 4.1 laser synth prototype, using 3 I2S stereo audio shields for X/Y/R/G/B. Works great, after a few mods for 6 channels.
Now, I'm wanting WiFi.🤔
BTW, PJRC's audio library & online Audio Design Tool are great for getting started. Software controlled DSP, filters, mixers, ADSR, etc, etc. BR.
Have u tested the Pico-W-Go MicroPython extension for VSCode for python pico dev?
Hm. What's the advantage over an ESP32 board - apart from the charging capabiliity. I would assume that this board needs more power than an ESP32 board.
This dev board looks very interesting. I've just completed a prototype Teensy laser synth, using the Teensyduino's I2S audio library, which Adafruit have forked.
But, the T4.1 doesn't have WiFi, so I'm considering the ESP32 with hex DACs, instead. Would PJRC's Teensyduino libraries run on this board?
Otherwise, I'll take your same approach of adding an ESP32 to the Teensy laser synth, just for WiFi. Are the RP2040 & ESP32 MCU's simply passing data via I2C?
Thanks, Looks like a great product.
😎
Forgive me if I don't trust random makers to design a reliable board. I like to at least see the schematic if everything seems alright, especially if it has lipo charging. But schematic for this board is nowhere to be found. Red flag. Negative Tindie reviews. Another red flag.
@@martincerny3294 Thank you for your feedback regarding my unanswered 6 month old question. 3rd red flag.
Actually, I've stayed with the Teensy 4.1 for my laser synth, but upgraded the I2S DAC to the CS42448 CODEC IC, which has 6 ADC inputs, as well as the 6 DAC outputs for the laser projector.
That allows it to receive inputs from any ILDA standard OTC laser DAC and software, which can be multiplied/summed with the T4 Laser Synth waveform images.
This random maker has just learned KiCad and am putting the finishing touches on my 1st SMD PCB. Wish me luck with the reliability on that.
Best regards. 😎
I wanted to work on abstracted code probably some decent oop for micro-controllers as the code just clutters up in some small applications. any idea what to take?
5:20 its not esp32 its esp8285 right?
Hello Sir
I am a bit confused regarding pi pico and RP2040. Is it the same thing or two different things. I tried to Google and but couldn't find any clear answer. Thanks
The RP2040 is the chip used by the Pico. I cover it in more detail in my Arduino vs Pico video.
I there is a esp32, then what is the necessary of RP2040
If you want a ESP32 then just get one of those (there are plenty of boards available). If you want an Arm Cortex-M board with WiFi and Bluetooth then get one of these or a Pico W or an Arduino Uno R4 and just think of the ESP32 as a WiFi chip.
Brilliant!
this is basicaly the same price as a pro micro board, which is used to make custom mechanical handwired keyboards, I wonder what extra weird features you could give a keyboard with this.
Does this board support Edge Impulse development or TinyML?
I can hardly think about a programming language less suited for microcontrollers than Python.
The slowest beast of a language is used for the most realtime type of application..
Seeeduino Xiao RP2040 is also a good option. It comes with Type C.
But it doesn't have Wifi.
Are you able to get Bluetooth working on this board? That would be a big advantage, the Pico W was released with BLE disabled.
The Bluetooth is enabled but you need to talk to the ESP chip directly using the AT commands. There isn't an abstracted library yet.
then what is the point? why not just have an esp32? it is faster than the rp2040, this just adds complexity, power consumption, cost... for little to no benefit
I never got esp32 working reliable wlan and bt. Most of the time the esp just freaks out after some time
Do you know if the board offers EEPROM? It's something I tend to use often to recall states during boot
You should be able to use the flash storage in CircuitPython and Arduino to store and retrieve values. I'd imaging that you can in MP as well, but I haven't worked with that platform
What good is the Pico W's Bluetooth if NO ONE CAN USE it and it has not been documented? For example to connect a Bluetooth speaker AND KEYBOARD?
As it says on the Raspberry Pi website: Eagle-eyed readers of datasheets will notice that CYW43439 supports both Bluetooth Classic and Bluetooth Low-Energy: we have not enabled Bluetooth on Pico W at launch, but may do so in the future.
where to buy ??
Could you charge though USB C and remove the battery connector?
If you remove the battery connector how do you connect the battery that you want to charge via USB?
Any chance to resurrect the SpeedTest G channel? I thoroughly enjoyed the horse-race style narration!
Just use esp32. Why not?
I purchased several of these Challenger wifi boards and ever piece of sample code I have found online crashes and I dont know how to get past the erros. Does anyone have sample code and list of the libraries to setup a simple Webserver? This would be a massive help to me.
Did you get a chance to look at the example code I have published here: github.com/garyexplains/examples/tree/master/Challenger_RP2040
@@GaryExplains I think I may not have all or the correct libs. When I run your ntp_sync code I get "AttributeError: 'module' object has no attribute 'ESP_WIFI_EN' I also tried running the neopixel test and it bombs on me too with "AttributeError: 'module' object has no attribute 'NeoPixel'". I have the seesaw library but I think I must be missing somethnig. Would you mind sharing your libs? Thank you.
can you not use a 'secrets.h' file to hide your creds?
Im hesitating to ask this question, but any idea how read bios info from a mobo? If I can’t get info bios because of unknown password? all known methods of removing it didn’t work.
if a mother board ... you may have to remove the RTC battery and short the password reset pin. ( on some mother boards this has worked!)
@@larrypriest5789 unfortunately nothing worked for this board, kindda industrial board
Personally if I'd used the name "Challenger" I'd have not also put an image of a space shuttle on the board because of the Challenger disaster. Not the right image for any product.
So "in memory of" or "dedicate to" isn't an idea that you like?
How did you get GP11 for the NeoPixel from the diagram?
It isn't in the diagram but on the datasheet, in the actual text about the neopixel.
Is this pin compatible with the Pico W ?
No.
I just want one with a couple DACs.
The following items cannot be shipped to Belarus :(
Why bother with HTTP(S) for timesync when you have NTP?
Because NTP only gives UTC time which means you need to do all the heavy lifting for timezones and day light saving. World Time API solves that. Besides I also demonstrated NTP as well, so take your pick.
I found the Coding With Arduino are interesting So..If You give me a link to this would be find..Thanks!!!
Try ilabs.se
Looking at the datasheet on the Ilabs website it says that the board has a ESP8285. I have confirmed this by looking at the board I have.
That is for the older revision. The new revision has the ESP32-C3. I have confirmed this by looking at the board I have.
@@GaryExplains I'm surprised that they haven't updated their datasheet. I'm trying to run your WiFiWebServer4Time example. I have commented out the #define WIFIESPAT1 but it doesn't get further than the loop (while (WiFi.status() != WL_CONNECTED) ) where it is trying to connect to Wi-Fi. I have all the latest versions of libraries and my wifi ssid and password are correct and am in the same room as my router. Any thoughts?
Sorted, just needed a WiFi.begin(ssid, password); before the status loop
just for ble and wlan, they included an even more power chip ?
I don't think the ESP32-C3 is more powerful than the RP2040. Why do you think it is?
@@GaryExplains ah, i missed the C3 part so its single core, sorry. Still very capable though. Can go upto 160MHz, while the RP2040 can go upto 133MHz.
Of course it is capable, that is why it is being used to do all the heavy lifting for the networking end of things, freeing up the RP2040 for the main processing. As a side note, quoting MHz is basically pointless and it depends on how much the CPU can do per cycle, it is known as IPC, Instructions Per Cycle. The ESP32-C3 running at 160MHz could be slower than the RP2040 running at 133Mhz. I haven't tested it, but it is quite likely.
@@GaryExplains i agree, you are right. Would be great if you could make a comparison video between the performance of these embedded microcontrollers. Like RP2040, ESP32-D0WDR2-V3 (dual core variant), RISC-V FE310 SoC (open source hardware) , and may be throw some STM32s into the mix.
But its probably too time consuming to standardise a test for all these architectures. A solution could be to use the arduino cores for all these chips and make a standard arduino bench mark. Only processing power, and not RF Capabilities because not all of them have RF.
No link to the purchase source in the description, but “Yessir, I can Google….”.
The link is in the description.
@@GaryExplains Typo, Gary you put 'but one' instead of 'buy one' in the description !
Ah, my bad. Fixed! 👍
Great video, what is the URL for your GitHub repo?
Thanks. github.com/garyexplains
@@GaryExplains Many thanks
No debug port 😟
Does this support ESP now?
I am not sure what you mean. Support what exactly?
@@GaryExplains Many ESP32 boards have a special wireless protocol that allows them to communicate with each other wirelessly without the Internet or Bluetooth. It's called ESPnow. I was wondering if the board supported that? If it does, it means it could send speed data to an ESP32 running an instrument cluster, for instance.
@@jeremygeorgia4943 The ESP chip is only for the WiFi/Bluetooth. It isn't intended to be repurposed or reprogrammed.
Where is the code?
In my GitHub repo. It is normally the first search result on Google for "garyexplains GitHub"
Is this board CE and FCC certified?
I guess it is better to ask ilabs directly rather than ask here, I am sure they can give you a proper and complete answer.
Don't most devices that are have their FCC license info printed on them? Is that a requirement or just for general information to the user?
With the chip shortage, and all, good luck getting components (if you want to put together your own custom RP2040 microcontroller).
Which components? The board itself is in stock.
@@GaryExplains just the RP2040 MCU, alone. The bare component chips. Edit: my bad! Apparently, Mouser got a ton in at the end of July, and more are coming by the end of August. This is great news! Could the shortage be ending???
@@jonathanstein6056 Can get them by the reel in the UK at present. Already have a few bare MCU's for those projects that I still have to figure out!
@@stephenvalente3296 you guys have Pimeroni, to boot. Lucky!
@@jonathanstein6056 Even better, they have a sale on at the moment. 10 X RP2040 chips for £6.30 before shipping. One order on the way, with another underway. Have far too many bits and pieces. They have also removed the 1 Pico W per customer limit too.
Not really comparable boards... cost difference is massive
Where's the code??
In my GitHub repo. A quick Google search for "Gary Explains GitHub" should get you there.
@@GaryExplains - Got it, thanks
I can by 4 pico w/same mony!
Whilst it's fine to call the board the Challenger, it's in somewhat questionable taste to put a drawing of the Space Shuttle on the board given its fate. That's before taking into account the even worse taste puns it might elicit.
I thought it was in honor of that vessel and its crew. Interesting that you see it as a negative thing. 🤷♂️
@@GaryExplains given the association computers and software have with crashes? Maybe just me. I used to wonder about the loose use of Titanic metaphors when it's sinking was still in living memory. Perhaps I'm becoming over-sensitive in my old age. That said, the board is very nice, and I see how things have changed since I wrote an RTOS for a Z80 based project back in the 80s. It was, somehow, more fun with if a lot less productive than these modern wonders.
For some reason I only remembered the Columbia disaster and not the Challenger as well. Anyways I see it as a homage.
Lack of availability makes it useless and god only knows what it costs and what a kr is.
there should be an little popup on the right, halfway which allows you to choose a currency ...
Swedish Krona
All microcontrollers seem better then pico.
First