In a way, PiicoDev always worked with ESP32 (MicroPython)... if you were adventurous enough to just give it a go you might have been pleasantly surprised. What was missing was exhaustive testing with all the PiicoDev modules - that's now complete!

Transcript

I'm very happy to announce that PiicoDev has supported the ESP32 long before the Raspberry Pi Pico W was on the scene. ESP-32 was killing it for connected projects. It comes in all these different shapes and sizes and it's one of the go-to boards for Wi-Fi or Bluetooth projects.

Let's get into it. In a way, it kind of always did, we just never exhaustively tested it until now. But last week, I put up an issue on the PiicoDev Unified GitHub that we wanted to include ESP32 compatibility. We already had a pretty good idea of how you might achieve this; it's how Unified was constructed, so it should be pretty simple to include that functionality.

Really, all the work is in testing that it works with our library of components. And GitHub user Liam Howe, who also worked here and kind of got first dibs, picked up the torch and ran with it. He then Unified GitHub made the necessary code changes, but most importantly tested that it actually works. And look at this: every single P-could device with a checkbox next to it and the actual code change is not even strictly necessary. It's really just a warning to say that if you're using ESP32 and you haven't explicitly defined the I2C bus parameters, then please do. It raises this exception: please define the pins, frequency, bus number, etc.

And that's because PiicoDev is MicroPython and these devices are using the machine I2C driver. There's not really any difference between these two in the MicroPython code for existing boards with existing expansion boards or adapters. We've chosen the pins that the PiicoDev bus is going to connect to and so we've set those pins in the library. Now, ESP32 comes in so many different flavours, but we can't do that. We can't make an adapter because there are so many different shapes of boards out there. bootloader buttons and then the antenna connections

These official ones from Espressif are really beautiful tiny ones. Shout out to Australian makers! For ESP32, unless we double down on one, you'll pretty much be wiring it directly to the board or selecting the I2C bus that's suitable for your project. Most people using ESP32 are probably used to set the clock and data pins for I2C. This is actually the test board that Liam made up to test exhaustively all the PiicoDev hardware. If you're an ESP32 user and getting started with a bunch of exciting hardware sounds fun to you, then now you know the pull request has been accepted, and it's in the main branch - go for it! You can follow any of the PiicoDev tutorials, you'll probably just need to have MicroPython installed on your ESP32 already.

Another prototyping news I've been working on is a Makerverse LoRa Module. This uses the Seed Studio LoRa E5 module and is essentially just a breakout board with power supply buttons and antenna connections. I hadn't really messed around with LoRa too much before this point, but creating this board and creating the drivers for it were really educational. Let's take a closer look. Right in the middle, we have the big LoRa E5 radio. This also has an STM microcontroller on it that drives the show. You can program that microcontroller directly if you really want to, but why would you? The thing responds to AT commands, so you can easily configure it and push your data without breaking out STM Cube and really like digging into the guts of things. Above that, we have a user LED, some power circuitry, the reset and bootloader buttons, and then the antenna connections.

Boot buttons and down the bottom we have a surface mount UFL connector and a provision for an edge launch SMA connector. That SMA connector wasn't in the version one prototype, but we decided to include it because, for the cost of a zero Ohm resistor, we can get this essentially free feature that just gives you more options. If you're an experienced user and you're happy adding that connector and flipping that resistor around doing a little bit of surface mount soldering then you can.

This took a lot of design cues from the Seed Studio LoRa-E5 module. It essentially has the same pinout, it just does away with a lot of the extras like the USB UART converter. I figured that beyond the most basic of hello worlds you don't really need that USB connection and you're going to be driving the thing with a microcontroller anyway.

So to help you get started, I've put together this demo application that basically walks you through how to connect to the things Network and send some data. This is intended to run on a Raspberry Pi Pico or other my MicroPython device. So when you connect these two together, it essentially just tests that the radio is connected. It gets the EUI from the radio, these are like the connection keys that you need for the things Network. It sets the app key that you generate on the things Network, there's a little bit of configuration for frequency channels and data rates, joins the things Network and then just punches out hello world as an ASCII text followed by just a bunch of hex data.

We actually have a tutorial for this coming out pretty soon and it's already available on the website. So I've been working on this thing since before Christmas and it was actually then that I filmed a very similar test to what we saw last week for the PiicoDev Transceiver. If you saw that episode I

I was just walking around the suburb of Adamstown doing some range tests. The risk of this feeling like a bit of deja vu was high, as I had done a very similar test with this and got some pretty pleasing results. It essentially was a line of sight and to complement that, we've sourced these 915 megahertz antennas with UFL connection on the back. These actually have an adhesive on them, so they can pretty easily be mounted on the inside of an enclosure.

UFL is a little bit of a design for manufacturer compromise. It's something that we can place with a surface mount pick and place machine. If we were using the SMA connectors, it gets a lot trickier because we probably have to include through-hole soldering. Including that whole process introduces a lot of complexity that probably isn't worth it. We think for most people that will just want to build these into an enclosure, there won't be too much cycling on the UFL connector. If you really want to use an SMA connector and you really don't want to add it to the board, you can always just put an adapter on it.

The last bit of prototyping news we're working on is a new PiicoDev module. We already have a laser distance sensor, but we thought we'd just do an ultrasonic one as well. This little smart module is designed so that you can plug on a 3.3-volt ultrasonic sensor and it just works. It has connections for power, ground, trigger and Echo. This is just running the Arduino core and a standard timed example of how to send out a pulse and time the response in microseconds. This is intended to be a lower-cost solution to distance sensing, and will probably wind up being a fair bit cheaper in the end than the laser distance sensor. This uses sound instead of infrared light, so it's probably more appropriate for things like detecting liquid heights in tanks.

He actually caught me just as I was about to assemble the test jig for this. This is just the Prototype, but I figured I might as well put the test jig together before we get the panel sent off because that's a great way to program this prototype and make sure that everything is put together nicely. So, if I'm able to do that before heading out today, then you'll be looking at some b-roll of that. Currently, in any case, that's all I have for you today, the first episode of 2023.

Comments


Loading...
Feedback

Please continue if you would like to leave feedback for any of these topics:

  • Website features/issues
  • Content errors/improvements
  • Missing products/categories
  • Product assignments to categories
  • Search results relevance

For all other inquiries (orders status, stock levels, etc), please contact our support team for quick assistance.

Note: click continue and a draft email will be opened to edit. If you don't have an email client on your device, then send a message via the chat icon on the bottom left of our website.

Makers love reviews as much as you do, please follow this link to review the products you have purchased.