Firmware:

Specialized software that runs on embedded platforms. Pasadena Coherent can develop new firmware from scratch, or extend existing firmware to do new things.


Raspberry Pi driving NeoPixels with a driver produced in-house Using an oscilloscope to debug the one-wire signaling protocol A custom Arduino-compatible microcontroller featuring an ATMega644 MCU, DS3231 real-time clock, nav switch, and power supply

General

  • Firmware can be developed in C, C++, Arduino, or whatever toolchain your MCU requires.
  • Device drivers will generally be written in C. Complex control programs will generally be written in C++. If you specifically prefer one or the other, or require a different language (Parallax Spin, etc), this can be accommodated.
  • Coding in C++ will be done in the SOLID style, or as close as possible without exhausting your MCU's speed and RAM limitations.
  • Configuration read from and stored to EEPROM, MicroSD, or whatever persistent storage your platform offers.
  • Device I/O (real-time clocks, IMUs, displays, etc).
  • Text- and graphics-based special effects for your character or graphic display.
  • Physics simulation and other tricks to make light-generating displays really pop.
  • Motion control for robotics.

Robot / 3D Printer Firmware

  • 8-bit and 32-bit architectures, especially Smoothie. Other firmwares (RepRapFirmware, Repetier, Marlin, etc) can also be modified. If existing firmware is inadequate for your purposes, completely new firmware can be written from scratch.
  • Kinematics for new drive types.
  • Heuristic calibration systems for non-linear drive types.
  • Z-probe calibration systems.
  • Anything else you might like, as long as the MCU has enough clock cycles and RAM to support it.

Small Device Firmware

  • 8-bit (Arduino) and 32-bit (Arduino/Teensy++, Raspberry Pi, BeagleBone, etc) architectures.
  • Clocks.
  • Lamps.
  • Clocks that are also lamps.
  • Any other sort of desktop gadget.
  • Drones (flying and ground-based).
  • Art installations.

Device Drivers

  • GPIO, I2C, SPI, CAN, UART, or anything else your MCU supports.
  • Custom protocols, e.g. WS2812 (NeoPixel) one-wire control.
Copyright 2013-2019 Pasadena Coherent. All rights reserved.
Seeed Studio, OSH Park, SeeMeCNC, and other marks are the property of their respective owners. No infringement is intended.