My first post on this forum some info about me and questions.

Hi All,

I'm new on this forum and find my self a bit lost in here :slight_smile:
So many topics. I feel that I can write in all and none in particular.
I never use an arduino board. I know about of course is famous and I worked with 8bit AVR long time ago when I designed my first dev board this was back in the spring of 2003.
Not sure it arduino was available then don't not the history but I will be curios to know.
I build 100 of those dev board from my own money it was a fortune almost :slight_smile: about 30% of the money I got by selling my one room 12sqm apartment the rest went in to getting a small piece of land to build my first house.
It was hard to convince people to buy AVR dev boards most people familiar with microcontrollers where in to PIC.
I was just familiar with Zilog 8bit processors before searching for a microcontroller to learn and AVR seems to be the best value and futures at that time.
I sold most of them to colleagues at my first place of work just after getting my engineering degree so I'm not old :slight_smile:
Here is a photo that I have with that dev board (the digital cameras where not that great back in 2003)


That small SBC (single board computer) was build in larger numbers 250 since that was the numbers of AT Mega 8 I was able to get at a good price.
Right now I have a new project but it will probably be considered advertising to talk about since is on Kickstarter right now.
I will say that is based on a ARM cortex M0 this is what I consider to be a good microcontroller this days like I was thinking AVR is great more than 10 years ago. I always try to use the best available microcontroller even if I need to learn a new architecture.
Actually back then in 2003 I only wrote programs in ASM for the AVR now I'm using C but I preferred ASM since I'm more of a hardware engineer than a software.
This new project will be an Open Source HW and SW and if it is successful I will make video tutorials so people can learn programing and electronic design including PCB design using KiCad.
I'm a big user of Open Source this will be my way of giving back a bit.

I will be here on this form to learn more about what people what to learn and what sort of questions are asked and try to participate as much as possible.

Was there any better thread for my introduction if so and you are an admin can you move it there?

This forum is for questions like: Why is the I2C bus not analog ? Why does my servo eat all the power ? Why is my voltage regulator hot ? and so on. But you can tell what kind of interesting things you are developing ofcourse.

Your kickstarter project :
https://www.kickstarter.com/projects/electrodacus/open-source-programmable-solar-bms-development-boa

The rest:
http://www.youtube.com/user/electrodacus/
http://twitter.com/electrodacus
http://electrodacus.com/

Do you know Teensy 3.0 ?
https://www.kickstarter.com/projects/paulstoffregen/teensy-30-32-bit-arm-cortex-m4-usable-in-arduino-a
https://www.pjrc.com/teensy/
It is developed by Paul Stoffregen, and he is a great contributor to the Arduino community.

Caltoa:
This forum is for questions like: Why is the I2C bus not analog ? Why does my servo eat all the power ? Why is my voltage regulator hot ? and so on. But you can tell what kind of interesting things you are developing ofcourse.

Do you know Teensy 3.0 ?
Teensy 3.0 - 32 bit ARM Cortex-M4, usable in Arduino and C by Paul Stoffregen — Kickstarter
Teensy USB Development Board
It is developed by Paul Stoffregen, and he is a great contributor to the Arduino community.

Thanks for the replay.
That Teensy 3.0 seems like a great little board. There seems to even be a 3.1 now. And I do not know Paul but somehow it seems familiar to me looking at the profile photo. Maybe he had some presentations or youtube videos that I have seen.
Cortex M4 will have been an overkill for me so I opted for M0 from ST for the low power consumption.
Power consumption is always my top priority when selecting components that Solar BMS is using just 25mW with the backlight OFF at least an order of magnitude less than even a simple Lead Acid solar controller.
If enough will be interested in my project then my intention is to provide video tutorials on how to build and design a complete product.
The solar BMS is not really a classic type of dev board it is more like a final product. Since things move so fast today you do not really have the time to design a complex product from the ground up. It took me 6 months to get it to this point and there is still some work to be done.
The idea is that for almost any product you can reuse 60 to 90% of the design since it has a simple PCB case with capacitive buttons an low power day light readable LCD (Nokia 5110) great user interface that I designed, RTC and some other modules.
So almost anyone will be able to take this since is open source and quite fast design a custom product around adding his changes.
The fact that is a Solar BMS has to do with the fact that this was what I needed but there is not much interest in storing solar energy in Lithium batteries.
Is a bit to early for a Solar BMS there is a lot of resistance from the solar DIY community mostly because of misinformation about the cost of storing energy in lithium battery.
Since I'm not able to certify a solar controller need a few hundred thousand dollars I decided to make everything open source and even more if enough interest exist make detailed video tutorials in that way more people will be able to adopt Lithium for energy storage.
I'm working now on a video explaining the benefits not just cost benefits in using Lithium over more traditional Lead Acid hope to have that soon on my youtube channel.
I looks like a nice forum so i will probably be present more here. I think the average age of the members is quite small they are more open to new things regarding technology.
I will be happy to answerer question about my last project if there is any interest.
Here is a 3D render of the product I made this for kickstarter before I realized they do not allow that since some people may confuse it with the real thing even if it was an animation and was quite obvious wit was a 3D render and I had an working beta.

Thanks for the intro. I found your post on a search of "asm" assembly language. I share some of your background, having gotten insulted off the AVRfreaks forum several times for seeking out a standard, expandable development board that had a great (virtual) serial interface to Linux. The Arduino Uno fits my interest perfectly.

But I can't seem to find any good info on how to use assembly code and SRAM?? I had fun with the Atmel stk500 and assembly language. The Arduino "wiring" C++ language is very nice. But in the olden days of the PC, hardware and assembly were given more priority.

OldRick:
Thanks for the intro. I found your post on a search of "asm" assembly language. I share some of your background, having gotten insulted off the AVRfreaks forum several times for seeking out a standard, expandable development board that had a great (virtual) serial interface to Linux. The Arduino Uno fits my interest perfectly.

But I can't seem to find any good info on how to use assembly code and SRAM?? I had fun with the Atmel stk500 and assembly language. The Arduino "wiring" C++ language is very nice. But in the olden days of the PC, hardware and assembly were given more priority.

I think I still have the example that I wrote for the AVR dev board long time ago is written in ASM but I was already even back then 11 years ago a bit to conservative using ASM.
The idea is that today program memory on modern microcontroller is large enough and the C compliers good enough that it will not make a huge difference. Writing a complex program in ASM will take you longer and your effort will not be worth while.
Also today for sure ARM cortex M famili of micro-controllers are the way to go for any project you can get versions of under one dollar and as powerful as you want the M4 is already at the level of a 486 or even first generation Pentium.
And the low cost cortex M0 is competitive in price with even the lowest end 8bit microcontrollers with more futures and lower power consumption not to mention more memory and better peripheral usually 12bit ADC or more.
Unless you already know intimate one of those 8 bit micro it makes not much sense to build a new project based on anting other than an ARM cortex microcontroller.
If you really want I can search the old example that I wrote in ASM for AVR it is only a driver for the 2x16 LCD and it measures the voltage on the first ADC and displays that on the LCD nothing more.

I'm sure you are right, as a young engineer planning your next project. But I'm an old guy, remembering my first projects. People want pocket computers these days; not me.

My undergrad was neurophysiology, then found myself in computers in the 1970s. I like my Linux box as the controlling brains, and looked for distributed "real time reflexes," and the standardized arduino platform is plenty for that.

The old modem control RS232 serial port lines and terminal control characters make sense to me. I did an assembly language Basic interpreter on Atmega chips and the Atmel stk500 that somewhat follows the original PCBasic many others have also adapted. There is an Arduino Forth and Firmata. I just need to reliably know what is going on in the microcontroller. I found some Arduino assembly reference.

I liked your earlier development board, and replied accordingly. I'm 10 years behind going on 30 years behind.

OldRick:
I'm sure you are right, as a young engineer planning your next project. But I'm an old guy, remembering my first projects. People want pocket computers these days; not me.

My undergrad was neurophysiology, then found myself in computers in the 1970s. I like my Linux box as the controlling brains, and looked for distributed "real time reflexes," and the standardized arduino platform is plenty for that.

The old modem control RS232 serial port lines and terminal control characters make sense to me. I did an assembly language Basic interpreter on Atmega chips and the Atmel stk500 that somewhat follows the original PCBasic many others have also adapted. There is an Arduino Forth and Firmata. I just need to reliably know what is going on in the microcontroller. I found some Arduino assembly reference.

I liked your earlier development board, and replied accordingly. I'm 10 years behind going on 30 years behind.

:slight_smile: Age is just a number.
I was just born in the late 1970s and had my first computer only when I was 17 years old a super cool 386DX with 387 math coprocessor :slight_smile:
I only programmed a processor Z80 using assembly at the university and that communicated via RS232 with a desktop computer running a program that I wrote in turbo pascal.
Then at work as a hardware engineer I created a lot of software in the visual basic included in Microsoft Office the only thing available to me to automate most of my test controlling the oscilloscope power supply even hacked the airbag ECU serial communication protocol to automate the tests.
Then when everyone around me used pic microcontrollers I decided to read over 20 microcontroller data sheets to find the best one for me, And decided that was at the time the AVR that I programed in ASM since it was easier for me understanding the hardware.
Now just a few years back I needed a microcontroller and decided the ARM cortex M is the one for me and C programming
You do not need much time to learn a new programming language or microcontroller architecture there are not much differences.
In another 5 or 10 years if I need to start a new project I will take whatever it will be the best possible micro-controller for the job. Probably a graphene based multicore microcontroller with 16GB of internal RAM :slight_smile: Yes I will be sad that I will not understand what all the drivers will do in the background but I will need to use that to have a good product.

Neurophysiology seems like a good start for artificial intelligence. That was my dream when I was younger but realised there are so many others and I will probably play a very small role so i got out of the race. But I look forward to the 2040 - 2045 when we will become irrelevant as a species.

I did the neurophysiology, was good in physics, so was asked to start Biophysics grad school. It turned out the guy who invented digital electronics, Otto Schmitt (Schmitt trigger), ran the department. He had more heavy tube electronics and refrigeration systems than you can imagine. Most of us thought transistor radios were cool. The PC was a lonely machine until the internet.

My first computer was an Epson QX10, running a Z80, and I programmed "electro-optic" coefficients of peptides using Basic. When I ran the program the screen went blank and I had to beg people to stay for 10 minutes to finally see any graphics.

TurboPascal is very cool. I use FreePascal to program Linux. An AVR assembler (GAVR) is actually written in FreePascal. Linux is a spectacular platform. The Arduino interfaces Linux like a glove.

My daughter was an engineer for Apple and gave me an IPad. I still can't figure it out, but my wife loves it. Little fingers now rule the world.

OldRick:
I did the neurophysiology, was good in physics, so was asked to start Biophysics grad school. It turned out the guy who invented digital electronics, Otto Schmitt (Schmitt trigger), ran the department. He had more heavy tube electronics and refrigeration systems than you can imagine. Most of us thought transistor radios were cool. The PC was a lonely machine until the internet.

My first computer was an Epson QX10, running a Z80, and I programmed "electro-optic" coefficients of peptides using Basic. When I ran the program the screen went blank and I had to beg people to stay for 10 minutes to finally see any graphics.

TurboPascal is very cool. I use FreePascal to program Linux. An AVR assembler (GAVR) is actually written in FreePascal. Linux is a spectacular platform. The Arduino interfaces Linux like a glove.

My daughter was an engineer for Apple and gave me an IPad. I still can't figure it out, but my wife loves it. Little fingers now rule the world.

I'm also a big Linux user. All my personal computer run Linux at least in the last 10 years or so.
I was a big fan of MS-DOS before that :slight_smile: and a Windows user for a while but did not liked the fact that has slowly taken the control of the hardware and needed to access hardware trough drivers.
You are right without internet the PC was a lonely machine and probably will have never get that popular without the internet.
I also found the computer boring. I was never interested or attracted by computer games. I played around with few just to see the 3D graphics but that was just for a few hours.
The most important discovery that I made was the fact that I can write a simple program that can control the parallel port. That just opened a new world of possibilities for me since up until that point the only access of the computer to real world was a screen and sound not that impressive to me :slight_smile:
I agree that Turbo Pascal is cool is more didactic easier to read the code and debug than C but C was just lucky to be more popular and get more support.
I never had an Apple product but I know they OS is based on BSD a fork of Linux. Problem is you only have access at the surface their nice colour interface with limited options :).
Anyway personal preferences are not what will rule the world in the future. Most people like simple stuff that just works and if they are young it needs to look cool :slight_smile:
So I expect most programming in the future will be done by Siri or Google or whatever the name of the new generation AI will be based on verbal instructions from the 10 year old human user :slight_smile:
And when I say future I'm referring at the next 10 years or less.
There is a race to get the first AI in the world and billion of dollars invested already (this is just the beginning). To be honest I'm quite exited to see this even if is not a very good news for us.

Something you might find very interesting if you are familiar with Pascal:

FpGui and MseGui.

These are specialize IDE's for FPC (FreePascal) that are on the cutting edge of object oriented gui concepts. Sort of a 'bare-metal-full-featured-gui-ide'.

The idea is 'client-side drawing'. This cuts out the Gtk/Qt libraries and deal direct with the X11 subsystem. This is the 'Wayland compositor' model concept.
So essentially, your app has no need of a 'window manger/ widgetset' libraries. Cross-platform as well. What runs on your RasberryPi ARM produces the exact same graphical appearance on Windows8 or any other OS. All drawing is done 'in-house' or client-side.

FpGui:

Mseide/Msegui:

captbill:
Something you might find very interesting if you are familiar with Pascal:

FpGui and MseGui.

These are specialize IDE's for FPC (FreePascal) that are on the cutting edge of object oriented gui concepts. Sort of a 'bare-metal-full-featured-gui-ide'.

This looks almost identical with the Visual Basic included in Microsoft Office.
I'm not interested at the moment in writing PC software but I will keep in mind if I do.
Here is an old screen capture with my graphical interface written in turbopascal in around 2001 :slight_smile:

Captbill, very interesting about FpGui. Way over my head. But I did adapt the FreePascal Xforms library that is a little more core X11. http://www.sytekcom.com/eng/Freepascal_XForms_Units.html

You still need the "cursorfont.inc" file from the FreePascal distro version of a very stale XForms lib Unit. The link is not a good adaptation, but it allowed me to play with the XForms Library and read it. The web page shows 8 spaces per tab, while my editor uses 4, so it is a little flaky looking. The XForms forum has a link to some examples, including FreePascal.

As you say, FreePascal does work on ARM processors. But in truth, I have a nice incTcl/Tk Gui serial monitor, and really am learning to like the Arduino language.

Too much opportunity. Thanks for the new bookmark.

OldRick:
Captbill, very interesting about FpGui. Way over my head. But I did adapt the FreePascal Xforms library that is a little more core X11. http://www.sytekcom.com/eng/Freepascal_XForms_Units.html

You still need the "cursorfont.inc" file from the FreePascal distro version of a very stale XForms lib Unit. The link is not a good adaptation, but it allowed me to play with the XForms Library and read it. The web page shows 8 spaces per tab, while my editor uses 4, so it is a little flaky looking. The XForms forum has a link to some examples, including FreePascal.

As you say, FreePascal does work on ARM processors. But in truth, I have a nice incTcl/Tk Gui serial monitor, and really am learning to like the Arduino language.

Too much opportunity. Thanks for the new bookmark.

Oh, I didn't realize that XForms you mentioned is an FPC library. Amazing how many 3rd party tools are available. But yes, XForms looks like another implementation of the same general idea that Fpgui and Mseide are about. If you like XForms idea then you will love FpGui and Mseide. I am sure it's the same guys that were involved with developing XForms. Same concept.

Fpgui and Mseide are currently the leaders in this 'bare-metal gui' department. They are really on to something big on this front and seems a perfect fit/combination with the Arduino. You get a more professional client-side development solution.

Mseide is the more 'full featured' package, being used in commercial apps today. Fpgui is the newer player in the field and is onto some REALLY interesting advances in the graphics department.

I am working with a super-light 'multi-boot' kernel based on Tinycore Linux. I can boot into a 32bit kernel, a 64bit kernel or a 32bit real-time (RT)...total size of all three combined? 24mb! Super small= super efficient = super fast = super reliable is the goal. The possibilities with the combination of these is quite promising.

electrodacus:
This looks almost identical with the Visual Basic included in Microsoft Office.
I'm not interested at the moment in writing PC software but I will keep in mind if I do.
Here is an old screen capture with my graphical interface written in turbopascal in around 2001 :slight_smile:

Cool. You made that in TurboPascal? I missed that detail. Sweet.

I am very new to the microcontroller side of things and am very interested in your knowledge.

captbill:
Cool. You made that in TurboPascal? I missed that detail. Sweet.

I am very new to the microcontroller side of things and am very interested in your knowledge.

It was an extremely light weight graphic library in Turbo Pascal you where able to create just lines, rectangles, circles but it was extremely fast and extremely light weight the same library was also available in turbo C.
I know I made just one year later a simple program similar to paint where you can draw with the mouse cursor and change the colour it took me just one day to do that since I was already familiar with that library.

I do not remember exactly but that program I made in turbo pascal was running under DOS on a 486DX 66MHz and compiled in a single exe file was just 10 or 15KB I have that somewhere on an old CD I will need to check.
Now even my Solar BMS software that runs inside of a microcontroller with a small LCD is already at 46KB
I was hoping to do some tutorials about ARM cortex M programming if that Solar BMS project went realy well but it dose not seems to be the case unfortunately.
Maybe on the next project if that works better I will get the chance to do some tutorials.
Some people liked my little project where I was controlling a stepper motor with the parallel port of an old laptop and the code was written in a few hours in turbo C. I did not even saved the program but you can copy that from the video.

Tinycore Linux is a really nice idea I have use it in the past but not much mostly testing on really small systems like Pentium I 166MHz 32MB RAM :slight_smile:
I was a big fan of SlaX until it died and Knoppix was my first introduction to Linux.

electrodacus:
Stepper motor controlled with computer parallel port LPT - YouTube

Hey! I have seen your video before. It's a small world after all. Hahaha. That is exactly what i need to accomplish, linear motion control. This is a good video for showing how to do it from a low-level programming perspective.

We could sure use more people like you in the Pascal arena. I think you will be pleasantly surprised with what's going on. Some tutorials/insight would be greatly welcomed too. These Arduinos seem quite powerful and I would like to learn more about how to interface with software more.

Cheers,
Bill