3 questions from a newcomer to PicoCalc:
- To be clear, is there a firmware version for the Pico2W that works without problems?
- Can I connect the PicoCalc to the PC via Pico USB so I can use the console (TeraTerm) for programming?
- Can I install an RTC (I2C) without interfering with the keyboard?
Which firmware are you talking about? I assume PicoMite Basic, if that is the case the answer is yes. You will want to get WebMite_PICO2W_V6.00.03_PicoCalc.uf2 from the github below.
Yes, use the USB C connector. The USB B is only used to flash firmware.
Yes, you can mount it internally by soldering the connectors directly to the Pico. If you search this forum there are a couple of threads discussing how to do just that. You can also attach one externally, but that is not practical for day to day use. If you are going to set it up externally, keep in mind the keyboard is set to I2C2, so we have to use GP4 for SDA, GP5 for SCL. For more information have a look at my github, I have code for doing exactly this.
On your first question, there are a few firmwares that support the Pico 2W including Zeptoforth and Picoware! This repository will help you get started: GitHub - jblanked/awesome-pico-calc: A collection of awesome resources for the Pico Calc device.
If you’re using the 2W, you don’t need a hardware RTC. As long as you have WiFi access, you can connect to a time server and get the time to a trillionth of a second:
WEB NTP n
where n is an offset from GMT. In my case since I’m on the East coast of the USA, which is west of GMT, n = -4 for me. If you’re East of GMT, then n would be positive.
Put the WEB statement into your startup library so it’s executed whenever you boot up.
Yes, you can mount it internally by soldering the connectors directly to the Pico. If you search this forum there are a couple of threads discussing how to do just that. You can also attach one externally, but that is not practical for day to day use. If you are going to set it up externally, keep in mind the keyboard is set to I2C2, so we have to use GP4 for SDA, GP5 for SCL. For more information have a look at my github, I have code for doing exactly this.
Ok, I don’t know what I’m doing wrong here. I have a Pimoroni pico 2W with the DS3231 RTC plugged in just like BlairLeduc has in post 64 of “RTC inside the case?” .
I ran setrtc.bas and it seems to work:
0=ok 1=nack 2=timeout 1
RTC set to: 11:31:30 16-08-2025
But when I switch off the picocalc and restart, time$ and date$ are back to XX:XX on 1-1-2000.
running settime.bas just reads XX:XX 1-1-2000 and sets date$ and time$ to that.
My CR1220 coin cell is good, multimeter says 3.26V.
Edit: Ok I looked at it again and it appears that setrtc.bas is not really setting the RTC.
If I use the getrtc subroutine in settime.bas, it is reading the time the RTC has been running. I put the battery in about 18 hours ago and getrtc says:
17:47:44 01-01-2000
What’s “nack” mean?
Nevermind. I see the problem: RTCAddr is never defined in settrc.bas.
Setting it to 0x68 (or &H68 in Basic parlance) did the trick.