stm032l041f6 + rf69 'dev sensor' board
While jeenode zero is a smashing board, I wanted to see if I can go for a little smaller and cheaper MCU in the actual environmental sensors I have around the house. Hence this "quick-and-dirty" "development board" with STM32L041F6P6 (TSSOP-20 package, 32kB flash, 8kB RAM), RFM69CW radio, basic assortment of LED+BOOT button+RESET button, and the pins broken out.
With this board I wasn't going for size (unusual for me, right?), I just wanted a convenient access to all pins, and non-radio components only on one side of the board. In addition to the features listed above, there are a few solder jumpers to modify the setup: one is to connect the IRQ pin of the radio to PA0 pin of the MCU - I didn't want to have that one connected by default, since with 20 pins on the MCU things get tight. Another solder jumper is for disconnecting the output of the voltage regulator from the rest of the circuit (so that it doesn't interfere when the board is powered directly, e.g. from 2 AA batteries). The third jumper is to disconnect the BOOT button from PB1 - I like to make that extra connection so that the button can be used also in firmware, not just to enter the bootloader, but sometimes one just needs that extra pin for something else.
Finally, it has a jeenode zero-like 6pin "FTDI" header on one side, with RESET and BOOT to mate with DTR and RTS. This is to make it conveniently work with Jean-Claude Wippler's SerPlus and folie, with the board running Matthias Koch's mecrisp stellaris forth. More on this below.
- STM32L0x1FyP6, x=3 or 4 (the difference is that 4 has hardware AES128, otherwise identical), and y=4 or 6 (this denotes flash size, 4 is 16kB, 6 is 32kB. 16kB is too little for mecrisp)
- MCP1703-3.3 voltage regulator, SOT23A-3 footprint
- RFM69CW radio
- 1x LED 0603
- 1x 1kR resistor 0603 (current limiting for the LED)
- 1x 10kR resistor 0603 (pulldown for BOOT)
- 2x 10uF capacitors 0603 (stabilising the voltreg, I think smaller would do, check the MCP1703 datasheet)
- 2x 0.1uF capacitors 0603 (digital noise filtering)
- 1x 1uF capacitor 0603 and 1x ferrite bead 0603 (optional, for a cleaner analog voltage supply (VDDA). If fitted, you'll need to cut the trace in the ferrite footprint, since it is "jumpered" by default).
The point for me was to run forth on the board. Enter mecrisp stellaris.
The starting point is of course Jean-Claude Wippler's embello, in particular
explore/1608-forth directory. So I started there, and pretty much try to follow
the conventions from there. Did some slimming down (e.g. replacing the constants by values),
and a couple more sensor drivers. I keep the files in
this repo (is in a lot of flux...)
The hardware side was done late 2017, but I didn't have much time to play with the board beyond testing that it works as intended. I have been using it with mecrisp stellaris forth a lot more recently (june 2019).
There is a "deployment" version of this board in the works. I'll keep (?) you posted.