Hi Everyone,
For a few months now, I've been working on a "Super Peripheral" named "Calypso" that addresses the most common complaints about what the X16 is missing. Those being:
* No networking
* Moving the SD card from the X16 to the computer is tedious
* No support for USB keyboards/mice
* Various complaints that amount to "no serial port"
My third revision boards have come back from manufacturing and I'm starting to feel like a path to a final product is settling. This peripheral sits on top of VERA and does not consume an expansion slot. One benefit this provides is that it can be used to un-brick a bricked VERA.
The WiFi networking works and allows for both air dropping files onto the microSD card (using WebDAV) and connecting to internet-connected BBSes using raw sockets. Networking is handled by an ESP32-S3 and speed tests suggest that file copy speed maxes out around 200-300KiBps which appears to be a limitation of the SD card (X16 transfer speed under ideal conditions maxes out at around the same speed). Ways to speed that up are under investigation.
A single USB keyboard or mouse works now; I think we're still waiting for USB hub firmware support to trickle down from Espressif at which point simultaneous keyboard and mouse should work. USB controllers are not yet supported.
The radio in the ESP32-S3 supports Bluetooth, so Bluetooth keyboard, mouse, and controllers could also be supported if someone with the ESP32 firmware chops wants to step up and add that support.
The serial port signals are connected to an RS232 transceiver to go from 3.3V signaling to +/- 5V signaling. The firmware to add support for the serial port is not yet written, but I'm not anticipating any issues. The transceiver maxes out at 1MBps.
I plan to offer a limited number of these rev 3 boards to folks in the community who want to test them and are okay with the risks that come from prototype hardware (i.e. it may be a dead end because they don't generate enough interest; the final version may have software incompatibilities; features that are supposed to work may have hardware bugs that make them unavailable).
Questions? Interested? Ask/comment here.
Calypso "Super Peripheral"
Calypso "Super Peripheral"
- Attachments
-
- Bottom view showing VERA connector
- Calypso_EV3_5.jpg (202.6 KiB) Viewed 2333 times
-
- Top view
- Calypso_EV3_3_1.jpg (167.94 KiB) Viewed 2333 times
-
- With serial port
- Calypso_EV3_2_1.jpg (332.49 KiB) Viewed 2333 times
-
- Connected to VERA
- Calypso_EV3_1.jpg (281.12 KiB) Viewed 2333 times
Re: Calypso "Super Peripheral"
Couple questions spring to mind:
- Given the fluid nature of the OS/firmware, what's to stop this device from becoming crippled in the future?
- Will this fit into the cases that are currently available?
Re: Calypso "Super Peripheral"
Right now, a custom Kernel is required. It is hoped that a strategy of allowing devices such as this to place a "driver" in some of the upper ROM banks will help future proof this.
I'm talking with the Lazer3D folks. There is concern that the headers may be too tall. I'm considering putting the USB port and RS232 header on the bottom of the board.
I'm talking with the Lazer3D folks. There is concern that the headers may be too tall. I'm considering putting the USB port and RS232 header on the bottom of the board.
Re: Calypso "Super Peripheral"
I wonder how hard it would be to map RAM instead of ROM. Keep the ROM, out of band and only accessible to the SMC. At bootup, the SMC copies the ROM into RAM and write protects it. SMC already listens on I2C, so add some I2C commands to it that would allow you to unprotect the RAM that is posing as ROM. Now you have a nice safe mode that will allow the system to revert to its factory state if anything messes up, but you should also be able to bootstrap alternate "ROM" from the SD Card.
Re: Calypso "Super Peripheral"
I copy/pasted the first post in this topic into the Uzebox forum X16 topic here:
https://uzebox.org/forums/viewtopic.php?p=38507#p38507
CunningFellow is working on a SMD based "kitchen sink" version of the Uzebox that will have all of the possible ports and potential add ons and he asked about the Calypso:
https://uzebox.org/forums/viewtopic.php?p=38507#p38507
CunningFellow is working on a SMD based "kitchen sink" version of the Uzebox that will have all of the possible ports and potential add ons and he asked about the Calypso:
I am using the ESP32 (no S3) version because the S3 can't talk to a lot of common controllers. I wonder why they went with the S3?
Re: Calypso "Super Peripheral"
My priorities when designing Calypso were roughly: SD card throughput; USB support; total GPIO count; Bluetooth (any).danboid wrote: ↑Tue Sep 17, 2024 7:29 am I copy/pasted the first post in this topic into the Uzebox forum X16 topic here:
https://uzebox.org/forums/viewtopic.php?p=38507#p38507
CunningFellow is working on a SMD based "kitchen sink" version of the Uzebox that will have all of the possible ports and potential add ons and he asked about the Calypso:
I am using the ESP32 (no S3) version because the S3 can't talk to a lot of common controllers. I wonder why they went with the S3?
Native USB support was a higher priority than Bluetooth, and for that I need to go with the S3. It isn't that I do not like Bluetooth, it was just a lower priority and I made the call to go with the one that has native USB support hoping that USB hub support would continue to improve and one CPU wouldn't spend excessive time bit-banging USB.
Currently all of the available GPIOs on the S3 module are used on Calypso (36 total), though that includes the JTAG pins (4) which are only connected to the (normally unpopulated) JTAG port on the bottom and the RTC crystal pins (2) which are connected to the (normally unpopulated) RTC crystal circuit on the bottom. Switching to the ESP32-WROOM-32E module would give me, I believe, 10 fewer GPIOs.