* * *

Author Topic: Ultibo core a full featured embedded (no OS) environment for Raspberry Pi  (Read 17297 times)

marcov

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 5575
Re: Ultibo core a full featured embedded (no OS) environment for Raspberry Pi
« Reply #30 on: February 05, 2016, 06:45:27 pm »
and now I'm wondering if FreeVision http://wiki.freepascal.org/Free_Vision will work in the console?

At a quick look I don't think it would work currently, mainly because it seems to be character based and the Raspberry Pi has no character mode display (only a pixel mode framebuffer).

The Ultibo implementation of the video unit could abstract that. The OS independence of FV are the so called api units (keyboard,video,mouse).    The textmode IDE uses some more OS dependent calls though (cursor on/off, saving/restoring screen, mousecursor)

FV/api has a (character) virtual screen as back buffer and generates events to the OS specific part (video unit) to update the modified region of the virtual screen to the real screen.

The RPI has a GPU though, and a character mode buffer is basically the same as an ARB buffer that specifies which character to blit where.

Quote
Maintaining a buffer that holds the pixels for a full HD display in 32 bit color takes a lot of data manipulation.

You only have to keep the characters in buffers, and FV does that for you. You only need to update the needed part from the resulting virtual screen


avra

  • Hero Member
  • *****
  • Posts: 1072
    • Additional info
Re: Ultibo core a full featured embedded (no OS) environment for Raspberry Pi
« Reply #31 on: February 09, 2016, 11:46:39 am »
Wow, very nice project! For any embedded target general gpio, serial, spi, i2c and 1wire libraries are top priority. Each lib should provide at least one example.

Quote
From the FAQ:
Why Raspberry Pi, why not (name of other board)?
Raspberry Pi is clearly the market leader when it comes to small single board computers for hobby and educational use. We fully intend for Ultibo to support other boards, which ones and when depends on what the community shows interest in.
I express interest in ESP8266 (802.11 for 3$). If FPC could target it, and Ultibo could support it, we would have a real IoT device programmed in Pascal. With deep sleep enabled it could send sensor data for ever from solar power, or for years on battery power. Mesh networking is also atractive use case.
« Last Edit: February 09, 2016, 11:50:02 am by avra »
ct2laz - Easily convert components and projects between Lazarus and CodeTyphon


hansotten

  • New member
  • *
  • Posts: 18
Re: Ultibo core a full featured embedded (no OS) environment for Raspberry Pi
« Reply #33 on: February 09, 2016, 12:07:40 pm »
Wow, very nice project! For any embedded target general gpio, serial, spi, i2c and 1wire libraries are top priority. Each lib should provide at least one example.

Agreed, not too difficult. The Broadcam GPIO are memory mapped, and there are good open source libraries available for Freepascal for the Raspberry Pi.

Quote

I express interest in ESP8266 (802.11 for 3$). If FPC could target it, and Ultibo could support it, we would have a real IoT device programmed in Pascal. With deep sleep enabled it could send sensor data for ever from solar power, or for years on battery power. Mesh networking is also atractive use case.

That would be great, but require a new target for Freepascal. The CPU of the ESP8266 is not supported now.  Unlikely to happen.
« Last Edit: February 09, 2016, 03:25:11 pm by hansotten »

Ultibo

  • New member
  • *
  • Posts: 30
Re: Ultibo core a full featured embedded (no OS) environment for Raspberry Pi
« Reply #34 on: February 10, 2016, 01:16:11 am »
For any embedded target general gpio, serial, spi, i2c and 1wire libraries are top priority. Each lib should provide at least one example.

I agree totally, but in the end it was a decision between releasing now or waiting longer until everything was supported.

Many of these devices are quite straightforward and much less complex to handle than something like USB, I'm confident that most if not all will be accessible via included libraries within a few months.

« Last Edit: February 10, 2016, 01:50:28 am by Ultibo »
Ultibo.org | Make the future
https://ultibo.org

Thaddy

  • Hero Member
  • *****
  • Posts: 4278
Re: Ultibo core a full featured embedded (no OS) environment for Raspberry Pi
« Reply #35 on: February 10, 2016, 09:29:55 am »
Don't worry. This is an amazing piece of software engineering in FPC and is this really outside of the core team?

It works, it is very useful to me and an encouragement to step into the world of bare metal again (haven't done that since the late '80's)

Like some others said: WOW!
"Logically, no number of positive outcomes at the level of experimental testing can confirm a scientific theory, but a single counterexample is logically decisive."

avra

  • Hero Member
  • *****
  • Posts: 1072
    • Additional info
Re: Ultibo core a full featured embedded (no OS) environment for Raspberry Pi
« Reply #36 on: February 10, 2016, 11:40:30 am »
For any embedded target general gpio, serial, spi, i2c and 1wire libraries are top priority. Each lib should provide at least one example.
I agree totally, but in the end it was a decision between releasing now or waiting longer until everything was supported.
Fully understandable.  ;)

Quote
Many of these devices are quite straightforward and much less complex to handle than something like USB, I'm confident that most if not all will be accessible via included libraries within a few months.
That's really good to hear. As for USB let me tell you my point of view. I have designed USB devices that talk to USB hosts, developed their firmware, and written applications and/or drivers on USB host side. Sometimes I used HID, sometimes CDC, and sometimes I had to use libusb for direct communication. I am aware of other USB classes but I had not used them so I will not comment them. Well, HID is top priority. It is easiest to use and most developers are familiar with it. CDC is next on the list. It is not that easy on USB device side, but on USB host side it looks like a serial port so it is most appreciated by USB host application developers. Direct access is the most complex for both sides and usually requires custom driver on USB host, but it provides most flexibility and biggest speed. On USB host side libusb is probably the most used library for this. I do not see direct access as a priority because Ultibo does not run on a standard pc which we want to expand in functionality, but on devices that will already from day one have a goal to provide this new functionality. Therefore there is less need for USB direct access since there are already other ways (gpio, i2c, spi...) that designer can use to achieve his goal. I am not saying that direct access would be useless - I am just saying that it is not that much of a priority.

What can I say. Ultibo is on my radar...  ::)
« Last Edit: February 10, 2016, 11:43:56 am by avra »
ct2laz - Easily convert components and projects between Lazarus and CodeTyphon

Ultibo

  • New member
  • *
  • Posts: 30
Apparently not everyone actually owns a Raspberry Pi yet :o, so we made a video of the demo image so you can see what Ultibo is all about.

https://youtu.be/GF9Xbf3mbf4

Ultibo.org | Make the future
https://ultibo.org

Leledumbo

  • Hero Member
  • *****
  • Posts: 7628
  • Programming + Glam Metal + Tae Kwon Do = Me
You wrote the whole NTFS implementation? :o

DonAlfredo

  • Hero Member
  • *****
  • Posts: 716
I have some Pi, PiB, Pi2 and Pi3, and on neither of them, the demo works !
I know, I must be doing something wrong.
But, until now, I do not not what I am doing wrong.
I will keep on investigating.

(I would appreciate if RPi3 is added to the devices, even at just 32bit ARMV7 level)

Ultibo

  • New member
  • *
  • Posts: 30
You wrote the whole NTFS implementation? :o

Yes we did, a full implementation in pure object pascal with read/write, compression, streams, reparse etc, the only actual missing features are encryption and log file replay/rollback.

We wrote this a few years back as part of a commercial product so it is a clean implementation (nothing but public documentation and on disk discovery) and has had thousands of hours of real world usage.
Ultibo.org | Make the future
https://ultibo.org

Ultibo

  • New member
  • *
  • Posts: 30
I have some Pi, PiB, Pi2 and Pi3, and on neither of them, the demo works !

Do you see anything on screen or any activity at all? The first thing to appear should be a full orange screen with the version at the top, if you don't get this you should probably be seeing the 4 large colored squares from the firmware. If you see nothing at all then maybe an SD card issue would be the thing to look at.

We haven't had any other reports of this in the month since releasing the project.

(I would appreciate if RPi3 is added to the devices, even at just 32bit ARMV7 level)

We are waiting on 2 RPi3 boards arriving (now 6 days on order from a global supplier who said they were in stock!) so we can update the detection etc. I suspect RPi3 won't work without an update because it has new version information that won't be detected properly. The support will be 32bit only for the moment until Raspberry Pi release some more information and we can evaluate what is needed for 64bit support.
Ultibo.org | Make the future
https://ultibo.org

vincococka

  • Jr. Member
  • **
  • Posts: 94
Offtopic: why is website ultibo.org not available? Isn`t webserver down ?
---
  Guide me God and I`ll find you

Ultibo

  • New member
  • *
  • Posts: 30
Offtopic: why is website ultibo.org not available? Isn`t webserver down ?

All fine from here (Australia), some older versions of IE cannot connect unless you enable TLS 1.1/1.2, maybe that is your problem.
Ultibo.org | Make the future
https://ultibo.org

vincococka

  • Jr. Member
  • **
  • Posts: 94
I`ve tried firefox 44 / opera latest / IE 11 and nothing worked.
---
  Guide me God and I`ll find you

 

Recent

Get Lazarus at SourceForge.net. Fast, secure and Free Open Source software downloads Open Hub project report for Lazarus