For those interested here is a rough outline of my STM32 development plan
STM32
Goals of the project:
- Higher resolution 12 bit ADCs
- Higher sampling rate
- Continuous sampling on all Voltage and Current channels
- Shield/extension design
- RaspberryPi core, local datastorage, visualisation
- Learning resources on the STM32 platform to enable modification & customisation.
Steps:
-
Work through STM32 power supply, clock, programming sub circuits, check understanding, component sourcing. Put together base board design (equivalent of a STM blue pill, or Ken’s ARMIGO) potentially with a couple of CT and ACAC sensor inputs for initial testing.
-
Filter design for CT and ACAC voltage input circuits.
-
Construct 3D model of enclosure options, visualise different stacking design options, connectors, raspberrypi location. Ease of manufacture & assembly.
-
Verify MBUS reader running on STM32 alongside energy monitoring code.
-
Understand @dBC one wire code and timing implications.
-
Review base-board feature requirements:
- STM32 core and pin count
- Number of CT sensor inputs
- CT sensor mapping to ADC channels
sequential vs parallel sampling capabilities. - Number of ACAC Voltage inputs
- DS18B20, pulse counting connector types and numbers.
- MBUS
- RaspberryPi connector and mounting
- ESP8266 on board
- RFM69 support
- RTC
- Display & push button
Evaluate cost implications of including on board vs requiring shield additions for items such as MBUS, RFM69 & ESP8266.
- Create PCB layout for first hardware design. Get prototypes, testing, fix issues, EMC prelim, design iteration and revaluation of next steps from this point.
I will keep updating as this progresses. This is work I’m doing alongside emoncms and emoncms.org development and so development will be a little discontinuous at times.