partyrobotics / bartendro Goto Github PK
View Code? Open in Web Editor NEWLicense: GNU General Public License v2.0
License: GNU General Public License v2.0
Right now only one user can use the bot at a time. Multiple users will cause undefined behaviour.
It's quite common when crafting a new drink in the drink admin page, that one wants to try the drink before saving it for good. Instead of going back and forth from the menu then back to the drink screen and scrolling for the drink, it would be a lot easier to just taste it in the same place where you make it.
There's a bug in the behavior of liquid sensors. When a bot is turned on (assuming liquid sensors are turned on) if the sensors are in liquid - status LED comes up green, if they are not in liquid it come up red. Great.
Now, if the bot starts off with no liquid, get's to idle state then liquid is added, and the pumps are reset in the admin page, the status goes to blue instead of green. Drinks don't show up in the menu even though the bot is full and has been reset. That's a problem because the checking of liquid level happens only after a drink is dispensed, and since one can't make a drink because everything is out, the sensors can't be reset unless hard power cycled.
I think most of the time people will want drinks to appear in the main menu, so check the box to hide a drink from the main menu.
While dispensing some drinks from a B15 kit (such as a Cape Cod, Cosmopolitan, Kamikaze, etc.) the "now serving your..." screen never goes away. The dispensers stop dispensing at the appropriate times, but they never stop displaying their "dispensing LED pattern". The page can be reloaded to get rid of the "now serving your..." screen, or the user can go back a page to get to the menu. Even once at the menu the dispensers still display the "dispensing LED pattern". Resetting the dispensers returns them to their normal waiting pattern.
When dispensing 10mL we are consistently measuring about 4.5mL. Smells like a math bug.
Using an iPhone, since the interface isn't running in a browser proper, there is no way to get to the admin screen using an address bar. A hidden link at the bottom of the ShotBot interface would be helpful.
It would be nice, as a lower priority item, if certain pumps could be selected to be cleaned. Sometimes you want all, sometimes you want half, sometimes you want 3, sometimes you want 5. I can envision a clean page where the gui mirrors the layout of the bot, one can select each pump and it changes color to indicate that it's selected. There's also a select all, and select none option. Then when the person presses clean, the selected pumps run for the desired amount of time. 15 seconds by default, but this should also be user selectable imo.
The settings system needs to manage to following settings:
And other settings/options as they arise.
Need a "clean all" or "run all" button that turns on all pumps instead of turning them on individually.
Make drink list a scrollable div. Make the rest of the page fully AJAX happy.
Original: The edit fields on the left half should stay stationary. When making many edits, scrolling back and forth to see your entries is cumbersome, especially as the lists get longer.
With a drink that has 3 equal parts, the ingredients are listed as 0.3fl oz each, but nothing dispenses. I suspect it thinks that it's trying to dispense 0.3mL which would equate to zero ticks. Nothing happens when pour is pressed.
Capitalization of headers is not consistent between booze page and drinks page (i.e. booze list & drink List)
Mobile device users typically press enter after entering fields, we have the default focus on the cancel button so it wipes out everything you've entered.
In the drinks page, a drink can be assigned a serving size. This is misleading since it is now globally set from config.py
To reproduce problem:
-in the drinks admin page, edit any drink with 2 or more ingredients
-change one ingredient to have "1 part" and another to have "90 parts" or more
-dispense drink from the menu page. I believe any size ordered will cause the runaway problem
Seems to be a math error somewhere, when the number of ticks are too small.
Dispenser should be storing hours of run-time for the motor and tubing independently in EEPROM.
A drink is not saved after much effort if the description field is left blank. If the field must be required, don't erase the fields that were entered, and put an asterisk next to it indicating that it is required.
If a dispenser is over currented, the red leds flash, but one can go back into the drink menu and order another drink while the red lights are flashing. The one that's limited doesn't run, but the others do.
If "turn on" is pressed and then "reset" is pressed. The buttons next to the dispensers don't display accurate state. They say "turn off" when they should say "turn on".
It fails with this error:
Traceback (most recent call last):
File "/usr/share/pyshared/flask/app.py", line 1518, in call
return self.wsgi_app(environ, start_response)
File "/usr/share/pyshared/flask/app.py", line 1506, in wsgi_app
response = self.make_response(self.handle_exception(e))
File "/usr/share/pyshared/flask/app.py", line 1504, in wsgi_app
response = self.full_dispatch_request()
File "/usr/share/pyshared/flask/app.py", line 1264, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/share/pyshared/flask/app.py", line 1262, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/share/pyshared/flask/app.py", line 1248, in dispatch_request
return self.view_functionsrule.endpoint
File "/home/robert/partyrobotics/bartendro/ui/bartendro/view/ws/dispenser.py", line 32, in ws_dispenser_test
t, ticks = app.driver.get_dispense_stats(disp - 1)
AttributeError: 'RouterDriver' object has no attribute 'get_dispense_stats'
When a drink is being poured and one of the dispensers runs into a current limit, the other dispensers continue running when they should probably stop.
Dispensing 60ml caused a crash. Is this calibration feature still hooked up? Consider making it a feature that's enabled/disabled with config.py (High Priority)
It might be nice to keep the feature as Dispense 10mL that would help with minimal waste during priming. (Low Priority)
-Created 3 new boozes all with 0 ABV and type unknown.
-Created drink with the 3 new boozes -- equal parts
drink in the main menu displayed a strength option even though it did nothing to the ingredients when changed
Right not you can turn the motor for a number of ms or ticks, but full speed is assumed. A speed should be specified with the command.
Inserting the programming cable as indicated on the board gives a reverse target inserted error message. Flipping it around, fixes this problem
Not Found
The requested URL was not found on the server.
If you entered the URL manually please check your spelling and try again.
A few things should be cleaned up on this page:
When dispensing 1oz or less, drinks would be way more accurate if the pump was slowed down with PWM. Maybe even make it completely proportional to size, where everything over 3oz is at full speed, and the pump slows down with every 0.5oz increment.
We are adding brands to ingredients by making them comma delimited.
For example:
Tequila
Tequila, Cazadores
Tequila, Hornitos
This makes searching much more possible. The brand field in the admin page becomes redundant at that point.
(low priority)
I don't think there's a point to having the test dispensers button in the dispensers page since the reset button is there.
-Is it possible/easy to make the buttons on the bottom (add booze / cancel / save) appear right after the ingredients instead of having to scroll down for them?
-It's kind of strange having a cancel button in the middle and so close to save.
After selecting a 5oz drink (low carb vodka lemonade), the drink screen shows ingredients with 100.0oz and 50.0oz. Ingredients should either be shown in parts, or with correct number of oz (or mL).
Swap the pump ordering on silkscreen of router and mini-router boards. Pumps should be numbered from left to right to be most intuitive.
Look at https://github.com/partyrobotics/bartendro/blob/master/firmware/dispenser/led.c#L82 and https://github.com/partyrobotics/bartendro/blob/master/firmware/dispenser/led.c#L94 - they are completely identical, although the comments say they should be different.
The switch in the drinks page that says "This drink is popular" is not clear to the uninitiated. Maybe add a note next to it that says the drink gets placed at the top of the menu.
Should add the capability to remove drinks and boozes if unwanted
This feature existed, it should come back.
-liquid out tab has default threshold of 13. What is that number? It's confusing and should be changed to 90.
-Every instance of "liquid out" should be changed to "liquid level" (the tab could be called "calibration" or "liquid level")
Let's add basic instructions on the far left:
"Dispensers with a liquid level sensor (included with Bartendro 7 and above) can be calibrated for optimal performance.
To calibrate:
Note: A lower number means less liquid is left in the bottle. Due to some variations in the sensors, the same numbers may not yield the same results, so calibration should be performed on dispensers individually. The threshold will likely be no less than 60."
When you hit a timeout, shit is wrong. Stop whatever you're doing and raise an error!
Powering up a fresh kit, when liquid sensors are turned on in config.py, drinks show up in the menu. Just these two: Kamikaze and Vodka Gimlet.
The odd thing is, there isn't even lime juice or triple sec in the bot.
The drink page and the actual dispense action should check to make sure that the drink that is being created can actually be created. Outdated pages can remain on browsers after the ingredients have been changed. The server should recognize this problem and give the user an error and then send the user back to the main menu.
Original title: Drink In Menu Without Required Mixer
Original text:
The B3 UI had vodka cranberry showing up with no cranberry loaded. I checked the recipe and it was correct. I checked the dispenser screen the pumps were correctly designated. I attempted to dispense the drink and no pumping happened. A text box said my drink was being served and the box wouldn't go away. The back button let me get back to the menu.
Noticed that current sense is only triggered when making a drink, but not when turning on a pump from the dispenser screen. Motor should always be protecting itself.
All of our software should be installed via debian pacakges to make it easily updatable.
When a dispenser is turned on in the dispenser page then current limited, the state of the button continues to say "turn off" even though it's obviously already off.
When an error is caught an exception should be thrown and a log entry should be written.
"liquid levels" button should be called "refresh liquid levels" or something more clear. It currently returns an unfriendly error if turned off. Maybe something more like "Liquid sensors are currently disabled, enable them by..."
I was using B3 during an event and it was working on my phone, Nexus 7, and Nexus 10. At some point during the night I got an error message that I need to use a device that is connected to the bot (I forget the exact wording of the error screen). I tried to log in using my phone and it didn't work. I tried with my Nexus 7 and it didn't work. I tried resetting the bot and it didn't work. I tried resetting the bot again and logging in with my Nexus 10 and it worked. I then was able to log in using the Nexus 7 and my phone.
I am not sure what made the issue come up or what made it go away. I will keep an eye out for it to happen again and try to get more details.
The same amount is dispensed every time regardless of size.
Monitor Power going to the motor, known voltage x measured current.
Keep the Duty Cycle below an empirical threshold.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.