I’m pleased to introduce a new version of the PCB Dipole Antenna, a significant upgrade from the previous version. This has a nice VSWR of almost 1.0 at both 868Mhz (at default 78mm length), and 915Mhz (trimmed at 73.5mm). It could be trimmed anywhere down to 2.4Ghz but it will be a best performer for the wideband LoRa and FSK radios in the sub Ghz ranges. Be sure to check out the dipole section in the RF-Best-Practices Guide for more theory on the dipole antenna.
The LE40V pick & place PCB holders consist of 2 adjustable brackets that are meant to hold the PCB tightly on 2 sides (let’s call them TOP and BOTTOM) while the machine pounds the panel with parts. Typically you’d set the TOP side bracket to a fixed position that is perpendicular to the machine rails and only adjust the BOTTOM bracket depending on the PCB panel size, and hope you won’t snap your freshly solder pasted panel in half when you tighten it in. Also worth noting that by default there is empty space (ie. nothing) below the PCB for support, so I had to add some supports to stop panels from vibrating during placement. While this bracket is perfect for holding trays and very rigid panels, after only a few uses it becomes obvious this is a pretty terrible design for scored/thin panels which buckle under the 2 sided pressure and un/screwing hex nuts every time a new size panel goes in the machine gets old super fast. And yes – I snapped V-scored PCB panels to pieces on more than a few occasions thanks to this mechanism. Now being a super awesome customer oriented company, DDM Novastar will surely take note and improve the PCB holder immediately, maybe using the ideas below.
After some time I added a rigid metal sheet base to properly support panels in the machine during placement and that allowed using magnets to hold the panels instead, a no-brainer makeshift solution. That worked pretty well for a few years but strong magnets are not easy to handle. I thought maybe I can really fix this with a new magnetic bracket and shoot a video of making it happen. The result is below. I am quite thrilled with these holders that can secure the panels quickly and are a snap to adjust without overlapping much PCB area. Here’s a video showing how these work and how I modeled the parts:
You can find the models on Thingiverse or download a Zipped archive below.
Do you have a laser cutter? Do you need an emergency shipping box?
The USPS Priority Small Flat Rate Box has a nice template that can produce an easy to cut resizable box from the endless supply of throw-away cardboard boxes from your online Prime and other shopping adventures.
I traced a curve after a photo of such a box laid flat on the floor, made some adjustments and ended up with a digital template that can be resized and adjusted to your needs. Makes for some recycled cardboard shipping boxes for those who think they might save a tree or need a quick sturdy box to ship something and don’t have one handy. Maybe this comes useful to someone.
The full SwitchMote kit is available again. I had to redesign the PSU cover and some 3D printed spacers which fit the new PSU R3. Everything is pretty much the same as before, except that there’s significantly less soldering to do. The PSU R3 is also available separately. All the small passives are now SMD soldered. There are now 4 screws that balance the cover a little better than before., and the FTDI programming header is offset from the edge.
You do the programming the same via an FTDI-Adapter and a double length male header which is provided in the kit.
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:
- 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:
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”.
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.
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!
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.
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.