There are plenty of e-bike computers on the market, but none more modular than Brian Barrett’s pyEC — a pyBoard-compatible system that offers several levels of functionality with each different board added. Barrett explains, “The idea behind the pyEC is that there are a number of layers interconnected to provide just the functionality you need and none of what you don’t.” Layers, in this case, are the separate modules that can be interconnected and controlled by a “Control Layer,” or mainboard.
There are eight Layers all together with each packing a different function, such as the Control Layer, which features an STM32F405 Cortex-M4 processor, USB port, SD card slot, buzzer, USR/RST switches, and an RGB LED. There is also a Serial Layer, which has four serial ports, 3.3V/5V level shifters, and RX/TX LEDs, plus an Input Layer that sports five switch inputs and two analog inputs.
Additional boards include a Power Layer, which consists of a 12V input, 5V output, two high power, and three low power digitally controlled outputs. A Kelly Layer designed for KLS-S controllers with 24V step-up converter, DAC outputs, digital outputs, and UART. A Battery Backup Layer, which offers LiPo charging and 5V stable output. An IMU Layer that provides a WIT motion IMU through either I2C or serial, with GPS input and direct IMU access ports as well, and a Test Layer that exposes all pins from the Control Layer as well as buttons / LEDs on IO pins and potentiometers for ADCs.
Barrett has shared a detailed explanation for each Layer on his blog and uploaded schematics and Gerber files to his GitHub page for those who would like to manufacture their own pyEC e-bike modular system.