

# Things to do and random ideas

## Hardware Change Ideas

* Connectors for I2C,SPI,neopixel ...
  * Could double as a connector for a small daughterboard
* Fine pitch connector for the debug connector
* Tiny buttons for rst/boot1 ...
* On board g-force/gyro chip, or as a small daughterboard
* Change to a 5V DCDC and a linear 3.3V?  To provice 5V for things like LEDs and servos.

### Software

* Develop a CAN bus capable bootloader for flashing over CAN. Probably needs incompatible changes to the CAN protocol
* Improve the CAN bus protocol to be more bandwidth efficient. Such as rely on CAN CRC and remove klipper CRC
* Modify klipper firmware to keep USB usable when using CAN bus
 * At least allow USB to detect boot loader trying to flash
 * Automatic switching to/from USB when connected

#### Bugs/flaws

* It's not possible to enter DFU bootloader when in klipper firmware automatically. The SWD pins might be in the wrong state.
* The CanSerial utility/Linux CAN bus interface is not as stable as you might wish

### Hardware issues

* The TPS54308 DCDC converter generates a lot of heat at idle. Is there a better way to get 3.3V with low ripple?

## Hardware Cost Cutting

* Use an STM32F0
 * no crystal needed? Even for CAN?
* Change to some cheap generic DCDC controller.
