Skip to content

DvidMakesThings/HW_BladeCore-M54C

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BladeCore‑M54C

BladeCore‑M54C is part of the BladeCore modular controller series.
Each BladeCore variant is implemented as a standalone hardware repository, sharing a common architectural philosophy while targeting different microcontrollers and interfaces.

This repository documents the BladeCore-M54C hardware, which is based on the RP2354B microcontroller and integrates CAN 2.0B connectivity.

BladeCore Series Overview

The BladeCore series consists of the following hardware variants:

Module Microcontroller Primary Interface Form Factor Status
BladeCore‑M40 RP2040 - Work in progress
BladeCore‑M40E RP2040 Ethernet - Work in progress
BladeCore‑M40C RP2040 CAN - Work in progress
BladeCore‑M54 RP2354B - Work in progress
BladeCore-M54E RP2354B Ethernet 2980 Available
BladeCore-M54C RP2354B CAN 2980 Available

Naming Scheme Explanation

The BladeCore naming scheme encodes the microcontroller family and primary communication interface directly in the module name:

  • M40 designates an RP2040‑based module
  • M54 designates an RP2354B‑based module
  • E suffix indicates integrated Ethernet support
  • C suffix indicates integrated CAN support

Variants without a suffix represent the base module for that microcontroller family, without Ethernet or CAN integrated.

Each BladeCore variant is implemented as a separate hardware design and repository.

Description

BladeCore-M54C is a compact controller module built around the RP2354B microcontroller, combined with a MCP2515T-I/ML CAN controller and the TCAN1044AVDRBRQ1 CAN transceiver.
The module is designed as a 2980-size M.2 M-Key card, intended to be embedded into a carrier board or system that provides power through the M.2 edge connector.

The design integrates:

  • RP2354B microcontroller
  • External QSPI flash memory
  • External I²C EEPROM
  • Onboard CAN controller and transceiver with 120 Ohm termination
  • Dual‑path USB connectivity with automatic source selection
  • Onboard power regulation and defined power‑up sequencing

This repository contains the schematics and documentation.

Resources

Hardware Overview

BladeCore‑M54C top view
Top view
BladeCore‑M54C bottom view
Bottom view

Form Factor

  • M.2 2980
  • M‑Key
  • Power and I/O routed through the M.2 edge connector

Microcontroller

  • RP2354B
  • External 12 MHz crystal
  • Internal 1.1 V core supply generated by the MCU
  • SWD debug interface available
  • GPIOs routed to the M.2 edge connector

Memory

  • Integrated Flash
    • RP2354B
    • Capacity: 2 MB
  • External QSPI Flash
    • W25Q128JVPIQ
    • Capacity: 16 MB
  • External I²C EEPROM
    • AT24C256
    • Capacity: 256 kbit

CAN

  • MCP2515T-I/ML CAN controller
  • TCAN1044AVDRBRQ1 CAN transceiver
  • Interface to MCU via SPI
  • Onboard 120 Ohm termination
  • Dedicated reset and interrupt signals
  • ESD protection

USB

BladeCore‑M54C supports two physical USB connection paths:

  1. USB routed through the M.2 edge connector (external host or carrier board USB), and
  2. Onboard USB‑C connector.

A FSUSB42 USB 2.0 high‑speed multiplexer is used to select which USB path is connected to the RP2354B.

USB path selection behavior:

  • By default, the USB data lines are routed to the M.2 edge connector.
  • When the onboard USB‑C connector is plugged in, the FSUSB42 automatically redirects the USB data path from the edge connector to the onboard USB‑C connector.
  • Removing the onboard USB connection restores the default routing to the M.2 edge connector.

This allows the module to be normally operated via a carrier board USB connection, while still enabling direct access through the onboard USB‑C connector when needed, without manual configuration.


Power

  • Input supply: VBUS / 5 V / 3.3 V (5V and 3.3V is selectable by onboard solder jumper)
  • TPS74801 low‑dropout regulator generating 3.3 V in case of 5V power is selected
  • Power‑good signaling with visal feedback (LED)
  • USB VBUS sensing routed to ADC
  • Optional USB‑powered operation depending on component population (as noted in schematics)

M.2 Connector Pinout

Left Side (Odd Pins)

Pin Name F0 F1 F2 F3 F4 F5 F6 F7 F8 F9
1 GND
3 GPIO24 SPI0 TX UART1 RTS I2C1 SCL PWM3 B SIO PIO0 PIO1 PIO2 CLOCK GPOUT1
5 GPIO23 SPI0 TX UART1 RTS I2C1 SCL PWM3 B SIO PIO0 PIO1 PIO2 CLOCK GPOUT1
7 GPIO22 SPI0 SCK UART1 CTS I2C1 SDA PWM3 A SIO PIO0 PIO1 PIO2 CLOCK GPIN1
9 GPIO21 SPI0 CSn UART1 RX **I2C0 SCL PWM2 B SIO PIO0 PIO1 PIO2 CLOCK GPOUT0
11 GND
13 GPIO20 SPI0 RX UART1 TX **I2C0 SDA PWM2 A SIO PIO0 PIO1 PIO2 CLOCK GPIN0
15 GPIO19 SPI0 TX UART0 RTS I2C1 SCL PWM1 B SIO PIO0 PIO1 PIO2 QMI CS1n
17 GPIO18 SPI0 SCK UART0 CTS I2C1 SDA PWM1 A SIO PIO0 PIO1 PIO2
19 GPIO17 SPI0 CSn UART0 RX **I2C0 SCL PWM0 B SIO PIO0 PIO1 PIO2
21 GPIO16 SPI0 RX UART0 TX **I2C0 SDA PWM0 A SIO PIO0 PIO1 PIO2
23 GND
25 GPIO15 *SPI1 TX UART0 RTS I2C1 SCL PWM7 B SIO PIO0 PIO1 PIO2 CLOCK GPOUT1
27 GPIO14 *SPI1 SCK UART0 CTS I2C1 SDA PWM7 A SIO PIO0 PIO1 PIO2 CLOCK GPIN1
29 GPIO13 *SPI1 CSn UART0 RX **I2C0 SCL PWM6 B SIO PIO0 PIO1 PIO2 CLOCK GPOUT0
31 GPIO12 *SPI1 RX UART0 TX **I2C0 SDA PWM6 A SIO PIO0 PIO1 PIO2 CLOCK GPIN0
33 GPIO11 *SPI1 TX UART1 RTS I2C1 SCL PWM5 B SIO PIO0 PIO1 PIO2
35 GPIO10 *SPI1 SCK UART1 CTS I2C1 SDA PWM5 A SIO PIO0 PIO1 PIO2
37 GPIO9 *SPI1 CSn UART1 RX **I2C0 SCL PWM4 B SIO PIO0 PIO1 PIO2
39 GPIO8 *SPI1 RX UART1 TX **I2C0 SDA PWM4 A SIO PIO0 PIO1 PIO2 QMI CS1n
41 GND
43 GPIO7 SPI0 TX UART1 RTS I2C1 SCL PWM3 B SIO PIO0 PIO1 PIO2
45 GPIO6 SPI0 SCK UART1 CTS I2C1 SDA PWM3 A SIO PIO0 PIO1 PIO2
47 GPIO5 SPI0 CSn UART1 RX **I2C0 SCL PWM2 B SIO PIO0 PIO1 PIO2
49 GPIO4 SPI0 RX UART1 TX **I2C0 SDA PWM2 A SIO PIO0 PIO1 PIO2
51 GPIO3 SPI0 TX UART0 RTS I2C1 SCL PWM1 B SIO PIO0 PIO1 PIO2
53 GPIO2 SPI0 SCK UART0 CTS I2C1 SDA PWM1 A SIO PIO0 PIO1 PIO2
55 GPIO1 SPI0 CSn UART0 RX **I2C0 SCL PWM0 B SIO PIO0 PIO1 PIO2 TRACECLK
57 GPIO0 SPI0 RX UART0 TX **I2C0 SDA PWM0 A SIO PIO0 PIO1 PIO2 QMI CS1n
67 GND
69 USB_D+
71 USB_D-
73 GND
75 VBUS

Right Side (Even Pins)

Pin Name F0 F1 F2 F3 F4 F5 F6 F7 F8 F9
2 GND
4 GPIO27 *SPI1 TX UART1 RTS I2C1 SCL PWM5 B SIO PIO0 PIO1 PIO2
6 GPIO26 *SPI1 SCK UART1 CTS I2C1 SDA PWM5 A SIO PIO0 PIO1 PIO2
8 GPIO25 *SPI1 CSn UART1 RX **I2C0 SCL PWM4 B SIO PIO0 PIO1 PIO2 CLOCK GPOUT3
10 3V3_OUT
12 3V3_OUT
14 +5V_IN
16 +5V_IN
18 GND
20 GND
22 GND
24 GND
26 GND
28 CAN_P
30 CAN_N
32 GND
34 GPIO37 SPI0 CSn UART1 RX **I2C0 SCL PWM10 B SIO PIO0 PIO1 PIO2
36 GPIO38 SPI0 SCK UART1 CTS I2C1 SDA PWM11 A SIO PIO0 PIO1 PIO2
38 GND
40 GPIO39 SPI0 TX UART1 RTS I2C1 SCL PWM11 B SIO PIO0 PIO1 PIO2
42 GND
44 GND
46 ADC0/GPIO40 *SPI1 RX UART1 TX **I2C0 SDA PWM8 A SIO PIO0 PIO1 PIO2
48 ADC1/GPIO41 *SPI1 CSn UART1 RX **I2C0 SCL PWM8 B SIO PIO0 PIO1 PIO2
50 ADC2/GPIO42 *SPI1 SCK UART1 CTS I2C1 SDA PWM9 A SIO PIO0 PIO1 PIO2
52 ADC3/GPIO43 *SPI1 TX UART1 RTS I2C1 SCL PWM9 B SIO PIO0 PIO1 PIO2
54 ADC4/GPIO44 *SPI1 RX UART0 TX **I2C0 SDA PWM10 A SIO PIO0 PIO1 PIO2
56 ADC5/GPIO45 *SPI1 CSn UART0 RX **I2C0 SCL PWM10 B SIO PIO0 PIO1 PIO2
58 GND
68 GND
70 GND
72 VBUS
74 VBUS
SH1 SHIELD

*SPI1 is used for the onboard CAN controller (MCP2515T)

**I2C0 is used for the onboard EEPROM (AT24C256)

Revision History

Revision Date Notes
1.0.0 2026‑01‑31 Initial creation

Notes

  • This documentation intentionally avoids assumptions about firmware features, supported protocols, or software behavior.
  • All statements are derived from the provided schematics and explicit design notes.
  • Component‑level limits and behavior should be verified against the respective datasheets.

License

Hardware Components

Hardware designs, schematics, and related documentation are licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (CC BY-NC-SA 4.0). See the Hardware License file for details.

What CC BY-NC-SA 4.0 means:

  • You can study, modify, and distribute the hardware designs

  • You can create derivative works for personal, educational, or non-commercial use

  • You can build this project for your own personal use

  • ⚠️ You must give appropriate credit and indicate if changes were made

  • ⚠️ You must share any modifications under the same license terms

  • ⚠️ You must include the original license and copyright notices

  • You cannot use the designs for commercial purposes without explicit permission

  • You cannot manufacture and sell products based on these designs without a commercial license

  • You cannot create closed-source derivatives for commercial purposes

  • You cannot use the designer's trademarks without permission

Commercial & Enterprise Use

Commercial use of this project is prohibited without obtaining a separate commercial license. If you are interested in:

  • Manufacturing and selling products based on these designs
  • Incorporating these designs into commercial products
  • Any other commercial applications

Please contact me through any of the channels listed in the Contact section to discuss commercial licensing arrangements. Commercial licenses are available with reasonable terms to support ongoing development.

Contact

For questions or feedback:

Contributing

Contributions are welcome! As this is an early-stage project, please reach out before making substantial changes:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/concept)
  3. Commit your changes (git commit -m 'Add concept')
  4. Push to the branch (git push origin feature/concept)
  5. Open a Pull Request with a detailed description

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors