Team Six/Journal

From Maslab 2013
Jump to: navigation, search

Our robot is named E.A.R.L which stands for "Electronic Assistant Research Labrador". Below is a score board derived from real data from the robot:

E.A.R.L Score Board
Number of Humans Killed:1.04
Number of Robots Killed:2.3
Number of Motor Controllers Killed:4
Number of Arduino Boards Killed:0
Number of Failures: 2,357
Number of Victories:2.1
GRAND TOTAL: -9999

As you can see, there is always room for improvement.


Contents

Day 1 (01/07/2013)

Today was a glorious day for the People's Republic of Team Sechs. We started out by waking up at some god-forsaken hour to go to our initial meeting, where Darthur explained the rules for people who were not paying attention last time. Like most of us. A few questions were explained.

Our previous meeting came before break, and had a nice solid discussion on ideas for mechanical and code design of our robot. Ideas that were tossed out include: Mechanums and omni-wheel drive systems (3 and 4 wheel design), Using an S-shaped roller mechanism for picking up and scoring balls, strategy of dumping every single ball humanly possible over the yellow wall to mess up the other guy while optimizing our synergistic ground-state six sigma endeavorships, discussing the various scoring method and determining that launching the balls as fast as possible into the audience was the best scoring method, and other stuff I can't remember.

Pegbot driving on the field

We talked about our own special talents and how we're all special snowflakes, and Fred mentioned his superior machining skillz, Steven his talents as the Robot Whisperer, and William and Harry's limitless devotion and enthusiasm that they would fully give to the team, dying selflessly for the robot if they had to.


Various team names were also discussed, including Team Teta Football Club United (TetaFCU) and Team T-9.

We decided on team name T-9. It's obviously the best.

We spent most of our lab time trying to put together a piece of densely-corrugated cardboard with some bolts and some funny pieces of metal sticking out of it. After spending too much time putting the shiny pieces of metal next to each other next to other, shinier pieces of metal and really hot shiny pieces of metal, we had a giant rats nest. The battery caused a great deal of stress as it bent the cardboard severely at the halfway point, but it never failed. After too many hours of tinkering with the wiring, we pushed a button and the wheels spun. We were the fifth team to get this far. Go us. Yay.


After the wheels started spinning, we had a short meeting to discuss some of our previous ideas for a final robot design. We all agreed on a general strategy and mechanism for scoring, but on later review by Fred and Steven, we decided that our mechanism was too good and we needed a crappier one. Fred claimed that he would do some of the CAD work, but I think he's a liar. We'll pitch the new, less complicated mechanism to the rest of the team tomorrow.

Day 2 (01/08/2013)

Today started with slanderous lies coming from Arthur Pentron, saying that he didn't see any journal entries on the wiki. CAN YOU SEE IT NOW DARTHUR? HUH? CAN YOU?!?!?

William figured out how to do wiki headers, which is pretty fantastic. He's some sort of wizard, unlike that Harry dude. It appears that my team has also taken notice that I'm even bothering to fill out our journal entries. Someone has betrayed my trust, and my cover is now blown.

              ,
        (`.  : \               __..----..__
         `.`.| |:          _,-'::: '  `:`-._
           `.:\||       _,':::::'         `::::`-.
             \\`|    _,':::::::'     `:.     `':::`.
              ;` `-  `::::::.                  `::\
           ,-'      .::'  `:::::.         `::..    `:\
         ,' (_/ -.            `::.           `:.     |
       ,'.:     `    `:.        `:.     .::.          \
  __,-'   ___,..--.  `:.        `.   /::::.         |
 |):'_,--'           `.    `::..       |::::::.      ::\
  `-'                 |`--.:_::::|_____\::::::::.__  ::|
                      |   _/|::::|      \::::::|::/\  :|
                      /:./  |:::/        \__:::):/  \  :\
                    ,'::'  /:::|        ,'::::/_/    `. ``-.__
                   '   (//|/\      ,';':,-'         `-.__  `'--..__
                                                            `---::::'

Figure 1—Note the tail.

Now I'm also bothering to fill out our journal entries. Fred totally showed me the antigravity conveyor belt even though I went to sleep last night instead of drinking beer and playing SolidWorks with him. My keyboard is also getting pretty gross. Maybe I'll go to the bathroom during the break and squirt a bunch of hand sanitizer on some paper towels and clean it.

Most of the morning was spent in a lecture talking about more robot brain-planning and soul-giving, most of it still emphasizing parallel processing over series. We spent two hours messing with a robot to make a bump switch tell it to turn, we were disappointed when we couldn't get this done. I suspect sabotage. The others suspect faulty wiring. They'll try to shove a soldering iron in the thing's brain until it works again. The fools don't realize that the real problem with the electronics lies with the compressed cardboard, not any of the electrons.

I'm going to go get some fun parts from Home Depot after this next lecture, the others will figure out who sabotaged us and mercilessly run them into ruin. Or shove a soldering iron into our robot repeatedly. Frankly, I'll be happy to take a ride on my rusting and falling apart motorcycle in the freezing cold, as it's a nice break from the dark reality of the MASLab LabLab.

The trip was a success! Shelf-liner was obtained, and by 6pm I had a fully working mock-up of our scoring mechanism. Of course, no one on my team came to come visit me and look at it, they had all left after successfully completing the checkpoint earlier. Now all that stands between me and a working model of a robot is a sleepless night of Solidworking. Solidworksing. Solidingwork. Drinking. However you're supposed to say it.

I also grabbed a few motors that I thought were pretty cool, one of which can be seen here (http://www.lynxmotion.com/images/data/ghm02.pdf) and the other of which is over a decade old but has about 70 rpm and hella torque. I've made solidworks models of both.

Day 3 (01/09/2013)

I haven't done one of these journal entries so I am going to try my hand at it. Here goes:

Team Sechs awoke from their slumber. And by "Team Sechs" I mean "Harry and Will". Everyone else decided to sleep, which made my face rather sad. Nonetheless, we trudged to class at a most ungodly hour, though that seems to be the case for most hours in the daytime.

Our lecture covered the basics of vision, which I don't know anything about. Luckily, the lecture did help and I took detailed, froshy notes.


I on the other hand, awoke gracefully around noon, to the sound of birds chirping, a cat purring, the smell of coffee and bacon in the kitchen, and a warm member of the opposite gender by my side. Then my alarm started screaming at me, and I woke up from that pleasant dream to the cruel realities of my lonesome self in a stuffy, cold, smelly barracks room. It was only after I had trudged my way to lecture did I discover Arthur's slander had infected even the calender, filling it with lies saying that the lecture for the day was an hour earlier than we had been told.

I had spent the previous night working by myself (mostly) on making a spreadsheet to optimize roller/wheel size with the motors I had gotten for us yesterday, and modeling those mechanical systems to form a geometric basis for our robot. I finished a 2D outline that forms both two of the sides of the robot and gives us a good visual aid for the robot. Today I'll flesh it out, and add in locations for all the various sensors and minor parts that we need. We'll also call the manufacturers of the wheels we've picked, and see how long shipping will take for those.

I'm also somehow awake now. I ran some errands and then came here and Fred told me to CAD the omniwheels. I looked online to see if there were any models already available but they were the only ones I couldn't find anything for. I contacted the company and what I assume was an intern replied saying she didn't have any idea but would ask her superiors who would I imagine will laugh at her and tell her to ignore me. I started a primitive model from the CAD sketches on the website, and its adequate for now. I can see how I would make it more accurate so I'll do that now.


Day 4 (01/10/2013)

Singularity.png


Today was a bit of a dull day. Most of the rest of the team slept in, but I maintained my faithful watch of an empty table, kept only with the company of my own laptop and the voices in my head. I made a great deal of progress, which now looks like a Goa'uld spaceship that crashed into an office building, but I guess you can't win them all.

When Harry and Liver-no-more finally showed up, they played with the code until they finally managed to summon The Singularity from the depths of the internet, pictured to the side. This ethereal presence will give us a great advantage over our feeble-minded opponents who will be forced to worship its overwhelming omniscience. As seen in the picture to the side, it has already begun to feed on webcams and requires more to sustain itself. I'm sure team 1 won't notice theirs missing.

Passersby were unnerved by the copious amounts of blood.

Passersby were unnerved by the copious amounts of blood.

Passersby were unnerved by the copious amounts of blood.

Passersby were unnerved by the copious amounts of blood.

Passersby were unnerved by the copious amounts of blood.

Passersby were unnerved by the copious amounts of blood.

Day 5 (01/11/2013)

Robot.JPG

Team Six: T-9 has now finished building and programming their robot, as can be seen in this real photograph.

You can tell it is in perfect working order. The programs are done, so we decided to start over again and redo everything, so that the competition would be more fair for everyone else.

Harry and I fixed the vision code and created a calibration program that returns the HSV values of the pixel in the center of the webcam feed image. I painted a wooden board with the paints used on the ball to create a larger surface to calibrate the camera for different lighting conditions. Unfortunately, not all balls have the same paint color, so the calibration was finicky. Nonetheless, we completed both checkpoints with our vision system and decided that we could work on it more when we actually had the real robot we would be working with, not the PegBot. However, since the robot is complete, we have to take it apart and rebuild it.

On an unrelated note, our robot is currently ranked number one in the "Sexiest Design" category of the rankings.

--Late night update--

Since I had nothing better to do, I sat around and built multiple robots. MANY OF THEM. Mayans lied to you - the world isn't gonna end - our amazing robots are going to overrrrrrrrrun it.

Hell yeah.

Anyway, a bottle of orange juice and a certain amount of free time result in amazing results, so after building the frigging bots I took multiple pictures. Enjoy.

And yeah, by the way - as you see on the factory photograph, one of the robots is human sized, so beware, puny humans.





Factory.jpeg Street.jpeg Kitchen.jpeg


Day 6 (01/12/2013)

Not too much happened today. Once again, I slaved away in a machine shop and on a computer, pathetically attempting to make dreams a reality while my lazy programming son of a #@$~! team sat around and did nothing.

Yesterday I did the design for manufacture for all of our parts, trying to make sure that they'll all fit together after we make them. Also, I did a lot of errand running. Like, a lot. A loooooooooot. Picked up some sweet fog lights for blinding the competition, as well as a few other goodies that should make things fun. And bright. And fun.

As far as physical work goes, I mostly finished the rollers today (they'll take 15 minutes in Edgerton to completely complete on Monday, and did copious amounts of water-jetting thanks to a few well-placed bribes. The decorative pattern came out looking really nice, and thanks to help from my lazy $#@$#!-butt team mates, we got some of the bending done and started playing with and dry-fitting the parts. Harry says he has a lab that's open tomorrow that we can work in, so we'll check that stuff out and see if we can get everything finished then.

Day 7 (01/13/2013)

Today was a good bit more restful, but equally long. My contact with a laser cutter finished our parts around noon, and Harry and I took off towards his promised lab. Turns out, it was closed on Sundays. OH WELL.

He did get us into another workspace that had some fun toys that we could play with, like a dremel, power-drill, drill-press, belt-sander and all the nuts and bolts we could eat, so that's pretty cool. Our inability to finish machining all of this stuff as precisely as we would have liked has made us come to the conclusion of doing things quick and dirty to get functionality rather than slow and precise, because we really don't have time anymore. A few things that have gone errant and will be corrected in future versions:

-sanding down the face piece instead of milling it. This isn't all that important, but is good for looks

-sanding down the edges of the base plate too far. This should be easy to fix next time

-drilling the structural holes for the face piece while in the sides. This caused cracking, and we should be able to drill the piece by itself on a press next time


Other mechanical bugs should go here:

-having to use 2wd instead of our omni wheels (and being unable to pick up balls as such)

-jammed gearboxes (easily solved, just annoying)

-Not using acrylic cement to attach some of the brackets to the base plate. We'll see how necessary this really is.

-One of the bolts for the battery bracket needs to be lowered, it interferes with the battery terminal.

-I think our on/off switches are really really easy to accidently hit, having accidently hit them one multiple occasions.


As it turns out, Harry and Will actually did do nothing of value today. Go figure. Disregard. This was Sunday. Harry did lots of useful things, it's William that's the worthless one.

William: Wait, What? I was skiing most of the day but after I got back I created a PID tracking balls program for mock 1 and did as much debugging as I could without the robot in my hands. This is what happens when you file for a divorce and your spouse gets the kids robot.

Day 8 (01/14/2013)

EARLV1.JPG

Fred's Perspective:

So around noon today I finished putting together the robot. And by "putting together the robot", I mean put enough things together to make the robot move and not much more. I told Will that he could program it, but the lazy son of a hoard couldn't even program it in five minutes, nontheless five hours. I am totally going to fire that guy next chance I get.

In other news, most of the mechanical stuff mostly works, so I think I did my job well. The belt system needed a bit of tuning, but I got that fixed up after the competition. Everything else ran fine except for our inability to pick up balls, but since our good wheels aren't in yet, there's not too much we can do about that. The vision tracking code worked fine, and it was fun to watch the mood swings of the freshmen as they tried to work on no sleep.

We're tired as crap, but hey, we have a (mostly) working robot.

Caramelldansen.gif

Will's perspective:

Harry stayed up all night and worked on the mechanical design of the robot while I slept, unfortunately sleeping through my 6am and 7am alarms to keep programming for the mock 1. But alas, I awoke violently and 10am and rushed to the lab to tweak my code for the robot, because I had not tested ANYTHING out yet.

After burning out 1.5 motor controllers and rewiring the motors a bajillion times, Fred and Harry finally got the robot to work many hours later. Basically Fred fails at life and building robots. I provided as much moral support as I could and made a program for the robot to dance and play nyan cat repetitively. Unfortunately, because of audio codecs and libraries that don't support linux (what??), I ditched this idea and decided to work on the code for the robot that actually picked up balls. By 4:30 pm we finally stumbled stupidly down the stairs to 26-100 and ran the robot a couple of times.

The wheels were too large (we substituted the omni wheels with something else because of shipping or lack thereof) and our robot could not properly pick up balls. Oh well...at least we moved a couple of balls!

Nonetheless, we came in 4th in the mock competition because we were one of 4 teams to compete. Our maximum score was zero. Whoo! No sleep ftw!

Also, I'm not going to be like Fred and post annoying images on the Journal. God he's so froshy.

Day 9 (01/15/2013)

The theme for today was "Do it slow, Do it right", based off of my love life (1st base ftw). After spending some good quality time patching up the robot last night, I brought it into lab and tweeked a few tiny mechanical things that were bugging me. Most of the rest of the day was spent with Steven and Harry re-wiring the robot, while Will once again got to play the role of the frustrated programmer with nothing to program. Go Will! Steven helped lay out an electronic circuit that should be a lot simpler for us to make, and Harry actually planned out wire placement and started running them. No more birds nest! We also cracked some of the acrylic pieces trying to mount a switch, so that was a bit sad, but we will be making new ones this Saturday. I've updated the CAD files for the new hole placements and such, so it should be no biggie. I also put in an order for the limit switches we're going to use as teeth to eat our opponents with, so that should work out pretty well. I'm trying to CAD that up now, so we'll see how that goes.


The Night of Day 9 / Morning of Day 10 (01/15/2013 - 01/16/2013)

Oi there.

A lot of really fun (haha. ha. ha. hmm) and extremely ironic things have happened to me over the past 10.5 sleepless hours that I should have spent in my bed sleeping and having the carefree world of unicorns envelop my weary consciousness. Namely, one of the things that happened was the magical BLUE SMOKE. Yes, you read that correctly, I said magical and very mysterious BLUE SMOKE.

Now, in case you are wondering if old 'arry has gone nuts yet, I'm wondering the same thing. After sitting in front of our [insert adjective that describes utter frustration and hell] robot and inhaling the rosin fumes rising from the tip of the soldering iron for the whole night, I can assure you that my mental state is very much questionable at the moment. Haha. Ha. ha :) Yay freedom on the journal page.

However, my friends, colleagues, and random people who have the time and dedication to sit through this rather amusing journal, the star of the night, as I have already mentioned above, is not I. The star of the night is mysterious as a box of elastic crocodiles, elusive as an illegal immigrant and annoying as @#&*. I'm talking, of course, about the aforementioned BLUE SMOKE.

The story goes as such: after taking on the job of rewiring the robot so that it would no light itself on fire, I spent 10 hours in front of a soldering iron.

When I flipped the switch, the motor controller board exploded and killed 2 cats, 5 humans, burned down the cactus nearby and punctured multiple holes in my soda can.

No, not really.

What did happen is this: two of the control IC's on the circuit ruptured and released the magical BLUE SMOKE, that then went on to fill my lungs and induce coughing and indescribable amounts of swearing.

Damn IC.

Gonna go sleep now, this board is giving me a hard time.

Day 10 (01/16/2013)

"What happened yesterday?"

We machined the wheel hubs after getting in the omni wheels and playing with them all day. I guess there were electronics involved as well, but less than optimal.

 File "/home/programmer/main.py", line 0, in __init__
    main.getProgrammer()
 NoneTypeException: Programmer not found!

Day 11 (01/17/2013)

SEXY CONTOURS!!!111

We're starting today's journal entry early, because we started today early! We finished machining the wheel hubs and rewiring the wires. We'll have all of the wires soon.

I made and finished an epic calibration program that takes less than 15 seconds to calibrate!! As you can see in the picture, it detects the red ball absolutely perfectly, as well as the red "on sale" stamp on my chocolate bunnies. OMNOMNOM, those are so delicious.

I also cleaned up the main program and "state machine" (and by "state machine" I mean "while loop") and Harry made some codes for the new omni wheels. But alas, the robot's electronics still do not work, and therefore programming was harder. Furthermore, IR sensors are not going to be implemented in time for Mock 2, so unfortunately our beautiful robot might hit walls. A general outline for future coding was written (by me) on the board, to be implemented when the robot is functional.

Day 12 (01/18/2013)

Harry performing omni wheel calculations on the 26-100 blackboard

Oh god, where do I begin? I think our story begins at around 2am. Will and Harry were working on the robot. Well actually, Harry was working very hard on the mechanical design while Will, being a programmer, tried to help instead pursued different forms of shenanigans. After spending 3 days (10 hour days, at that) on a relay circuit that would automatically turn on and off the logic and power, Harry had the wonderful idea to put switches on the robot that are clearly marked (and look pretty awesome). However, this means that Will did not get to test out any of the code he wrote until the start of Mock 2.

The competition began with our robot not working at all. Harry and Steven did some magic to the motors and finally were able to get the motors back into working order. Then Will tested out his program, which of course had a million bugs (as it had never been tested). First, we worked on the vision and detection of balls/objects. Then, we tried to program the omni wheels, which caused most of the hell that day. After 6 hours of Harry doing science on the board and me trying to implement his sorcery math, we finally realized that we had an hour left to compete.


At this point, we realized that simpler was better and that the omni wheels were not working right. Therefore, we tried to implement PID code for tracking the ball using the back wheel, only to realize that we had no time to tweak the values and that simple Position code was going to have to do. William began to stroke his faux-pigtails sporadically and forcefully as insanity began to penetrate into his brain.

Finally, we ran the robot and scored 5 points, feeling sorry for ourselves and rather sleep deprived.

Then, William decided to participate in Mystery Hunt and no one has seen him since. If you know the whereabouts of this crazy child, please call the proper authorities so that he can be detained.

Day 13 (1/19/2013)

 File "/home/maslab-team6/main.py", line 0, in __init__
    main.getTeam()
 NoneTypeException: Team not found!

Day 14 (1/20/2013)

Mystery Hunt/Lack of Sleep/Insanity

Day 15 (1/21/2013)

We worked on the robot and fixed some of the wiring issues. Added magical code for buttons/switches. Mystery Hunt freaking finally ended. Sleep schedules are returning to "normal", but that doesn't mean anything as the definition of "normal" is relative to the situation.

One thing we implemented was the array of limit switches at the intake of our robot. Harry wired the switches, and Steven wrote code for ball detection.

diagram for the wiring of the switches--when not touched, the signal is connected to ground

Day 16 (1/22/2013)

I don't know what happened today. I was mostly dead for most of this day. I'll wait for Fred, Steven, or Harry to fill this one out. I declare these sentences to be the placeholder text until then.

Steven debugged the code for ball detection with the limit switch array. The code uses filtering such that it counts a ball once even if the ball activates a switch or multiple switches noisily. The code also implements the hasBalls method, which returns True if the robot has balls.

Output from robot: "BALLBALLBALLBALLBALLBALLBALLBALLBALLBALLBALLBALLBALLBALLBALLBALLBALLBALL!!!"

Day 17 (1/23/2013)

The acrylic sheet on the underside of the robot snapped when loaded by dropping. The piece that snapped off was attached to the back motor. Another piece above the battery was also fractured in the corner.

Once upon a time, at an institution located in Cambridge, MA, there lived a robotics team. It was the morning of an epic third mock competition that started out beautifully, with the temperature a balmy -15 degrees Celsius and the sun shining down on the salt covered sidewalks of MIT. The teammates of this team, the sixth Maslab team named "T-9", skipped happily through the corridors of building 36 on their way to the lab with their beautiful beast, E.A.R.L, who's scorching headlights burned retinas left and right as civilians tried to avoid the laser gaze of this "robot".

But alas, all was not well in the world. For, unbeknownst to the fashionably dressed team members of Team 6: T-9, a terrible evil was brewing inside the soul of a simple yellow chair on the fifth floor of building 34. The team members entered the lab, swaggering sexily towards the table that housed the evil yellow chair. As soon as the yellow chair saw the robot, its lack of eyes glowed with hatred, so intense that the lack of a mouth began to froth uncontrollably. Unfortunately, the engineers that made up Team 6: T-9 did not notice the waves of rage emanating from the chair and casually worked on the robot, adding magical switches and infrared death ray emitters.

The chair waited patiently, planning to enact its revenge on the helpless robot at the proper moment. Finally, the robot began moving closer to the chair and the chair cackled in excitement through its lack of a mouth. When the robot was put down on top of the chair, the chair acted quickly and violently, screaming loudly and kicking the robot until it fell to the floor, broken apart:

"EEIIIIIIIIIIIIIIIYYYYYAHHHHHHHHHHHHHHHHHHHHHHH!!!" *BOOOOOOOOM!*

Fred saw the robot begin to fall and dove, his face contorted into anguish and disgust. But he knew he was too late. Simultaneously, Will, Harry, Steven, and Fred burst into tears, cursing the Gods and pounding their fists on the floor. Harry turned on the magic power switches and realized his mistake as the cursed blue smoke began to emanate from the motor controller.

O Fates, Why Hast Thou Forsaken Us?

TL;DR: We dropped our damn robot. The motor controller broke as well as several important pieces of acrylic. Luckily, we were able to superglue stuff and rewire a new motor controller. Number of Motor Controllers Killed += 1. God Help Us All.

Subsequently, Fred made a repair to the acrylic fractures using cyanoacrylate glue and duct tape while Steven and Harry repaired and double-checked the wiring. Next, Harry and Will debugged the code for Mock 3.

The robot started working again and we scored 5 points. Somehow, this meant that we tied for second. Woot.

Day 18 (1/24/2013)

For some reason, I had never thought to use threading with the timer. I don't know why this never crossed my mind, as I spent a good chunk of my programming time trying to make sure that the timer worked. Whatever. At least now there is a timer that is threaded and a halt() function that stops the program (at least the motors).

I decided to further explore the magic called "threading" and was able to thread a ball counter and the camera. Unfortunately, threading the camera didn't work, and I wasted a lot of time trying to get it to work. Eventually I ditched threading with the camera, which might sound like a bad idea, but it actually works a lot better.

Fred did something important on the robot but I can't remember for the life of me what it is. Fred, this is your cue to finish this journal entry with your discoveries and improvements.

Day 19-21 (1/25/2013 - 1/27/2013)

Bad Ideas 2013 = not working on the robot at all (which was a bad idea in itself, justifying my actions, right?)

Fred grilled burgers. Will (and Curly?) did all the things. Harry and Steven were MIA.

-edit-

Will and Harry were pulling a freaking sled while wearing nothing more than a pair of shorts in -15F. Bad idea.

-edit-

*Booty shorts

Day 22 (1/28/2013)

Today Steven and I scrambled around to create a robot that worked for Mock 3. We debugged the lineUp() for the robot and it worked well on the field even with the new material. Little did we know that the Fates had a different plan for us the following day, and our robot would not work.

But for now, Steven and Will felt magnificent as they imagined their robot working perfectly on the newly modified field.

Day 23 (1/29/2013) "All the Evil"

Only hours before All The Evil happened, members of the fabulous team sechs lay asleep in their bed, gently sleeping through the night morning. But as they lay at peace, the Fates swarmed EARL, casting spells at his motors and cursing him in every way possible. EARL screamed with fright, but alas, the computer was not plugged in and the magical Arduino board could not communicate with an audio device.

However, because EARL is an inanimate object, the team did not notic


 File "/home/journal/main.py", line 9999999999, in __init__
    main.getJournalEntry()
 JournalParseError: Journal Entry [Unknown] not found!
Personal tools