Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 01:44 28 Nov 2024 Privacy Policy
Jump to

Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.

Forum Index : Microcontroller and PC projects : Giving up on Pi?

     Page 2 of 3    
Author Message
lizby
Guru

Joined: 17/05/2016
Location: United States
Posts: 3150
Posted: 10:48am 24 Aug 2023
Copy link to clipboard 
Print this post

  JohnS said  Can it be built statically linked?


I'm afraid I don't know what that means or what it would do (or even whether that is what I did as guided by Tom). I did a lot of C programming 30-40 years ago, but am very much out of date on procedures and tool chains. I wouldn't have gotten as far as I did without a lot of handholding from Tom. But libgpio does look promising.

  Quote  That might be enough (though it doesn't address the more general case of Linux on other CPUs).


Other CPUs/platforms might (or might not) offer up-to-date libgpio with apt-get install or whatever. libgpio is supposed to offer the same basic I/O capabilities across Linux platforms which have I/O pins appropriately designated.

Tom produced 2 MMB4L binaries--one for pi and the other for (I think) x86 PCs. Hardware based on other CPU families would require other MMB4L binaries.
PicoMite, Armmite F4, SensorKits, MMBasic Hardware, Games, etc. on fruitoftheshed
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 4043
Posted: 11:53am 24 Aug 2023
Copy link to clipboard 
Print this post

Hey folks,

I'm claiming no stake on this field of development, it may be that someone resurrecting the PiCromite is the best way forward.

However for what it's worth, and hoping my mouth is not writing any cheques I cannot cash I was thinking that once the Game*Mite is released I would direct at least 50% of my energies to MMB4L. The question is what do you want more from it, hi-res graphics or GPIO ?

Best wishes,

Tom
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
JohnS
Guru

Joined: 18/11/2011
Location: United Kingdom
Posts: 3802
Posted: 12:45pm 24 Aug 2023
Copy link to clipboard 
Print this post

The same person who made pigpio also made lg
which is maybe a more portable (cross-platform) way to do gpio, spi, i2c, etc.

If that's what's wanted...

John
 
lizby
Guru

Joined: 17/05/2016
Location: United States
Posts: 3150
Posted: 02:05pm 24 Aug 2023
Copy link to clipboard 
Print this post

  thwill said  what do you want more from it, hi-res graphics or GPIO ?


If you were thinking HDMI output on the Pi platform, I think there's a use for that to provide hi-res and large-screen graphics on a quite low-cost platform (Pi-Zero-W).

Regarding pin I/O, sysfs works right now in MMB4L for on/off and input (with the caveat that there's nothing to keep some other program from messing with your pins, which libgpio prevents).
PicoMite, Armmite F4, SensorKits, MMBasic Hardware, Games, etc. on fruitoftheshed
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 4043
Posted: 10:17am 25 Aug 2023
Copy link to clipboard 
Print this post

  lizby said  If you were thinking HDMI output on the Pi platform, I think there's a use for that to provide hi-res and large-screen graphics on a quite low-cost platform (Pi-Zero-W).


Probably a windowed implementation rather like MMBasic for Windows, using the same cross-platform "One Lone Coder" library (rather than SDL so as to facilitate pinching code from Peter). My personal use-case is a desire for a better native simulator for PicoMite/PicoMiteVGA/Game*Mite/CMM2 running on Linux - currently I use MMB4W under Wine but there are things I would have different.

Best wishes,

Tom
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
JohnS
Guru

Joined: 18/11/2011
Location: United Kingdom
Posts: 3802
Posted: 11:48am 25 Aug 2023
Copy link to clipboard 
Print this post

  thwill said  Probably a windowed implementation rather like MMBasic for Windows, using the same cross-platform "One Lone Coder" library (rather than SDL so as to facilitate pinching code from Peter).

Sounds good.

Maybe just adding (re-adding, really) pigpio (so, RPi-only) would be enough, rather than worrying about the more general case of Linux on a.n.other chip.

John
 
lew247

Guru

Joined: 23/12/2015
Location: United Kingdom
Posts: 1702
Posted: 12:16pm 25 Aug 2023
Copy link to clipboard 
Print this post

I can't remember if this has been mentioned before or not but it "might"? be of some use?
Bare metal support for Raspberry Pi


Circle supports the following features:
Group Features
C++ build environment AArch32 and AArch64 support
Basic library functions (e.g. new and delete)
Enables all CPU caches using the MMU
Interrupt support (IRQ and FIQ)
Multi-core support (Raspberry Pi 2, 3 and 4)
Cooperative non-preemtive scheduler
CPU clock rate management
Clang/LLVM support (experimental)

Debug support Kernel logging to screen, UART and/or syslog server
C-assertions with stack trace
Hardware exception handler with stack trace
GDB support using rpi_stub (Raspberry Pi 2 and 3)
Serial bootloader (by David Welch) included
Software profiling support (single-core)
QEMU support

SoC devices
GPIO pins (with interrupt, Act LED) and clocks
Frame buffer (screen driver with escape sequences)
UART(s) (Polling and interrupt driver)
System timer (with kernel timers)
Platform DMA controller
EMMC SD card interface driver
SDHOST SD card interface driver (Raspberry Pi 1-3)
PWM output (2 channels)
PWM sound output (on headphone jack)
I2C master(s) and slave
SPI0 master (Polling and DMA driver)
SPI1 auxiliary master (Polling)
SPI3-6 masters of Raspberry Pi 4 (Polling)
SMI master (experimental)
I2S sound output and input
HDMI sound output (without VCHIQ)
Hardware random number generator
Watchdog device
Official Raspberry Pi touch screen
VCHIQ interface and audio service drivers
BCM54213PE Gigabit Ethernet NIC of Raspberry Pi 4
Wireless LAN access

USB Host controller interface (HCI) drivers
Standard hub driver (USB 2.0 only)
HID class device drivers (keyboard, mouse, gamepad)
Driver for on-board Ethernet device (SMSC951x)
Driver for on-board Ethernet device (LAN7800)
Driver for USB mass storage devices (bulk only)
Driver for USB audio streaming devices (RPi 4 only)
Drivers for different USB serial devices
Audio class MIDI input support
Touchscreen driver (digitizer mode)
Printer driver

File systems Internal FAT driver (limited function)
FatFs driver (full function, by ChaN)

TCP/IP networking Protocols: ARP, IP, ICMP, UDP, TCP
Clients: DHCP, DNS, NTP, HTTP, Syslog, MQTT
Servers: HTTP, TFTP
BSD-like C++ socket API

Graphics OpenGL ES 1.1 and 2.0, OpenVG 1.1, EGL 1.4
(not on Raspberry Pi 4)
uGUI (by Achim Doebler)
LVGL (by LVGL Kft)
2D graphics class in base library

Not supported Bluetooth
USB device (gadget) mode
 
stanleyella

Guru

Joined: 25/06/2022
Location: United Kingdom
Posts: 2129
Posted: 06:25pm 25 Aug 2023
Copy link to clipboard 
Print this post

Freebasic on win and install fbide.
freebasic on linux is get geany as ide.. if you like or need an ide.
For 8bit pic or atmega or logic green technology I use great cow basic which is written with freebasic!
Is freebasic rubbish? it compiles code, to what ? :)
Is it dead?
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 6798
Posted: 06:35pm 25 Aug 2023
Copy link to clipboard 
Print this post

Freebasic compiles to native code via the gcc compiler. It's certainly not rubbish. Version 1.10 was only released in May '23 so it's not dead either.
Mick

Zilog Inside! nascom.info for Nascom & Gemini
Preliminary MMBasic docs & my PCB designs
 
stanleyella

Guru

Joined: 25/06/2022
Location: United Kingdom
Posts: 2129
Posted: 11:38pm 25 Aug 2023
Copy link to clipboard 
Print this post

My first look at fb was it's bbc basic on steroids.
Why it's not used on rpi, cos building it is need a guide, or basic on rpi not popular? basic on rpi for me would be great as I don't do c or python.
fb on win dunno what I'd do with it but you just download fb and fbide, lot simpler than linux. I built fb on rpi400 running twisteros 32bit. I built gcbasic for the experience but use win version. I don't like linux as you got to type lots of stuff in a terminal. The gui is to distract you from the fact that it's complicated.
TwisterOs is very nice installation, I run it off 120G usb3 ssd.
I got a gpio ribbon from the gpio port to bread board adaptor but bit expensive to blow compared to a pico.
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 6798
Posted: 06:55am 26 Aug 2023
Copy link to clipboard 
Print this post

Python might feel intimidating at first, but it's more like a super-BASIC than you might think, especially for non-complex programs. There's loads of freely available learning material for beginners too. It's worth a play on the RPi because the Pi was designed around it.

Linux isn't actually complicated, it's just different. Windows hides almost everything that it's doing from the user but it still does it, and often in *very* complicated ways. Linux is much more open about what it's doing and the user *can* change the way it works if he/she wants to. The desktop controls on the Pi are more than enough for most people to use it to the full without using a command line (which is only like a DOS prompt really).
Mick

Zilog Inside! nascom.info for Nascom & Gemini
Preliminary MMBasic docs & my PCB designs
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 4043
Posted: 12:38pm 26 Aug 2023
Copy link to clipboard 
Print this post

Hi folks,

I love you all very much, but this really is a typical TBS answer to the question would you prefer A or B:

- Someone (John in this case) suggests both A + B.
- Lewis suggests a bare metal Pi approach, Z.
- Stan goes off on a tangent, <insert Egyptian hieroglyph here>.

All we're missing is Peter telling us how he dislikes Linux (we know) and we'd have a full house.



I guess I'll keep my own counsel but it is not my intention to implement any Pi only approach, and no-one is going to have the time to write a bare metal MMBasic for the Pi, and if they did the Raspberry Pi foundation would release something incompatible and you'd be sliding back down the snake towards the start.

Best wishes,

Tom
Edited 2023-08-26 22:39 by thwill
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 6798
Posted: 01:22pm 26 Aug 2023
Copy link to clipboard 
Print this post

To be honest I've never been a fan of running MMBasic on anything other than microcontrollers. That's what it was designed for. It's tight code for small memories and rich I/O and is bloat-free. That appeals to me. As soon as you use an OS as a platform it becomes somewhat pointless as there are existing, well tested versions of BASIC that were designed for those.

The Raspberry Pi platform could have been good, but it's a developing platform and nothing can be said to be stable. At the hardware level each version is different.
Mick

Zilog Inside! nascom.info for Nascom & Gemini
Preliminary MMBasic docs & my PCB designs
 
JohnS
Guru

Joined: 18/11/2011
Location: United Kingdom
Posts: 3802
Posted: 01:32pm 26 Aug 2023
Copy link to clipboard 
Print this post

  thwill said  it is not my intention to implement any Pi only approach

Sounds good to me!

Any more extensive version of MMB4L would be good.

(It can always be forked LOL - e.g. to add I2C/SPI/etc if you've added graphics.)

John
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 4043
Posted: 01:56pm 26 Aug 2023
Copy link to clipboard 
Print this post

  Mixtel90 said  To be honest I've never been a fan of running MMBasic on anything other than microcontrollers. That's what it was designed for. It's tight code for small memories and rich I/O and is bloat-free. That appeals to me. As soon as you use an OS as a platform it becomes somewhat pointless as there are existing, well tested versions of BASIC that were designed for those.


I think you have a point there Mick, though a little undermined by the non-standardised nature of BASIC beyond a limited set of fundamentals.

I started the MMB4L port not because I thought it would be useful*, but because digging into MMBasic was something I was interested in and it was an area where I could work without stepping on Peter's toes, or in turn having my toes stepped upon. For the record MMB4L is derived from MMBasic for DOS rather than the PiCromite because the MMBasic for DOS source code was smaller and thus had a shallower learning curve. If I started again knowing what I know now I *might* start from the PiCromite, but I'm too invested in unit-testing and refactoring to want to go back there now.

* As it happens it is "useful" and MMB4L underlies my tool-chain for developing for the PicoMite/PicoMiteVGA/Game*Mite. My transpiler 'sptrans' and file transfer / serial comms tool 'gonzo' are both MMBasic programs. I don't talk about them (you may disagree) as much as I could because if no-one else uses them then it doesn't matter if they are a bit buggy and unstable (especially 'gonzo') ... and in any case for 99% of users MMEdit is a better tool than 'gonzo'; which is console based.

Best wishes,

Tom
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
stanleyella

Guru

Joined: 25/06/2022
Location: United Kingdom
Posts: 2129
Posted: 02:40pm 26 Aug 2023
Copy link to clipboard 
Print this post

Basic has always been different from zxbasic to amstrad to bbc to commode as is now with micro controllers, picaxe basic then great cow basic then mmbasic.
Each has a learning curve but I found easier to convert than learn a new language, pascal was easy to learn though.
Shouldn't we all learn c?
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 6798
Posted: 02:53pm 26 Aug 2023
Copy link to clipboard 
Print this post

>Spit!<
Go wash your mouth out!

-------------------

@Tom
Variations between BASIC versions are mere peanuts when compared to the physical architecture of the platform. There are virtually no OS platforms that give user programs access to GPIO pins, I2c, SPI etc. because the OS needs security and low level access breaks that security. I've said it before, there's no point in running MMBasic on a system with no IO other than screen and keyboard because it's designed for hardware interfacing, just as it's pointless to try to run a word processor on a microcontroller.
Edited 2023-08-27 01:01 by Mixtel90
Mick

Zilog Inside! nascom.info for Nascom & Gemini
Preliminary MMBasic docs & my PCB designs
 
hitsware2

Guru

Joined: 03/08/2019
Location: United States
Posts: 713
Posted: 03:11pm 26 Aug 2023
Copy link to clipboard 
Print this post

for what

it is worth
my site
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 6798
Posted: 03:18pm 26 Aug 2023
Copy link to clipboard 
Print this post

LOL - I knew someone must have tried it. :)
Mick

Zilog Inside! nascom.info for Nascom & Gemini
Preliminary MMBasic docs & my PCB designs
 
lizby
Guru

Joined: 17/05/2016
Location: United States
Posts: 3150
Posted: 03:20pm 26 Aug 2023
Copy link to clipboard 
Print this post

  Mixtel90 said  There are virtually no OS platforms that give user programs access to GPIO pins, I2c, SPI etc. because the OS needs security and low level access breaks that security


Except that on Linux systems where I/O is available (such as the Pi, Beagleboard, most tinkerer-oriented Linux systems, openWrt devices with I/O pins available), sysfs does work for basic on/off input and output. The Pi family is a huge exception to that "virtually no OS platforms" assertion, with multiple languages having support for I/O including various protocols.

That sysfs usage is now deprecated (because, among other things, it does not prevent one program's I/O from interfering with another's--not typically a problem for a single-user device), but it still works, and I have used it for many years to turn on a heater in my barn before I go out there. If I were doing that now, I'd use a webmite (or, more likely, a Sonoff device--usually ESP8266- or ESP32-based).
PicoMite, Armmite F4, SensorKits, MMBasic Hardware, Games, etc. on fruitoftheshed
 
     Page 2 of 3    
Print this page
© JAQ Software 2024