element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Raspberry Pi
  • Products
  • More
Raspberry Pi
Raspberry Pi Forum What gets in the way of your Raspberry Pi project?
  • Blog
  • Forum
  • Documents
  • Quiz
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Raspberry Pi to participate - click to join for free!
Featured Articles
Announcing Pi
Technical Specifications
Raspberry Pi FAQs
Win a Pi
Raspberry Pi Wishlist
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • Replies 71 replies
  • Subscribers 674 subscribers
  • Views 17874 views
  • Users 0 members are here
  • pico
  • projects
  • raspberry pi
  • zero
  • introduction
Related

What gets in the way of your Raspberry Pi project?

cstanton
cstanton over 3 years ago

For those following along, it's become a bit of a daisy chain...

It's been about 10 years since the Raspberry Pi was released to the world, and I remember everyone being excited. It was a mixture of miscommunication, promises and new technology. An affordable embedded computer that was the size of a credit card. A lot of heated debate about open source and availability, and plenty of marketing. It hit off very well, and everyone clamored to get one, and somewhat still do, and support it. With open source libraries, packages and Linux, quite the contrast to similar boards released around the same time - I think it says a lot when someone has a project and decides 'no, this is how you do it' and leads with a direction and decision and doesn't leave it open for the herd of cats.

Still, a lot of people I know have a collection of Raspberry Pi, and the meme goes 'Yes I have one, it's sat in my drawer collecting dust, I don't know what to do with it' or 'I use it for my media server... and that's about it'. While using a Raspberry Pi as a media server is not a bad thing, it's rather justified (and frankly has spun off a lot of similar products since) it's not the only thing to use a Raspberry Pi for.

Now there's a lot of accessories available, a lot of example code (like other microcontroller boards) but there still must be something about it that trips you up when creating that project. Is it limitations with the hardware? (it is mostly 3v3 after all) or is it the physical size of it? (the compute module, pico and zero start addressing this) well right now it's obviously the availability (or lack) of it, but we can't address that right now, so let's focus on what we do with it when we have one.

We're looking at expanding our content and what we ask from Raspberry Pi (Foundation/Trading) to govern our campaigns and content on the Community, and I'm interested in what you need help with, so reply and let us know, regardless of knowledge level or what you've been doing.

  • Sign in to reply
  • Cancel
Parents
  • dougw
    dougw over 3 years ago

    Raspberry Pi is suitable for both microcontroller applications using the Pico and computing platform applications with the Pi 4.

    The Pico is a great product for microcontroller applications and it will be interesting to see if they add to their offerings in this area.

    The Pi 4 as a computing platform is very low cost and capable as a general computing platform but I don't use it for this because I always default to using my most  powerful computer (Core i7) for computing tasks. There may come a time when Raspberry Pi's are fast enough for my main computing activities, but it is not here yet.

    The Pi makes a great platform to learn Linux or Raspberry Pi OS. This is an area where I need more knowledge to achieve reasonably efficient work flows.

    I would use a Raspberry Pi as say a dedicated MQTT server or possibly a LoRa gateway, because it is low power, low cost and could run continuously.

    I think right now it is these types of dedicated edge servers that are the "killer app" for Raspberry Pi. More focus on software support in these areas would help more people to add such devices to their infrastructure. A low cost, full featured LoRa gateway is an obvious gap in the industry right now. 

    Another pretty good application area is in specialized cameras since they have built-in camera interfaces and communications. Pushing this capability further with more software support will help expand this to a much more mainstream activity. Low cost cameras are and will be used extensively in a myriad of applications.

    • Cancel
    • Vote Up +3 Vote Down
    • Sign in to reply
    • Cancel
  • shabaz
    shabaz over 3 years ago in reply to dougw

    I have a Pi converted into a LoRaWAN gateway, the cost of the Pi ends up being small compared to the rest of it, mainly because the LoRaWAN gateway chipset is pricey (dual chips from memory, although most LoRaWAN gateways end up using three or more). Add in the cost of making it outdoor-capable, and a good antenna, and it is then approaching perhaps 60% of the cost of a ready-made gateway, which for home use is good, but for commercial use isn't significant because of costs of deploying (amongst other factors), so the hardware cost difference becomes negligible.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • Jan Cumps
    Jan Cumps over 3 years ago in reply to shabaz

    I've been investigating that path too. A proper gateway is cheaper than a converted Pi.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • BigG
    BigG over 3 years ago in reply to shabaz

    Whether it's MQTT or LoRaWAN gateways you would've had to create driver software or utility software to handle the messaging received and transmitted etc.

    What I struggle with is working out which software package works best for these sort of applications. If it's Python then how do you protect your script from being hacked etc.

    I would have a similar question for say using Raspberry Pi as say a USB Hub. It's trying to work out what drivers can be installed (and where I get those) and then what additional software layers need to be created to handle the USB data etc. to build an application.

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Cancel
  • Jan Cumps
    Jan Cumps over 3 years ago in reply to BigG
    BigG said:
    Whether it's MQTT or LoRaWAN gateways you would've had to create driver software or utility software to handle the messaging received and transmitted etc.

    It is not often needed to write drivers, except if you are connecting custom designs that aren't supported yet.

    BigG said:
    What I struggle with is working out which software package works best for these sort of applications. If it's Python then how do you protect your script from being hacked etc.

    The security to deal with the execution of Python or other (compiled?) languages is similar. 
    It's not something to handle off in a comment. But changing the default user password, running all packages under a dedicated account, and only enabling what's needed is a good start.

    Microcontroller software is also vulnerable. Security awareness is needed for any design that needs to be secured.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • shabaz
    shabaz over 3 years ago in reply to BigG

    Most people end up using the few open source projects, or reference code from Semtech. However, as you say, this is just one part of it, and how do you protect from being hacked.

    Ordinarily (speaking generally, because I don't know of any orgs using Pi as LoRaWAN gateway) when using Linux in such a way to make a product, there's a process to go through, which results in some hardening of the OS, and eliminating/removing services from starting up if they are not used.
    It's a full-time job, at one firm that I worked at, they had a team that was responsible for producing a Linux build that could be used for the org's products. That Linux build would prompt the user to enter the IP address, DHCP, time server, admin password and so on, just as if it were an appliance. The user might not even know it is Linux, since they will never see a shell prompt.

    Regarding knowing what drivers etc to use, I can only speak from my experience, where (say) if network communication was needed, then middleware was used to do that, i.e. no creating sockets for instance was needed in the application itself, i.e. the code can be layered. Add in code (can be separate programs) to do upgrades, logging, restarting after a crash, etc., and it's a non unsubstantial amount of work to turn a Linux computer into a product, but feasible for a small team provided some of the effort (like preparing the Linux build and installer) can be offloaded to a team shared for several products.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • BigG
    BigG over 3 years ago in reply to shabaz

    Wow, you've confirmed my fears. It's complicated.

    I guessing here but I think this is where the Yocto project (or equivalent) is supposed to help, where you develop an image file for your application on say a PC and then bundle it with all the Linux OS drivers into one massive custom image to then be uploaded onto the embedded flash or SD card.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
Reply
  • BigG
    BigG over 3 years ago in reply to shabaz

    Wow, you've confirmed my fears. It's complicated.

    I guessing here but I think this is where the Yocto project (or equivalent) is supposed to help, where you develop an image file for your application on say a PC and then bundle it with all the Linux OS drivers into one massive custom image to then be uploaded onto the embedded flash or SD card.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
Children
  • Jan Cumps
    Jan Cumps over 3 years ago in reply to BigG

    I'm trying to support that approach, by giving cross-platform how-to's.
    These are a first step, to learn and develop on another platform than the final solution.
    Once you've taken that leap of faith (trust me, it isn't a leap in skills - steps are repeatable), the art of adding your design to an OS build suddenly becomes graspable.

    But that's not the only path. You can learn to develop for Linux. Or adapt your design to run on Windows and Linux. 

    Part of what shabaz describes, I will be doing for an active road test. I will make 2 separate C and C++ applications that will run as a service on a Pi, and that use the network APIs. Feel free to follow along and to comment, ask, critique, rant.

    edit: true story!

    image

    • Cancel
    • Vote Up +4 Vote Down
    • Sign in to reply
    • Cancel
  • Jan Cumps
    Jan Cumps over 3 years ago in reply to BigG

    answer 2 Smiley : I think that for an IT guy without previous embedded skills, it's easier to learn and build a meaningful application for a Pi than on a bare metal Arduino.
    Let's abstract from A: blinky and B: meshing existing code available on the internet into something that works.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube