we are looking for an ST expert to develop a firmware for the STM32F07 MCU used on our boards.
The product is a keyboard with an integrated Hub and 2 flash storage solutions : one eMMC memory which stores a bootable LiveOS and a SD card reader external storage which is used for saving user-generated data from the LiveOS. Each memory controller and the MCU are each on a separate USB downstream channel, driven by a Hub IC connected to the host computer. HID USB keyboard capability as well as basic overall control of the board is provided by the ST32 and its firmware which is the topic of this job.
The MCU firmware has to provide the following functions :
1) Process keypresses from the keypad switches (24 pins, row/columns) and transmit them to Host over USB using HID, providing standard USB keyboard functionality.
2) Capability of setting the eMMC memory controller in write protected mode or not, depending on the position of an external user-activated 2 position switch (On or Off). Programmatically this is simply setting a pin High or Low on the controller depending on the position of the switch at power on.
3) Induce an adjustable delay (starting with 30 seconds) for the detection of the external SD card controller at power on / boot time. This is to reduce the number of bootable device enumerated by Bios or UEFI in the Boot on USB menu/list.
4) Slow fade/breath a LED located in the product's Power push button when the side switch is set to Write protected and pulse it fast when set to Write Enabled. This is to let user know that memory is not protected. Switch is set to Write enabled only to write/install system updates, once every 6-8 weeks.
5) The firmware needs to be autonomous at product power-on and user-updatable via USB once factory-flashed for future developments or bug corrections. Code signing or similar mechanism to prevent unwanted flashing would be appreciated.
For someone familiar with ST products, the job's duration has been estimated to be short and its complexity quite low by an in-house PIC firmware engineer. Please share your previous ST products work when applying as we require robust ST knowledge and experience in order to move fast.
The EE who designed the board can provide written guidance and support during the job. All schematics, keypad switch matrix table and a more precise written description for the above steps will be provided. A prototype test board may also be provided or testing/flashing can be done by us, depending on location and delays.
We stress that, the product being built around PC and Mac "Boot on USB" options, the firmware must be operating rapidly in order to be usable straight away in low level bios. HID implementation must be clean in order for the keypad to be used during boot menu selection in Bios or UEFI.
Provided timely delivery and all functionalities work correctly there will be more opportunities in the near future for additional jobs intended to implement additional features to this initial code.
Thank you for reading, we are eager to find and start working with the right person for this project!