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 StatesPosts: 3150 |
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. 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 KingdomPosts: 4043 |
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 KingdomPosts: 3802 |
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 StatesPosts: 3150 |
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 KingdomPosts: 4043 |
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 KingdomPosts: 3802 |
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 KingdomPosts: 1702 |
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 KingdomPosts: 2129 |
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 KingdomPosts: 6798 |
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 KingdomPosts: 2129 |
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 KingdomPosts: 6798 |
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 KingdomPosts: 4043 |
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 KingdomPosts: 6798 |
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 KingdomPosts: 3802 |
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 KingdomPosts: 4043 |
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 KingdomPosts: 2129 |
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 KingdomPosts: 6798 |
>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 StatesPosts: 713 |
for what it is worth my site |
||||
Mixtel90 Guru Joined: 05/10/2019 Location: United KingdomPosts: 6798 |
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 StatesPosts: 3150 |
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 |