New MoteinoM0 Released!

If you’ve watched the forum, it’s been suggested to develop a new Moteino board featuring new/more powerful/more flexible or even ARM microcontrollers. Mentioned candidates were the Atmega328PB, STM32, SAMD from Microchip and perhaps others were mentioned over time as well.

Say hello to MoteinoM0 – it features the popular SAMD21G ARM Cortex M0+ 32bit processor (48Mhz, 256kb FLASH, 32kb SRAM). It’s quite an awesome bit of silicon brains and after months of playing with it, tweaking libraries and sketches, testing peripherals and designing add-ons for it, and developing an Arduino package for it that is oriented on LowPowerLab‘s most important points of interest, it is now available to the public.

But SAMD21 has been offered by others for years you say. How is this exciting and why did this take so long? I didn’t want to spam the market with a new clone and claim this is the best thing since Arduino Zero. Here are a few highlights that I think will make MoteinoM0 different and interesting:

  • long range wireless programming enabled just like all the other current AVR Moteinos!
  • Got low power? You bet! How about 6µA in standby sleep? MoteinoM0 yields the real low power mode achievable by the SAMD21, 7µA in watchdog periodic sleep, +1µA for the external 4MBIT FLASH-MEM chip and radio module
  • supports RFM69HCW and LoRa radios, plus secondary radios and add-ons, see below
  • a modular design enables compact platform for I2C/SPI/GPIO add-ons, just a few examples to mention:
    • SD-card logger ( with “zero” power control)
    • weather node
    • multi DOF accelerometer/gyroscope/magnetometer
    • secondary RFM transceiver (say you want an FSK and LoRa Gateway to listen concurrently or combine different concurrent frequencies)
  • break out as many useful and Arduino supported pins as possible in a symmetric and compact board layout
  • ease of side castellated mounts allow these add-ons to be mounted directly flat on the PCB without additional headers, here’s a simple weather-node add-on board that only requires one sided soldering and can be easily removed and reused:
  • you may also stack above/below using extra headers or solder extension wiring to the side half-holes for quick removal and re-use later:

Here is a quick pin reference and schematic:

A few things about similarity to the standard Arduino Zero:

  • this board was designed to be as compatible with Arduino Zero as possible in terms of available MCU functionality
  • GPIO and core package is adapted from Arduino Zero, all GPIO is accessible the same way, except PA28 (USB_HOST_EN) which is not connected
  • as seen in the reference above, some pins are hardwired to the radio transceiver and SPIFlash (A2/SS for radio, D8 for FLASH-MEM) and used by these modules
  • you should be able to use most Arduino examples with MoteinM0 without a lot of hassle. If you’re already familiar with Arduino Zero this board should feel right at home

Read below for why this took “so long”.
Continue reading

SwitchMote PSU R3 release

The SwitchMote PSU is now at revision 3, here are the changes:

  • DC side is now SMD assembled, no more through hole components
  • 2OZ copper PCB
  • with the RECOM RAC02-05SGA there is no need for a fuse, only a MOV at 230V
  • although the DC side TVS footprint is left there, the specs of the AC-DC do not warrant a TVS on the DC side
  • same relay options as before – two 10A/250V relays or one 16A/250V relay
  • same control via AVR Moteino
  • optional footprint for ACS711 hall effect current sensor, this is experimental – it offers an analog output proportional to the AC current flowing through the SwitchMote relays. Adding this sensor requires cutting the main HOT trace where indicated and soldering solder jumpers on the bottom from the transducer’s DC side (isolated) to the Moteino side.
  • 4 symmetric mounting holes for a better enclosure – planning to make a 3D printed PETG enclosure and make the SwitchMote available with it

The kit will include the SMD assembled PCB along with the RECOM PSU, relays, MOV, screw terminal and headers. Optionally it can be ordered assembled at an additional cost.

New Moteino packages released for Arduino IDE

There is a new Moteino Arduino core package release (v1.4.0). If you’ve used the Moteino package so far with the Arduino IDE, you should get a little notice next time you start it up. By the way the link to the LowPowerLab package definition JSON is the same and should be pasted in your Preferences dialog under Boards Manager URLs:

Then you can either install or upgrade to the latest AVR package. Notice there is a brand new Moteino SAMD package with a new MoteinoM0 board as well, more on that in a separate post. Install/upgrade these in your Boards Manager:

These two packages includes a refined selection of taget boards:

  • [ Moteino / Moteino-USB ] – use this to send your sketch to a Moteino or MoteinoUSB
  • [ Moteino (8Mhz) ] – for 8Mhz Moteinos 
  • [ MightyHat ] – technically identical definition to Moteino but use this to target a MightyHat
  • [ MoteinoMEGA / MoteinoMEGA-USB ] – use this to program MoteinoMEGA or MoteinoMEGA-USB
  • [ MoteinoM0 ] – a new Moteino based on SAMD21 Cortex M0+!

Once the packages are installed or upgraded you should see these new boards in your Tools>Boards menu:

And if you’re using my custom IDE board/port shortcut bar add-on, you can quickly add and access them directly from a click of a button, no more searching in the mile long Boards submenu of doom:

Some notable changes in these new packages:

  • added standard LED_BUILTIN pin macro definitions for all boards, you can simply use this macro to address the onboard LED of any Moteino, no more need for specific checks of what board it is you’re targeting, the LED_BUILTIN will just work. This macro references D9 on 328P Moteinos and MightyHat, D15 on MoteinoMEGAs, and D13 on MoteinoM0, simply use this macro directly in your sketch:
  • added board macro definitions for all Moteino boards:
  • added SS_FLASHMEM macro pin definitions for all Moteinos, again this is to ease the use of the SPI CS/SS selection pin across all Moteino boards:

I hope you find these changes useful. There’s lot of work to be done to upgrade all the sketches in the RFM69 and SPIFlash libraries to make use of these new macros. Please report any issues and stay tuned for the coming updates on MoteinoM0!

RFM69 and SPIFlash libraries released via Arduino LibraryManager

The LowPowerLab RFM69 and SPIFlash libraries are now published to the Arduino Library directory, and available to install in the IDE’s Library Manager (under Tools>Manage Libraries). Note that if you already have these library installed manually, you may need to remove it and re-install using the manager:

As new versions are released, you can update to the latest or switch back to an older version if you have a need to do so. If you’re new to using the Library Manager, it’s worth to read the official Arduino Library guide, and also check the Library Manager FAQ, to understand how Arduino libraries work, and how manage them (adding, switching, updating, manual library installation, deleting local libraries, etc).

As usual, please report any issues or bugs in the forum or open a Github issue where appropriate.

Wireless Programming GUI v1.6

The WirelessProgramming GUI is now at v1.6. You can find and download it here. Please note it is no longer part of the RFM69 library, but has been moved into its own WirelessProgramming repository. Here are some changes:

  • protocol improved to support variable HEX record length
  • various other minor bugs fixed
  • removed the logging delay in v1.5 since it was causing some glitching

Since v1.5 (release notes here) you may know  that this OTA GUI can also invoke the OTA.py script which is included with it. This way you may customize the OTA.py script to your own needs, the windows GUI uses the same algorithm. The GUI includes the IronPython runtime and libraries required to invoke this python script right from the app. You may of course simply use the OTA.py script independently if you’re so inclined.

I spent a few days doing testing and I would like to invite Moteino users to try this new version and report any bugs via the contact form.

For those interested in future releases – last year I developed a new OTA algorithm which cuts the upload time dramatically. I mentioned this briefly in the forum but I got distracted in many other directions and it’s not finalized. It is more complex and needs a lot of testing and fine tweaking. It was originally intended for transferring small files via non-wifi subGhz transceivers (RFM69) and would need porting and adjustments for OTA purposes. I would like to hear feedback and see the level of interest about wireless programming of Moteinos (aka OTA programming). Feel free to drop a line and share your experience so far and change requests.

DIY Moteino guide

I posted a short illustrated guide for making your own Moteino from SMD components. It also includes details how to burn the bootloader and fuses. Check it out here. Thanks and credit goes to forum user LukaQ for his contribution of the images and test sketches in this guide!

iPad keyboard 3D printed holder replacement

We’ve had two of these iPad keyboards and they are quite nice other than having a very poorly designed corner holders. Needless to say they broke within just days after purchase, nothing surprising with kids in the house. I haven’t thrown them away and kept them around for years hoping they might be useful some day. That day has come and I will show you how a simple fix has brought life back to these sad and lonely keyboards!

After sawing off the broken parts, I came up with two designs. One is a replacement for the broken corner only and leaves the other original corner. The other extends on the entire top side and replaces both the original corner holders. I used this honeycomb design to save on material and not spend eternity redesigning the wheel. I modified that model in the following ways:

  • I made the bottom thinner since it was too thick
  • I sliced away the case to create the corner version and top side only
  • I cut sliced away the casing where iPad buttons are to allow easier access

No rocket science here, printed these in PLA, some super glue cement the printed parts into the old cases.  I will let photos tell the story. Continue reading

3D prints remover from scrap stencil

After you finally figure out the right settings and calibrate your 3D printer head and it makes prints that stick very well to your printer bed, it’s time to figure out how to remove the prints without damaging them. I went to HomeDepot to find a scraper but all are too thick and very rigid, and … $5+. I can do better.

There are many designs for a DIY print remover and most seem to be designed for razors. I see a few potential problems with razors:

  • too small
  • the utility knife blades are not flexible
  • if you’re not careful they can cut/damage:
    • the print bed if you’re not careful
    • you or loved ones 🙁

I have tons of old stainless steel stencils of various thicknesses, and all are very nice and flexible, perfectly thin to squeeze under a print and pry it off the bed.

I tried using one bare handed a few times and while its not as dangerous as a razor it’s still thin and if I try long and hard enough I will get injured. Sure you can dull it but I don’t like how short razors are, I wanted more of a proper scraper size. Continue reading

Moteino/production board testing – IDE vs. avrdude

To those that have concerned over the utility of my IDE add-on’s utility, I would like to follow up and give an example of production board batch testing at a very simple level. A simple pogo (spring loaded probe) jig is used to only power and access essential peripherals of a target board, and among other things upload a fixed test sketch to ensure basic functionality of the board. Since this is done repeatedly, it’s desirable to have a more automated way of doing this over and over again to save time. I show how we can edit some IDE settings for a target board to skip verification, and also how you can use avrdude to quickly upload sketches without the IDE’s compilation and optimizations overhead. The same would apply for bossa for SAMD or whatever upload tool your target board might be using). Let me know your thoughts and suggestions!

As an update – I’ve always just used avrdude for quick uploads but a very worthy mention suggested by a viewer is using avrdudeSS which is a very nice GUI for avrdude, check it out!

Component sourcing and Mouser vs. Digikey Pros and Cons

This post is about mainly sharing the experience of a small maker business sourcing genuine components right here in the USA. Sourcing and stocking the right components in the right quantities is one of the finest balancing acts in a small electronic manufacturing business. That’s because keeping large stocks of parts has not only tax implications but also drains funds from other efforts faster than you may realize. If you’re a beginner and need some tips, here’s some experience that might save you a little sweat and hopefully a few of your hard earned dollars. I might will update this article in the future as more things come to be realized in this area of the business.

My main parts suppliers since LowPowerLab‘s inception were Mouser and Digikey. Both are great in their ways which I outline down below, but there have been some surprising downside quirks as well. Hey it’s a little hard to get motivated to write only about awesome things, usually the bad stuff triggers reviews. But I’ll try to keep this objective and informative. If both were great at everything then there would be no reason for competition or even having multiple suppliers. Monopoly is a bad thing in supply chains, and I hope these companies will continue to exist as separate entities and not eat each other in some monster acquisition deal.


I have mainly 2 types of orders. One type is the “small value” prototyping batch of components or small run custom batch for a client which I usually place at Digikey due to their more comprehensive offering. Even this can run into the lower hundred dollar range depending on the project I’m putting together, but the average is under $100. Then there is my normal run, what I call the periodic replenishing orders which are in the thousands of dollars range. Whenever I run low on certain parts, I place them in the cart, and they stay there until I’m ready to complete the order. It’s unlikely for me to use fast shipping, so I usually go with ground services. I even use USPS for the real low count prototype orders.

Before I get into my sourcing experience with these suppliers, let’s take a quick look at the pretty incredible state of affairs with respect to passive component sourcing in Q1/2018. So as a quick primer side story about parts sourcing – if you’re a maker you’re already familiar with the astronomical passives lead-time situation. Just the other day I was scrambling to find 0.1uF 0603 caps (which along with 0603 1K 10K resistors are the most popular and numerous parts in my designs). They  nowhere to be found these days due to extreme factory lead times for new passive stocks. I ended up paying $210 this week for the last 15K reel of cheapest 0.1uF caps (normally <$20 for a 4K reel). Yup, it’s that bad!

Neither of these companies are directly at fault for this, at least not for the supply chain. But they control their dwindling stocks pricing of course that’s for sure, and why not make a buck while in this dire straits, right? This week I made the mistake of keeping some reels of basic passives in the cart for a day or so until I completed my order (at Digikey first then at Mouser when Digikey 1) doubled the price then 2) went from a comfortable 16-24,000 parts to 0 stock. No problem, Mouser doesn’t mess with pricing right? Then Mouser did it too, but too late for screenshots to prove it! I should have just bought those on the spot knowing everyone else is trying to buy them too. Don’t procrastinate silly!

Anyway let’s now go ahead and imagine a little fable here:

In general as companies (not necessarily these) get larger they tend to become more imperialistic, trusting their dominance on market share confidence and getting preferential with customers depending on their bottom line impact. Small customer care becomes secondary. Me and you are probably lost in the background noise of annoying small customers, more so the lower the order value (more overhead per order for less profit!). Say you bought a few different SMD resistors, some switches, whatever else small value components for your latest breadboard project.

You buy not-overnight shipping, place your order sometime in the morning and expect them shipped in cut tape or whatever part spec packaging, before the same-day shipping 8-9PM cutoff time, well in time to get it for your exciting weekend project you’ve been looking forward to. But hey wait – who cares about your $19 order value, when there’s real customers. Think someone will walk the warehouse 5 minutes to count and cut your 10x 0603 resistor tape then pack your $19 order by cutoff time just because your order came in early? Have a question or concern? Go away annoying fruit fly, we are having some difficulties fulfilling the unexpectedly large number of orders in the last day, we will get to your order after the real customers and our interests get served.

That fable is a little on the extreme. But it get’s pretty close to reality actually when it feels like it’s happening to you, again, then again, and again. Continue reading