Topics

COSMAC VIP OS can now be operated with a smartphone #VIP #Homebrew


Kazuhiro Ouchi
 

Hello,

I will be exhibiting my COSMAC homebrew computer at Maker Faire Tokyo 2020 in October.
https://makezine.jp/event/makers-mft2020/m0029/  (In japanese)

However, due to COVID-19 protection, I cannot touch the work directly.
So I decided to use ESP32 and a relay module to operate the COSMAC VIP OS remotely.
We dared to use relays because we wanted visitors to feel the sensation of touching the switch.



I've uploaded a video of the test run on YouTube.
https://youtu.be/_aDMV53iIsk

You can also see it on my blog. (In japanese)
https://kanpapa.com/cosmac/blog/2020/09/cosmac-vip-os-ESP32-remote-keypad.html

Best regards,
Kazu


P Todd Decker
 

This is so awesome!  Great work!

---
P. Todd Decker
913-284-8814

On Sep 7, 2020, at 6:24 PM, Kazuhiro Ouchi <goomog@...> wrote:

Hello,

I will be exhibiting my COSMAC homebrew computer at Maker Faire Tokyo 2020 in October.
https://makezine.jp/event/makers-mft2020/m0029/  (In japanese)

However, due to COVID-19 protection, I cannot touch the work directly.
So I decided to use ESP32 and a relay module to operate the COSMAC VIP OS remotely.
We dared to use relays because we wanted visitors to feel the sensation of touching the switch.

<cosmac_vip_remote_keypad1.jpg>


I've uploaded a video of the test run on YouTube.
https://youtu.be/_aDMV53iIsk

You can also see it on my blog. (In japanese)
https://kanpapa.com/cosmac/blog/2020/09/cosmac-vip-os-ESP32-remote-keypad.html

Best regards,
Kazu


Gaston Williams
 

Very nice, Kazu!  I'm really interested in the idea of using an ESP-32 and a web-based Hexadecimal Keypad.

Can you share your code?

Thanks,
Gaston


Kazuhiro Ouchi
 

Hi Gaston,

I pushed the source code and schematic on github.com.
https://github.com/kanpapa/esp32_web_hex_keypad

It is still being organized, so I will update it.

Thanks,
Kazu


Jeffrey Schonbrun
 

Very nice! I was wondering if anyone had an idea for using an ESP32 or ESP8266 with an 1802 platform.

My rough concept is to use the ESP as a front panel replacement for the 1802 system. The ESP would provide the user interface on a web page that could be accessed from my lap top or phone over WIFI. No USB connection needed!

Keep innovating!

Jeff


Gaston Williams
 

Kazu,
Many thanks for sharing that.  I'll definitely take a look at it.

Jeff,
Yes, that's very similar to what I'm thinking.  Have a web based buttons on an ESP-32 or ESP-286 and then drive an 1802 Membership Card with the I2C based front panel circuitry for the Arduino.  I believe both ESP-32 and ESP-286 can do I2C just fine, so the Arduino code should work, with maybe some minor changes.

The only issue I have is that the ESP-32 and ESP-286 are 3.3v based, but I *think* the MCP2308 and MCP23017 can accept 3.3V I2C for inputs, so that may not be an issue.  I read somewhere that if you pull the I2C lines up to 3.3v instead of 5v, you don't need to do any level shifting.  But of course I want to test that.  Worse case I would have to do level shifting.

Have a great day,
Gaston


Kazuhiro Ouchi
 

Hi Gaston,

It is good. If you use the ESP-32 as a front panel, everyone will enjoy it with a web browser.
I will try it when the project I am working on is over.

Thanks,
Kazu


Gaston Williams
 

Hi Kazu,

Just a quick update. I converted your code so that the ESP32 functions as a web server and removed all the relay support.  Here's the web page for a Front end I hope to make.  The web page is working, now i need to connect the ESP32 to the 1802 Membership Card.



I hope to get the ESP32 talking through I2C to the 1802 Membership Card soon.  I modified my I2C front panel circuit a little bit so that one could run 3.3v I2C with 5V for the Membership Card, or everything at 5v or everything at 3.3V.  I drew it up in Kicad and then sent the Gerber files out to JLCPCB to have printed circuit boards (PCB's) made.

I now have the PCB's back from the fabricator and I'm ready to populate them and connect everything together.

Once I get everything working, I hope to post it on GitHub soon.  Here's a picture of the PCB's. They cost only $2 for 5 boards from JLCPCB (BUT it was $16 to ship from China to the US!), but that's still cheap enough for me. :-)


Have a great day,
Gaston


Kazuhiro Ouchi
 

Hi Gaston,

This is a great project.
I have also purchased a board for the 1802 Membership Card.
I am going to collect the parts and build it so I can try it out in the same environment.
I'm looking forward to seeing it in action.

I will exhibit at Maker Fair Tokyo this weekend.
I made this demonstration using COSMAC VIP and relays.
How do you like it?
https://kanpapa.com/cosmac/blog/2020/09/cosmac-vip-autowrite2vram.html

Thanks,
Kazu


Gaston Williams
 

Very nice! I like it a lot. I especially like the clicking sound of the relays. 
Good luck with your exhibition.  I think we all look forward to hearing about how it went.  

Best wishes,
Gaston


Martin Heermance
 

I like the relays as well. Good luck


On Thu, Oct 1, 2020, 5:29 PM Gaston Williams <fourstix@...> wrote:
Very nice! I like it a lot. I especially like the clicking sound of the relays. 
Good luck with your exhibition.  I think we all look forward to hearing about how it went.  

Best wishes,
Gaston


Gaston Williams
 

Kazu,
I have it working now.  It was quite a learning experience.  I had forgotten how quirky programming in JavaScript can be. I wrote the code on the ESP32 using the ESPAsyncWebServer.

I added some graphics for the Q LED and for TIL311 High and Low data byte displays. The graphics update automatically using AJAX to match the values on the membership card, so that pressing the buttons update the display the way one would expect.  The graphics are stored on the ESP32 using SPIFFS and served by the web server.

Here's a picture of it running in the Firefox web browser.


And here's a picture of the ESP32 running connected to the I2C Front Panel card with the Membership card plugged in..

I have cleaned up the code and commented it, and I hope to upload it to GitHub soon.

Best wishes,
Gaston


Kazuhiro Ouchi
 

Hi Gaston,

It's great. I was surprised to see not only the keypad, but also the Q LED and TIL311 display implemented.
I would love to get it up and running as well.
My membership card should be ready this weekend.

Regards,
Kazu


Jeffrey Schonbrun
 

HI Gaston,

I agree, this is looking great! You have made a lot of progress with this concept. Want to see more about how you did this when you get it posted to github.

In addition to the nifty front panel replacement I figure the ESP could be used in at least two other ways:
- Provide a serial terminal window that runs on the ESP server;
- Provide a serial link to the ELF via WiFi

Regards,
Jeff


Gaston Williams
 

Hi Kazu and Jeff,
I have the code up on GitHub in the fourstix/MCard1802ESP32Web repository.  I'm still working on the documentation in the README file, but I have had a few health issues recently that slowed me down.  The code has a lot of comments so it might be worth taking a look while I'm still updating the documentation.  Please bear with me, as this is a work in progress, and I'm a still under the weather.

I relied a lot on Kazu's original esp32_web_hex_keypad code and on the Random Nerd Tutorials for the ESP32.  I did change the server in Kazu's code to be an ordinary web server rather than an access point server.  An access point server makes more sense for a conference environment but a web server is less complicated and works better for me in a home network.

I also am using the I2C Front Panel circuit as a printed circuit board.  I put the Gerber files in the hardware directory and hope to upload the KiCad project files soon.

Please feel free to check it out.  If you find any issues, please feel free to open them in GitHub. 

Have a great day,
Gaston


Kazuhiro Ouchi
 

Hi Gaston,

Thank you for committing to github.
I installed the necessary libraries and upload tools into the Arduino IDE.
After uploading the data directory in SPIFFS, I uploaded the sketch to ESP32, but for some reason I couldn't see the WiFi SSID.
The serial monitor shows "Connecting to WiFi" continuously, so the sketch looks like it's running.
I'll look into it some more.

Regards,
Kazu


Gaston Williams
 

Hi Kazu, 
Make sure you update the constant strings in the secrets.h file to match your network SSID and password.  Then recompile everything.  Upload the code to the ESP32, and press the IO0 button if needed.

Now the odd part.  Hit the "EN" button to reset the ESP32 and run the new code.
I've had a few cases where my ESP32 wouldn't connect with the new code until a hard reset.

Good luck,
Gaston


Kazuhiro Ouchi
 

Hi Gaston,

I have found the cause of the problem.
Replacing the ESP32DEV module didn't change the situation.
Even other simple sample programs could not connect to the WiFi access point.
So I tried connecting my smartphone to the WiFi access point and was able to get an IP address.
I believe there is a problem with the device settings on my home WiFi access point.
In the meantime, I've confirmed that I can connect.
Thank you for your concern.

Regards,
Kazu


Kazuhiro Ouchi
 

Hi Gaston,

It worked!
I'm going to connect to my 1802 membership card this weekend.

Regards,
Kazu


Gaston Williams
 

Hi Kazu,
Wonderful! I'm glad you got it working!

I think I have finished the documentation on Github.  Thank you for the typo fix and please let me know if there's anything that I should do to make implementing it easier.

Best wishes,
Gaston