Skip to content

madcock/PicoMiteAllVersions

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PicoCalc

Information Command Decription
MM.INFO(BATTERY) PICOCALC ONLY
Returns the current battery level percentage (0-100).
MM.INFO(CHARGING) PICOCALC ONLY
Returns 1 if battery is charging on external power, 0 if battery is not charging.
Option Command Decription
OPTION BACKLIGHT KB brightness PICOCALC ONLY
Sets the brightness of the keyboard backlight. 'brightness' is a value between 0 (backlight off) and 255 (maximum brightness).

NEW PICOCALC USERS

Please download and install the newest release. If installing on a brand new PicoCalc, your keyboard firmware/bios is probably out of date. There is no easy way to tell which firmware is already installed, but if it's the "old" one, the PicoCalc specific MM.INFO() commands listed above won't work, and you'll probably get constant i2c keyboard disconnect errors which will make the device unusable. It is highly recommended to update your keyboard firmware!

Use the official guide to update your keyboard firmware. There's a lot of extra information there which you can ignore unless you want to develop your own keyboard firmware. All you need to do is download STM32CubeProgrammer, the newest keyboard firmware binary (currently 1.2 but please check to make sure there isn't anything newer), install it as described in the document using the dipswitch, and then reassemble everything carefully. Make sure you've put the dipswitch back in its original position after flashing the BIOS update. You'll only ever need to do this once, or perhaps again if another critical update is released. But regular PicoMite firmware updates do not require this keyboard BIOS update and it won't be lost if your batteries are removed, etc.

Any assembly/disassembly of the PicoCalc risks damaging the extremely fragile screen. Once it's damaged, there's no way to fix it, and a replacement will be needed. if necessary, contact [email protected] for a repalcement, and give him your original order invoice details and (usually picture) proof of screen damage. Be very careful the display is seated properly when assembling! I recommend taping the screen down as described in this post. Electrical tape and kapton tape have both proven to work. The important thing is to never reattach the back with screws unless you are certain the screen is seated properly.

INSTALL PICO SDK

sudo apt update && sudo apt install -y cmake gcc-arm-none-eabi libnewlib-arm-none-eabi build-essential git

mkdir -p ~/pico && cd ~/pico
git clone https://github.com/raspberrypi/pico-sdk.git
cd pico-sdk
git checkout tags/2.1.1 -b sdk2.1.1
git submodule update --init

echo 'export PICO_SDK_PATH=~/pico/pico-sdk' >> ~/.bashrc
source ~/.bashrc

SETUP PICOCALC FIRMWARE

mkdir -p ~/picocalc && cd ~/picocalc
git clone https://github.com/madcock/PicoMiteAllVersions.git
cd PicoMiteAllVersions
mv ~/pico/pico-sdk/src/rp2_common/hardware_gpio/gpio.c ~/pico/pico-sdk/src/rp2_common/hardware_gpio/gpio.bak
ln -s ~/picocalc/PicoMiteAllVersions/gpio.c ~/pico/pico-sdk/src/rp2_common/hardware_gpio/gpio.c
mv ~/pico/pico-sdk/src/rp2_common/hardware_gpio/include/hardware/gpio.h ~/pico/pico-sdk/src/rp2_common/hardware_gpio/include/hardware/gpio.bak
ln -s ~/picocalc/PicoMiteAllVersions/gpio.h ~/pico/pico-sdk/src/rp2_common/hardware_gpio/include/hardware/gpio.h
mv ~/pico/pico-sdk/src/rp2_common/pico_float/float_sci_m33_vfp.S ~/pico/pico-sdk/src/rp2_common/pico_float/float_sci_m33_vfp.bak
ln -s ~/picocalc/PicoMiteAllVersions/float_sci_m33_vfp.S ~/pico/pico-sdk/src/rp2_common/pico_float/float_sci_m33_vfp.S
mv ~/pico/pico-sdk/src/rp2_common/hardware_flash/flash.c ~/pico/pico-sdk/src/rp2_common/hardware_flash/flash.bak
ln -s ~/picocalc/PicoMiteAllVersions/flash.c ~/pico/pico-sdk/src/rp2_common/hardware_flash/flash.c

EDIT ~/picocalc/PicoMiteAllVersions/CMakeLists.txt TO CHOOSE TARGET

set(PICOCALC true)

# Compile for PICO 1 Board
#set(COMPILE PICO)

# Compile for PICO 2 Board
#set(COMPILE PICORP2350)
set(COMPILE WEBRP2350)

BUILD PICOCALC FIRMWARE

cd ~/picocalc/PicoMiteAllVersions
mkdir build
cd build
cmake ..
make

(original readme follows...)

PicoMiteRP2350

This contains files to build MMbasic V6.00.03 to run on both RP2040 and RP2350
Compile with GCC 13.3.1 arm-none-eabi

NB: Commands.c updated in release 6.00.03 11/7/25 to fix bug in CHAIN command caused by limitation in LittleFS

Build with sdk V2.1.1 but replace gpio.c, gpio.h, float_sci_m33_vfp.S, and flash.c with the ones included here

Change CMakeLists.txt line 4 to determine which variant to build

RP2040
set(COMPILE PICO)
set(COMPILE VGA)
set(COMPILE PICOUSB)
set(COMPILE VGAUSB)
set(COMPILE WEB)

RP2350
set(COMPILE PICORP2350)
set(COMPILE VGARP2350)
set(COMPILE PICOUSBRP2350)
set(COMPILE VGAUSBRP2350)
set(COMPILE HDMI)
set(COMPILE HDMIUSB)
set(COMPILE WEBRP2350)

Any of the RP2350 variants or the RP2040 variants can be built by simply changing the set(COMPILE aaaa)
However, to swap between a rp2040 build and a rp2350 build (or visa versa) needs a different build directory. The process for doing this is as follows:
Close VSCode
Rename the current build directory - e.g. build -> buildrp2040
Rename the inactive build directory - e.g. buildrp2350 -> build
edit CMakeLists.txt to choose a setting for the other chip and save it - e.g. set(COMPILE PICO) -> set(COMPILE PICORP2350)
Restart VSCode

About

This contains files to build MMbasic to run on both RP2040 and RP2350 for the PicoCalc from Clockwork

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 99.2%
  • Other 0.8%