The Stirling Blue project will be using 4 hero modules plus a couple of PSoC modules which total up to at least 8 ARM chips, and at least 3 different integrated development environments (IDEs) to handle all the software. It will also have 5 custom PCBs, which need to be designed early, to ensure delivery within the project schedule. This blog covers the PCBs that will be used with the BBC micro:bit. I want to use the micro:bit as a BLE display for Stirling engine data, but its LEDs are not really adequate to display the amount of data that will be generated, so I have to add an LCD to the micro:bit. The micro:bit doesn't have enough memory to store fonts, so the LCD interface card will also have a FRAM footprint to provide extra non-volatile memory
It seems very limiting to design a display without having a decent way to enter data, so I am also designing a QWERTY keyboard to work with micro:bits. This will turn the micro:bit into a full fledged BLE text messaging system. The idea is for micro:bits to be able to text each other via BLE. This aspect of the project is probably far more significant than the Stirling engine system since there are over a million micro:bits out there that could use this capability. Given the market audience, these peripherals need to be low-cost.
However the micro:bit barely has enough I/O pins to connect an SPI LCD, so the keyboard needs to have its own encoder with a slave SPI interface.
To handle the 60 button keyboard, I chose a low-cost PSoC4, which uses the same IDE as the PSoC6 hero module I am using. The PSoC4 is fully capable of running the keyboard and a couple of LCDs, so I designed it to have 3 different end use applications:
- an SPI slave QWERTY keyboard for a BBC micro:bit
- a serial (UART) and/or Bluetooth terminal with keyboard and display
- a programmer that allows the BBC micro:bit expansion FRAM to be loaded with data
The PSoC4 is a capable platform in its own right and has enough pins but not quite enough internal resources to perform all these functions simultaneously. However the beauty of the PSoC paradigm is that it can easily be reprogrammed to implement a different feature set and they aren't all needed at the same time.
Designing all this flexibility into the custom cards took a lot of careful planning and detailed design work, but both PCBs are now designed. One of my design constrains was that the PCB had to be less than 10 cm x 10 cm because of a price break at the PCB shop. That dictated how big the buttons on the keyboard could be.
The button matrix was set up to be a straight 6 row x 10 columns arrangement so I could get QWERTYUIOP on one row. The 60 keys were selected for communications speed rather than word processing flexibility.
I will publish schematics and layouts after the cards have been proven to work, but for now here is what the micro:bit TXTR will look like:
I added some translucency to the cover so you can see some of the circuitry underneath.
The button with the sun on it is for the LCD backlight.
The buttons for the tactile switches will be 3D printed in two-tone.
There are slide switches on the side for power.
I have compiled the PSoC4 hardware in all of its variants to ensure the pinouts will work, but no real software has been started.
Upcoming blogs:
Blog 4 will be on the sensor PCB
Blog 5 will be about how Stirling engines work
Related Links:
Bluetooth Unleashed Design Challenge
Bluetooth Unleashed Design Challenge: The Challengers
Bluetooth Unleashed Design Challenge: About This Challenge
Links to other blogs for this project:
Stirling Blue - Project Description - Blog 1
Top Comments