I am just wondering about how broadbased the Electronics interest group here is. I am a EE and have a lot of experience in circuit design, but I also dabble in embedded programming and pure software projects. At first I assumed that there might be a software group here where I could mingle and learn some things. Software, in general might not be all that popular at DMS because its probably the most “portable” type of development and really doesn’t need much more equipment than a laptop or desktop. But I was thinking there might be some in-house projects going on. I like playing with Arduino, and Beaglebone and Raspberry Pi projects, but would like to collaborate on more extensive team projects, if any exist. I figured that if these projects did exist, they would probably be mentioned in the Electronics group.
While not a EE, I have been playing around with electronics (mostly digital) since I built my first computer in the late seventies. I too play around with Arduino and the Raspberry Pi, though not the Beaglebone as yet. I also use PIC chips as well.
You may be interested in the Raspberry Pi user group, enter link description here, Out next meeting is next Saturday, the 18th at UTD.
Excellent. Thanks for the information
Same weekend as the http://www.hackster.io/hardwareweekend
I’ve seen a few programming get-togethers, but I don’t know of any now that are just for programming.
What languages do you study, or what were you hoping you might learn? I’m not much of a programmer now, but I’ve dabbled in several languages, including assembly, C, C++ and Java.
How extensive of a project were you hoping to find? I could come up with a project, if that would make you happy.
I have C and C++ experience. I am looking into Python and Javascript right now. My goal is to design a warp drive engine and a Holodeck, so not “too” extensive.
Worthy goals, though I’m concerned that Python might not get you there, even with Javascript.
Python keeps coming up in my life over the last few years. I haven’t studied it, but it’s used in ArcGIS and some of the AI Meetups I’ve been attending.
John Carmack mentioned at his presentation a few days ago that he uses Lisp, among other things.
I don’t know how much use Python would have for embedded programming, but it can be quite useful for creating user interfaces to embedded projects on a desktop.
Mark, I suggest you look at the yahoo groups web site for the Raspberry Pi group I mentioned above. Last months lecture was on using Python to create GUI’s on the raspberry pi. I believe the files section has the example code and slides from the lecture. If you show up on Saturday, I am fairly sure the presenter will be there as well. The basic techniques work quite well in general unix so are not limited to the pi. I also think the techniques and software would work on Windows, but am not sure.
I have used Python for several things, notably ESRI ArcGIS development and while quite easy to work with, the language has some paradigms that are quite different from the other languages I am familiar with (C/C++/Java/Pascal/Modula 2/Fortran…) that it required a different ‘thought process’ for many things.
For me the most notable ‘gotcha’ with Python is that it is very syntax sensitive to the indentation level of your code. Code blocks in Python do have delimiters, but rather rely on indentation to define code blocks. Personally, I think this is a real design flaw… but then unlike many of the people who developed Python I remember the annoyance of the similar approach with Hollerith formatting in early Fortran…
Surprisingly LISP is still the language of choice for customizing my favorite text editor; Emacs.
I think you left out a “not.”
You are correct, sadly my proofing is sadly lacking!
I appreciate your feedback. In my limited experience, Python has been a good option for embedded programming. It seems to be a very popular language for many developers for embedded Linux OS devices, notably the Raspberry Pi and the Beaglebone. I am already monitoring and controlling a few devices in my den with a Beaglebone using Python, mostly just as an exercise. I have been at a beginners level with Python and there is quite a bit of open source code on the internet. I have copied and modified some code, but now I want to be able to write from scratch and get exactly what I want. I know I can learn it myself, but just thought that working with people who already know the ropes would save me some time. At my last job (infrared cameras), a lot of the natively compiled C code was being ported to Python running on embedded Linux, mostly for concurrent digital processing and embedded web server abilities. Yes, more memory required and a small penalty in speed, but the ease of developing, maintaining and porting the code was much simpler. I am very interested in exploring IOT, and Javascript/Python/Linux is a great platform for that. From what I have seen, it’s not really the language that is as important as the libraries and drivers that are available. I will take your advice and see about that Raspberry Pi group. Sounds like that might be exactly what I am looking for.
Ding ding ding ding ding! This…
The indentation thing in Python was a barrier that I put up for myself for a long time (that’s stupid! why would I want to use that!?). A decent editor makes it mostly a non issue (I personally fell in love with PyCharm community and ended up spending $99 for the pro version). The amount of “fun” libraries out there for Python make it worth using. “pythonocc” is the one I’m having fun with at the moment, but I’m sure I’ll get back to “myhdl” once I get more free time. The main thing I dislike about Python these days is 2.x vs 3.x. It gets better every day, but there’s still a lot of stuff out there not available for 3.x.
I think we were using different definitions of ‘embedded’. From my perspective, embedded programing is either direct control of hardware or at worst using a RTOS (which linux isn’t). This isn’t something that can
be accomplished with an interpreted language like Python or Java.
But for what it sounds like you were talking about Python can do a great many things as long as you don’t need a predictable response time. For the most part the IoT doesn’t require my definition of ‘embedded’ programming.
Like I said, I occasionally use Python, it just isn’t one of my favorites. Either way, I think you will enjoy the Raspberry Pi group. Hope to see you there Saturday!
Is the raspberry pi group open for all to join? I haven’t worked on RPi that much. But would love to meet the people there.
We are currently working on an IoT project with bare metal coding as well as Contiki/Riot. We kind of zeroed in to an EFM32 processor at this point. We’ve previously build a pre-alpha with 8-bit processor and zigbee radio. At this point we are in the process of upgrading to ARM cortex processor and open source 6lowpan radio. Thomas is the lead in hardware for us and is an excellent resource about these embedded systems IMHO. We have plan to meet there in DMS this Wed evening.
Yes the group is open to everyone. If you have a pi you are encouraged to bring it, but even those who don’t own a pi are encouraged to come.
Hope to see you there Saturday!
Well I guess everyone has their own interpretation and I understand what you mean, but your interpretation of “embedded” is a lot more restrictive than mine. Having worked with VXWorks and Debian designs at the hardware level, I know those firmware developers consider what why do to be embedded designs. They are referred to as embedded operating systems. I understand where you are coming from when you say direct control of hardware using a targeted system and compiled code, but then there is a fine line from embedding a single targeted task versus a rudimentary task scheduler or an interrupt driven design. The moment those concepts are included, you are essentially designing an RTOS. And you also have the Basic Stamp design which is actually an operating system that is nothing but a basic interpreter running basic tokens like an old TRS-80. This doesn’t meet your interpretation of embedded but I do consider it embedded.
The types of systems that I am referring to as “embedded” and pique my interest are essentially embedded Linux systems such as raspberry pi and beaglebone. My IOT interest is mostly running Apache on these devices to serve up webpages that can be used to control hardware with Python at the backend and JavaScript at the front end. I have been doing things with my beaglebone that are essentially turning devices on and off by logging onto the device through a browser and using JavaScript filled webpages to control hardware. This is already pretty common on routers, etc. This is where I am looking for others with the same type of interest. My belief is that the IOT will eventually be dominated by embedded Linux with “fractional” Apache servers controlling and monitoring the world through sensors.
Ok, I rambled long enough. I hope to make the raspberry pi meeting. I appreciate the feedback and the info. I look forward to meeting you and I will look for you.
To my mind there is a fundamental difference between VXworks and any linux (including debian). VXWorks is a true RTOS, while linux most definitely is not. People tend to use linux, and it mostly works for a lot of things, particularly if the driver code is running at the kernal level where it will have a high priority.
The problem, to my mind, is that working ‘most of the time’ isn’t the same as ensured to respond in time which you can do with direct control of hardware or the indirect control a RTOS provides. Where you can actually guarantee a response time.
In my opinion IoT, particularly as you are describing it is more of a miniaturized desktop application platform rather then an embedded one. Meaning that the what the object is doing could just as easily have been implemented on a desktop. and the IoT aspect is just a ‘shrinking of the desktop down’. In many ways we are also going to be looking at a combination approach. For instance a linux board running the ‘internet’ connectivity and interface for a device and perhaps one or more traditional microcontrollers providing the ‘real’ hardware interface under direction from the linux platform.
I think of embedded as the controllers that ensure the coolant get pumped to the reactor and similar such, where the action must occur exactly when it is called for.
Of course it’s a sliding scale, but I prefer to split things into two camps: baremetal embedded and embedded Linux. Baremetal embedded is either raw code on the metal, or at most raw code on an RTOS. Once you get Linux involved, it can still be embedded, but it’s not baremetal.
Ever considered those ESP8266 modules? It has a wifi stack and everything.