Calypso "Super Peripheral"

Chat about anything CX16 related that doesn't fit elsewhere
Post Reply
Wavicle
Posts: 286
Joined: Sun Feb 21, 2021 2:40 am

Calypso "Super Peripheral"

Post by Wavicle »

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.
Attachments
Bottom view showing VERA connector
Bottom view showing VERA connector
Calypso_EV3_5.jpg (202.6 KiB) Viewed 3119 times
Top view
Top view
Calypso_EV3_3_1.jpg (167.94 KiB) Viewed 3119 times
With serial port
With serial port
Calypso_EV3_2_1.jpg (332.49 KiB) Viewed 3119 times
Connected to VERA
Connected to VERA
Calypso_EV3_1.jpg (281.12 KiB) Viewed 3119 times
mortarm
Posts: 302
Joined: Tue May 16, 2023 6:21 pm

Re: Calypso "Super Peripheral"

Post by mortarm »

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?
Wavicle
Posts: 286
Joined: Sun Feb 21, 2021 2:40 am

Re: Calypso "Super Peripheral"

Post by Wavicle »

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.
mgkaiser
Posts: 60
Joined: Sat Dec 02, 2023 6:49 pm

Re: Calypso "Super Peripheral"

Post by mgkaiser »

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.
danboid
Posts: 73
Joined: Sat Jan 28, 2023 2:47 am

Re: Calypso "Super Peripheral"

Post by danboid »

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?
Wavicle
Posts: 286
Joined: Sun Feb 21, 2021 2:40 am

Re: Calypso "Super Peripheral"

Post by Wavicle »

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?
My priorities when designing Calypso were roughly: SD card throughput; USB support; total GPIO count; Bluetooth (any).

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.
fraggintarget
Posts: 8
Joined: Sun Jan 31, 2021 11:02 pm

Re: Calypso "Super Peripheral"

Post by fraggintarget »

Is there any documentation available for this board? I am particularly interested in the WebDAV support.
Wavicle
Posts: 286
Joined: Sun Feb 21, 2021 2:40 am

Re: Calypso "Super Peripheral"

Post by Wavicle »

fraggintarget wrote: Sun Nov 17, 2024 1:20 am Is there any documentation available for this board? I am particularly interested in the WebDAV support.
Check the documentation on Git repo for the firmware: https://codeberg.org/smrobtzz/x16-esp-f ... h/main/doc

I pretty much live by the WebDAV functionality these days. Unfortunately Windows has a habit of overwhelming the poor WebDAV server running on the ESP32 by opening too many simultaneous connections, but a tool like curl works great.
Wavicle
Posts: 286
Joined: Sun Feb 21, 2021 2:40 am

Re: Calypso "Super Peripheral"

Post by Wavicle »

Also, start with the first time setup guide: https://codeberg.org/smrobtzz/x16-esp-f ... 20Setup.md
fraggintarget
Posts: 8
Joined: Sun Jan 31, 2021 11:02 pm

Re: Calypso "Super Peripheral"

Post by fraggintarget »

Thanks a ton. That answers a bunch of questions already.
Post Reply