PicoCalc Text Starter (on GitHub)

I need to set my ANS Forth implementation aside since I believe I have made some bad design decisions and it needs to rest whilst I think about it.

However, I didn’t want some of the work I did to languish in obscurity, so I have taken what I can from that project, and added some additional things to create a PicoCalc Starter Kit for those that want to use develop for the PicoCalc using C/C++ on the bare metal using the Pico-Series C/C++ SDK.

Now, this is not designed to create graphical games as the display driver does not use a frame buffer and is text-based, but it does use very little memory. So you could create text-based games.

I have drivers for:

  • Audio (stereo)
  • Display (multicolour text with ANSI escape code emulation)
  • Keyboard
  • Pico onboard LED (WIFI-option aware)
  • Serial port
  • Southbridge functions (battery, backlights)

And these are not best-of-breed drivers either, this is something to get you going fast and you can then enhance/replace components as you need. The drivers have simple APIs, and they should be able to work independently, so you can pick and choose, or perhaps I can pass some hard-earned knowledge along.

The README explains it all.

I am currently working on FAT32 support on the “sdcard” branch.

5 Likes

Thanks for project, it helps develop firmwares more easily.

1 Like

Very good project

in case if anyone try to run this on pico1 like ,here is the diff

diff --git a/CMakeLists.txt b/CMakeLists.txt
index c1bbe7b..aac107a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -23,7 +23,7 @@ if (EXISTS ${picoVscode})
     include(${picoVscode})
 endif()
 # ====================================================================================
-set(PICO_BOARD pico2_w CACHE STRING "Board type")
+#set(PICO_BOARD pico2_w CACHE STRING "Board type")
 
 # Pull in Raspberry Pi Pico SDK (must be before project)
 include(pico_sdk_import.cmake)
diff --git a/drivers/onboard_led.c b/drivers/onboard_led.c
index 7d77e0b..faa49db 100644
--- a/drivers/onboard_led.c
+++ b/drivers/onboard_led.c
@@ -6,7 +6,8 @@
 //
 
 #ifndef PICO_DEFAULT_LED_PIN
-#include "pico/cyw43_arch.h"
+//#include "pico/cyw43_arch.h"
+#define PICO_DEFAULT_LED_PIN 25
 #endif
 
 #include "onboard_led.h"

My bad! Thank you @guu.

I have changed the default board to “pico”, as it should have been from the start, and added a missing include which broke the build for non-wireless Pico’s.