Showing 1 of 2440 conversations about:
YYRR
32
Jan 20, 2016
bookmark_border
@HaaTaHi, I notice that there are several pin holes on the pcb, e.g. SCL0, SDA0 and so on. Is there any document on how to use those pin holes? (I am a 100% greenhorn on electronics. ) Is it possible to use them for implementing additional functionalities? such as: 1> joystick/trackpoint/trackball (like IBM keyboard) 2> usb-hub (like HHKB2) 3> micro-SD card reader ( I would love this. ) 4> lightsensor (then the brightness of LCD and LED could be automatic) 5> audio jack ( I don't know, might be useful for using public desktops. in library?) 6> bluetooth component?
Thanks
Jan 20, 2016
HaaTa
558
Input Club
Jan 20, 2016
bookmark_border
I don't have a lot of documentation (though my code has lots of comments for whenever I have a beer in my hand :D).
But yes, I've left a lot of the expansion pins open, for two purposes, debugging and hacking on other things. Adding on devices is not for the C novice, but it's very doable.
Available interfaces: SDA0/SCL0 (I2C) - Currently only used for the LED driver, unless you are trying to drive the LED driver at 83 fps then there should be plenty of bandwidth left.
Rx2/Tx2 (UART) - Debug cli port (disabled in the shipping image), it's used to show bootloader information which helps if you brick your firmware or it's resetting and you don't know why. It's the slowest of the 3 UARTs but still plenty fast enough for any peripherals. The Interconnect uses Tx/Rx 0 and 1 at runs at a mind numbing 4.5 megabaud (fastest it goes until you overclock the MCU).
Unfortunately I didn't leave the SPI very open. The LCD is only 3 wire SPI so less useful in general. You also need to hook into the Chip Select which is not exposed...
AUD - Audio synchronization for the LED driver. I don't have any support code for this, but perhaps fun things can be done.
As long as the device supports UART or I2C it's definitely possible. 1. Yep, should be doable. 2. Unlikely unless you plug it into the input USB. This also gets tricky because I highjack some of the USB pins for the interconnect. Eventually I plan on adding a USB hub to a keyboard (with an interconnect), but this is not a simple task for compatibility reasons. 3. If there was a 4 wire SPI breakout, yes. But there isn't :/ I have been looking at adding a microSD card reading, but it is usually recommended to use a faster type of MCU with more dedicated hardware (SDHC hardware). 4. Yep, should be easy to find one of these with i2c 5. So, I have been thinking about something like this (for different reasons), but it generally requires I2S. This chip does support I2S but I ran out of pins (needs quite a few). But yeah, unlikely for this version of the keyboard. 6. Bluetooth is doable using the UART port, though would require a bit of code to support it (if anyone would like to try their hand at this I may have some spare modules around...).
Hope that helps.
Jan 20, 2016
View Full Discussion