RaspberryPi mod


#1

Hi all,

I’ve been working on this project on and off for a long time now; Constantly changing directions. Basically, i’m working on replacing the control panel with a Raspberry Pi that allows you to control the bullet (Both via touch screen and Xbox controller), display graphs and store/send roast profiles to Roast World. I’ve designed some 3D models to allow the RaspberryPi case to fit on top of the existing control panel for easy detachment in case of RPi failure.

I’ve developed a C++ library for core Bullet control and the graphical application (under development) is also C++ based on the TouchGFX graphics library (Designer for Cortex-M originally).

There’s good potential for further mods that can be connected to the Pi and added to the graphical application. E.g. i’m thinking some kind of mechanical stirring of the beans as we see in larger roasters.

Here’s a short video of the start up screen - Features are limited right now because I’m working on integrating the new C++ library instead of the Python ZeroMQ server that ran previously which allowed me to control any number of Bullets in the same room and run identical profiles on each.

It’s been lonely, so i just wanted to share :slight_smile:

Best regards,
Martin


#2

Well done on your Genesis device Martin, or should that be the M5 (based on your avatar!).

I have a few Pi sitting on a shelf and even a touch screen, and a 3D printer so if you’d like to be less lonely (I don’t pretend to code though) please continue to share (unless you plan to KickStarter all this and it’s all commercial NDA hush hush).

Khaaaan!


#3

Very cool! I also have Pi’s around and a couple of touch screens, and while I don’t have a lot of spare time right now I am an experienced programmer (many languages) so if you’re looking to share I would be interested too.
Will


#4

Hi Stuart!

Thanks! For now i’m definitely just looking to share things internally with the community. I really appreciate your offer to get involved and i promise you that i’ll provide a guide to getting your pi set up to talk to the Bullet. I’ll provide a small test-application we can use to verify that everything is working as expected: Sets preheat, runs through all roaster states while controling power, Drum and Fan, blinks the display and uses the speaker. I haven’t figured out how to do back-to-back roasts … yet.

Let me know when you want to get started! :slight_smile:

Thanks a ton!
/Martin


#5

Hi Will!

Thank you also for your offer to help! I’d looove to have some help with testing. The main reason for using that Raspberry Pi platform is that i expected a lot to have one. Initially you do not need a touch screen to test the bullet library i’ve created. It will just output information to the console.

Let me know when you want to start up and i’ll start writing a short guide on how to prepare the Pi for initial Bullet communication.

Thanks!

/Martin


#6

Let me leave a few initial steps here that you can try out on your raspberry pi when you have time (I just run Raspbian on mine so we’ll use apt-get to retrieve packages) :

Build and install libusb-1.0. The reason we’re building from source instead of using apt-get is simply that this is what i’ve done - To eliminate any issues due to discrepancy : I’m just going by memory here so let me know if you experience any issues:

  1. sudo apt-get install git
  2. git clone https://github.com/libusb/libusb.git
  3. cd libusb
  4. ./autogen.sh (You may also need to apt-get install automake and autoconf)
  5. ./configure
  6. make && make install

You should now have the libray installed in /usr/lib/libusb-1.0 and /usr/include/libusb-1.0/


#7

@stuartmcknight, you just gave me the idea to do an LCARS inspired interface. Maybe it’ll be too clunky - I’ll give it a shot!

Would be awesome if I could replace the audio. “Roast has started” = “Engage!”


#8

Sunday morning scribblings. Just thinking about test application design (no graphs). May finish roast profile integration so you can use it for real roasts. Then just transfer roast profiles from pi via scp and upload to roast world.


#9

Preheat screen with 1 degree adjustments able to send the proper preheat command. Next step is making the application more aware of the various states of the Bullet to support a standard roast flow.


#10

Think i’ll call it a day - Added preheat state with drum and bean temp sensor readings. It also supports “Regulation” (The point where the Drum temp has been reached but the bean temp is lagging far behind) - And “Charge…”, but you can’t simulate those (by skipping states with PRS) so it’s not shown in this video:

I guess anything is possible here. I’m a shit designer/artist so if anyone wants to help with that :slight_smile:


#11

Here’s the test roast screen that can control Power, Fan and Drum. It also shows ROR, DT, BT, roast time. In the video i’ll switch focus to the bullet at some poiunt and you’ll see me controlling P,F,D using the pi. Next up is saving data to a profile and exporting it to RoastTime. And then graphs.

Trying to enlist some skilled graphics artists/designers :slight_smile: